SOAP Sender to JDBC Receiver via PCK Scenario

Hello all,
I have the following scenario:
an external program is calling my XI system which has a webservice enabled as a SOAP sender communication channel.
now, i need to pass the input over to a remote system with PCK installed on it which needs to execute a stored procedure on an oracle database via the jdbc adapter.
The jdbc adapter is deployed and working well on the PCK engine.
When I pass an xml message over to the Webservice, its also OK (in the adapter monitoring).
my question is - how can i pass the input parameters from the WS over to the PCK and then over to the JDBC adapter to execute the Stored procedure (which only writes the data).
I saw that the data type and message types of the message going to the JDBC need to be in special format including the name of the SP, action=execute and all the parameters with attribute type=datatype.
all of that is done already.
However, i still do not understand where/how does the PCK get the message and invokes the JDBC adapter for processing.
Many thanks for you help!!!

Hi Natti,
Check these..
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6f83d790-0201-0010-629d-ab5bf10c94e4
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3f9fc190-0201-0010-0cbd-87f50e404d91
cheers,
Prashanth
P.S Please mark helpful answers

Similar Messages

  • Problem between SOAP Sender and JDBC Receiver

    Hi,
    I have a asynchronous scenary between SOAP Sender and JDBC Receiver.
    The idea is sending an ID for updating one register.
    Table structure is:
    TABLE AS_PERSONA
        (P_RUT                         VARCHAR2(10) NOT NULL,
        P_NOMBRE                       VARCHAR2(50),
        P_APELLIDO                     VARCHAR2(50))
    The ID is the P_RUT field.
    The structure of message that I send by SOAP, is the following:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <m:MT_CONS_SOAP xmlns:m="urn:prueba:voliva">
                   <CONSULTA>
                        <P_RUT>15445</P_RUT>
                   </CONSULTA>
              </m:MT_CONS_SOAP>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    The JDBC receiver structure is:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_CONS_PERSONA xmlns:ns0="urn:prueba:voliva">
         <Statement>
              <AS_PERSONA action="UPDATE">
                   <table>AS_PERSONA</table>
                   <access>
                        <P_NOMBRE>DELETE_BY_XI</P_NOMBRE>
                        <P_APELLIDO>DELETE_BY_XI</P_APELLIDO>
                   </access>
                   <key>
                        <P_RUT>15445</P_RUT>
                   </key>
              </AS_PERSONA>
         </Statement>
    </ns0:MT_CONS_PERSONA>
    When I do a call to SOAP by XMLspy, it returns a message without data, that means succesfull reply.
    I see message monitor and see the succesfull flag. But in the database it doesn't update the register.
    This scenario was proved using the File Sender and same JDBC Receiver, then result was succesfull.
    I proved SOAP Sender with a File Receiver, storing information from SOAP sender in an archive, and works well.
    Then I imagine that exist some problem between SOAP and JDBC. what could be happening ?
    Thanks.

    Hi,
    Looks like the problem is with the JDBC receiver...try updating the value in the table by using a File-JDBC scenario..does it work..check the adapter monitor in RWB..
    Regards,
    Sushumna

  • JDBC Sender to JDBC Receiver || Acknowledgement

    Hi Experts,
    the scenario is the following:
    JDBC sender to poll a database and receive data from table a (Query SQL Statement)
    after the mapping, a JDBC receiver inserts the resultset from a into table b.
    okay, so far, now the action is done and the sender adapter has to delete the resultset from table a (with the Update SQL Statement)
    the problem is now how to ensure that only the resultset is deleted from a IF its really inserted into b? means: how to tell any adapter that the update-command is only done when the insert worked correctly?
    thanks in advance
    Chris

    First of all, u will have to make an async call from JDBC. The scenario wouldn't be that good in design :).
    The only thing to be taken care should be the poll interval. It should be large enough so that the BPM processing is complete otherwise the polling of same data will occur twice. (U may use Planning Availability Times concept here).
    I understand that the UPDATE statement is mandatory
    U can write Test to just don't update anything.
    Now the data would be sent to receiver and after the successful receipt at receiver, BPM send step would be triggered with the update statement to actually update the table.
    Hope it makes everything clear
    Regards,
    Prateek

  • SOAP sender and IDOC receiver

    hi
    Could u please help me, how to do this interface.
    I am transferring the PO from legacy system(webServices Request) to SAP system when ever PO_IDOC is created in SAP I need to send PO number and Acknowledge back to the legacy system.This is synchronous communication from SOAP to IDOC.

    you can use the ORDRSP ORDERS05 Idoc for PO response.
    So your scenario will be
    SOAP Req -> IDoc -> IDoc resp -> SOAP Resp
    but if you can have a standard RFC or maybe an ABAP proxy you can make the scenario sync from SAP end.

  • Request Response Bean for SOAP Sender Adapter

    Hi Friends,
    Is it possible to use  Request Response Bean Module described (FIle to RFC to File here) for SOAP(sender) and JDBC(receiver) adapter?
    I want to configure SOAP to JDBC to JDBC scenario.
    http://wiki.sdn.sap.com/wiki/display/HOME/UsingRequestResponseBeanModuleinFILE+Adapter
    Scenario:
    I will do SOAP adapter call Asynchronously and JDBC receiver adapter will select data from database. This response will go back to SOAP adapter and then SOAP will divert this response to another JDBC adapter. This JDBC adapter will insert data into another database.
    I do not want to use ccBPM. Is there any design approach to implement this scenario?
    Thanks,
    Sandeep Maurya

    Hi Sandeep,
    SAP says SOAP sender adapter does not support Modules. You can serch Help.sap (for SOAP sender channel) to find the same.
    I would suggest to use AXIS adapter (provides all the functionality of SOAP) and supports the Modules as well.
    I have used the Module beans that you mentioned in the past... but it is not consistent with its processing.. sometimes it stucks with Message ID issue... I have seen same issue faced some other friends as well .. search on SDN you will find the issue with these modules...
    Using BPM would be another option...
    Thanks,
    Sunil Singh

  • XI3 SOAP sender and Receiver

    Hi
    I am stuck with a connecting to scenarios using SOAP channel. In short there is one business scenario that based on some conditions must start other scenarios (each one built around one business process). I am trying to send asynchronous SOAP message within the same XI and treat it as a External XI system to start another Business Scenario (using XI adapter does not work as the system discovers the message as being in a loop).
    Everything would be fine if there would be 1 target scenarios but I have 1:n. For asyncronous transport I have defined different Message Interfaces to be used for on each case. So XI should determine the right business process based on the message interface that uses the communication channel.
    So I have configured a SOAP sender and a receiver channel. As I understood from SOAP adapter FAQ I checked "Use Encoded Headers" and "Use Query String" for both - sender and receiver channel. And ofcourse receiver channel is pointed to http://:/XISOAPAdapter/MessageServlet?channel=:{system name}:{receiver channel name} but when I start the initiating scenario the asyncronous message is sent of but nobody is catching it.
    In RWB Message monitoring / adapter engine I found the the message receives an exeception:
    SOAP: response message contains an error XIServer/UNKNOWN/ModuleUnknownException -
    com.sap.aii.af.mp.module.ModuleException: either no channelID
    specified or no channel found for the specified party, service, and channel name,
    MessageServlet(Version $Id: //tc/aii/30_REL/src/_adapters
    /_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#15 $) at
    com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:427) at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at
    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl....
    runServlet(HttpHandlerImpl.java:401) at
    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl....
    handleRequest(HttpHandlerImpl.java:266) at
    com.sap.engine.services.httpserver.server.RequestAnalizer....
    startServlet(RequestAnalizer.java:387) at
    com.sap.engine.services.httpserver.server.RequestAnalizer....
    startServlet(RequestAnalizer.java:365) at
    com.sap.engine.services.httpserver.server.RequestAnalizer....
    invokeWebContainer(RequestAnalizer.java:944) at
    com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266) at
    com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at
    com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160) at
    com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener....
    process(ApplicationSessionMessageListener.java:33) at
    com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at
    com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at
    java.security.AccessController.doPrivileged(Native Method) at
    com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at
    com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Any ideas... how to make XI to send SOAP messages so that the same XI system would be able to pick them up?
    Or what have I done wrong?
    Best wishes,
    Heiko

    hi,
    What is the format that u are using for the sender URL....The error message you are getting either because the names that you have mentioned in the sender URL are wrong or the URl format itslef is wrong.....if the format is the one that you have mentioned in the first post then it is not the desired format.
    Use the following format to create the URL to send the request:
    http://<servernameORserverIPaddress>:<portNumber>/XISOAPAdapter/MessageServlet?channel=:<senderservice>:<snederCCname>&version=3.0&Sender.Service=<senderservice>&Interface=<IRnamespace>%5E<senderMI>
    Replace
    with
    & amp;
    (no space inbetween the two words) in the above URL.
    How to configure SOAP communication channels (sender and receiver) so that two XI instances could communicate and (more important) use different message interfaces on the same channel?
    While creating a Receiver communication channel there is no need to specify the interface name and hence it can be used in different scenarios....however a sender communication needs the sender interface to be specified (as in SAP XI.....not in SAP PI).....so a sender channel can be used in different scenarios but with only the same interface.....
    Regards,
    Abhishek
    Edited by: abhishek salvi on Feb 17, 2009 2:50 PM

  • Proxy Sender & JDBC Receiver

    Dear Friends,
    We are using PI 7.1.
    The complete flow of control in the scenario i am right now working is as follows..
    I have to send a single field from R/3 table to the clients Legacy System that is running on Oracle 10.2. Based on that field, data has to be fetched from 2 tables from the Oracle System and sent back as response.
    Then some process happens at R/3 side using the fetched data. Based on the process certain flags in R/3 table are updated.
    Again this (flag) has to be updated back in the one of the Oracle tables.
    Right now i have decided to use Synchronous Proxy Sender and Asyn JDBC receiver.
    Again for the last interface i have planned to use Asyn Proxy Sender & Async JDBC Receiver.
    Please suggest me whether this is correct. Is there any other good way of realizing the above scenario.
    Thanks
    Ramesh

    XI JDBC Adapter using stored procedures
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40b92770-db81-2a10-8e91-f747188d8033
    Re: problem in receiver JDBC adapter
    Error With JDBC receiver adapter
    JDBC Adapter (Receiver)
    JDBC Adapter
    go through these links..
    Hope these helps..
    Regards,
    Parvathy

  • HTTP Call to SOAP Sender Adapter

    Hi All,
    I'm working on a scenario where i plan to use SOAP Sender Adapter for receiving Plain HTTP Calls from the client.
    The purpose behind this exercise is to have control over the message flow in case of sender HTTP protocol in XI.
    I configured a SOAP channel and used the option 'DO Not Use SOAP Envelope'. But when i post  the message to the adapter engine using a HTTP client, it fails.
    Can somebody guide me in this case.
    Regards,
    Anurag

    Hi,
    >>>But when i post the message to the adapter engine using a HTTP client, it fails.
    with which error ?
    Regards,
    Michal Krawczyk

  • How to Prevent the Duplicate record insertion by JDBC Receiver?

    HI Experts,
    I have File Sender to JDBC Receiver scenario.I am using SAP PI 7.1 system.
    Purpose of this Scenario is to read the data from specified file and INSERT or  UPDATE the same records in Oracle Database.
    Before inserting the data I want to check in the same table for prventing runtime error(Key fields Duplicatin).
    So if records with the same key fields are available in table then I want to UPDATE the same record instead of INSERT.
    Please Suggest me the poosbile way.
    Thanks & Regards
    Jagesh

    Hi Jagdesh,
    The JDBC receiver format has the following structure
    <root>
    <StatementName1>
    <dbTableName action=u201DUPDATEu201D | u201CUPDATE_INSERTu201D>
    <table>Table1</table>
    <access>
    <col1>val1</col1>
    <col2>val2new</col2>
    </access>
    <key>
    <col2>val2old</col2>
    <col4>val4</col4>
    </key>
    This structure creates a query in this way :
    UPDATE( OR UPDATE_INSERT) into Table1 set col1=val1 and col2 = val2new WHERE col2=val2old and col4=val4.
    The key field works like a Where clause. So for the receiver format when you specify the key, it checks the DB with that field as the where criteria. Hence for a UPDATE_INSERT query, when you specify the key field, it checks whether that value specified within the key field exists in the DB or not. Then it proceeds to execute the statement for only those values.
    Hence it makes sense to provide a primary key attribute in the key field of the JDBC receiver format.
    Regards,
    Kshitij

  • JDBC Receive --- action = "SELECT"

    Hi Friends,
    Iam trying a scenario where Iam using JDBC Receiver with action = SELECT.
    To be clear I'll explain the scenario.
    Source_File>XI>MSAccess>XI>Target_File.
    I mean, I want to send a file to MSAccess and retrieve the values from table using action = SELECT and put that in a new File.
    <b>I></b>
    1)My Source DataType (Emp_out_DT) is (This from File to XI)
    <b>>Emp_out_DT
    >>Emp_No
    >>Emp_Name</b>
    2)Target Datatype (Emp_in_DT) is (This is from XI to MSAccess)
    <b>>Emp_in_DT
    >>Select
    >>>EmpInfo
         action
         table
    >>>>access
         Emp_No
         Emp_Name</b>
    3)Response DataType (Emp_in_Res_DT) (This is from MSAccess to XI)
    <b>>Emp_in_Res_DT
    >>row
      Emp_No
      Emp_Name</b>
    <b>II></b>
    I have created three Message Types for the three DataTypes.
    <b>III></b>
    I created two Message Interfaces as
    1)Outbound , Synchronous (Emp_out_MI) with
    output Message ---> Emp_out_MT
    input Message ---> Emp_out_MT
    These two are same...
    2)Inbound , Synchronous (Emp_in_MI) with
    input Message ---> Emp_in_MT
    output Message ---> Emp_in_Res_MT
    <b>IV></b>
    I have done the mapping between
    1)Emp_out_MT and Emp_in_MT
    2)Emp_in_Res_MT and Emp_out_MT
    <b>V></b>
    Only one Interface Mapping with
    1)Request
    Source Interface ---> Emp_out_MI
    Target Interface ---> Emp_in_MI
    Mapping ---> Emp_out_MT_Emp_in_MT
    2)Response
    Source Interface ---> Emp_out_MI
    Target Interface ---> Emp_in_MI
    Mapping ---> Emp_in_Res_MT_Emp_out_MT
    Since both are synchronous interfaces, even though MI are same for both the MT will change based on Request and Response.
    <b>VI></b>
    In Configuration I created three Communication Channels
    1)File Sender
    2)JDBC Receiver
    3)File Receiver
    Upto JDBC Receiver it is OK. I have created all the Sender Agreement, Receiver Determination and all. But wat to do with the Response that I get from MSAccess. Will I get the Response from MS Access with this Configuration. How and Where can I see the Response. How to create a File with the Response I got???
    Regards,
    Raju...

    Hi narayan ,
      Just check the following links for proper Meassge type in JDBC format :
    <a href="/people/alessandro.berta/blog/2005/10/04/save-time-with-generalized-jdbc-datatypes:///people/alessandro.berta/blog/2005/10/04/save-time-with-generalized-jdbc-datatypes
    also
    <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/4d/8c103e05df2e4b95cbcc68fed61705/frameset.htm">http://help.sap.com/saphelp_nw2004s/helpdata/en/4d/8c103e05df2e4b95cbcc68fed61705/frameset.htm</a>
    JDBC adapter will return the details depending on the select statement u will have to map that response to the message type u r using to create the file using ftp adapter.
    regards,
    keith.

  • Compress SOAP sender messages

    Hello experts,
    I have a SOAP sender in place receiving 5MB messages from an external partner.
    As the charge model with this partner is per mb transfered I am looking for a way to reduce these messages.
    Does anyone know if there is a way to ask my partner to compress the messages? And at the same time XI needs to be able to read compressed that and follow the processing.
    Thanks in advance,
    Diego.

    Hi Diego -
    Does SOAPUI send the message in compressed format ? You can do a trace using TCPGW. Check the blog -
    /people/stefan.grube/blog/2007/03/29/troubleshooting-soap-http-and-mail-adapter-scenarios-with-tcpgateway
    Add the following parameter as well to the XISOAPAdapterBean in the Module Configuration tab of the SOAP adpter channel -
    XMBWS.AcceptEncoding compress, gzip
    Refer to the document -
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/40611dd6-e66e-2910-f383-e80fb44f9cd4
    Regards,
    TK
    Edited by: Sameej T.K. on Oct 18, 2010 8:17 PM

  • JDBC Receiver Synchronous SELECT With Proxy

    Hi People,
    We are trying a JDBC Receiver Synchronous select scenario, based on <a href="/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step Kantilal's Blog</a>. Our scenario is somewhat different in the sense that we are using synchronous message interface as outbound, using this for proxy generation and then calling the EXECUTE_SYNCHRONOUS method to pass the values to Integration Server and get the response back. We are writing the response obtained. but the problem is, SXMB_MONI is showing no entry in the response message structure, although the SELECT query should select at least one record. Can anybody please point out where the error is residing? Is it an error of the JDBC Synch. Select, or do we have to use BPM in this case, as pointed by Bhavesh in his blog?
    Awaiting your views,
    Regards,
    Amitabha

    Hi People,
    Thanks for all those hints...but We have solved the problem...there was an error in Response Mapping...So the corresponding import structure in EXECUTE_SYNCHRONOUS was not getting populated.
    Awarded points for making us aware of the possible pitfalls in this scenario.
    Thanks and Regards,
    Amitabha

  • JDBC Receiver side query

    Dear Freinds,
    I am using Proxy Sender(Asyn) ---> JDBC Receiver(Asyn). I have to update a table in Oracle System based on various conditions.
    In R/3 there is a table where i have to pick 2 fields for updation at Oracle System based on 5 other fields.
    Now my question is at JDBC Receiver side is it possible to control the UPDATE query according to various parameters being passed for e.g
    Assume this is the Receiver side Data Type..
        Statement
           TableName
              Action
              Table
           Access         
              SAP_Update
              SAP_Prod_Order
           Key
              Parent_Coil
                 operation
              Coil_No
                 operation
              Sale_Ord_Item
              operation      
              Sale_Ord_No
              operation       
              Prod_Flag
              operation            
              Size_Flag      
    Operation is the attribute that will be used for the operator.
    In some messages Under Access out of 2 fields only 1 might come from sender and also in the Key (where clause) some all fields might come or some could come.
    Under these various circumstances will the Update query gets generated properly by the JDBC receiver.
    What all i should need to do ??
    Please advice.
    Thanks & Regards
    K.Ramesh

    Dear Friends,
    Below given query has to be executed at the JDBC Receiver (Asyn).
    How to define braces () and Boolean AND/OR etc in the datatype.
    UPDATE PROD_INV SET SAP_PROD_ORDER = :WA_PROD-SAP_PROD_ORDER
    WHERE  PARENT_COIL = :WA_TRAN_CTRL-PARENT_COIL AND ( ( PROD_FLAG = :C_Y AND SIZE_FLAG = :C_SPACE ) OR ( PROD_FLAG = :C_Y AND SIZE_FLAG IS NULL ) ) AND ORD_NO = :WA_TRAN_CTRL-SALE_ORD_NO AND ORD_ITEM_NO = :WA_TRAN_CTRL-SALE_ORD_ITEM
    Moreover the query that is getting generated must change based on the where clause dynamically.
    Just tell me how to do in such cases.
    Thanks & Regards
    K.Ramesh

  • (SOAP sender) --- XI ---- R/3 (RFC receiver) this sync scenario

    Hi Experts,
    Webservice(SOAP sender) < - > XI <--> R/3 (RFC receiver) this sync scenario tested with Infopath successfully.
    I have given partner number,student object id are the two input fields(request) and i am getting student number as response. This scenario is working when i use MS infopath.
    I have generated WSDL file embedded with below URL
    http://xxxx.yyytec.passh.ed:7271/XISOAPAdapter/MessageServlet?channel=:Webservice_Sender_BS:GET_NUMBERS_Sender_CC&version=3.0;amp;Sender.Service=Webservice_Sender_BS;amp;Interface=urn%Apache
    Sender business system: Webservice_Sender_BS
    Sender CC: GET_NUMBERS_Sender_CC
    Msg Interface: STU_GET_NUMBERS_Synch_MI
    now we want to test from third party website, what are the things to be provided to the website developer to test the scenario.
    the way i generated URL, is it correct?
    if i provide above URL and generated WSDL in XI , is it enough for web developer to enter the input fields to RFC(r/3) via XI as webservice request and getting back response from RFC(r/3) to webservice via XI.
    can you please advice if any body worked on this kind of scenario.
    Thanks
    Dhanush.

    For the developer you have to provide WSDL file so that they know the input/output fields and write the code.
    URL is correct.
    Other informatino they required is Username and password of you PI system.
    Gaurav Jain
    Points if answer is helpful

  • Anonymous authentication requests via SOAP Sender adapter?

    Hi,
    Can someone please tell me whether it is possible to call the SOAP Sender adapter anonymously?
    We can set user credentials for the receiver system adapter but looking at the options in the SOAP Sender communication channel I can't see how it is possible to send messages though SAP PI without a user who has authorisations to process messages.
    Any advice greatly appreciated.
    Thanks,
    Alan

    can't see how it is possible to send messages though SAP PI without a user who has authorisations to process messages.
    The source system needs to use a user-id to send message to XI/ PI via SOAP.
    If you do not want to use any authorization there is a way to switch off the authentication for the entire SOAP adapter (i.e. for all the SOAP scenarios)....not advisable.
    This method was actually described in a discussion ages back
    Regards,
    Abhishek.

Maybe you are looking for

  • Burning error - 1 solution

    I was getting an "error burning" message when i was trying to burn on I DVD. I tried many things without much luck. Then I deleted a FADE IN transition and a FADE OUT transition. After that the DVD burned fine. I just thought I might pass this along

  • What plugins are compatible with the Tree?

    In Flash 8 the help files for the Tree Component have flash 8 Professional written at the top. Where does it show the compatible Flash plugins for the Tree Component. It is compatible for Flash 7 or 6 plugins? Cheers.

  • How do you rebuild the font database?

    I've been having big trouble with InDesign crashing everytime I print whether to an actual printer, distiller or to my desktop and have found that I need to rebuild my font database but don't know exactly how to do that. Can anyone help? mac pro   Ma

  • Which code could lock the screen in my apps?

    I'm new in Xcode. In my magic app,I want to lock and immediately unlock the screen,how to do the action? Example code would be helpful. Thanks.

  • Can we install Gnome 3.3 ?

    Is there any way to install the unstable branch of Gnome in Arch? I've looked around but I can't seem to find anything.