Some years ago (more than 8) when I started developing for SAP Business One, like anybody else, I immediately encountered the difficulty of having my programs to keep running on the new releases (PL) of the ERP.
Issue was not only because of functional changes Inside the API, but also in the definition of the API.
Some time ago, I decided to finally address the last one and to build/use tools which will let me know what are the technical changes from a PL to another one.
After digging a bit, I have found the LibCheck (can be downloaded from http://www.microsoft.com/en-us/download/details.aspx?id=11287) utility from Microsoft which does more or less what I wanted.
So now, on each PL and/or new version, I am generating by hand proxies from the COM objects (UI, DI and DIS) of the API, then parse the proxies thru the LibCheck utility.
The result, allows me to know, before looking at my source code, if technical changes happened and by knowing it, if I have to do a full rebuild or just a full functional test.
The results of parsing these libraries over time can be found at: http://www.elconsulting.fr/public/SBO/SBOVersionChanges.htm.
The utility, which is a command-line tool, is a two step process:
- First to generate the signature for DotNet Library (Framework 2 if not recompiled from Microsoft’s download),
- Second to compare two versions of previously stored signatures.
Since I’m dealing (in this case) with proxies generated by hand from the COM objects, I am storing them in version specific folders (i.e. 902220, 902230). The LibCheck command to do it is the following:
LibCheck -store full SBO_902220 -full d:\temp\902220
Then, I just have to issue the comparison command, also with the command-line tool:
LibCheck -Compare SBO_902220 SBO_902230
Finally, for the SCN, I have to integrate the result in the public web page, but this one is out of topic.
I provided comparisons for one PL to the next, but the tool is able to generate these reports for any versions.
In different posts I will explain the other tools I am using and how are organized my misc. environments.
Feel free to have a look and to comment!