Results 1 to 8 of 8
  1. #1
    Join Date
    Jul 2015
    Posts
    4

    Default Comparing Microsoft Dynamics AX export (.xpo) text files

    I am one of several developers (programmers) using Microsoft Dynamics AX in our organization. I have responsibilities which include the need to know the specific details of differences in the code among our various environments (Test and Production, for example).

    Dynamics AX has the built-in ability to export various types of objects (properties and code) to human-readable text (.xpo) files. There is some structure to each type of object (many types). And there is some consistent object header structure.

    Is there a way to teach BC4 that multi-line object structure as its first priority for aligning the two text files?

    I ask because I often use it for a system-wide comparison where both files approach 1.5 GB (roughly 35 million lines) and contain thousands of objects. While slow to load (for obvious reasons) the text comparison is actually pretty good. However, when there are significant differences (usually caused by many objects on one side that don't exist on the other side), BC4 has some trouble aligning the two sides due to structural similarities in unrelated objects.

    For example, suppose that I have exported two groups of tables with all of their table properties which contain fields and all of their properties, indexes and all of their properties, methods, etc. Each table object will have specific header and footer structure. Within the object, each element (field/index/method/etc.) will also have its own corresponding structure. The number of elements is variable. And, while their associated properties are a fixed list, blank properties may be excluded.

    When comparing the same table on both the left and the right sides in a text compare, BC4 does a fairly good job of aligning the two sides properly. But suppose that the left side contains tables A, B, C, and D and the right side only contains tables A and D. BC4 sometimes attempts to compare table B on the left with table D on the right (with useless results).

    So, what I would like to accomplish is for BC4's text compare to be able to parse Dynamics AX .xpo files natively or for me to be able to configure it to recognize object structure in prioritizing how the text is compared. Does that make sense?

    Thank you for your help in this matter.

    Kirk

  2. #2
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,782

    Default

    Hello Kirk,

    In the Session Settings dialog, the Alignment tab, try increasing the Skew Tolerance (max: 30000). This is the number of lines the scan will search for a match, if B and C would push outside of the default limit. This will influence the alignment, but the algorithm may still match on different lines. If so, please also try the Myers or Patience methods to see if they better align your files.

    How do these settings help?

    Otherwise, we can define grammars to match on the specific alignment text, mark everything else as Unimportant, and then make sure Ignore Unimportant Text is disabled and use the Alignment tab option to Never Align mismatches.
    Aaron P Scooter Software

  3. #3
    Join Date
    Jul 2015
    Posts
    4

    Default

    The Skew Tolerance recommendation worked wonders! Thank you!

    Now I have another minor annoyance that is probably easy to resolve:

    Blank Lines Causing Extra Differences.png

    Each pink section is treated as a separate difference when, for my purposes, this is simply all one difference.

    Any suggestions?

  4. #4
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,782

    Default

    Hello,

    If you toggle off Ignore Unimportant Differences, then the whitespace difference will be counted as a difference and included in a surrounding difference section. How does this work for you?
    Aaron P Scooter Software

  5. #5
    Join Date
    Jul 2015
    Posts
    4

    Default

    There are advantages both ways, toggling between them is very helpful.

  6. #6
    Join Date
    Jul 2015
    Posts
    4

    Default

    Just an FYI, even at the 30,000 line level I have alignment issues, but overall, they were drastically reduced.

  7. #7
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,782

    Default

    Hello,

    At 30,000, does this mean you have lines that are more than 30,000 lines apart that should align? If you try the other alignment algorithms (Standard, Myers, or Patience) do they help?

    If you have any sample files you can email in to support@scootersoftware.com we can take a look. Letting us know a pair of line numbers (View menu -> Line Numbers) so we can know which pair should align would help, or any other example information. Please include a link back to this forum thread in the email for our reference.
    Aaron P Scooter Software

  8. #8
    Join Date
    May 2017
    Posts
    1

    Default

    Quote Originally Posted by Kirk Blackburn View Post
    I am one of several developers (programmers) using Microsoft Dynamics AX in our organization. I have responsibilities which include the need to know the specific details of differences in the code among our various environments (Test and Production, for example).

    Dynamics AX has the built-in ability to export various types of objects (properties and code) to human-readable text (.xpo) files. There is some structure to each type of object (many types). And there is some consistent object header structure.

    Is there a way to teach BC4 that multi-line object structure as its first priority for aligning the two text files?

    I ask because I often use it for a system-wide comparison where both files approach 1.5 GB (roughly 35 million lines) and contain thousands of objects. While slow to load (for obvious reasons) the text comparison is actually pretty good. However, when there are significant differences (usually caused by many objects on one side that don't exist on the other side), BC4 has some trouble aligning the two sides due to structural similarities in unrelated objects.

    For example, suppose that I have exported two groups of tables with all of their table properties which contain fields and all of their properties, indexes and all of their properties, methods, etc. Each table object will have specific header and footer structure. Within the object, each element (field/index/method/etc.) will also have its own corresponding structure. The number of elements is variable. And, while their associated properties are a fixed list, blank properties may be excluded.

    When comparing the same table on both the left and the right sides in a text compare, BC4 does a fairly good job of aligning the two sides properly. But suppose that the left side contains tables A, B, C, and D and the right side only contains tables A and D. BC4 sometimes attempts to compare table B on the left with table D on the right (with useless results).

    So, what I would like to accomplish is for BC4's text compare to be able to parse Dynamics AX .xpo files natively or for me to be able to configure it to recognize object structure in prioritizing how the text is compared. Does that make sense?

    Thank you for your help in this matter.

    Kirk
    Hi Kirk,
    I'm also doing development in AX and have the need to compare XPOs between environments. Did you come up with a workable settings profile for this task? If so, can you share it? Also, I'd like to be able to automate this as much as possible. Say, given an object's AOT path, compare the same object path in another environment and report on whether they are the same or different and report on the differences.
    Thanks!
    Mike
    mike.cano@hotmail.com
    www.linkedin.com/in/michaelcano

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •