joniles / mpxj

Primary repository for MPXJ library
http://www.mpxj.org/
GNU Lesser General Public License v2.1
250 stars 104 forks source link

Sometimes a UID is output instead of the value for a Custom Field #759

Closed kampfaffe closed 4 weeks ago

kampfaffe commented 1 month ago

I am reading a .mpp file (version 14) that contains a custom field "text10" with the alias "DOTS". This field is a dropdown from which the user can select options in MS Project. Most of the time, I can read the custom field and retrieve the correct value. However, in some instances, I only receive the same UID instead of the value. Interestingly, within the same file, I sometimes get the correct value and other times just the UID. Interestingly, the same UID is displayed, even though different values are expected.

I tried using varTask.get(varProject.getTasks.getFieldTypeByAlias("DOTS")) and varTask.getFieldByAlias("DOTS").ToString.

Is this a bug, or is there a way to handle this? When I open the file in MS Project, everything is displayed as expected.

joniles commented 1 month ago

Hi, thanks for opening the issue.

However, in some instances, I only receive the same UID instead of the value

If you open the same unmodified file multiple times with MPXJ, are you seeing different results being returned for the custom field?

I'm assuming this field is one of the "built in" custom fields used by Microsoft Project rather than an Enterprise custom field?

Would you be able to attach (or send me directly) a sample file which illustrates the problem?

kampfaffe commented 1 month ago

Thank you for your quick response.

If you open the same unmodified file multiple times with MPXJ, are you seeing different results being returned for the custom field?

No, the result is always the same. 6 out of 9 values in this field are displayed correctly for the file. The remaining three contain different values in MS Project, but MPXJ always outputs the same UID for all three. Interestingly, the 6 working cases also include the values that should actually be displayed instead of the UID.

I'm assuming this field is one of the "built in" custom fields used by Microsoft Project rather than an Enterprise custom field?

Yes, it's a "built in" custom field.

Would you be able to attach (or send me directly) a sample file which illustrates the problem? I try to make an anonymized version and send it to you directly next week.

joniles commented 4 weeks ago

Thanks for providing the sample file. Based on that I've merged changes to address the issue. These will be available in the next release.

kampfaffe commented 2 weeks ago

Hi Jon,

Thank you for the update. I tried Version 13.6.0 (MPXJ for VB), but unfortunately, I am still encountering the GUID issue:

image

joniles commented 2 weeks ago

I've just checked the changes against the sample file you provided and I'm seeing the correct values. What do you see when you use the sample file you provided to me?

kampfaffe commented 2 weeks ago

That's interesting. With the sample file I provided, the correct values are displayed in version 13.6.0. In version 13.5.1, as expected, the GUIDs are shown in the output. However, when I use a different file, sometimes the GUIDs are also displayed in version 13.6.0. I will send the other sample file to you via email.

joniles commented 1 week ago

Thanks for the updated sample. I can now see the issue and have reworked the code to ore reliably retrieve the custom field values. The changes have been merged and will be available in the next release.