Hi Philippe,
1 The blob that was created using GetFullState in PB can’t be used by Appeon if you used standard datawidnow and standard datastore and vice versa.
2 The blob that was created using GetFullState in PB is compatible with Appeon if you used appeondatawindow and appeondatastore(in appeonworkarounds.pbl), but there is one exception, it won’t work for reports that contain nested reports, which is exactly what you are trying to do.
We have a customer who successfully work around this kind of issue by using the .net assembly, please give a try to see if it can satisfy your requirement. Below are the details from this customer for your reference (we have uploaded the related document and PB case to the .net assembly folder on our FTP site: ftp.appeon.com (guest/guest)).
If you need any help please let us know.
I am using the AppeonDotNetComponent NVO to call server-side DLLs from my Appeon web client, including a DLL created with PowerBuilder Classic from a .NET Assembly target.
Functions in this DLL running on the Appeon server can connect to the same database as the calling web client. Data can be retrieved, processed, and updated in the database using datastore.
I’ve included appeon_workarounds.pbl to the Library List of the .NET Assembly target so I can create AppeonDatastore objects. This allows me to retrieve an AppeonDatastore on the server, do a GetFullState, send the blob to the client via a temp table, and then on the client do a SetFullState to an AppeonDataWindow.
I can also retrieve an AppeonDataWindow on the client, do a GetFullState, send the blob to the server via a temp table, and then on the server do a SetFullState to an AppeonDatastore in the PowerBuilder .NET Assembly DLL.
However, in order to get this to work I had to make a number of changes to the AppeonDatastore and AppeonService NVOs in appeon_workarounds.pbl. I had to do this because
• When running as a .NET assembly, some PowerBuilder syntax is not supported.
• DataWindow objects are not deployed to the .NET assembly DLL. In order to use DataWindows you have to either add a PBL containing them to the DLL’s Library List at run-time, or create them from syntax. You have 4 external DataWindows used when processing GetFullState() and SetFullState(). When running as a .NET assembly I’m now creating these from syntax.
• When creating a temporary file your function knows how to do this when running as an Appeon Web application and when running as an NVO in EAServer. I added a third option which uses the Windows TEMP directory when running as a .NET assembly.
Regards,
ZhaoKai