How to find what I changed in a folder (aka what did I break this time)

3 minute read time.

Sometimes you may find yourself troubleshooting a situation that doesn’t occur in all your folders.  This could leave you scratching your head, wondering what is different between these folders that is potentially creating a problem?  Which leads to a bigger question, how can I go about tracking down any differences?  Of course, you could hunt and peck and manually compare different areas of the folders—but that would be time-consuming, tedious, and prone to error.  There’s got to be a better way, right?  Of course there is!  Time to pull the Object Difference Analyzer out of our toolbox and put it to work.

 

What exactly is the Object Difference Analyzer?  This function allows us to compare the differences between a folder and can be narrowed down to specific objects or by activity code if needed.  Assuming best practices have been followed, the X3 folder remains unmodified, making it the perfect candidate to compare another folder to when trying to narrow down any changes.  You can also use this tool to directly compare one folder to another, making it very useful for comparing a development folder to a production folder.

 

As an example, I find that trying to open a Sales Order in my TESTSEED folder is hanging for quite a while and doesn’t appear to be opening any time soon.  After a few minutes, I finally receive this error:

 

After some investigation, I’ve found that I can open sales orders in my SEED folder—so what is the difference?  From the TESTSEED folder, let’s go to Development, Utilities, Dictionary, Analyzers, Object (ACOMPOBJ).

We’ll leave TESTSEED as our source folder and set SEED as our destination folder.  Since we’re not quite sure about the differences at this point, we’ll go ahead and check all the objects to process.  Keep in mind that this process can take quite some time, especially if comparing everything.

The Det box will be checked by default to enable detailed logging, so I usually advise to leave this as is.  The File option can sometimes be helpful if you want to view the results in a .csv file—but keep in mind that the results are only written to this file and you’ll need access to the folder structure on the server to get to it.  To keep things simple and view the log results directly in X3, we’ll leave File unchecked.

Now that we have our options set, we can click OK, which will give us a Warning after a few seconds:

Clicking Yes will kick off the processing, leaving the screen below cycling for quite a while:

 

Once the processing has completed, we’ll see the results:

 

AH-HA! It looks like we’ve modified the GESSOH function (sales, orders, orders)—seems like a good bet that this could be related to our error.  Let’s modify that function in TESTSEED so that it matches what is in the SEED folder.  We’ll head to Development > Script dictionary > Functions, then pull up the GESSOH function code:

From our log, we can see that the Action and its associated parameters are different.  Here is what we see before changing TESTSEED:

 

And after changing it to match our log results:

 

Now we can go back to Sales > Orders > Orders and test our results:

And we’re back in business!

 

As you can see, the Object Difference Analyzer can be a valuable troubleshooting tool when comparing different behaviors between folders.  Hopefully this will come in handy for you one day.  Until next time!