Duplicate field in SOAP Header

Hy Guys,
I was migrating a set of applications from nw70 to nw74 and I got an error when a web dynpro model calls one PI web service.
Analyzing the PI context we saw the message "Number of xml tag WSCorIDSOAPHeader is 2, expected number is 1" and the PI soap envelope that arrives at the channel really have two tags WSCorIDSOAPHeader.
Someone else has seen it before??
Thanks,

Aries,
Hello, My Apologies, I completely missed your response...
Build Number is: 15.0.4535.1000  I tried to get the error I was seeing before show up in the ULS logs by trying to post on the Newsfeed, and I still get the error
"We've hit a snag, Looks like the newsfeed was removed from the site, the site was deleted, or there's some temporary network problem. You can try again later or stop following the site from the sites page." 
but nothing is showing up in the ULS logs.
What it was saying when I did see it in ULS, was that there was an Invalid Field and the Corresponding ID was the same ID as the Duplicate HashTags Field.  I have also notided that in the Microfeed libraries where the Newsfeed IS working (Training, MySites)
there is a HashTags field in the MicroFeed Library. In the sites where it is not working, no HashTags Column. I will keep trying to get it to throw a ULS entry and post the entry if I can get it to generate again.
Thank you,
Carl  
Carl Frank Consultant - Solve It, Inc

