How to call the internal procedure of an ABL from .Net Clien

Posted by Admin on 06-Sep-2007 01:45

Question is as mentioned on the title.

The example given in the documentation are calling a procedure (Main) from a .Net client.

Instead of every procedure create a .p file , we plan to create a .p for an application , and group all the related procedure in a .p as internal procedure.

Can it be done ?

Thanks.

All Replies

Posted by svi on 06-Sep-2007 17:13

Not sure to understand. Have you looked at the examples of pages 2-13 and 7-6 of the '10.0B .NET Open Clients manual' ?

http://www.psdn.com/library/entry.jspa?externalID=1170&categoryID=316

I think they show what you are trying to do. If not please elaborate.

Salvador

Posted by Admin on 20-Sep-2007 23:44

It can be done using Procedure objects for persistent procedures. In the ProxyGen tool you decide if a procedure shall be executed persistent or not.

But you should be careful when running persistent procedures across the AppServer! As this is only possible when you bind a client to an AppServer agent this requires state-aware or state-less bound operation of the AppServer. The common thinking about this is that it limits scalability of the AppServer.

I never needed procedure objects in real world set-ups.

One strategy would be to have a generic "interface" procedure and a common parameter structure. So you might call a procedure on the AppServer with two additional parameters:

- .p file name (pcFileName)

- internal procedure (pcInteralProc)

And the procedure included in the proxy would look like this:

RUN VALUE (pcFileName) PERSISTENT SET h.

RUN VALUE (pcInternalProc) IN h.

DELETE PROCEDURE h.

Look at the service interface definition of the OpenEdge Reference Architecture where something similar is used.

Mike

This thread is closed