XML through HTTP send
Hello,
I am having an requirement in which another web application would send XML through HTTP request to SAP which would be processed in SAP.
I was thinking to use BSP where the external web application would send HTTP request to BSP URL. I was trying to find some method of request object which will be able to get this message but not getting suitable method.
I tried using request->get_raw_message( ) but was not able to test. Basically i tried with sample msxml object using xmlhttp.send() method but couldn't find the response text.
has anyone tried such thing. In java we do have response.set
No i don't have that xhtmlb tag in my code.
my code is very very simple..
here is the code
Method onRequest
data: l_param type string value 't1'.
lv_input = request->get_cdata( ).
l_test = request->get_form_field( l_param ).
Method onInitialization
data: l_srno type i.
select max( SRNO ) into l_srno from ztesthttp.
if sy-subrc = 0.
lv_num1 = l_srno + 1.
endif.
CALL FUNCTION 'Z_UPDATE_TEST'
EXPORTING
HTTPMESSAGE = l_test
SRNO = lv_num1
IMPORTING
I_SUBRC = i_subrc
C_SUBRC = c_subrc
i_subrc = sy-subrc.
and Layout
The return code for insert is <%=i_subrc%> and commit code is <%=c_subrc%><br>
The requested string is: <%=lv_input%> and <%=l_test%> and <%=pg_test%>
Thanks..
regards
rajeev
Similar Messages
-
How can I send a xml via HTTP Sender from a Visual Basic 6.0 application? Do I have to use an ActiveX Control to send the HTTP Request with the XML as payload?
Thanks in advance,
Ruben.Ruben,
You need to create your interface objects in the integration repository and setup your interfase using SOAP adapter in the integration directory.
After that you'll need to publish a webservice using the integration builder objects that you have already created.
Mount the WSDL into a web server and try to implement a webservice call into your VB application to invoke the WS.
read this blog:
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1442 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
i hope it helps you...
BR,
Gerardo.
Plz reward points -
Send xml file from sap to third party url through https
Hi,
I have a requirement to send the xml file from ecc to a 3rd party url through HTTPS. How can we achieve this using ABAP.
Client doesn't have XI enviroment. The client has provided the 3rd party url where the file needs to be uploaded.
Please help ! <removed by moderator>
Thanks in advance.
Regards,
Chitra.K
Edited by: Thomas Zloch on Sep 12, 2011 12:58 PMHi Chitra,
I had similar requirement and here is what I did: -
REPORT Z_HTTP_POST_TEST_AMEY.
DATA: L_URL TYPE STRING ,
L_PARAMS_STRING TYPE STRING ,
L_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT ,
L_RESULT TYPE STRING ,
L_STATUS_TEXT TYPE STRING ,
L_HTTP_STATUS_CODE TYPE I ,
L_HTTP_LENGTH TYPE I ,
L_PARAMS_XSTRING TYPE XSTRING ,
L_XSTRING TYPE XSTRING ,
L_IS_XML_TABLE TYPE STANDARD TABLE OF SMUM_XMLTB ,
L_IS_RETURN TYPE STANDARD TABLE OF BAPIRET2 ,
L_OUT_TAB TYPE STANDARD TABLE OF TBL1024
MOVE 'https://<hostname>/xxx/yyy/zzz' TO L_URL.
MOVE '<XML as string>' TO L_PARAMS_STRING.
*STEP-1 : CREATE HTTP CLIENT
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = L_URL
IMPORTING
CLIENT = L_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND = 1
PLUGIN_NOT_ACTIVE = 2
INTERNAL_ERROR = 3
OTHERS = 4 .
"STEP-2 : AUTHENTICATE HTTP CLIENT
CALL METHOD L_HTTP_CLIENT->AUTHENTICATE
EXPORTING
USERNAME = 'testUser'
PASSWORD = 'testPassword'.
"STEP-3 : SET HTTP HEADERS
CALL METHOD L_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = 'Accept'
VALUE = 'text/xml'.
CALL METHOD L_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = '~request_method'
VALUE = 'POST' .
CALL METHOD L_HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE
EXPORTING CONTENT_TYPE = 'text/xml' .
"SETTING REQUEST DATA FOR 'POST' METHOD
IF L_PARAMS_STRING IS NOT INITIAL.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = L_PARAMS_STRING
IMPORTING
BUFFER = L_PARAMS_XSTRING
EXCEPTIONS
FAILED = 1
OTHERS = 2.
CALL METHOD L_HTTP_CLIENT->REQUEST->SET_DATA
EXPORTING DATA = L_PARAMS_XSTRING .
ENDIF.
"STEP-4 : SEND HTTP REQUEST
CALL METHOD L_HTTP_CLIENT->SEND
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2.
"STEP-5 : GET HTTP RESPONSE
CALL METHOD L_HTTP_CLIENT->RECEIVE
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2
HTTP_PROCESSING_FAILED = 3.
"STEP-6 : Read HTTP RETURN CODE
CALL METHOD L_HTTP_CLIENT->RESPONSE->GET_STATUS
IMPORTING
CODE = L_HTTP_STATUS_CODE
REASON = L_STATUS_TEXT .
WRITE: / 'HTTP_STATUS_CODE = ',
L_HTTP_STATUS_CODE,
/ 'STATUS_TEXT = ',
L_STATUS_TEXT .
"STEP-7 : READ RESPONSE DATA
CALL METHOD L_HTTP_CLIENT->RESPONSE->GET_CDATA
RECEIVING DATA = L_RESULT .
"STEP-8 : CLOSE CONNECTION
CALL METHOD L_HTTP_CLIENT->CLOSE
EXCEPTIONS
HTTP_INVALID_STATE = 1
OTHERS = 2 .
"STEP-9 : PRINT OUTPUT TO FILE
CLEAR : L_XSTRING, L_OUT_TAB[].
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = L_RESULT
IMPORTING
BUFFER = L_XSTRING
EXCEPTIONS
FAILED = 1
OTHERS = 2.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = L_XSTRING
TABLES
BINARY_TAB = L_OUT_TAB .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:AMEYHTTP_POST_OUTPUT.xml'
TABLES
DATA_TAB = L_OUT_TAB .
Also, following is the detailed link for use of HTTP_CLIENT class: -
http://help.sap.com/saphelp_nw70ehp1/helpdata/EN/1f/93163f9959a808e10000000a114084/content.htm
Also, in below link, you can ignore XI specific part and observe how its sending XML to external URL:-
(I know it describes call to SAP XI server's URL, but it can be used to call any URL)
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/ae388f45-0901-0010-0f99-a76d785e3ccc
In addition to all above, following configs to be present at ABAP application server: -
1. The hostname used to URL should be present in SAP ABAP application server's 'hosts' file.
2. Security certificate (if available) for URL to be called must be installed in SAP ABAP application server.
Let me know if you achieve any progress with it... -
THROUGH HTTP CAN WE SEND FLAT FILE IN PI7.3?
Hi Experts,
We have an requirement that Through HTTP can we send flat file in PI7.3.(For EX:source side HTTP and Target side is IDOC or PROXY)
Can any one please suggest me how can I proceed for that?
Please let me know if there is any Documents or Blogs are there related to above requirement...
Thanks,
ShaikHi Shaik,
You can try following approach might help.
Tell the sender system to use post method for HTTP connection. In post method the particular application will hit to a URL and data will be passed. Source system should pass the data same as that of Text file. Use following link which will help you to convert the data sent as text into XML. Further you can use this XML to convert further into IDOC or proxy.
Adapter User-Module for HTTP Adapter? -
In sap 4.7 ver i want to dispatch an Idoc through http in xml format
Hi
Here i am giving the brief scenario of about my
requirements "::::
Our organization need to receive an IDoc through
HTTP into XML format then we have to send an acknowledgement back to USA (external system
located)
then we hav eto process tha tIDoc an dsend it back
to the edi 850 ...
we are not using Sap Business Connector
Plz send the suggestions as soon as possible
I really appreciated if u can give the suggestions
regarding my business scenario ..
without using any thirdparty tool in sap 4.7 version it is possible how can i do that ??
Thanks & Regards ,
bakThe exact error message I'm getting is :
ABAP XML formatting error in XML node of type "element", name: "abap" -
Can we send XML over HTTPS ?
Can we send XML over HTTPS ?
malcolmmc wrote:
meacod wrote:
rabbits?
Rabbits
http://www.rabbitmq.com/
They wrote
+RabbitMQ is designed from the ground up to interoperate with other messaging systems: it is the leading implementation of AMQP, the open standard for business messaging, and, through adapters, supports XMPP, SMTP, STOMP and HTTP for lightweight web messaging.+
They mentioned only HTTP ....Does HTTPS implied here ? -
Passing XML String via HTTP Sender
Hello everyone,
currently we try to find a solution on the following requirement - maybe you have useful advice for us:
8 different business documents can be sent via a web-interface to SAP XI via the http sender adapter. We already have a customized JCo Class that takes only one input parameter (containining the XML string of the business document).
I think the easiest way would be to receive the XML string from the web-interface and pass it directly on to the JCo-Class in a Java Mapping.
Is it possible to create a generic message type for all 8 types of XML documents that contains just one element holding the XML as string? By doing so we could use the same URL for all 8 different XML types and pass it directly on as input paramenter to the JCo Class.
Do you have any idea how to do this?
Thank you very much.Does the HttpURLConnection conn send the string along with the headerYes.
-
[HTTP Sender]How to send different XML using static URL
Hi all,
I have a problem, my legacy system send XML messages to SAP XI by HTTP, I know that I need to use HTTP Sender adapter, the problem is that legacy system support only a static URL. I have more than one interface, how could I fix this problem?
Can I send the XML message to SAP XI without define INTERFACE on URL? How can I handle this?
Thank in advance,
Daniel TorresHi Srinivas,
The legacy system is a java application, that send XML messages to SAP XI server using HTTP protocol. So I just ask to legacy system team to change the application to add <b>server</b>, <b>namespace</b> and <b>interface</b> attributes to the URL querystring.
So for each XML message you should especify mesage interface that it belongs to. You do it by especifying on URL as message atribute for exemple:
HTTP://[SAPXISERVER]:80[SYSTEM ID]/sap/xi/adapter_plain?service=[BS SERVICE]&namespace=[MESSAGE INTERFACE NAMESPACE]&interface=[MESSAGE INTERFACE]
So if you have for example information belows:
<b>MESSAGE INTERFACE</b> = MI_MYMESSAGEINTERFACE_IB
<b>MESSAGE INTERFACE NAMESPACE</b> = urn:teste:mymessageinterface
<b>SERVICE</b> = MY_LEGACY
<b>SYSTEM ID</b> = 10
<b>SAPXISERVER</b> = MYSAPXI
Your url should looks like: http://MYSAPXI:8010/sap/xi/apadter_plain?service=MY_LEGACY&namespace=urn:teste:mymessageinterface &interface=MI_MYMESSAGEINTERFACE_IB
You should have a different message interface for each XML that you send to SAP XI.
Message was edited by:
Daniel Torres
Message was edited by:
Daniel Torres -
HTTP sender Adapter - XML parsing issue in SAP PI
Dear All,
We have a scenario where HTTP sends data to JDBC.
We shared the URL with Sender application and they are trying to send the data to PI using URL.
But when it comes to PI Integration Engine, we noticed the inbound payload in Plain text.
Sender Application showed their logs and data they are sending is in XML format.
Any pointers on this issue ? Do we need to do any settings from PI end?
Regards,
SriniHi,
Check the xml document having the code page UTF-8.
Regards,
Prakasu.M -
Send XML by HTTP from ext. System to XI and process
Hi XI Experts,
I want to configure a typical XI Scenario. Send XML by HTTP to XI. I know the URL, to send data to my XI test machine.
I'm struggling with the HTTP Parameters and the necessary Configuration in the Integration Directory. In the URL I have to provide for our XI 3.0 machine
service
namespace
interface
Namespace and interface is clear to me, but not the "Service". I know, that the "Service" could be an SLD Business System. In my scenario I don't want to configure all potential senders (e.g. customers) as a business system.
I want to have a "partner" in the Directory. There are partner services and services without a partner. Does someone can provide me the configuration steps. At minimum so that I receive the XI message in the integration engine.
Routing and mapping I will configure. But at the moment I really don't know how to configure the "Service", if I want to use a "Partner" as sender, and not a business system.
Thanks in advance
Klaus
P.S. My configuration scenario is a purchase order from a customer (in XML), which I want to transfer to an R/3 Backend to create a sales order.Hi Klaus,
Check this SAP help-
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/64db4daf9f30b4e10000000a11466f/frameset.htm
In the Service , either you can have Business System created in the SLD or you can create your Own Business Service in the Directory. So create the service and go continue further.
For creating a Party services
This blog may give some hints-/people/sravya.talanki2/blog/2005/08/17/outbound-idocs--work-around-using-party
Regards,
Moorthy -
Under which account XI sends messages through HTTP communication channel
Dear Experts,
Please help us to find out under which account (user) XI sends messages outside through HTTP.
We should send data to external application using HTTP receiver adapter. Target host, username and password are provided by our customer. But during the test we'va got a HTTP 407 error - Proxy Authentification Required. This is our proxy server and go through it we should grant appropriate rights to XI account. But which?Hi,
This error come because of
the "auth-scheme" element required by the HTTP specification is missing in the "Proxy-Authorization" HTTP header.
Solution of this is to use patch 8 for Support Package 17 and patch 5 of Support Package 18 of the XI ADAPTERFRAMEWORK CORE 3.0 software component.
For XI7.0:
patch 3 of support package 08 of the XI AdapterFramwork Core 7.0
patch 2 of support package 09 of the XI AdapterFramwork Core 7.0
The archives and the support package stack guide can be found on the
services marketplace as described in SAP Note 952402.
Hope this will help you.
Regards
Aashish Sinha
PS : reward points if helpful -
Not able to download a big xml file through Http
Hi
I am trying to download a large file around 8 MB, but I am not able to download this file through Http or WebClient. can anyone please let me know how can I download the large file in Windows Phone 8 through Http or WebClient.
When I trying to download the file then System got hang for some time and after that connection break type of popup shown the nothing happened.
sandeep chauhanHi Sandeep,
I used
this code snippet to download
the sample file (9.9M) in windows phone 8, it seems work fine. Since you’ve not posted anything about your code, I suggest you test the above code to see if the problem is caused by your code snippet.
Windows phone silverlight 8.1 provides an effective way to download large file.
https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.networking.backgroundtransfer.backgrounddownloader.aspx. Please consider if you can upgrade to silverlight 8.1
Regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate
the survey. -
Http sender adapter: QoS is interpreted as Best Effort by PI 7.11
Hi
I have a scenario, where I receive an xml OrderResponse via an http sender adapter and I then map it to an iDoc which is sent to the backend system.
BUT: for some reason, PI thinks, that the Quality of Service is BE, and I get the error "Only asynchronous processing supported for IDoc adapter outbound processg".
I have checked both the http sender adapter, the sender agreement, the interface mapping, the service interface and the operation mapping and nowhere can I see, that best effort is selected.
The OrderResponse is sent from an external partner and is routed through a load balancer and an SAP web dispatcher before arriving to PI.
Any suggestions would be highly appreciated.
MIkael LundThe external partner is sending the OrderResponse to this URL (external URL):
https://xxxxxx.xxxxxxxx.dk/sap/xi/adapter_plain?service=LM&namespace=http://xxxxxxxx.dk/XCBL/OrderResponse&interface=xCBLOrderResponse35Out
this URL is being translated to an internal URL:
https://yyyyyyy.yyyyyyy.dk/sap/xi/adapter_plain?service=LM&namespace=http://xxxxxxxx.dk/XCBL/OrderResponse&interface=xCBLOrderResponse35Out
So how should the external and/or internal URL be altered?
Thanks for a very quick answer by the way
MIkael -
OTA-HTTP-SEND-1005 Error while sending to destination B2B
Hi,
While sending ebxml message to destination B2B, we are getting error as
Message Transmission Transport Exception
Transport Error Code is OTA-HTTP-SEND-1005
StackTrace oracle.tip.transport.TransportException: [IPT_HttpSendConnectionRefused] HTTP connection is refused.
I tried opening opening https://<hostname>:443/b2b/transportServlet url in the browser and could see that destination B2B was accepting connections.
I went through few threads in forum which suggests that difference in RMI port number may cause this issue. But that is not same in my case. I have the same port number in both tip.properties and web.xml.
Please find below the extract of my b2b.log.
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Calling Send to transmit the message
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) Protocol Name: HTTPS
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) Version Name: 1.1
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) Endpoint: https://<hostname>:443/b2b/transportServlet
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) using SSL
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send URL: HTTPS://<hostname>:443/B2B/TRANSPORTSERVLET
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send TO Endpoint: 502 https://<hostname>:443/b2b/transportServlet
2010.07.09 at 08:09:12:248: Thread-23: B2B - (DEBUG)
Protocol = HTTPS
Version = 1.1
Transport Header
DOCTYPE_NAME:rqRequestIncidentReportAmend_DT
SOAPAction:"ebXML"
TO_PARTY:229736194
DOCTYPE_REVISION:1.0
ACTION_NAME:rqRequestIncidentReportAmend
FROM_PARTY:001316827
Content-Type:multipart/related;type="text/xml";boundary="----=_Part_14_26794447.1278677352170";start="<ebxheader-C02C7BC9129B71BFE2E00000F2690000>"
Content-Length:7520
Parameters
-- listing properties --
http.sender.timeout=0
2010.07.09 at 08:09:12:279: Thread-23: B2B - (DEBUG) scheme null userName null realm null
2010.07.09 at 08:09:33:467: Thread-23: B2B - (WARNING)
Message Transmission Transport Exception
Transport Error Code is OTA-HTTP-SEND-1005
StackTrace oracle.tip.transport.TransportException: [IPT_HttpSendConnectionRefused] HTTP connection is refused.
at oracle.tip.transport.TransportException.create(TransportException.java:91)
at oracle.tip.transport.basic.HTTPSender.send(HTTPSender.java:629)
at oracle.tip.transport.b2b.B2BTransport.send(B2BTransport.java:311)
at oracle.tip.adapter.b2b.transport.TransportInterface.send(TransportInterface.java:1050)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequestPostColab(Request.java:1758)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequest(Request.java:976)
at oracle.tip.adapter.b2b.engine.Engine.processOutgoingMessage(Engine.java:1194)
at oracle.tip.adapter.b2b.transport.AppInterfaceListener.onMessage(AppInterfaceListener.java:141)
at oracle.tip.transport.basic.FileSourceMonitor.processMessages(FileSourceMonitor.java:913)
at oracle.tip.transport.basic.FileSourceMonitor.run(FileSourceMonitor.java:326)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:464)
at java.net.Socket.connect(Socket.java:414)
at java.net.Socket.<init>(Socket.java:310)
at java.net.Socket.<init>(Socket.java:154)
at HTTPClient.HTTPConnection$EstablishConnection.run(HTTPConnection.java:3916)
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send Error in sending message
2010.07.09 at 08:09:33:467: Thread-23: B2B - (INFORMATION) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Request Message Transmission failed
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) DBContext beginTransaction: Enter
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) DBContext beginTransaction: Transaction.begin()
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) DBContext beginTransaction: Leave
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab [IPT_HttpSendConnectionRefused] HTTP connection is refused.
Connection timed out: connect
2010.07.09 at 08:09:33:467: Thread-23: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:notifyApp retry value <= 0, so sending exception to IP_IN_QUEUE
2010.07.09 at 08:09:33:482: Thread-23: B2B - (DEBUG) Engine:notifyApp Enter
2010.07.09 at 08:09:33:482: Thread-23: B2B - (DEBUG) Enqueue Engine AQJMSCorrelationID = null
2010.07.09 at 08:09:33:482: Thread-23: B2B - (DEBUG) notifyApp:notifyApp Enqueue the ip exception message:
<Exception xmlns="http://integration.oracle.com/B2B/Exception" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<correlationId>null</correlationId>
<b2bMessageId>C02C7BC9129B71BF76800000F268FE00</b2bMessageId>
<errorCode>AIP-50079</errorCode>
<errorText>Transport error: [IPT_HttpSendConnectionRefused] HTTP connection is refused.
Connection timed out: connect</errorText>
<errorDescription>
<![CDATA[Machine Info: (BDC-EXTRA107)
Transport error: [IPT_HttpSendConnectionRefused] HTTP connection is refused.
Connection timed out: connect ]]>
</errorDescription>
<errorSeverity>2</errorSeverity>
</Exception>
2010.07.09 at 08:09:33:498: Thread-23: B2B - (DEBUG) Engine:notifyApp Exit
2010.07.09 at 08:09:33:498: Thread-23: B2B - (DEBUG) DBContext commit: Enter
2010.07.09 at 08:09:33:498: Thread-23: B2B - (DEBUG) DBContext commit: Transaction.commit()
Kindly suggest us on what could be the issue here and a possible resolution.
Thanks in advance.
Regards,
NagasudhanRe: Outbound HTTP - Connection fails Hi,
I got my issue resolved. I refered to a similar post on the forum. All I had to was adding proxy settings in tip.properties. For benefit of others I'm pasting the link I've refered to.
Re: Outbound HTTP - Connection fails
Regards,
Nagasudhan -
Generating XML through PL/SQL
Hi everyone,
I got a new task at work, and my task is to generate XML through PL/SQL.
I am using Oracle 11g database, and SQL Developer 3.0.
The purpose of this procedure is to upload xml file to a queue, so my BPEL process can access the queue and do what it does.
This is my first time writing a procedure that generates xml so bear with me.
Below is a sample of the xml file I received. I need to generate xml file below through PL/SQL. All the information in xml file will need to be retrieved from the database.
I need your help to start working on this procedure. Your help is very much appreciated.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://www.ussc.gov/soa/casefile/event/types">
<caseFileUploadEvent xmlns:xsi="http://www.w3XX.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.XXXX.gov/soa/casefile/event/types ../xsd/Case_META.xsd"
xmlns="http://www.XXXX.gov/soa/casefile/event/types">
<taskEvent>SUBMIT</taskEvent>
<defendentDetails>
<sentensingDate>2008-11-10-05:00</sentensingDate>
<personDetails>
<personNameDetails>
<firstName>FIRSTNAME</firstName>
<middleName>B</middleName>
<lastName>LASTNAME</lastName>
</personNameDetails>
<dateOfBirth>1969-09-23-04:00</dateOfBirth>
</personDetails>
</defendentDetails>
<documentStatusDetails>
<otherStatus>
<intCode>61</intCode>
<description>Other documents included</description>
</otherStatus>
</documentStatusDetails>
<uploadOtherDetails>
<submissionId>427000447</submissionId> // NOTE: SUBMISSIONID WILL BE PASSED IN THROUGH THE PROCEDURE TO QUERY ALL THE INFORMATION NEEDED FOR THE XML FILE
<submissionSessionId>401622</submissionSessionId>
<submissionMethod>
<intCode>1</intCode>
<description>WebApplication</description>
</submissionMethod>
<submissionReason>
<intCode>1</intCode>
<description>InitialSubmission</description>
</submissionReason>
<district>
<intCode>99</intCode>
<description>Test District</description>
</district>
<caseFileType>
<intCode>10</intCode>
<description>Individual - Original</description>
</caseFileType>
<primaryDocketInfo>
<yearYY>5</yearYY>
<id>55555</id>
<defendentNumber>555</defendentNumber>
</primaryDocketInfo>
<PACTSId>55555555</PACTSId>
<AOJudgeId>
<intCode>2512</intCode>
<description>FABER, DAVID, A.</description>
</AOJudgeId>
<missingCasefile>false</missingCasefile>
<creator>
<firstName>will</firstName>
<lastName>smith</lastName>
<email>[email protected]</email>
<actionDate>2005-09-07T09:48:09.811-04:00</actionDate>
</creator>
<lastModifier>
<firstName>john</firstName>
<lastName>doe</lastName>
<email>[email protected]</email>
<actionDate>2006-10-03T08:51:21.5-04:00</actionDate>
</lastModifier>
</uploadOtherDetails>
</caseFileUploadEvent>
</soap:Body>
</soap:Envelope>procedure below
procedure upload_process(submission_id number) as
begin
-- retrieve information from database based on submission_id (passed in)
-- generate XML
-- send xml to queue
end upload_process;ThanksRooney,
First of all, I would use Oracle package UTL_DBWS to handle web service calls.
But if you choose to do all the work yourself to call web service, this is one of the options:
Since the size of your xml soap request is about 4k, you can just use pl/sql varchar2 variable to construct your xml.
Example:
cSoapRequest VARCHAR2(5000);
BEGIN
cSoapRequest := '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://www.ussc.gov/soa/casefile/event/types">
<caseFileUploadEvent xmlns:xsi="http://www.w3XX.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.XXXX.gov/soa/casefile/event/types ../xsd/Case_META.xsd"
xmlns="http://www.XXXX.gov/soa/casefile/event/types">';
FOR recRow IN <your cursor> LOOP
cSoapRequest := cSoapRequest || '<dateOfBirth>'|| TO_CHAR(recRow.DOB,'YYYY-MM-DD HH:MI' )|| '</dateOfBirth>';
END LOOP;
...Then use package utl_http to send the request and recieve response.
Google pl/sql webservice,
Here is one:
Calling Web Service from PL/SQL (ORA-31011: XML parsing failed)
Hope this will give you an idea.
Thomas
Maybe you are looking for
-
Tax code Error (A/P / A/R Invoice) Very Urgent
Dear Gurus I am unable to Post A/P Invoice as well as A/R Invoice If the item is excisable. After generating Incomming Excise invoice, A/P Invoice is not getting generated. I am getting the following error "No Matching Record found 'G/L Accounts (OAC
-
Purchase Tax - Field BSEG- WMWST not getting filled on Invoice documents
Hi, I am posting a Invoice document using FB60. Along with other details, I enter Tax code and check the Calculate Tax check box and SAP calculates & generated extra line for Tax amount. Document is posted successfully. Howver this purchase tax calcu
-
itunes not recognize my ipod. itunes:itunes.exe corrupt file and unredable dialog box come
-
I don't know how to download movies need help
How do I download movies on my iPad pls?
-
My iphone 4 16gb white proximity sensor doesn't work
I've only had my phone for about 2 weeks and hoped the last two updates would fix the problem, I can't stand the face-mute, face-hold anymore