Similar Messages

  • Web Services Test Page: No input fields for SOAP header parameters?

    Hello,
    we're using OracleAS / OC4J 10.1.3.1 and have developed a web service that has some self defined SOAP header parameters.
    I would like to use the Web Services Test Page provided by the OAS but it seems that there is no opportunity
    to provide input values for these SOAP header parameters.
    Do I miss something there or is it not supported by OAS?
    I've read the documentation but could not find a clue.
    any help is appreciated,
    Regards,
    Martin

    I hear you. As you have probably heard, OC4J is being replaced by WebLogic Server and the 10.1.3.x releases are the last that will be produced. We'll do maintenance on it of course, but little/no new feature work. This would be a new feature we'd have to add, so I'm afraid there's not much chance in having it done.
    It's not ideal, and of course more work for you, but if you want to provide your client with a test page that exposes the SOAP headers as form fields, you could always develop and ship one yourself.
    -steve0

  • Add field inside SOAP header PI 7.1

    Hello,
    by proyect needs we need to add into SOAP header some dynamic information
    (Web Services calls to target systems from PI 7.1). This information is
    needed in target application for validating permissions of the web
    services calls.
    The tags are
    <soap:Header>
    <CarHeader xmlns="http://xxxxx.xxxxxxxx.xxx.org/">
    <TicketCar>xxxxxxxxxxxxxxxxxxxxxx......</TicketCar>
    </CarHeader>
    </soap:Header>
    TicketCar's value (xxxxxx....) will be different in each call.
    We think that this is not possible with standar or Axis PI SOAP receiverchannel and a solution could be making a Abap mapping for composing the
    SOAP call with this tags and values, and in the comunication channel
    check the parameter "Do not use SOAP Envelope".
    It's rigth? Is there any other solution for doing it?
    An example of a call will be:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
    <CarHeader xmlns="http://xxxxx.xxxxxxxx.xxx.org/">
    <TicketCar>C4A8A61D86C56DC27......</TicketCar>
    </CarHeader>
    </soap:Header>
    <soap:Body>
    <E000xx xmlns="http://xxxxx.xxxxxxxx.xxx.org/">
    <_request>
    <NumeroExpedienteAdministrativo>xxx</NumeroExpedienteAdministrativo>
    <CodigoDocumentoInterno>xxx</CodigoDocumentoInterno>
    <Status>xx</Status>
    <NumeroExpedienteContable>xxx</NumeroExpedienteContable>
    </_request>
    </E000xx>
    </soap:Body>
    </soap:Envelope>
    Any idea will be welcome
    Edited by: Ramon Coma Alcantara on Feb 2, 2010 4:15 PM

    Hi Ramon,
    The axis adapter comes with a convenient header insertion handler where you can insert an arbitrary header using a template.
    For example, you can define a template like this in the module configuration.
    <x:header xmlns:x="urn:x"><me>i say </me><you>you say </you></x:header>
    where , , ... are variable place holders.
    and you associate these variables with any context value available in the message.
    For example, when you pass Hello and Bye for these variables, you soap message will get the header:
    <x:header xmlns:x="urn:x"><me>i say Hello</me><you>you say Bye</you></x:header>
    You can look at the examples described in Note 1039369 Axis Adapter FAQ.
    As I said before, the mileage you can go with the do-not-use-envelope mode is very limited. But if you are happy with it, why not.
    Best regards, Yza

  • Dynamic Receiver Determination using Soap header

    Hi ,
       I am trying to use a field in SOAP Header to determine the receivers dynamically.
    1, Using XPATH gives me only values in the Payload and not the SOAP header. Is it possible to pull the value from the SOAP header to the payload and then do dynamic receiver determination.
    2. Using Context Object is it possible to transfer the value of the field in SOAP header to variable header Xheadername1 and then use it to determine the receiver. I am having problems in passing the value of the field in soap header to XHeadername1.
    Any help is appreciated and points will be awarded.
    Joe Vellaiparambil

    Hi Joe,
    This is a good blog by William, hope this is helpful.
    /people/william.li/blog/2009/07/30/how-to-read-soap-header-information
    Let us know if you need more information.
    Regards,
    Neetesh

  • HTTP Header fields in SOAP adapter - Part 2

    Hi All,
    With regards to my previous thread HTTP Header fields in SOAP adapter
    my header issue is solved and hence I have closed the thread but still I am not able to make the connection successful. The new problem is below
    My vendor requirement is to specify the header as "Ent-sender" but when we give the same in XI in communication channel it automatically convets into uppercase "ENT-SENDER".  Due to case-sensitive in vendor server the connection is not gettingestablished.
    Please help me out how to solve the problem.
    <b>Note:</b> Sorry for the new thread as it was created due to new problem and also the previuos thread is already too long.
    Regards,
    Dhill

    Hi Neaves,
      Thank you, I jave seen the note and find the below solution will be some what realated to my prblem.
    <u><b>The nosoap mode lets the adapter send the XI payload directly without wrapping it in the SOAP envelope. Although the main use of this mode is to send some plain text content directly to some web server, one can use this mode to send their own SOAP message (e.g., with arbitrary headers) to an external web service (See related questions). In this case, the XI payload must be formatted in the SOAP envelope.
               To use the nosoap mode, the channel must be configured to use no SOAP envelope.</b></u>
    If yes, can you please let me know how to use nosoap mode otherise let me the other possibilities.  I am already using tcpg2.zip to trace the SOAP adapter in which it was confirmed that XI is changing the header automatically into CAPS whatever case we give,
    Regards,
    Dhill

  • Alter SOAP Header IDOC Outbound Field (MESTYP)

    We have an issue where we wish to change the SOAP Header IDOCOutbound record.  We are running PI7.0 SP10.
    I have tried changing the message mapping - but the message mapping is fine.
    I have looked at OSS notes 792333 and 728792 but this doesn't work.
    I have tried flagging the "Apply Control Record Values from payload" but this hasn't worked.
    Has anyone come across this before?
    We are mapping a standard Idoc to Custom Idoc and need to populate the custom idoc name into the receiving system.

    Barry,
    Cam you let us know what exactly you are trying to change?
    Apply Control Record From Payload is used to set only these values from the payload of the Idoc Control Records,
    MESCOD
    ·        MESCFT
    ·        TEST
    ·        EXPRSS
    ·        STD
    ·        STDVRS
    ·        STDMES
    ·        SNDSAD
    ·        SNDLAD
    ·        RCVSAD
    ·        RCVLAD
    ·        REFINT
    ·        REFGRP
    ·        REFMES
    ·        STATUS
    ·        DIRECT
    ·        OUTMOD
    ·        CREDAT
    ·        CRETIM
    If you want to set the value of the Sender Partner Name and Port from the Idoc Control Record , then fill in the values for SNDPRN and SNDPOR ( same for Receiver -- RCVPOR and RCVPRN ) and then select option, Take Sender From Payload  / Take Receiver From payload in the Idoc Adapter.
    Regards
    Bhavesh

  • Using Message ID in the SOAP header (Sender)

    Hi Experts,
    The scenario is SOAP to IDoc.
    We have requirement to insert the Message ID in the SOAP header for avoiding duplicate messages from the SOAP client.
    Please note SOAP client is unable to support URL parameter, so we have to use Message ID in the SOAP header.
    So please suggest how to insert the Message ID in the SOAP header (WSDL) , and do we need to implement any mapping to retrieve the Message ID value from the SOAP header  - to create a PI message.
    Thanks in advance.
    MK

    But I want to know how we update the WSDL with the required Feild(messageID).
    I dont think you can update the wsdl url to include the messageID field...if you notice the other fields in the wsdl you will find all are static...however your messageID will be dynamic.....so just ask the SOAP client application to append the MessageId field and send the message.....at runtime the message id will be extracted by PI......did you test the scenario?...if no then test it once so that if there is an error we will come to know...
    Regards,
    Abhishek.

  • I am getting PLS-00410 error - duplicate fields in RECORD, TABLE or argumen

    Here is what I am doing. I have a package header and a package body. The package header compiles successfully and the above error is displayed while compiling the package body only.
    Package Header :
    create or replace package pkg_pms_print is
    type c_ref_printer_list is REF CURSOR;
    PROCEDURE sp_get_printerlist
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    end pkg_pms_print;
    Package Body:
    create or replace package body pkg_pms_print is
    PROCEDURE sp_get_printerlist (
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    IS
    printer_list_refcur pkg_pms_print.c_ref_printer_list;
    v_printer_id pms_test_team_printer.printer_id%TYPE;
    v_printer_name pms_test_team_printer.printer_name%TYPE;
    v_default_printer pms_test_team_printer.default_printer%TYPE;
    BEGIN
    OPEN printer_list_refcur FOR SELECT printer_id, printer_name,default_printer FROM pms_test_team_printer WHERE team_id = p_team_id;
    --DBMS_OUTPUT.PUT_LINE('EMPNO    ENAME');
    DBMS_OUTPUT.PUT_LINE('--- -------');
    LOOP
    FETCH printer_list_refcur INTO v_printer_id, v_printer_name,v_default_printer;
    EXIT WHEN printer_list_refcur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(v_printer_id || '|'|| v_printer_name ||'|'|| v_default_printer);
    END LOOP;
    CLOSE printer_list_refcur;
    END sp_get_printerlist;
    END pkg_pms_print;
    Apart from this error one error also shown as " PL/SQL: Item Ignored"
    The compile points to the 3rd line in the package body for errors with the above mentioned error. There is no duplicate field name or argument name as the oracle error message says. It's a simple straight forward code. Can somebody help me if I am overlooking something?
    Regards,
    AgrawalV

    this problem is solved but i am not getting output when i have tested this procedure in test window.
    Program Continues upto 2nd DBMS call, means i am getting output upto 2nd DBMS call.
    create or replace package body pkg_pms_print is
    PROCEDURE sp_get_printerlist (
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    IS
    -- printer_list_refcur pkg_pms_print.c_ref_printer_list;
    v_printer_id pms_test_team_printer.printer_id%TYPE;
    v_printer_name pms_test_team_printer.printer_name%TYPE;
    v_default_printer pms_test_team_printer.default_printer%TYPE;
    BEGIN
    OPEN printer_list_refcur FOR SELECT printer_id, printer_name,default_printer FROM pms_test_team_printer WHERE team_id = p_team_id;
    DBMS_OUTPUT.PUT_LINE('Printer ID Printer Name Default Printer');
    DBMS_OUTPUT.PUT_LINE('----- ------- ------- ');
    LOOP
    FETCH printer_list_refcur INTO v_printer_id, v_printer_name,v_default_printer;
    EXIT WHEN printer_list_refcur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(v_printer_id || v_printer_name || v_default_printer);
    END LOOP;
    CLOSE printer_list_refcur;
    END sp_get_printerlist;
    END pkg_pms_print;

  • XMLPub 5.6.3: Data fields missing in Header/Footer

    Hello,
    I am having a problem with an RTF template, where the data fields in the
    template Header or Footer that should display data do not appear at all, while
    the fixed text that is in the Header/Footer is shown.
    This template is built with the start:body/end body syntax to separate
    the fields that belong to the Header/Footer from the body of the report. The
    body has a for-each@section that works fine and a split-by-page-break at the
    end, after the Footer fields.
    I played a little bit with the template and I found out, that:
    - if I change my template not to use the start:body/end body syntax, but I use
    the Header/Footer Word functionality with the explicit field names specified in
    the header or footer, the data fields will not be displayed;
    - if I remove the for-each@section, the data fields in the Header (before the
    start:body) and in the Footer (after the end body) are displayed correctly;
    - if I duplicate in my XML file one of the elements that are in the Header and I put it
    in the child group that is displayed in the repeating section and I add another data
    field in that section, it will display both in the Header and in the repeating section;
    This very template works fine on an E-Biz instance at another customer site, but
    only here it's showing this issue.
    It also looks like a different problem than the one caused by the Microsoft
    security update. In fact, I cannot not find any "/headerr" or "/ footerr"
    strings in the template RTF. (Anyway, is there a patch for version 5.6.3?)
    Can anybody shed some light on this strange issue? Any advice?
    I am using XMLPub Desktop 5.6.3 and MS Word 2000 9.0.6926 SP-3.
    If someone wants to have a look, I've prepared a small test example to show this weird behavior.
    Thanks,
    Paolo

    ashee1,
    Please refer XMLP User Guide Chapter 9. You need to define data definitions and upload the data template to DataTemplate filed.
    Create the Template Definition and upload your RTF Template.
    Create a Report Definition in Concurrent Program/Manager and set the executable as XDODTEXE. make sure the program short name is the same as Data Definition.
    Set the output type as XML and the OPP will pick your RTF Template.
    -Ashish

  • How can I get SessionID from SOAP Header in MessageMapping

    Hello experts,
    I've got a Abap Proxy --> PI --> WebService scenario. I do the call to the web service and it returns me the data and a SessionID in the SOAP header. I've got a message mapping for the response, and in this message mapping I need to get this sessionID because I have to use it later.
    I have tried with a UDF with this code:
    String headerField = "";
    try
      String key="SessionID";
      java.util.Map map;
      // get runtime constant map
      map = container.getTransformationParameters();
      // get value of header field by using variable key
      headerField = (String) map.get(key);
    catch(Exception e){}
    if(headerField==null)
        headerField = "";
    return headerField;
    But it returns me nothing.
    In sxmb_moni I can see the sessionID (see attached file), so It should be possible to access it.
    How can I do to get this data????
    Many thanks.

    Thanks Indrajit.
    I have found a solution. I have to use the option: Do Not Use SOAP Envelope in my communication channel.
    But as I am using web services I have to create the SOAP Envelope in my mapping (in request and in response).
    I have created 2 xslt mapping files: one for request and one for response. The xslt mapping for the request it is placed in second position in my operation mapping. This xslt maping just move the fields and add the soap envelope (header and body, and inside the body places the data from 1st mapping).
    The response xslt mapping it is placed directly in my operation mapping (in response area). It transforms the SOAP response into my Message Type.
    Here you can find my xslt for request (sessionID, in0, in1 and in2 are fields from my source message type):
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <SOAP:Envelope xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope">
          <SOAP:Header>
         <ses:sessionIDHeader xmlns:ses="http://xml.apache.org/axis/session">
                 <sessionID><xsl:value-of select="*/sessionID"/></sessionID>
             </ses:sessionIDHeader>
          </SOAP:Header>
          <SOAP:Body>
          <ser:invokeService xmlns:ser="http://www.w3.org/2003/05/soap-envelope">
             <in0><xsl:value-of select="*/in0"/></in0>
             <in1><xsl:value-of select="*/in1"/></in1>
             <in2><xsl:value-of select="*/in2"/></in2>
          </ser:invokeService>
          </SOAP:Body>
        </SOAP:Envelope>
      </xsl:template>
    </xsl:stylesheet>
    Here is xslt for response (invokeServiceReturn,sessionIDare fields from my target message type):
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <ns1:MT_invokeServiceResponse xmlns:ns1="http://saras.com/pi/creditoycaucion">
            <invokeServiceReturn><xsl:value-of select="/*/*/*/invokeServiceReturn"/></invokeServiceReturn>
            <sessionID><xsl:value-of select="*/*/*/sessionID"/></sessionID>
        </ns1:MT_invokeServiceResponse>
      </xsl:template>
    </xsl:stylesheet>
    Kind Regards.

  • Accessing XI SOAP Header in Mapping

    We want to access the SOAP envelope information in the XI mapping.  We need to query some values based on the following XPath:
    /SOAP:Envelope/SOAP:Header/SAP:HopList/SAP:Hop/SAP:Engine
    Is there a way to access the XI SOAP Header?  Can we do this through a User defined function?  Another option we have is to get the Host name through Java.  But accessing the SOAP Header would probably add some more value - especially if we need to access other values.
    Based on the integration server value, we need to do different mapping for certain fields.  We can use Value Mapping.
    Thanks,
    Jay Malla
    Licensed To Code
    Genentech SAP XI Team

    Hello Jay,
    Did you solved your issue? I have the same problem and don't know how to find a solution.
    If you did, please contact me. My e-mail is [email protected]
    Regards

  • Consume web service in ABAP proxy with SOAP header

    Hi Thomas ,
    I am trying to consume web service in  ABAP . I have followed the procedure from one of your web blog <a href="/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap a Developer's Journal Part XIV - Consuming WebServices with ABAP</a> . (640 release).
    I need to pass SOAP header along with SOAP body. As you mentioned I have used if_wsprotocol_ws_header interface to pass header but it is still failing.
    Please see below code and please give some direction to fix the issue.
    1.Create ABAP proxy for WSDL (http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL). It has created structures only for SOAP body.
    2.Create Logical port
    3.Create following program to call proxy
    REPORT  zproxy.
    DATA: ref_stock TYPE REF TO zzco_stock_quotes_soap ,
          ws_header TYPE REF TO if_wsprotocol_ws_header,
          name TYPE string,
          namespace TYPE string.
    TRY.
        CREATE OBJECT ref_stock
      get WS_HEADER protocol
        ws_header ?= ref_stock->get_protocol('IF_WSPROTOCOL_WS_HEADER').
      set somehow header as iXML-DOM tree
        DATA: ixml TYPE REF TO if_ixml,
              xml_document TYPE REF TO if_ixml_document,
              xml_root TYPE REF TO if_ixml_element,
              xml_element TYPE REF TO if_ixml_element,
              xml_node TYPE REF TO if_ixml_node.
        DATA l_xstring        TYPE xstring.
        DATA l_string         TYPE string.
        FIELD-SYMBOLS <fs_xstring> TYPE xstring.
      Additional Header:
        CONCATENATE
    '<soap:Header>'
    '<s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">'
    '<s1:RegisteredUser>'
    '<s1:UserID>[email protected]</s1:UserID>'
    '<s1:Password>aaaaaaaa</s1:Password>'
    '</s1:RegisteredUser></s1:LicenseInfo>'
    '</soap:Header>' INTO l_string.
      convert to xstring
        l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
        IF NOT l_string IS INITIAL.
        create iXML DOM document from XML xstring
          CALL FUNCTION 'SDIXML_XML_TO_DOM'
            EXPORTING
              xml           = l_xstring
            IMPORTING
              document      = xml_document
            EXCEPTIONS
              invalid_input = 1
              OTHERS        = 2.
          IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
            xml_root = xml_document->get_root_element( ).
            xml_element ?= xml_root->get_first_child( ).
          add header element by element to SOAP header
            WHILE NOT xml_element IS INITIAL.
              name = xml_element->get_name( ).
              namespace = 'http://swanandmokashi.com' . "xml_element->get_namespace_uri( ).
              IF NOT xml_element IS INITIAL.
              ENDIF.
              ws_header->set_request_header(
                          name = name
                          namespace = namespace
                          dom = xml_element ).
              xml_element ?= xml_element->get_next( ).
            ENDWHILE.
          ENDIF.
        ENDIF.
      CATCH cx_ai_system_fault .
    ENDTRY.
    *Call soap body using abap proxy class.
    DATA: get_quotes TYPE zzget_quotes_soap_out .
    DATA: get_quotes1 TYPE zzget_quotes_soap_in .
    get_quotes1-quote_ticker = 'GE'.
    TRY.
        CALL METHOD ref_stock->get_stock_quotes
          EXPORTING
            get_quotes1 = get_quotes1
          IMPORTING
            get_quotes  = get_quotes.
      CATCH cx_ai_system_fault .
      CATCH cx_ai_application_fault .
    ENDTRY.
    4.It is throwing cx_ai_system_fault error.
    SOAP details:
    Input:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding" >
    <soap:Header>
    <s1:LicenseInfo xmlns:s1="http://ws.strikeiron.com">
    <s1:RegisteredUser>
    <s1:UserID>[email protected]</s1:UserID>
    <s1:Password>aaaaaaaa</s1:Password>
    </s1:RegisteredUser>
    </s1:LicenseInfo>
    </soap:Header>
    <soap:Body>
    <tns:GetQuotes xmlns:tns="http://swanandmokashi.com">
    <tns:QuoteTicker>GE</tns:QuoteTicker>
    </tns:GetQuotes>
    </soap:Body>
    </soap:Envelope>
    Thanks,
    Kavitha.

    Hi ,
    Thank you for the response. Did you passed user email and password ([email protected] /aaaaaaaa) part of licenseinfo->resisteredUser along with Quoteticker GE in analyzer?
    <a href="http://www.strikeiron.com/Analyzer/OnlineAnalyzer.aspx?WSDL=http://ws.strikeiron.com/SwanandMokashi/StockQuotes?WSDL">ANALYZER</a>
    Thanks,
    Kavitha.

  • Reading custom SOAP header with XHeaderName1

    Hello Experts,
    I have a SOAP to File scenario and I am trying to do dynamic receiver determination by looking at the SOAP request header info. I am adding a custom field (System_ID) that I want rules to run against in Receiver Determination..
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:*******************">
    <soapenv:Header>
    <System_ID>100</System_ID>
    </soapenv:Header>
      <soapenv:Body>
       </soapenv:Body>
    </soapenv:Envelope>
    In the Receiver Determination I have multiple rules using SOAP context object to  XHeaderName1 = the System_ID (100) to pass the message to the right system at runtime according to the  System_ID.
    In the SOAP sender channel I have Set Adapter-Specific Message Attributes and Variable Transport Binding checked. I also have the variable name System_ID in the first Variable Header (XHeaderName1).
    In the SOAP sender Conversion Parameters I have Do Not Use SOAP Envelope and Keep Headers checked, as well as nosoap=true in the SOAP request URL.
    I'm getting the System ID to show in XI in sxmb_moni in the Header but no where do I see it being used with XHeaderName1.
    Am I using XHeaderName1 right? If not could you advise as to how XHeaderName1 should be used?
    My requirement is to read system ID from Header, not payload.
    Thank you!
    Tim

    I was able to find a solution to my problem.
    I created a basic senario below to test:
    1.A basic Asynchronous scenario is created using a SOAP sender adapter to 2 possible flat file receivers.
    2.The SOAP sender channel will have the option u201CDo Not Use SOAP envelopeu201D checked and SOAPUI URL will have u201C&nosoap=trueu201D added to the end.
    3.The receiver system name will be stored in the WS-Addressing u201CActionu201D field sent from SOAPUI.
    4.Two ABAP mappings are created. One mapping will extract the system number from the WS-Addressing u201CActionu201D field. The other mapping will extract just the body of the SOAP message to send along. Using regex and string manipulation in the ABAP mappings we can reuse the mappings for any SOAP message.
    5.Enhanced (Extended) Receiver Determination is selected and interface mapping using system/XI ReceiverDetermination  service interface is used to capture the receiver system.
    While this is a solution is not the best, it is a solution. Upon research I found a recent SAP Note 1385579 talking about implementing a SAP delivered generic SOAP Sender AXIS handler com.sap.aii.axis.soap.HeaderExtractionHandler to extract SOAP Header elements and place in message attributes. I will be trying this out.

  • HTTP response code 500 : Error during parsing of SOAP header

    Hi Experts,
    I have a MAIL to IDOC scenario.  An external third party emails invoices to our inbox - which we pick up and process the attachment.  All is well when I test the scenario internally, but when the third party emails it fails with (see ERROR MESSAGE below).
    When I look at the SOAP header of the failed message I see the values from the dump in this field:
      <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderTHREAD-INDEX">AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQAAV4L06ABZuwsAAK/f9vgAAF/GSAAAYmRYARIKwtQAV5R9SABMo5bsAGQQyvAAVqsjyABOh9uMAFXTa2QAWEjsfABaEvp4AFaL1NQAV5MnUABXiVbIAGc7LsQAYVN9SABLfYQIAEwF3nQAWSL2lABn5ZgIAEf/k8gAWeVgrAAJaSZIAAElM4gATZR0GA=</sap:Record>
    Can anyone tell me what SHeaderTHREAD-INDEX does?  Or what my problem is  (Our email is Outlook)
    ERROR MESSAGE.........
    SOAPFault received from Integration Server. ErrorCode/Category: XIProtocol/WRONG_VALUE; Params: SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(3)sap:Record(14), AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQAAV4L06ABZuwsAAK/f9vgAAF/GSAAAYmRYARIKwtQAV5R9SABMo5bsAGQQyvAAVqsjyABOh9uMAFXTa2QAWEjsfABaEvp4AFaL1NQAV5MnUABXiVbIAGc7LsQAYVN9SABLfYQIAEwF3nQAWSL2lABn5ZgIAEf/k8gAWeVgrAAJaSZIAAElM4gATZR0GA=協彎䅍䔾ਉ़䥎噏䥃䕟乏㸸㌱ㄵㄹ㰯䥎噏䥃䕟乏㸊उ㱁䵏啎呟䕘䍌彖䅔㸷⸵〼⽁䵏啎呟䕘䍌彖䅔㸊उ㱃啒剅乃失㹅啒㰯䍕剒䕎䍙ㄾਉ़䅍何乔彖䅔㸱⸴㜼⽁ꯃ䅢坡汫, ST: ST_XM; AdditionalText: An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC; ApplicationFaultMessage:  ; ErrorStack: XML tag SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(3)sap:Record(14) (or one of the attributes) has the incorrect value AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQ An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC Data loss occurred when converting AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1p
    Transmitting the message to endpoint http://sdcxp1-ci.na.fmo.com:8000/sap/xi/engine?type=entry using connection AFW failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Received HTTP response code 500 : Error during parsing of SOAP header.

    We work with Microsoft Outlook, but I'm sure this could work with any email system.
    This error only came from external emails - what we did in the end is to get the third party to email a particular email (email1) in our company.  This is set up as a regular email account.  On this email put a forward rule to email2 for a particular sender/subject.  email2 is set up as POP3 so that XD1 can poll it - we also block any emails except from email1.
    Doing this accomplishes a couple of things:
    1)  We get around the error because XI polls email2 (which has adapter settings of IMAP4 so we can see MAIL adapter attributes ie. sender, subject etc...When we originally had as POP3 we were not able to see these - but setting as IMAP4 causes the error for external emailers)
    2) We have a SPAM filter - the XI email is clean from SPAM and the adapter will not have errors, as it only receives valid emails to process
    3) We have a central email (email1) which is used to archive all XI emails - we use this for all email scenarios (as we also save to folder and forward in the rule)
    Hope this helps your situation.

  • Change Soap Header in P2P WebService (No PI available)

    Hi Experts,
    I need your help with a Webservice we are building.
    --Facts--
    We have the requirement to build a WebService in CRM that will be consumed by an external system. (We are service Providers)
    Since we have no PI available we are building it as a Function Module that will be later transformed into a WebService.
    The WebService / communication will be Asynchronous. We want to use WS-Adressing to handle the asynchonous process. (Check the requirement Backgroud at the end)
    We have a sample xml message in which we need to base and build the service WSDL based on:
    <?xml version="1.0" encoding="utf-8" ?>
    - <NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/"> 
    - <NS1:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> 
    - <requestHeader> 
    <systemID>DEFAULT</systemID>  
    <messageID>MSGID</messageID>  
    <aplicativoOrigen>bizagi</aplicativoOrigen>  
    <timeStamp>2014-12-06T20:24:33.839428</timeStamp>  
    <operacion>crearProspecto</operacion>  
    </requestHeader>
    <wsa:To>http://127.0.0.1:7700/dummy</wsa:To>  
    - <wsa:ReplyTo> 
    <wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>  
    </wsa:ReplyTo>
    <wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>  
    <wsa:Action>crearProspecto</wsa:Action>  
    </NS1:Header>
    + <NS1:Body> 
    - <crearProspecto xmlns:ges="http://grupobancolombia.com/intf/GestionarProspectosCRM"> 
    - <datosGenerales> 
    <agenteRetencion>ac</agenteRetencion>  
    </datosGenerales>
    </crearProspecto>
    </NS1:Body>
    </NS1:Envelope>
    -- Background --
    1- We have a CRM system with no PI and an external system (INT) to which we need to communicate in an Asynchronous way. Simply put, we need to provide to and consume from this non SAP System.
    (This INT system is the equivalent of an SAP PI system and it will be responsible to transform and reroute the messages to the corresponding legacy systems)
    2- We want to allow the creation of BPs in an Asynchronous way. The way we want to achieve Asynchronous communication is by means of two Web services.
    a.      CRM publishes a WS that is consumed by the INT (directly no PI)
    In the header of this message we will be using WS-Adressing standard and receiving from the INT the MessageID field.
    CRM receives the messages, stores the information (does not process it) and immediately sends an accepted HTTP 202 code as a response to the INT.
    b.      INT also publishes a WS that is consumed by the CRM and is used to receive the response of the first message from INT to CRMAfter X amount of time (Hours or days), the CRM gets the stored data and processes it finally creating the BP in the system. Once the BP is successfully created, CRM Consumes this WS exposed by the INT and sends the information that the BP has been finally created. The RelatesTo field in the header is then matched with the MessageID field sent before in the WS-A header and this way the INT finds out to which original message this second Web Service correlates to.
    3- Please consider no PI is available,
    --Question--
    How can we build a WSDL for this service? I am asking in specifically how do you build a WSDL with a header with 4 fields and WS-Adressing fields also. Keep in mind that we have no PI and we are using a Function Module to Build the Service.
    - <requestHeader>
    <systemID>DEFAULT</systemID>  
    <messageID>MSGID</messageID>  
    <aplicativoOrigen>bizagi</aplicativoOrigen>  
    <timeStamp>2014-12-06T20:24:33.839428</timeStamp>  
    <operacion>crearProspecto</operacion>  
    </requestHeader>
    <wsa:To>http://127.0.0.1:7700/dummy</wsa:To>
    - <wsa:ReplyTo>
    <wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>  
    </wsa:ReplyTo>
    <wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>
    <wsa:Action>crearProspecto</wsa:Action>
    I am attaching the XML and a WSDL that was provided to us, but not generated by us in CRM. We need to create a service with a WSDL similar to that one in the CRM
    Thanks!
    Pablo.

    Hi Ganesh,
    Please go through this link.
    http://www.sapag.co.in/SAP-XI-SOAP-Adapter-FAQ'S.html
    I think this would be helpful for you..
    Reward points if useful,
    Swamy Kunche

Maybe you are looking for