1. Matt Balent
  2. PowerBuilder
  3. Monday, 12 April 2021 15:09 PM UTC

Another question on the obsoleted (in 2019R3) SoapConnection object.  Since I migrated to 2019R3 the CreateInstance method is failing with a "Bad runtime function reference" error.  Since I've not worked with this since PB version 11 or so I was wondering if anyone could tell me which SPECIFIC .pbl, .dll, and/or .pbd files need to be copied and to where?  I'm running this from within the PB IDE (so I'm assuming they get copied to my installation folder).

 

Thanks!

Accepted Answer
Matt Balent Accepted Answer Pending Moderation
  1. Friday, 30 April 2021 16:06 PM UTC
  2. PowerBuilder
  3. # Permalink

Since my PB installation was originally 2017 and then 2019R2 then 2019R3 I decided to uninstall PowerBuilder and then install 2019R3 from the most current Maintenance Release.  I also got a new branch of the source code I was working with to start the conversion to the latest PB version from scratch.  Once I got the proper .pbd, pbx, etc files (new ones without the version number in them) in the proper locations and rebuilt the application things began to work.  There was also an issue with PBDOM in that the objects from the PBDOM.PBD had been copied previously into an application PBL (thereby duplicated).  Once I removed these as well the application ran as expected.

Thanks to all for your assistance.

Comment
  1. Armeen Mazda @Appeon
  2. Friday, 30 April 2021 16:11 PM UTC
Thanks for sharing the solution!
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 12 April 2021 19:49 PM UTC
  2. PowerBuilder
  3. # 1

Hi Matt;

   Did you ...

1) Replace the PBWSClientNNN DLL with PBWSClient (no numbering in R3) DLL from the R3 installation?

2) Did you rebuild all of your App's "Porxies"?

3) Did you then rebuild all your WS DataWindows?

  Note: For SP DWO's, make sure that you have this in your IDE's PB.INI file ...

[Data Window]
GenerateWSAssembliesOnCompile=YES
debug_ws_metadata=1

 HTH

Regards ... Chris

Comment
  1. Matt Balent
  2. Tuesday, 13 April 2021 13:58 PM UTC
Chris, pardon my ignorance on this but just how do you rebuild the proxies (or porxies)? Do you delete the old ones and go through building from the WSDL files again? It's been about 10 years or so since I worked on this in PB :)



Thanks
  1. Helpful
  1. Chris Pollach @Appeon
  2. Tuesday, 13 April 2021 20:06 PM UTC
Hi Matt;

You should have a "Proxy Project" object of which the initial PB developer(s) would have used to build the original proxy objects and structures.

Regards ... Chris
  1. Helpful
There are no comments made yet.
Bruce Armstrong Accepted Answer Pending Moderation
  1. Monday, 12 April 2021 17:42 PM UTC
  2. PowerBuilder
  3. # 2

See the next to the last entry in the table here:

https://docs.appeon.com/pb2019r3/application_techniques/ch09s02.html#d0e24197

Whether you need to deploy pbwsclient.pbx or pbsoapclient.pbx will depend on whether you selected the .Net engine or not when you created your proxy class.  You can just deploy them both to be safe.

Also, you can get a bad runtime function reference if there are older versions of the openssl libraries in your system path that are getting seen rather than the ones you are deploying with your app.  You should check to see if you have multiple copies of the openssl libraries and which are seen first.   Generally if you ensure that the latest set is referenced by everything that needs it you should be fine.   That is applications that use an older library can use the newer ones, but some applications (like PowerBuilder) will choke if they are written to use the newer one and an older one gets picked up instead.  See this:

https://www.appeon.com/developers/get-help/knowledgebase/calling-soapconnection-results-bad-runtime-function-reference.html

Comment
  1. Matt Balent
  2. Tuesday, 13 April 2021 13:58 PM UTC
Thank you sir!
  1. Helpful
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Monday, 12 April 2021 15:54 PM UTC
  2. PowerBuilder
  3. # 3

Hi Matt,

I'm pretty sure I cannot explain you anything about powerbuilder but I'm not sure if you are aware of the biggest change of PB2019 R3: all runtime DLLs no longer include any numbers. So instead of PBVM190.DLL in pb2019 R2, R3 now uses PBVM.dll. The same goes for all the other dlls.

regards.

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.
We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies.