Error handling in File - XI - SOAP scenario without BPM

We have a File -> XI -> SOAP scenario without BPM. The problem is that if the Web Service sends back an error XI tries to reprocess the same message again and again instead of taking the next one.
We do not want set the retry interval to NULL because most error cases are temporary connection problems and then also those messages would not automatically be reprocessed any more.
We also have to use BE instead of EO, otherwise the Web Service will not return a response. But we need the response to be sure that the processing was successful. The message volume in this scenario is quite high and we do not want to use BPM only for the error handling.
I know that from SP19 some additional adapter modules are available for async - sync scenarios without BPM. I tried to configure it like described in File - RFC - File without a BPM - Possible from SP 19. but it did not solve the problem. Does anybody have any other ideas? Thanks.
Regards, Tanja

Hi Tanja,
>>>The volume is 3000 messages/day on business days and 700 messages/day during weekends but the traffic will increase in the future
I think, you should check that out. It is assumedly only 2 days work to build a scenario:
IDoc -> BP
BP -> IDoc (Acknowledgement)
In the process you need a condition branch, where you decide success or not. You need 2 Interface Mappings for filling the ALEAUD.
Just send 1000 IDocs to the Test-XI and look to performance monitoring at Runtime Workbench, to find out, how many message will be processed in one hour. Assumedly 3000 and more per day should be possible. The advantage would be to reduce number of systems (no file system) and messages (better monitoring) and using the standard (better maintenance).
>>>So you are suggesting I should use HTTP adapter and then add the SOAP header manually in a mapping?
Yes, build the SOAP envelop during the mapping. Most easy is to use XSL or, if your mapping is ready, an additionsal XSL. You can put the error into the Acknowledgement to see it in ERP transaction WE02.
Filling of ALEAUD fields:
E1ADHDR/MESTYP: original message type
E1ADHDR/E1STATE/DOCNUM: original IDoc number
E1ADHDR/E1STATE/STATUS: 68 in case of error, 53 in case of success
E1ADHDR/E1STATE/STATXT: Short description for R/3 user what has happend
I ve done such a scenario several times. That works without any problems.

Similar Messages

  • File to SOAP Scenario Using BPM

    I am doing File to SOAP scenario using BPM.
    while doing Integration Process in IR, i got the following error message
    "Expression of simple type xsd:string expected"
    But i have given xsd:string in the correlation element as well as in Data types.
    I dont know why it is getting the error.
    could you anyone please help me to sort out?
    Sai Ch.

    Check in the correlation editor, where you define the condition.
    Whether the data type of the XPath is string and whether it matches with the data type of the messages that you have selected.also make sure the type of the correlation variable is string.

  • Fault Messages/Response handling in File-XI-SOAP scenario

    I have a File-XI-Webservice scenario.
    Suppose I am sending a call "Request" to the webservice with 4 fields a,b,c and d. If the call is succesful we get an epmty "Response" back. Suppose any of the fields a,b,c or d are missing then the webservice throws an "AccountUtilsException" with a message "Required data 'c' missing". I want to be able to capture this message in a file.
    I tried using asynchronous scenario first but that didnt work. I didnt get an empty response back for successful messages, neither did i get an error in sxmb_moni for missing data. Only the SOAP adapter would be red and the error "UNKNOWN ERROR" would appear. So I created a BPM with  a receive, send-sync, send steps. With the AccountUtilsException set up as the response. Now, when all the data is good everything is successful and a file is created with the empty "Response" xml. When any of the fields is missing I see errors in sxmb_moni with Message class "Application error". But when I go into the payload I cannot see the xml. Instead it says "Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later." When I click view source I see the xml with the message "Required field c is missing". A file is also not written. Can anyone help me figure out what I am doing wrong?

    Hi Jahnavi,
    yes, the asynchronous scenario cant work because there is no answer.
    I think you should have  exception types in your interfaces and map the fields of the exception. I m not shure if the answer of the webService in case of exception (AccountUtilsException) is a xml msg, you shoud be able to find out that at RTW message monitoring. You should be able to put that into a the exception type of the interface. Another possiblility to pick the exception up would be an alert.

  • Message Split -- File to Idoc Scenario  -  ( Without BPM )

    I have multiple records coming to XI in a File and I have to create Multiple Idocs to R/3.
    Due to Complexity of mapping I'm splitting Maaping step into 2 message Mappings.
    In the 2nd Mapping step  I'm doing message Split meaning for each Source record I'm creating multiple Idocs ( To be precise each record on the source becomes 4 idocs in the Target.
    2nd Mapping step is as follows
    Source 1..1
      Sourcerecord 0.. Unbounded
        field1  0..1
        field2  0..1
        filed3  0..1
    Message 1
        Idoc   1.. Unbounded
          Idoc Structure..
    Message 2
          Idoc   1.. Unbounded
    Message 3
          Idoc   1.. Unbounded
    Message 4
          Idoc   1.. Unbounded
    So based on some criteria each record of Source will be mapped to 4 Messages (  1 each under each Message )
    Is it possible to do this without BPM?. Iam sending all these Idocs to same R/3 System.
    Thanks for any help..RK

    See the blog
    <i>Basicly we have 2 ways of handling such scenarios:
    - we can use a block step and send multiple IDOCs from our BPM
    - we can also do a little trick and send multiple IDOCs from the XI without a BPM
    The first approach is a standard XI approach. It involves the use of a BPM
    so the speed of this transfer many not be very good in case you'd like to send
    hundreds or thousands of IDOCs in just one call.
    The second approach uses a little trick that was mentioned several times
    on the XI Froum by a number of XI developers but is still not very clear to the XI newbies.
    It allows us to send multiple IDOCs without the use of a BPM. Most probably this will be your choice
    if you'd like to use such 1:N (IDOCs) scenarios effectively.</i>
    Please see the bwlow threads also..
    IDOC Splitting
    File To IDOC Thru XI
    Multi-Mappings in BPM (XI 3.0)
    Please let me know , your solcev or not..

  • File to SOAP scenario question???

    let's take source system is A,target system is B.
    I have a File to soap scenario using BPM,the scenario is send file request(from A) to PI,PI will be communicating target system(B) with soap(syn).After that, PI receives the soap response and send the response data to A.
    Now the requirement is, we need to archive the file request msg(before sending to B) to a folder and archive the response msg(response from B) to a folder as could it be achived?
    any help will be much appreciated!

    Hello Rajesh_V2009 ,
    I am trying to implement exactly the same pi scenario, but having some problems :
    File -> file adapter -> ccBPM -> soap receiver adapter -> web service request -> web service response -> ccBPM -> output file adapter.
    The web service that I call works file from wsnavigator. I have created all the design and configuration objects
    needed for the scenario.
    I place a file with following contents:
    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="" xmlns:xs=""
    <pns:GetSetNameWS xmlns:pns="urn:file2soap2fileWSVi">
    When I look at the process monitor I get this:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!-- Receiver Determination
    - <SAP:Error SOAP:mustUnderstand="" xmlns:SAP="" xmlns:SOAP="">
    <SAP:P1>Problem while determining receivers using interface mapping: No operation with XML root tag exists.</SAP:P1>
    <SAP:P2 />
    <SAP:P3 />
    <SAP:P4 />
    <SAP:AdditionalText />
    <SAP:Stack>Error when determining the receiver: Problem while determining receivers using interface mapping: No operation with XML root tag exists. Problem while determining receivers using interface mapping: No operation with XML root tag exists. No operation with XML root tag exists.</SAP:Stack>
    I have no clue about this error. Can you help me with this ?
    If yes I can send you more details, if you liked 
    Hoping to get help from you,
    Ajeet Phadnis

  • Error Handling in File Adapter

    I have been working on a requirement where the file adapter picks up the file and gives to the BPEL for processing the data.
    So, in order to do Error Handling for file adapter, i have been reading the Oracle documentation for technology adapters. In that, some of the
    points which i felt valuable for my error handling when using file adapter are the uniqueMessageSeparator property, fault-policies for rejected messages,
    and one of the action for rejected messages could be writing the payload to a file or invoking any other webservice.
    In my composite, i have configured the file adapter as a service for reading files, and i defined the xsd using the native format builder....If i put some data like 'aaaa' in the attribute of type integer , the .csv file is being picked up and its being passed to the BPEL without any error ? I believe there should be a translation error...right...
    But i am not getting the error, please tell me if anything is wrong in my xsd....
    Here is my xsd...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd=""
    <xsd:element name="names">
    <xsd:element name="name" minOccurs="1" maxOccurs="unbounded">
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
    And for DB Adapter, there is a property called SchemaValidation, i think that is not there for File adapter, by default it will take care of validation i guess....In another composite, my file adapter is picking up the .xml file and if i put any wrong data over there, that is working fine, i am getting the translation error, but only here in the case of csv file, i am not getting the error. Experts, please help me in this regard...I am using SOA 11G

    Hi Yatan,
    Thanks for the reply. I did the same way, where my composite is picking up an XML file and translation error is coming. Even the fault policies are working fine, like writing to a file and even invoking other web service. Its really good that you have achieved the same thing in csv files. But the same thing i am unable to achieve when my file adapter is picking up the csv file. I really cant understand where i am doing wrong.
    here is my XSD which i defined through my native builder format...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd=""
    <xsd:element name="Roots">
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;" />
    the jca file ..
    <adapter-config name="FileRecv" adapter="File Adapter" wsdlLocation="FileRecv.wsdl" xmlns="">
    <connection-factory location="eis/FileAdapter" UIincludeWildcard="n*.csv"/>
    <endpoint-activation portType="Read_ptt" operation="Read">
    <activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="C:\files"/>
    <property name="Recursive" value="false"/>
    <property name="PollingFrequency" value="5"/>
    <property name="IncludeFiles" value="n.*\.csv"/>
    <property name="UseHeaders" value="false"/>
    I told that the file will contain only 1 record while defining xsd and i kept a record whose values are John , Peter and akjdkjdskj.
    Now if the data is like above, the file is still getting picked up without any translation error and the BPEL is getting completed successfully...
    Is it possible for you to send your sample project and the csv file from which you have defined the xsd to me if you dont mind ?

  • QOS File to SOAP scenario

    I have a File to SOAP scenario which processes a file with many records and calls a webservice once per record.
    The QOS of the sender File adapter is set to 'Exactly Once' but the SOAP messages have QOS 'Exactly Once In Order'.
    I would like the SOAP messages to have QOS 'Exactly Once' to avoid messages going into 'Holding' status after an error occurs with a previous message.
    Any suggestions greatfully received.
    Mark Briggs

    Thanks for your suggestions. This scenario does not use BPM.
    This is an asynchronous scenario as the sender is file based. The QOS of the File sender Adapter is set to 'Exactly Once'. I do not think it is possible to set the QOS of the receiver SOAP adapter. I understood that the QOS of the receiver was determined by the QOS of the sender.
    The records in the source file are independent of each other and so I do not want subsequent messages to go into a holding status when a record is in error.
    Is there any way to make the QOS of the receiver SOAP adapter 'Exactly Once'?

  • File to Soap Scenario using UDF

    Hi Guys
    We have a requirement that said:
    IF ShortDescription is not u201CNULLu201D then
    map ShortDescription
    ELSE IF ShortDescriptionLang with LanguageCode u201CENu201D is not NULL
    map ShortDescriptionLang
    So what I did is:
    if( ShortDescription != "NULL")
         map ShortDescription;
    else if( (ShortDescriptionLang != "NULL" ) && ( LanguageCode == "EN") )
            map ShortDescriptionLang;
    But everytime when pressing f7 to check for errors I get thid:
    C:/usr/sap/PI1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map0b27cd32dc2611df84e7000c2973cb67/source/com/sap/xi/tf/ '}' expected
    Can someone suggest on how can I test this fucntionality cause one thing that I don't understand is the "map ShortDescription"  and "map ShortDescriptionLang"
    How do I put it on my if statement

    Hi All
    On my FILE to SOAP Scenario I awant to map a field from my Target to get a Message ID on the moni like in the code below:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters()
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("","XHeaderName1");
    String value = conf.get(key1);
    return value;
    My is like this:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters()
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("","Messageid");
    String id = conf.get(key1);
    return id;
    But the when presing f7 I get error:
    C:/usr/sap/#####/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1fee8942e00c11df9d67000c2973cb67/source/com/sap/xi/tf/ cannot return a value from method whose result type is void return value; ^ 1 error
    So is it possible for me to use statement like this:

  • File name to be read in mapping - File to SOAP Scenario

    Hi all,
    its a  file to soap scenario. i need to send the file name also to target system. how can i get the file name in the mapping? is there a way to read the header information in mapping?

    You need to check for Adapeter specific Message Attributes of your File adapter.Then write user defined function to set Dynamic_configuration. So that you can get the file name in the header(u can chk this in SXMB_MONI after implementing the UDF, it will create one section for dynamic_configuration.)

  • Sync File to SOAP scenario

    Hey guys
    i m doing a Sycn FIle to SOAP scenario(i guess i need BPM for that,right?)
    lemme know if my configuration is correct
    For sender FIle:
    For SOAP
    For Receiver file
    and BPM would be
    start>>Receive>>Sync send>>send>>stop
    and ofcourse i need to import the WSDL for the webservice.
    is this all,or i need to do some other designing too?

    The weblog says you are sending a request from R3 using RFC. Then it gives back you the response from the webservice.
    So first you have two scenarios:
    Source:  No datatype needed because you are importing the RFC.
    Target: For this you need the datatype. Just create the datatype what he has mentioned.
    Source : Just copy and paste the xsd. You import as an external definiton.
    Target: Since your RFC is a synchrounous you will have the response for it. That is your target.
    Then after that you do message mappings for request and response and then the interface mapping.
    You dont need to have BPM for this interface. So dont worry about BPM for this interface.
    Then you complete all the steps given in his weblog2. Then test it out.

  • SOAP to IDoc scenario without BPM

    I have 2 scenario's
    1) IDoc-SOAP - -response -- IDoc scenario -- (have found some links  to do it without BPM)
    2) SOAP -- RFC request -- RFC response -- e-mail (no links found)
    how can i achive both these scenario's without BPM. Currently i have these 2 scenarios in our 7.1 version with BPM. but our requirement is to migrate this scenario into 7.4 without BPM(No PO).
    please help us to achive this scenario without BPM.
    Your help is highly appreciated.

    Hi Kiran,
    Could you please let us know the exact requirement. How do you want to send the response back to IDOC?
    ASync - Sync Bridge with IDOC sender is not possible in PI 7.0.
    If It is something like IDOC --> SOAP --> IDOC , And If the SOAP request is small then you can use SOAP Lookup in IDOC to IDOC Scenario.
    In The mapping You can do a lookup and get the response from SOAP(Webservice) and map that to your Target IDOC.
    This is one possible way for you without BPM in PI7.0.
    Please let me know if you need more details about this.
    Jyothi A

  • Correlation issue in JMS adapter - SYNC/ASYNC scenario without BPM

    I am working on a SYNC/ASYNC scenario with JMS adapter without using BPM. My scenario is SOAP<>PI>JMS. I configured the interface as below:
    1. SOAP Sender channel
    2. JMS Receiver Channel writing to Queue A.
         Module used:      a. RequestOneWayBean
                   b. WaitResponseBean
         Correlation Settings:
                   a. Set JMS Correlation ID to "XI Message ID"
                   b. Store JMS CorrelationID of request (Checked)
                   c. Set JMS Property to "JMS Correlation Id"
                   d. Value = "XI MEssage ID"
    3. JMS Sender channel reading from queue B ( I am exporting the message from queue A and importing into queue B)
         Module used:      a. NotifyResponseBean
         Correlation Settings:
                   a. Set XI MEssage Id to "GUID"
                   b. Set XI Conversation ID to "Stored JMS COrrelationID of Request"
    I can see the cid in the message from queue A. But I observed thhat the header format of the message in Queue A is "MQSTR".
    1. While writing the message to queue A, below adapter log details(part b) concerned me:
         a. Message '8747a7c2-2b06-11df-8055-005056a70ed6' successfully processed by channel
         b. Could not create acknowledgements for message '8747a7c2-2b06-11df-8055-005056a70ed6'
    I am not sure why I am receiving the message that "  could not create acknowledgements"
    2. While reading the message from the sender channel,I consistently get the error message as below:
         a. XI message ID corresponding to JMS message with ID 'ID:414d51205341504449442e514d202020c67b954b20005602'
              will be created as a new GUID with value '21bca916-424f-41f6-3347-c71090392b58'
         b. Error while processing message '21bca916-424f-41f6-3347-c71090392b58';  detailed error description:
     found no correlation ID: RecoverableException:
              found no correlation ID at ...
    Below are the blogs which I have already gone through:
    1. JMS Synchronous Scenario without BPM - Correlation Settings and Transactional JMS Session
    2. Note: 1086303
    3. Sync / Async Bridge without BPM
    In the note, they mentioned something about header being "MQRFH2". BUt in our case, the header is "MSSTR". Not sure whether it makes any difference.
    Please help.
    Edited by: GP on Mar 9, 2010 4:24 AM

    detailed error description: found no correlation ID: RecoverableException:
    found no correlation ID at ...
    This error would generally arose when there are multiple messages, got stuck in the outbound queue. Try to stop both the sender and receiver JMS comunication channels and clear both the inbound and outbound queues.
    Once all the messages in the queue are cleraed, try posting the message again.

  • Idoc to soap sync without bpm. is it possible? Helping me..

    Hi Experts,
    i have a small clarification Idoc to soap sync interface in sap pi 7.0. i created IDoc to Soap sync using BPM but some times the signals are stuck due to load issue in swpr, while reprocess those signals all going successfully to the receiver. So We are trying to eliminate BPM.
    I just wanted to know Idoc to Soap sync scenario without BPM is possible or not in SAP PI 7.0?
    if it is possible kindly send me the links
    Kiran polani

    Hi Kiran,
    Could you please let us know the exact requirement. How do you want to send the response back to IDOC?
    ASync - Sync Bridge with IDOC sender is not possible in PI 7.0.
    If It is something like IDOC --> SOAP --> IDOC , And If the SOAP request is small then you can use SOAP Lookup in IDOC to IDOC Scenario.
    In The mapping You can do a lookup and get the response from SOAP(Webservice) and map that to your Target IDOC.
    This is one possible way for you without BPM in PI7.0.
    Please let me know if you need more details about this.
    Jyothi A

  • File to IDOC Scenario using BPM

    Hi Experts,
        I am working on file-Bapi-Idoc scenario using BPM.
        I have two conditions
    1. If the Sonumber is populated then need trigger an Bapi_change
    2.If the Sonumber is not populated from the file then need to trigger a Bapi_Createfromdat to create the sales order and receive the salesorder number as response from Bapi
    and the response of these BAPIs should be validated whether the Bapi is successful or not.
    If it is successful message then need to trigger IDOC or else should throw an alert message.
    let me know the steps involved in this scenario.
    can i send alert message to other email IDs or can i send it to only XI admin?
    Please let me know u r inputs.
    Thanks in advance

    You need to have a BPM for this.
    BPM design.
    Recieve step(abstract asynchronous) for file structure
    Switch Case(condition whether sonumber is populated or not) 
    if populated
    Branch 1(of switch)
        transforamtion step:- mapping between File and Bapi_Change(Request structure)
      Send step(abstract syncronous) To send the BAPI_change
    Branch 2(of switch)
    transformation step:-mapping between file and BApi_Create
    Send step(abstract synchronous) To send the BAPI_Create
    Block step(which will include the Switch step)
        trigger an Execption in case of an error(in any of the two branches) through the block
        The Exception will trigger an alert.
    Now after the Block step there will be a transformation step(which will have the mapping between RFC response and Idoc)
    Next is the send step(abstract asynchronous) for the idoc
    In case if there is no exception the Idoc will be triggered or the exception branch will trigger the alert
    rewards points if useful

  • Synch-asynch scenario without bpm's?

    Synch-asynch scenario without bpmu2019s can any one help me how to configure this scenario without bpms?

    hi ferocious,
    That is possible with standard functions and standard module beans.
    From pi 7.1 v ,  sap provided standard functions like RFC and jdbc of the conversion function group.
    sap provided Standard module beans those are RequestResopnceBean and OnewayResponceBean.

Maybe you are looking for