WS-Addressing 1.0 stateful services / Client side |
Call the 4GL function generated from the WSDL that is defined as session initiator on the server. This function returns a W3CEndpointReference parameter that contains the WS-Addressing 1.0 reference parameters representing the new instance created on server side.
If your application handles several instances, you will have to copy and store those parameters in your application to identify a service instance for further requests.
As the WS-Addressing 1.0 reference parameters are defined as any XML document, they are represented as a dynamic list of xml.DomDocument in 4GL.
For example:
DISPLAY "Creating a new instance ..." LET wsstatus = GetInstance_g() # call the service session initiator # web function IF wsstatus == 0 THEN FOR ind=1 TO ns1GetInstanceResponse.return.ReferenceParameters._LIST_0.getLength() LET instance1[ind]= ns1GetInstanceResponse.return.ReferenceParameters._LIST_0[ind].clone() # copy the service returned WS-Addressing 1.0 reference parameters END FOR ELSE ... handle soap errors END IF
When creating a new instance, ensure that the Parameters member of the generated global variable of type tWSAGlobalEndpointType has been set to NULL, otherwise the server will complain.