Search code examples
c#ibm-midrangerpg

Is a call to a RPG program from C# synchronous or not?


My C# code calls a program in AS400 with cwbx API. Now the question is : is that call synchronous? I mean, upon returning to my code, how can I be sure the called program has its job done?

It seems that the called program does its job but sometimes not fast enough, so that's why I suspect that maybe the call is asynchronous. But I don't know how cwbx.dll works. I checked the help document http://public.dhe.ibm.com/systems/power/docs/systemi/v5r4/en_US/rpc1.pdf but nothing is said about synchronous or asynchronous calls.

cwbx.Program program = new cwbx.Program();
program.LibraryName = Main.GetBIBAS400();
/* ... */
program.Call(parameters);

If the call is synchronous, all is good for me. And it might be so as the API structure is quite simple. But if it's asynchronous, what can I code to wait for the result of my RPG program?


Solution

  • Yes, the call is synchronous.

    The document you linked to has nothing to do with the Active X components on a client PC.

    As part of the older IBM i Access for Windows install or the newer Access Client Solution - Windows Application Package you should have the Programmer's Toolkit option installed.

    The ActiveX components are documented there enter image description here