
Proxy objects created in one program module can also be used in other modules. This occurs, for example, when the reference to a proxy object is used as a parameter for a method call and this parameter is then used within this method for calling Web services.
If "in order" processing has been activated for the proxy object using an active sequence in the calling program, the calls of all of the methods of this object in the called module are likewise processed "in order".
If, however, "in order processing" has not been activated in the calling program, you can still ensure "in order processing" by using sequences in the module that was called.
method mycall.
l_seqprot type ref to if_wsprotocol_sequence,
l_sequence type ref to if_ws_client_sequence.
l_seqprot ?= proxy->get_protocol( if_ws_protocol=>sequence ).
l_sequence = l_seqprot->get_client_sequence( ).
if l_sequence is not bound.
l_sequence = l_seqprot->create_transient_sequence( ).
endif.
l_sequence->begin( ).
l_seqprot->set_client_sequence( l_sequence ).
proxy->m1( ).
proxy->m2( ).
l_sequence->end( ).
endmethod.
If a sequence was specified for a proxy in the calling program and this sequence is active, the GET_CLIENT_SEQUENCE method of the sequence returns an interface reference of the type IF_WS_CLIENT_SEQUENCE.