cancel
Showing results for 
Search instead for 
Did you mean: 

Create a .NET Web Service in PB 12.6 Classic

Former Member
0 Kudos

Hi All,

In previous PB Classic versions you could create a method in a PB web service to have an array of type structure as argument and pass it by Reference. Then in the method you could populate the array mapping the retrieved data from a datastore to the structure, something like this:

arg_structure     =     lds.Object.Data

Since arg_structure [ ] is an array passed by reference, the caller could process the result set.

This no longer work because PB 12.5 or PB 12.6 does not allow structure as argument.

We cannot use PB .NET because the application is very large (6 millions of lines of code or more) and also has an EAServer target and a lot of non compatible stuff.

So the question is how to pass structures to a web service created in PB Classic12.6.

Thank you for the help.

Paulo

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Paulo;

  Yes, you can still pass in or return a result set in a PB Classic Web Service. The key for the web service world is to pass the Array structure housed within a simple standard parent structure.

Regards ... Chris

Former Member
0 Kudos

Hi Chris,

Yes, you were right.

My PB 12.6 installation had a bunch of missing files in the Prog Files (x86)\Sybase\PowerBuilder 12.6\DotNet\bin\ folder. After copying from another PC all folders under the folder ...\DotNet\ I could deploy the web service to IIS.

The service has only one method that does a simple retrieve and it is a proof of concept for the use of a structure passed by Reference to the method as an array of structures and populated with the result set from a local datastore.

However, once copy/paste the wsdl URL to the browser, I got the following error:

"Parser Error Message:

Could not load file or assembly 'Sybase.PowerBuilder.Core, Version=12.6.0.0, Culture=neutral, PublicKeyToken=598c7456a83d557a' or one of its dependencies. The system cannot find the file specified. "


I did the same web service using PB 12.5 and the wsdl was displayed fine with the browser.


Inspecting the folder ...\PowerBuilder 12.6\DotNET\bin\ I found two files with this name:


Sybase.PowerBuilder.Core.dll and Sybase.PowerBuilder.Core.xml


So it does not make sense the error for me since the dll is there.


Have you heard about this before? Do you have an idea how to fix it?


Thank you in advance.


Regards,

Paulo

Former Member
0 Kudos

Hi Paulo;

  Do you have ...

1) PB 12.6 run-time DLL's registered in the GAC?

   => See PB help & seach for the keyword "deployment"

2) .Net 4.0/4.5 runtimes installed?

3) Any more information in the IIs log?

4) Any more information in the O/S Event logs?

Regards ... Chris

Former Member
0 Kudos

Hi Chris,

Only today I could look at this issue again.

Talking about log, I found in the log that the Tech Area that prepared the equipment for me while ago faced problems during the installation of .NET components and PB 12.6 did not finish properly.  The same with the subsequent EBFs installation.

This also explains why (I guess) I had so many PB 12.6 IDE crashes during development work since the first days of PB 12.6 use.

So I uninstall and re install PB 12.6 and all available EBFs (last is EBF 24672, build 4058) and it seems everything is fine.

I really appreciate the time you spent in the process to find the solution.

Best regards,

Paulo

Former Member
0 Kudos

Hi Paulo;

Excellent news! 

Have you hugged your DataWindow today? 

Regards .... Chris

Answers (0)