[progress Communities] [progress Openedge Abl] Forum Post: Re: Create Call: Output...

  • Thread starter Thread starter Peter Judge
  • Start date Start date
Status
Not open for further replies.
P

Peter Judge

Guest
This is absolutely the problem … I’ve run into it and it’s a Royal PITA to work around. There are a couple of approaches you can use. 1) Create a dynamic temp-table with one field per parameter (and one for the return value). Make sure you FIND it and keep it in scope before and after the INVOKE() call. This works pretty well except when you have parameters with variable-extent arrays. 2) In that case you end up defining a bunch of local variables in a single internal procedure or method and use what you need. Things get to look ugly fast but it works for pretty much everything. I used a bunch of case statements with include files If you’re on 11.6.3+ you can see the approach I ended up taking for classes with the Progress.Lang.ParameterList object – which suffers from the same challenge. In 11.7.0+ there’ll be a procedure-based equivalent. The former is in the Execute() method in OpenEdge.Web.DataObject.ClassOperationHandler and the latter in OpenEdge.Web.DataObject.ProcedureOperationHandler. You can find both in the $DLC/src/netlib/OpenEdge.Net.pl procedure library.

Continue reading...
 
Status
Not open for further replies.
Back
Top