Text30 Missing in MPP files; Text30 included in XML files

Hi,

I’ve used your test PBP file: RATimephasedData2010.PBP

XML Testing

Open the PBP
Export to a new file with all buttons clicked and use dates (see: RATimephasedData2010_exportoriginal.XML)

Import to the PBP file (notice that the comparison is update (e.g. find a match for each task or resource)
(see: RATimephasedData2010_import.XML)

Compare these files both output by aspose.tasks … no changes but the creation date.

This is a test I call a round trip… export, import and see if anything changes. Only new tasks should be added to the file … any XML data that has change will be imported.

MPP Testing

I performed the same test as above and then converted the two files to XML and then did a compare.

The mpp files are missing the Extended Attributes in the tasks … this causes the tasks to be deleted and added again to the file. This may cause the timephased data to be mixed up. (same for resources).

The root problem that needs to be fixed is the missing TEXT30 fields for the tasks and resources in the MPP file and then at least the round trip will work and then the time phased data can be tested.

Summary: Extended Attributes missing in Tasks (and possibly resources) in MPP file.

This is the problem I was looking for.

I’ve attached the two sets of data. Do you need a new EXE file?

Regards, Bruce

Hi Bruce,


Thank you for the information and supporting material.

I have analyzed the XML files you provided, and was able to observe the difference between the two versions i.e. XML and XMLs saved from MPP; the Text30 is missing from the lateral ones.

I think the new EXE file (with the code unchanged) will be required to reproduce these files in the same manner at our end. Please correct me if I am wrong here. We are further analyzing this issue and will get back to you with further inquiries if needed.

Hi Bruce,


I was trying to reproduce the same XML files as you have provided us with the current version of EXE, but it seems that I am missing something as I can’t reproduce both the XMLs using Export/Import options (I doubt I am not operating your application in the right manner). Also, for MPP testing, can you please write down the steps for us, so that we are sure to follow the proper steps. We are thankful for your cooperation and will assist you further as soon as possible.

Here are some simple steps to create a file w/o Extended Attributes in the MPP file:

Start ChangeAide
Open: RATimephasedData2010.PBP
Hold the shift key
Select: Tools >> MS Project Interface
Push the button: Select MPP File
Enter a new file name: RATimephasedData2010_003.MPP
(increment the number before the .mpp)

NOTE: If you select the ‘save as file type’ to XML, you can create the XML files I have provided with TEXT30.

Select TAB 2 (2. Select Options): Click all of the task buttons and select ‘use dates’.

Select TAB 3 (3. Import or Export)

Push the button: Identify Changes (confirm Action = Add)
Push the button: Apply Changes

Open MS Project
On the Entry table: Right click and Insert Column TEXT30

NOTE: The TEXT30 column is empty (no values showing).

Close / exit MS Project and do not save to the file (leave it as aspose.tasks created it).

Select the first tab 1 (1. Select Files)
Push the button: Select MPP Files…
Keep the same file name: RATimephasedData2010_003.MPP
Select save as file type: XML
the file name will change to: RATimephasedData2010_003.XML
push save
Do not change any options (2. Select Options)
Select TAB 3 (3. Import / Export)
Push the button: Identify Changes (confirm actions = ADD)
Push the button: Apply Changes
Open MS Project with the new file
On the Entry Table: right click and insert a column = TEXT30
Observe that the TEXT30 column now has valid IDs for the task row:

Text30
00014AC
00015AC
00016AC
00017AC
00018AC
00019AC
00020AC
00021AC

These are not readable in the MPP file.
Close MS Project (do not save the file).
Close the MS Project Interface window (do not save the file).
Close ChangeAide.

Without these fields, ChangeAide cannot match the tasks it reads. Normally there will be alignment and any changes in import or export will be updated.

NOTE: ChangeAide is a way to create MS Project files in a structured way (using Product Based Planning). Normally, ChangeAide is used first and then a file is exported to MS Project. Once the plan is ok in MS Project, imports will generally be used to keep ChangeAide up to date with the dates and structure of a plan. When performing an import … ChangeAide will pass through all information from the MPP, there are only a few fields that will be updated. This should not influence any information passed through.

You should not need an updated version as long as you use the latest DLL you provided. I’ve added the files I just created as an attachment.

Hope this helps…

Regards, Bruce


Hi Bruce,


Thank you so much for these detailed steps. It indeed helped me out.

However, I have noted two things here:

1) I browsed the Directory structure of ChangeAide and found the Aspose.Tasks for .NET 4.8.0.1 DLL there. As we provided you the last fix as 4.8.0.2, can you confirm to us that your recently provided files were generated using the latest fix that we provided to you?

2) The existing EXE seems to be working for 2007 MPP (and may be below versions) only. If I try to generate a 2010 MPP file, it is unable to do that, but that is not the main issue here anyways.

