Thread Umgang mit SOAP-response (2 answers)
Opened by subTH at 2008-06-09 14:32

subTH
 2008-06-09 14:32
#110900 #110900
User since
2008-06-09
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe eine allgemeine Frage zum Thema SOAP. Ich schicke ein SOAP-request an einen Webservice und bekomme als response natürlich auch eine Nachricht in Form eines SOAP-XMLs.

Gibt es eine komfortable Lösung, einfach an die Elemente STATUS, STATUSTEXT , RETURN_CODE und WORKITEM_ID zu gelangen oder muss ich den Umweg über XML::Simple gehen?


Ein Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sub start_workflow {
my ($self, $wf_task, $wf_user) = @_;

my $userAgent = LWP::UserAgent->new(agent => 'perl post');
my $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">
<SOAP-ENV:Body>
<ns1:SAP_WAPI_START_WORKFLOW xmlns:ns1=\"urn:sap-com:document:sap:rfc:functions\">
<TASK>$wf_task</TASK>
<USER>$wf_user</USER>
</ns1:SAP_WAPI_START_WORKFLOW>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>";

my $response = $userAgent->request( POST $self->{__service},
Content_Type => 'text/xml',
Content => $xml,
Authorization => $self->{__authorization}, );

return $response->content;
}



Antwort:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns1:SAP_WAPI_START_WORKFLOW.Response xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<NEW_STATUS>
<STATUS>STARTED</STATUS>
<STATUSTEXT>in Arbeit</STATUSTEXT>
</NEW_STATUS>
<RETURN_CODE>0</RETURN_CODE>
<WORKITEM_ID>000000005061</WORKITEM_ID>
</ns1:SAP_WAPI_START_WORKFLOW.Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

View full thread Umgang mit SOAP-response