We're trying to migrate an application forward to PowerBuilder 2019R2 that uses the .Net WSDL engine. It deploys, everything seems to work perfectly on workstations with PowerBuilder 12.6 installed. When using Procmon and watching the application run, it is using ExPat126.dll, EasySoap126.dll, and pbwsclient126.pbx in this 2019 build instead of the expected ExPat190.dll, EasySoap190.dll, and pbwsclient190.pbx. On a clean workstation, if we don't bundle those three files in, the web service throws a runtime error.
Has anyone else experienced this and have any solutions aside from continuing to bundle the 126 files? Is there any harm in doing that?
That is a great question!
AFAIK, neither Sybase or SAP ever outlined this upgrading requirement and Appeon never did as well obviously. If PB developers were upgrading from PB 11 => 11.5 => 12 => 12.5 => 12.6 though, you would have had to do this in order for the .Net WS to continue to work. So it should have been a learned experience. Of course, original PB developers leaving without documenting this either may be another downfall. I have personally been through all the PB versions listed above so I know this from the "school of hard knocks" experience.
The problem though started when the original PB developer(s) started using the PBX approach. Sybase *never* intended PB developers to use that. The proper technique would be to of just added the "PBWSClient110.PBD" file to your library list. It has all the PBX stuff in a ready to go & upgrade package. Then, you would just replace the "PBWSClient110.PBD" file with the next version (PBWSClient115, PBWSClient120, ...). In your case - having used the PBD approach, you would simply replace the PBWSClient126 PBD with either PBWSClient170 or PBWSClient190 as you move to PB2017 or PB2019. A much more safer and intuitive approach.
Regards ... Chris
Noted.
Also, this process would apply when moving any PB App from version X to Y where *any* PBX's were used (for whatever purpose - not just WS's). However with PBD's its much more obvious looking at XXXXX170.pbd => XXXXX190.pbd => XXXXX210.pbd (ie for PB 2021). Another PBX example would be the PBDOM (Document Object Model) support when using the PBX vs a straight PDB approach.
Its good to note Armeen's post though that the way forward is via the new HTTPClient feature instead of using the older .Net WS route. However, that means that after your PB App makes an HTTP WS call it would have to decider the XML (or JSON) itself. Thus needing the PBDOM feature and then *hand scripting* the XML parsing. So for now - just getting the App working through the older .Net WS feature might be the best expeditious way into production but please, put on your ToDo list the conversion from .Net WS to HTTPClient - as the .Net WS feature is now deprecated (in this case still there - just not being enhanced).
Regards ... Chris