I was again able to observe the issues at my end with the MPP file versions. I have logged this issue for further investigation by our development team under issue ID: TASKS-33247. We will update you here once we have any information in this regard.

Hi,

1) A simple way to tell which version I used. Create or Open an XML file and look at the aspose.tasks version added to the file. you will see that the sample I created was 4.8.0.2.

2) I only have support for MS Project 2007 as this was the only MPP version that worked a while ago. Can you confirm which MPP versions you support and I’ll make a new version with all MPP versions supported when I get another updated DLL.

I’ll continue testing when I get the next DLL. I have a number of tests ready to go.

Regards, Bruce

Hi Bruce,


Thank you for the feedback.

Since the release of Aspose.Tasks for .NET 4.6.0, we have supported writing updated data back to 2003, 2007, and 2010 MPP files.

Our development team will look into the issue of missing Extended Attribute in MPP file and we will update you once we have any information in this regard.

Thank you for your patience.

Hi Bruce,


Developers have suggested a change that if you just add a new value to the value list of attribute then the value will be present in mpp file and MSP will show it.

I have tested this change in your previous version of code and found that without this modification, Text30 field value is not displayed in MSP. However if I modify code according to the following sample, Text30 field will be displayed in MSP.

Please modify your code between START/END comments block and test it accordingly. If this issue is resolved then send us your updated EXE for any future testing.

Private Function Task_EA(ByRef rtskToCheck As Aspose.Tasks.Task, ByVal vlngField As Aspose.Tasks.ExtendedAttributeTask, ByVal vblnSet As Boolean, ByVal vstrValue As String) As Object
'get the value of an EA for a task
Dim peadToGet As Aspose.Tasks.ExtendedAttributeDefinition
Dim peaFound As Aspose.Tasks.ExtendedAttribute = Nothing
Dim val As Value
Task_EA = Nothing
Try
peadToGet = EAD_Check(Aspose.Tasks.ElementType.Task, vlngField, Aspose.Tasks.ExtendedAttributeResource.Text30)
If peadToGet IsNot Nothing Then

'
have an ead for the EA… now can set an ea
peaFound = EA_Get(peadToGet, CObj(rtskToCheck), vblnSet)

'now set or get the value if an ea is available
If peaFound IsNot Nothing Then

'
have an ea to use
If vblnSet = True Then

'set the attribute value
peaFound.Value = vstrValue

'
this value needs to be added to ead value list to be shown in the MSP ea column
'START
val = New Value()
val.Val = vstrValue
val.Id = peadToGet.ValueList.Count + 1
peadToGet.ValueList.Add(val)
'
END
Else

'have an ea for an ead… use this ea
Task_EA = peaFound.Value
End If
End If
End If
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Function


Waiting for your kind response and feedback.

Hi,

I’ve added the extra code and cannot see the field values.

Is this code specifically required for MPPs? it does not seem to be required for the XML.

Regards, Bruce

Hi Bruce,


We are sorry for any inconvenience caused to you.

Development team is further analyzing the issue and we will notify you here as soon as some feedback is received from the developers.


Hi Bruce,

Here is a sample code which creates project and then adds tasks with extended attribute. At the end this project is saved to a MPP file. When this MPP is opened in MSP, this extended attribute can be seen. Could you please adjust your code according to this sample so that the extended attribute becomes visible. Please give it a try and let us know your feedback.

Thanks for your patience and understanding.

Hi

Many thanks! I confirm that I get the extended attributes when running the sample you provided.

I will now attempt to understand why my code does not work for the MPP and does work for the XML.

Many thanks!!

Regards, Bruce

Hi Bruce,


We are glad to know that the sample program is helpful to you. Please feel free to write us back if you have any further query.

Here are the results of my tests…

To set the Extended Attributes, I needed to set the EAD in the EA or

EA.AttributeDefinition = EAD

To read the Extended Attributes, I needed to not use the following:

EAD.ElementType

It does not look like ElementType is saved in the MPP.

For the XML version, it looks like EAD.ElementType does work and AttributeDefinition is not needed.

I will continue testing once I get the next version of the DLL.

Regards, Bruce

Hi Bruce,


Thank you for the feedback.

I have logged your additional comments against the logged ticket linked with this thread. Development team will look into these and provide further assistance.

Regarding the ElementType not saved in the MPP, you are right, as currently only Reading is supported for this property, and it can’t be written to MPP (Reference).

In addition, from your feedback, can you reconfirm to us if setting the EA.AttributeDefinition = EAD solves your issues for both XML and MPP? Please share with us any other details that can be helpful for us in this regard.

The issues you have found earlier (filed as TASKS-33247) have been fixed in this update.


This message was posted using Notification2Forum from Downloads module by aspose.notifier.