How to set up a RFC - HTTP Post scenario?

Hi all,
I've seen a scenario using a HTTP -> RFC but i didn`t found the other way, an RFC -> HTTP scenario.
I have a scenario that consists of a RFC that will pass the parameters to XI and then, i've to map the parameters of this RFC into a XML message, zip this xml message, convert it to BASE 64 string, post this "binary" message thru HTTP POST and finally, send the XML HTTP response back to my RFC .
My questions are:
- How to map the RESPONSE of the http request to my RFC?
- How to deal with the transformations of the data, from xml to zip and from zip to a base64 string.
- How to set the URL of the HTTP POST dynamically?
Thanks in advance!

> Hi all,
>
> I've seen a scenario using a HTTP -> RFC but i didn`t
> found the other way, an RFC -> HTTP scenario.
>
> I have a scenario that consists of a RFC that will
> pass the parameters to XI and then, i've to map the
> parameters of this RFC into a XML message, zip this
> xml message, convert it to BASE 64 string, post this
> "binary" message thru HTTP POST and finally, send the
> XML HTTP response back to my RFC .
>
> My questions are:
>
> - How to map the RESPONSE of the http request to my
> RFC?
hmmm.. Maybe a Java Mapping?
> - How to deal with the transformations of the data,
> from xml to zip and from zip to a base64 string.
Either Java Mapping or a Java Proxy.
> - How to set the URL of the HTTP POST dynamically?
>
Use Adapter Specicif Identifiers and set it in the mapping dynamically.
Regards
Bhavesh

Similar Messages

  • How to set custmer master block for posting & how to set the status .....

    < MODERATOR:  Message locked.  Please read the [Rules of Engagement|https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/rulesofEngagement] before posting next time. Use an appropriate subject in your message thread. >
    Hi ...
    How to set custmer master blocked for posting & how to set the status has deleted. please provide the steps for the above two actions.
    thanks

    Hi,
    U can use T-code FD05 for Blocking the customer and
    T-code FD06 in order to set for deletion,
    Assign Points if useful,
    Regards,

  • How to receive XML from Flex HTTP POST

    Hi,
    We curreontly have a setup where we have a FLEX frontend send an XML through a HTTP POST and awaiting a response also in XML. On the backend this is handled relatively simply by a PHP script that basically does the following:
    read data (in XML)from FlEX HTTP POST into a new temp XML file.
    execute a c++ program with the XML file as one of the parameter.
    return the result to FLEX
    We have decided to move to BlazeDS for various reasons.
    Looking at the examples bundled with BlazeDS they have a jsp example that returns an XML result to FLEX so that part is fine. I am trying to find an example of JSP (or Servlet) that is able to read the XML data from FLEX and write it into a temp XML file. I would then try to use runtime.exec to invoke a local C++ program to process the XML file the result of which will be sent back to FLEX.
    Any help will be very much appreciated!

    <div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>I&#8217;d avoid calling an executable just to process XML &#8211;your<br />application server would provide enough support for reading and writing XML, no?<br />Also, if you&#8217;re only planning on working with XML then even BlazeDS might<br />be overkill because its focus is on sending strongly typed ActionScript data efficiently<br />to and from a client (it&#8217;s true that it does have a proxy service, but<br />that is not involved with processing the actual XML data).<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>How complex is your XML? Do you need to resolve ids and<br />references or can you parse it top down in a single pass? There are several<br />well known libraries in Java for dealing with XML &#8211; the choice depends on<br />how you need to interact with the XML. Most of them take an InputStream as a<br />source for reading XML and you can get the InputStream from the servlet<br />request. Googling should turn up numerous examples.<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Pete<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><br /><br /><div><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> khwong<br />[mailto:[email protected]] <br><br /><b>Sent:</b> Sunday, September 28, 2008 12:09 PM<br><br /><b>To:</b> [email protected]<br><br /><b>Subject:</b> How to receive XML from Flex HTTP POST<o:p></o:p></span></p><br /><br /></div><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new discussion was started by<br />khwong in <br><br /><br><br /><b>General Discussion</b> --<br><br />  How to receive XML from Flex HTTP POST<br><br /><br><br />Hi, <br><br /><br><br />We curreontly have a setup where we have a FLEX frontend send an XML through a<br />HTTP POST and awaiting a response also in XML. On the backend this is handled<br />relatively simply by a PHP script that basically does the following: <br><br /><br><br />read data (in XML)from FlEX HTTP POST into a new temp XML file. <br><br />execute a c++ program with the XML file as one of the parameter. <br><br />return the result to FLEX <br><br /><br><br />We have decided to move to BlazeDS for various reasons. <br><br /><br><br />Looking at the examples bundled with BlazeDS they have a jsp example that<br />returns an XML result to FLEX so that part is fine. I am trying to find an<br />example of JSP (or Servlet) that is able to read the XML data from FLEX and<br />write it into a temp XML file. I would then try to use runtime.exec to invoke a<br />local C++ program to process the XML file the result of which will be sent back<br />to FLEX. <br><br /><br><br />Any help will be very much appreciated! <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b69b23">How to receive XML from<br />Flex HTTP POST</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b69b23!folder=.3c061a83">unsubscribe</a>< br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div><br /><br /></div>

  • How to invoke BPEL process via HTTP POST (or GET)

    Hi,
    I'd like to know how to invoke BPEL process via HTTP POST (or GET), is there anyway simple to do it?
    Thank you

    Look at my blog http://orasoa.blogspot.com search for plsql
    or use SoapUI.org
    or look in the Examples directory in the BPEL directory of the installation

  • How to send SOAP request by HTTP POST?

    I want to access a SOAP webservice using mx.rpc.soap.mxml.WebService.
    Following is my code:
    <mx:WebService id="miner_service" wsdl="http://localhost:8080">        <mx:operation name="hello" result="echoResultHandler(event);"></mx:operation></mx:WebService>
    When debugging with that, I got such error message:
    [Fault] exception, information=[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Unable to load WSDL. If currently online, please verify the URI and/or format of the WSDL (http://localhost:8080)"]
    Then I use Fiddler try to capture the response returned by server, it's like this:
    Error responseError code 501. Message: Unsupported method ('GET'). Error code explanation: 501 = Server does not support this operation.
    But when I use python to send SOAP request by HTTP POST, the server will return correct response.
    So how can I send SOAP request by HTTP POST?
    (I tried <mx:WebService wsdl="http://localhost:8080" method="POST">, but no luck..)

    Sorry for my late reply..
    There's no WSDL for that SOAP service

  • How to pass XML payload to HTTP POST Service.

    Hi All,
    I am calling a RestFul service using Http Post method.
    If the payload type is "url-encoded" then my directly assignment of values using assign activity is working fine.
    But when i change the payload type to "xml" , It's erroring out saying the value is not provided for the parameters..
    You can also try this using below details to reproduce the issue.
    Details:
    =====
    URL : http://api.geonames.org/postalCodeSearch
    Used HttpBinding as reference in composite.
    XSD :
    <?xml version= '1.0' encoding= 'UTF-8' ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.org" targetNamespace="http://www.example.org"
    elementFormDefault="qualified">
    <xsd:element name="geonames">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="totalResultsCount" type="xsd:integer"/>
    <xsd:element name="code" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="postalcode" type="xsd:string"/>
    <xsd:element name="name" type="xsd:string"/>
    <xsd:element name="countryCode" type="xsd:string"/>
    <xsd:element name="lat" type="xsd:float"/>
    <xsd:element name="lng" type="xsd:float"/>
    <xsd:element name="adminCode1" type="xsd:string"/>
    <xsd:element name="adminName1" type="xsd:string"/>
    <xsd:element name="adminCode2" type="xsd:integer"/>
    <xsd:element name="adminName2" type="xsd:string"/>
    <xsd:element name="adminCode3" type="xsd:integer"/>
    <xsd:element name="adminName3" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Input">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="postalcode" type="xsd:string"/>
    <xsd:element name="username" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    We need to send following input values to the service.
    postalcode = 90110
    username =siddhardha
    Can someone let me know how to make it work with XML payload.Looks like i am not constructing the XML payload correctly in assign.
    Please send me the sample to [email protected].
    Thanks in advance,
    Siddhardha.

    Sid,
    I am still trying the same, here we need to change the input type to mimeXml
    have a look at this link....
    https://blogs.oracle.com/reynolds/entry/oracle_http_adapter
    I am trying multiple ways, everytime i get the same below error...
    <messages>
    <Invoke1_Request-Response_InputVariable_2>
    <part name="Input">
    <Input>
    <postalcode>90110</postalcode>
    <username>siddhardha</username>
    </Input>
    </part>
    </Invoke1_Request-Response_InputVariable_2>
    <Invoke1_Request-Response_OutputVariable>
    <part name="geonames">
    <geonames>
    <status message="Please add a username to each call in order for geonames to be able to identify the calling application and count the credits usage." value="10"/>
    </geonames>
    </part>
    </Invoke1_Request-Response_OutputVariable>
    </messages>
    Thanks,
    N

  • How to set Date in RFC call.

    Hi,
    I am trying to set date in structure when calling RFC.
    ICall = function.getImportParameterList();
    ICall.getStructure("IORDER").setValue(eDate,"EDATE");
    EDATE is date field in Structure in RFC with data type "D" and it is taking date in "dd.mm.yyyy"; formate.
    I am setting date  "dd.mm.yyyy"; in string format with eDate variable and it is throwing error.
    Can any one tell me How I can set date for "EDATE" field in proper format.
    Can I do JCO.TYPE_DATE date1 = new java.util.Date();
    And How I can convert date in acceptable format "dd.mm.yyyy"; for RFC.
    Thanks for your help
    Ashish

    Hi Sateesh,
    Thanks for your Answer.
    I used java.util.date and it works fine.
    Icall.getStructure("IOrder").setValue(new java.util.date(), "EDATE")
    I came to know that java date variabel can be passed without any extra conversion to ABAP type D variable .
    Is it OK? As I am setting  java date variable directly to ABAP type d variable in RFC.
    I have awarded you points for very helpful answer.
    Thanks.
    Ashish.

  • How to set and retrieve the http headers

    I am adding one custom header "edmsversion" in my first page, it is visible in it but when the response is redirected to another jsp, my header is lost. In second page, it's not getting. I have copied my code below. Please help me.
    My first Page
         System.out.println("Jsp called successfully");
         response.addHeader("edmsversion","1.2");
         boolean isheader = response.containsHeader("edmsversion");
         System.out.println("contains edmsversion header ..."+isheader);
         response.sendRedirect("/TestHeaderResponse.jsp");
    TestHeaderResponse.jsp
         System.out.println("Test header response page called successfully");
         String stringversion = request.getHeader("edmsversion");
         out.println("edms version header : "+stringversion);
         Enumeration headernames = request.getHeaderNames();
         System.out.println("Headers---------");
         while (headernames.hasMoreElements()){
              String headername = (String)headernames.nextElement();
              String headervalue = request.getHeader(headername);
              System.out.println(headername+"----"+headervalue);
         out.println("over");     

    You are setting a response header, then telling the browser to make a new request to a different page. All headers sent from "My First Page" are discarded and only the new response headers from "TestHeaderResponse.jsp" are available to the browser.
    Try using
    getServletContext().getRequestDispatcher("/TestHeaderResponse.jsp").include();That should work I would think. You cannot use the forward() method of the requestDispatcher because you cannot have sent any output from the calling servlet when using forward(). If forwarding from a jsp, all data in the output buffer is cleared before the forward takes place I believe, so you would get the same problem. Hope that helps.

  • HTTP(s) - RFC - HTTP(s) scenario is not working synchronous.

    Dears,
    I have the following scenario.
    our PI system will receive an XML over HTTP(s) from outside company.
    and then our system will send a confirmation to that company.
    I already configured it with synchronous outbound Interface.
    Now, I can post xml to PI URL . and it reached  RFC but no response.
    I checked the SAP XI runtime workbench - adapter logs and i found :
    RfcAdapter received a asynchronous message. Trying to send tRFC for YISU_SAPI_BCONRQ with TID XI051MbW017j2emZuP2jN5nm.
    RfcAdapter received a asynchronous message. Trying to send tRFC for J2EE_GUEST with TID XI051MbW017j2emZuP2jN5nm.
    My interface is synchronous but in the logs showed asynchronous!!!!
    What is the problem????
    Thanks and Regards,

    http://****:50000/sap/xi/adapter_plain?namespace=urn%3ASALE_P&interface=SI_SALE_OB&service=CC_SALE&party=&agency=&scheme=&QOS=EO&sap-user=***&sap-password=***&sap-client=240&sap-language=EN
    just remove the QOS itself. By default it is BE
    http://***:50000/sap/xi/adapter_plain?namespace=urn%3ASALE_P&interface=SI_SALE_OB&service=CC_SALE&party=&agency=&scheme=&sap-user=*&sap-password=**&sap-client=240&sap-language=EN
    refer;
    http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/frameset.htm

  • How to set custom HTTP header for single sign on

    Currently we just begin to use an application called "etran". This application requires user name and password to login. Now, my assignment is to integrate etran application in our internal application. This means that somewhere in our internal application, there is a link leads to the etran application.
    It is going to be single sign on, that means that once user logs into our internal application, when he/she clicks on the etran link, no sign on to etran is needed.
    I consult with the technical people in etran. they said that our internal application needs to send a "login request" to etran via SSL with the user's information encoded in base 64 format. etran captures the HTTP header containing user authentication and authorization information, and parses the required information from the HTTP header.
    My question is that how I set user information in HTTP header? From my understanding, once I am able to set the user information in HTTP header, it is in base 64 format?
    Thanks in advance for your help.

    sharon38_74 wrote:
    they said that our internal application needs to send a "login request" to etran via SSL with the user's information encoded in base 64 format. etran captures the HTTP header containing user authentication and authorization information, and parses the required information from the HTTP header.
    My question is that how I set user information in HTTP header? From my understanding, once I am able to set the user information in HTTP header, it is in base 64 format?Your application need to act like a proxy. You can invoke a HTTP request programmatically using java.net.URLConnection. You can set request headers using URLConnection#setRequestProperty(). Also see the API docs: [http://java.sun.com/javase/6/docs/api/java/net/URLConnection.html]. You only need to know the header field name where to set the Base64-encoded value in. You need to Base64-encode the value yourself.

  • How to set Custom HTTP headers in HTTP binding?

    How to set custom HTTP headers before sending the Rest based request in HTTP binding?

    sharon38_74 wrote:
    they said that our internal application needs to send a "login request" to etran via SSL with the user's information encoded in base 64 format. etran captures the HTTP header containing user authentication and authorization information, and parses the required information from the HTTP header.
    My question is that how I set user information in HTTP header? From my understanding, once I am able to set the user information in HTTP header, it is in base 64 format?Your application need to act like a proxy. You can invoke a HTTP request programmatically using java.net.URLConnection. You can set request headers using URLConnection#setRequestProperty(). Also see the API docs: [http://java.sun.com/javase/6/docs/api/java/net/URLConnection.html]. You only need to know the header field name where to set the Base64-encoded value in. You need to Base64-encode the value yourself.

  • Retrieve data/files fro HTTP POST request in On-Demand process

    Hello,
    I would like to integrate https://github.com/blueimp/jQuery-File-Upload to my APEX 4.2 application inside XE11g. I would like to use this kind of jQuery component, multiple file upload, use Drag & Drop, image resize, size limit, filter extensions etc...
    This jQuery component and also others javascript uploaders sends data files to some defined URL. Developer need to build some servlet, php script or something on server side that will read files from HTTP request and stores it somewhere.
    Do you know how to do it in APEX? How can I read data from HTTP POST request in PL/SQL? Now I can only call my On-Demand application process from javascript, but I am not able to read any data from HTTP POST in it.
    Can I do it in APEX, or using MOD_PLSQL?
    I would like to implement this:
    1) some javascript uploader will call some URL of my application and sends HTTP POST with data files
    2) I will read data files from HTTP POST and store them into database
    3) I will create some HTTP response for javascript uploader
    Thank you for some tips

    I know about that existing plugin " Item Plugin - Multiple File Upload"
    But I doesn't work in IE and has only basic features. Licence for commercial use is also needed. I would like to use some existing jQuery plugin. There are many of these plugins with nice features. And only one problem is that I need to create some server side process/servlet/script.. that can recieve HTTP request, get files from it and stores them into DB.

  • Http get to Http post

    Hello.
    Currently the Http receiver adapter is configured as HTTP get . We need to change it to HTTP Post and put the parameters in the URL in the body.
    Can someone please give an example on how to conevert a http get to http post. Is it a simple thing to do or does it need some java programming?
    Thanks for your help.
    Best Regards,
    Teresa

    Thanks Baskar. I am on SAP PI 7.1 Currently they have a HTTP_DESTINATION that is defined in SM59 and a Prolog. We want to change it to HTTP Post.
    Below is how it is configured currently -
    addressing type : HTTP Destination
    HTTP Destination : UPS_DESTINATION
    Content Type : application/x-www-form-urlencoded
    XML Code : UTF-8
    Prolog : arg1=
    Epilog = &action=generateUPSShippingLabel&format=xml
    How would I change above to HTTP post ?
    Teresa

  • How to setting Content Presenter?

    I dont want the message show up when I move the mouse on the link, how to setting Content Presenter?
    [https://communities.oracle.com/portal/server.pt/gateway/PTARGS_0_193021_269_216_224_43/http%3B/collaborationrs%3B7005/collab/docman/download/584917/0/0/0/]

    Hi Yannick,
    Going through the links which you have provided and will come back to you I face any problem.
    Before going through the link I would like to know how to get content from ucms from specifying a query rather than getting from the entire folder.
    Yes I am aware similar to the folder option you can specify a query but need help on writing a query and what parameters need to be mentioned in the query.
    One more doumb question about where content presenter taskflow is present in the jdev so that I can drag and drop on my portal page.

  • How to handle HTTP-POST encrypted data for ECC Using proxy or RFC

    I have a scenario HTTP-POST ->PI->ECC.sender is HTTP Post  send encrypted data i need to handle the data and stored in to SAP ECC  with out decrypt using PI .what should i take for receiver  can i use inbound proxy or RFC  and how can handle the encrypted data  for decrypt.
    Regards
    Ravi

    1. my sender is HTTP POST . what should i configure in sender communication channel in SAP PI .like SOAP or HTTP .What are the parameters i need to pass .
    >>>
    If you are on PI 7.3 and above, configure the HTTP AAE adapter - Configuring the Java HTTP Adapter on the Sender Channel - Advanced Adapter Engine - SAP Library
    2.while using inbound proxy for encrypted data  i need  store the data in to table , the same proxy can i call  another outbound  service for decrypt  same data.
    >>>>
    Yes you can always a proxy within a proxy.

Maybe you are looking for