1. Richard Lynskey
  2. PowerBuilder
  3. Wednesday, 23 September 2020 22:19 PM UTC

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?

Accepted Answer
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 24 September 2020 00:07 AM UTC
  2. PowerBuilder
  3. # Permalink

Hi Richard;

   The most likely downfall was to keep using the "PBWSClient126.pbx" instead of deleting the objects that import file created and then recreating these from the "PBWSClient190.pbx" instead.

Regards ... Chris

Comment
  1. Chris Pollach @Appeon
  2. Thursday, 24 September 2020 14:15 PM UTC
Hi Richard;

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
  1. Helpful
  1. Richard Lynskey
  2. Thursday, 24 September 2020 14:16 PM UTC
Alright, Appeon, the documentation in https://docs.appeon.com/pb2019r2/application_techniques/ch29s02.html really needs to be added to the upgrade docs. Migrating from 12.6 to 2017 or 2019 requires you to reimport the appropriate extensions. It wasn't overly clear from what I had found at that point.
  1. Helpful
  1. Chris Pollach @Appeon
  2. Thursday, 24 September 2020 14:56 PM UTC
Hi Richard;

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
  1. Helpful
There are no comments made yet.
Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 23 September 2020 22:39 PM UTC
  2. PowerBuilder
  3. # 1

For 2019 R2 you should use the HTTPClient to call the SOAP Web service not the .NET WSDL.  The .NET WSDL/EasySoap is obsolete feature that is not secure (does not support TLS 1.2), will NOT be compatible with the new .NET 5.0 (that is based on .NET Core), and it is not eligible to receive bug fixes or tech support.  Here is tech article how to call SOAP using the HTTPClient (once you move off of PB 12.6): https://community.appeon.com/index.php/articles-blogs/tutorials-articles/2-powerbuilder/236-call-soap-web-services-using-httpclient-object

 

Comment
There are no comments made yet.
Richard Lynskey Accepted Answer Pending Moderation
  1. Thursday, 24 September 2020 13:30 PM UTC
  2. PowerBuilder
  3. # 2

At the same time, your document says that it is still present just not supported. You have newer 19 DLLs and pbx files. Is there a documented process I need to do with this massive WSDL generated PBL that I'm not finding any documentation on during an upgrade from 12.6 to 2019R2 just to keep it working as it was until time is approved to rewrite it using httpclient?

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.