1. Richard Shakour
  2. PowerBuilder
  3. Thursday, 26 March 2020 15:56 PM UTC

I just migrated to PowerBuilder 2019 Build 2170 but when running a web service with which I had no problem in PowerBuilder17 I get the message "The assembly 'xxxx.dll' does not exist".

This only happens in the 2019 IDE.

When running the same application (Backup copy) in the old 2017 IDE it runs perfectly 100% and no error.

It also runs on the deployed application.

Only the 2019 IDE shows this error.

 Maybe something is missing or I missed something during install for 2019?

Richard Shakour Accepted Answer Pending Moderation
  1. Thursday, 26 March 2020 19:11 PM UTC
  2. PowerBuilder
  3. # 1

So this issue has been resolved by importing all the PB Extensions from .pbx libraries into the Web Service library in our project.  These are located in \\program files (x86)\Appeon\Shared\PowerBuilder folder.

1. Right click on the library that contains the Web Service and select Import PB Extension...

2. Navigate to :\\program files (x86)\Appeon\Shared\Powerbuilder

3. Selected all files with .pbx extensions.

4. Import

 

pbwsclient190.pbx
pbsoapclient190.pbx
pbejbclient190.pbx
PBDOM190.pbx

Then it worked again and no error.

 

 

Comment
  1. Chris Pollach @Appeon
  2. Thursday, 26 March 2020 19:22 PM UTC
FWWIW: I do NOT recommend importing PBX files!!!!!!!!!!!!!!!!!

Instead, add PBWSClient190.pbd to your library list.

Removed any previous PBWSClient170.pbd file.

Do the same above procedure for DOM, EJB, etc features.

Much, much safer to use this method when updating or upgrading your PB IDE release / versions. Especially MR's!

  1. Helpful
  1. Richard Shakour
  2. Thursday, 26 March 2020 19:32 PM UTC
I agree and have done this.

How can I now remove the pbx files that were imported? Just so I can test this approach.
  1. Helpful
  1. Chris Pollach @Appeon
  2. Thursday, 26 March 2020 20:04 PM UTC
Yes, its like multiple inheritance .. a nice way to "shoot yourself in the foot" if you are not super careful. That is why I never when the PBX route. The PBD is my KISS approach for this stuff ... LOL!

IMHO, the PBD approach, its much more obvious - just replace all PBxxxxxNnn.pbd's with the new PBxxxxxNnn.pbd ones and voila - your done the update/upgrdxe. This is also very easy to visualize that you need to do this when migrating or even updating when you see these in your library list. The same for newer PB developers that carry on your work (ie: in PB2021). PBX's are not that obvious to other PB Developers that take over your App(s). Just my $0.02.

Whatever objects that you see in the PBD's, those similar objects will have been imported via the xxxxxx.PBX files. So just delete these duplicates from where ever they appear in your App's PBL's now.
  1. Helpful
There are no comments made yet.
Richard Shakour Accepted Answer Pending Moderation
  1. Thursday, 26 March 2020 19:02 PM UTC
  2. PowerBuilder
  3. # 2

No Web Service Datawindows in the application.  Only the one single Web Service.

 

Here is the actual call:

 

LONG  i
LONG  ll_ret
soapconnection s_conn
prophecyconnectservice u_soap
STRING ls_ret
STRING ls_key
str_del lstr_del[]
s_conn = create soapconnection
ll_ret = s_conn.createinstance(u_soap,"prophecyconnectservice")
IF ll_ret = 100 THEN
 MessageBox(gnv_app.iapp_object.displayname,"Invalid Proxy Name")
 RETURN -1
END IF
IF ll_ret = 101 THEN
 MessageBox(gnv_app.iapp_object.displayname,"Failed to create Proxy")
 RETURN -1
END IF
ls_key = f_get_prophecy_key()
SetPointer(HourGlass!)
ls_ret = u_soap.getcaregivers(ls_key,al_caregiver_id,al_dept_id)
//{"Success": "true","Departments": [{"DepartmentID": "6489", "Name": "Allied Staffing"},{"DepartmentID": "6488", "Name": "Main Office"}]}
IF LEFT(ls_ret,20) = '{"Success": "false",' THEN
 DESTROY s_conn
 POST MessageBox(gnv_app.iapp_object.displayname,"Load of Caregivers has failed.  Error = " + ls_ret)
 RETURN -1
END IF
DESTROY s_conn
 
Now this works in PB2017 and also in all Runtime but no in the 2019 IDE
 
Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 26 March 2020 18:53 PM UTC
  2. PowerBuilder
  3. # 3

Hi Richard;

  It sounds to me like you might have some Web Service DataWindow objects in your PB App. If so, they need to have a .Net Assembly DLL generated for each of them.  Could this be the case in your App?

Regards ... Chris

Comment
There are no comments made yet.
Michael Kramer Accepted Answer Pending Moderation
  1. Thursday, 26 March 2020 18:47 PM UTC
  2. PowerBuilder
  3. # 4

This could be a path issue.

You state: ... when running a web service ...

  • Do you have a PowerScript app calling a web-service written in .NET or Java?
  • What context/environment runs your web-service? Kestrel? IIS?

Be aware that some features are now discontinued or obsolete!
See https://www.appeon.com/update (click obsolete/discontinued features on web page's right edge).

HTH /Michael

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.