Hello, I would like to ask a question about Aspose.Tasks.
We have a customer who uses Project 2003. I have a connector that will process Microsoft's default Project 2003 XML format. When I save a project file to XML from Project 2003 , it saves everything including the TimephasedData, which the connector I'm using requires in order to properly process the tasks into my database schema.
In your product, if I open the MPP file and call XMLWrite, it writes everything except the TimephasedData portion. I noticed under your Aspose.Tasks.XML namespace that TimephasedData is included in the object model. Is there anyway that I can open an MPP fille with your product and:
Save it to the native Microsoft Project XML format which includes TimePhasedData?
Cast/Translate from an MPPFile to the Aspose.Tasks.XML namespace object model to get access to the TimePhasedData in that manner?
We would very much like to use your product going forward, however, I cannot use a product that doesn't give me access to the TimephasedData from an .MPP format. I am trying to save my customer's the trouble of having to export it manually and it will also save transmission time to our servers seeing as the XML format is much larger than the MPP.
Unfortunately, this is something that I need available to me now. I noticed that this does exist in the xml namespace but I am not sure how to use this namespace. Can you give me a sample project that uses this namespace or does any documentation other than the API exist for this namespace?
After you saved your project in XML format (without timephased data) you should open it again with standard XMLSerializer.
TextReader reader = new StreamReader(input_stream); XmlSerializer serializer = new XmlSerializer(typeof(Aspose.Tasks.XML.Project)); Aspose.Tasks.XML.Project project = (Aspose.Tasks.XML.Project)serializer.Deserialize(reader);
Check API for XML.Project class. It has manu properties and collections. The main collections you can use are Calendars, Tasks, Resources and Assignments. Timephased data can be stored in each Assignment. For example you need to add new timephased data.
At first you shour find Assignment you need to change. For example it’s a first one.
Now you can add timephased objects and set properties.
Aspose.Tasks.XML.TimephasedDataTypeColection tds = assg.TimephasedDataCollection; if (tds == null) { tds = new Aspose.Tasks.XML.TimephasedDataTypeCollection(); assg.TimephasedDataCollection = tds; } Aspose.Tasks.XML.TimephasedDataType td = new Aspose.Tasks.XML.TimephasedDataType();
tds.Add(td); td.Type = Type.AssignmentRemainingWork; // 1 td.UID = 1; // Probably equal to Assignment’s UID or may be own one td.Start = new DateTime(2006, 03, 27, 8, 0, 0); td.Finish = new DateTime(2006, 03, 28, 8, 0, 0); td.Unit = Unit.Days; // 2 td.Value2 = “PT8H0M0S”; // time period, 8 hours in our case. // You shouldn’t set Value2 for non-working days or you can set it to "PT0H0M0S"
Timephased datas should be added for each day. You can save project in XML format with MS Project and check what values should be set. Hope this small example will help you.