Hi all - I am using the HTTP API and another tool WSDL2RPG supplied by
Thomas Raddatz to generate the RPG stubs for the web service.
Unfortunately the RPGLE module is able to generate only the XML root
nodes but not the child nodes. Here is what is happening. The tags
between <q0:paymentRequest> and </q0:paymentRequest> are not being
generated.
My XML is supposed to be like this.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:q0="http://www.eps.in.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<q0:paymentRequest>
<q0:balanceInquiry>
<security>
<username>test</username>
<password>test</password>
</security>
<sourceId>W0045</sourceId>
<q0:giftCards>
<q0:giftCard>
<cardNumber>6035718888881000609</cardNumber>
<transactionAmount>232</transactionAmount>
<externalReferenceId>2323</externalReferenceId>
</q0:giftCard>
<q0:giftCard>
<cardNumber>6035718888881000619</cardNumber>
<transactionAmount>132</transactionAmount>
<externalReferenceId>2323</externalReferenceId>
</q0:giftCard>
<q0:giftCard>
<cardNumber>6035718888881000629</cardNumber>
<transactionAmount>332</transactionAmount>
<externalReferenceId>2323</externalReferenceId>
</q0:giftCard>
</q0:giftCards>
</q0:balanceInquiry>
</q0:paymentRequest>
</soapenv:Body>
</soapenv:Envelope>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
What I was able to generate is this with the call to test program:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:in="http://www.eps.in.com"
xmlns:tns="http://www.1800flowers.payment.org/PaymentMessageSet">
<soapenv:Body>
<in:paymentRequest>useruserW018568888888812abcd</in:paymentRequest>
</soapenv:Body>
</soapenv:Envelope>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I am attaching the RPG source and WSDL here:
Since the XML generation logic in the WS0001 has only the following
logic I had to pass only the simple string and I thought somewhere
down the line the tool converts the text to the child tags - but it is
not.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
request =
'<?xml version="1.0" encoding="UTF-8"?>' +
'<soapenv:Envelope' +
' xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:in="http://www.eps.in.com"' +
' xmlns:tns="http://www.1800flowers.payment.org/PaymentMessag+
eSet"' +
'>' +
'<soapenv:Body>' +
'<in:paymentRequest>' +
Marshaller_toAnyType(
i_in_paymentRequest) +
'</in:paymentRequest>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
As you can see I would have expected in the place of
Marshaller_toAnyType(i_in_paymentRequest) there will be the
BalanceInquiry nodes. Instead it is expecting simple string.
I am thinking either the WSDL2RPG is not able to generate the XML
generation logic in the RPGLE based on how the WSDL is written or my
driver program WS0001T should have more logic to generate that tag
data first and then pass that data here.
As of this afternoon I am going in the route of dropping web service
plan and use any other way like a IBM MQ Client or something and pass
the XML as the project deadlines are closing too fast one me.
The only problem I will have in that is I should write a XML parser
(or use EXPAT) when the response comes back.
Any help / thoughts would really help me. Thank you in advance.
Kalyan Tirumamidi
Desk +1 516-237-4795
Mobile +1 516-279-8632
[cid:image001.gif@01CA2651.2A08B2A0]
_________________________________________________________________
This e-mail, including attachments, may include confidential and/or
proprietary information, and may be used only by the person or entity
to which it is addressed. If the reader of this e-mail is not the
intended recipient or his or her authorized agent, the reader is
hereby notified that any dissemination, distribution or copying of
this e-mail is prohibited. If you have received this e-mail in error,
please notify the sender by replying to this message and delete this
e-mail immediately.
Attachment:
WS0001T.RPGLE
Description: WS0001T.RPGLE
Attachment:
WS0001.rpgle
Description: WS0001.rpgle
Attachment:
PaymentMessageSetService.wsdl
Description: PaymentMessageSetService.wsdl
----------------------------------------------------------------------- This is the FTPAPI mailing list. To unsubscribe, please go to: http://www.scottklement.com/mailman/listinfo/ftpapi -----------------------------------------------------------------------