I created a web service using Openedge 10.1C03. How do I pass a temp table for a Doc/Lit Web service? I would like to take advantage of the built-in XML formatting.
In my client code I have the following:
DEFINE TEMP-TABLE b-test LIKE test.
RUN XYZ IN hXYZObj(OUTPUT result, OUTPUT TABLE b-test ) NO-ERROR.
In the web service I have the following:
DEFINE TEMP-TABLE b-test LIKE test . DEFINE OUTPUT PARAMETER TABLE FOR b-test.
Populate b-test.
The code compiles. When I run it I’m able to connect to the web service; however, I get the following runtime error:
Invalid handle. Not initialized or points to a deleted object (3135)
Cannot access the SOAP-FAULT-CODE attribute because the widget does not exist. (3140).
When I access the web service using soapUI it looks like I’m getting a good response.
is hXYZObj set to the port name from the wsdl? you need to post more code, and the wsdl.
<code>
DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
DEFINE VARIABLE hXYZObj AS HANDLE NO-UNDO.
DEFINE VARIABLE result AS INT NO-UNDO.
DEFINE TEMP-TABLE b-test LIKE test.
CREATE SERVER hWebService.
hWebService:CONNECT("-WSDL 'http://../wsdl?'").
IF hWebService:CONNECTED() THEN
DO:
RUN wsdl-port-name-from-wsdl SET hXYZObj ON hWebService.
RUN XYZ IN hXYZObj(OUTPUT result, OUTPUT TABLE b-test ) NO-ERROR.
END.
</code>
When I run the web service I get the following runtime error:
Invalid handle. Not initialized or points to a deleted object (3135) Cannot access the SOAP-FAULT-CODE attribute because the widget does not exist. (3140).
Here's some of the code and the wsdl.
DEFINE VARIABLE Cono AS INTEGER NO-UNDO.
DEFINE VARIABLE Custno AS INTEGER NO-UNDO.
DEFINE VARIABLE result AS CHARACTER NO-UNDO.
DEFINE TEMP-TABLE b-zorderform LIKE zorderform .
Connect to web service(....)
RUN OrderFormXObj SET hOrderFormXObj ON hWebService NO-ERROR.
RUN OrderFormX IN hOrderFormXObj(Input Cono, INPUT Custno, OUTPUT result, INPUT-OUTPUT TABLE b-zorderform ) NO-ERROR.
Here's the wsdl. If needed I can post parts of bprowsdldoc's output.
After the RUN statement that calls the web service's method I got the following error:
Error 11762 followed by message: cannot match signature for operation
<operation name> calling a WebServices from 4GL.
This error message normally means that one or more of the RUN statement parameters
were not sent properly. The error occurred because I used INPUT-OUTPUT TABLE xyz instead of OUTPUT TABLE xyz.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.