RFC- XML header item mapping

Hello All,
I have the folowing scenario:
I have an RFC table that contains header and line details in the same line. for instance:
Header Num, header text, line num, line text
1             abc          10        d
1             abc          20        g
2             def          10        h
I want to output this to an XML file with hierarchy e.g.
<Header>
  <Num>1</Num>
  <Text>abc</Text>
  <Item>
     <num>10</num>
     <text>d</text>
  </Item>
  <Item>
     <num>20</num>
     <text>g</text>
  </Item>
</Header>
<Header>
  <Num>2</Num>
  <Text>def</Text>
  <Item>
     <num>10</num>
     <text>h</text>
  </Item>
</Header>
I tries using splitbyvalue on valuechange but this doesn't work. How exactly is the mapping for this?
Thanks,
Yoni

Hi,
Just try this:
<RFCLine>---splitbyvalue<Num>
<RFCLine>---splitbyvalue<Text>
detail
<RFCLine)-splitbyValue-removecontext---<num>
<RFCLine)-splitbyValue-removecontext---<text>
Regards
vijaya

Similar Messages

  • Header & item mapping

    hi all ,
    i am doing file to idoc
    i have source structure as
    header
    item1
    item2
    item3
    and my idoc wmmbid02  as stru
    E1MBXYH  1.1
        E1MBXYI. 1.9999
    i am able to convert soure file to xml as below (inbound playload ) using sender fcc.
    <zheader>
    <zitem>
    i  defined my message source mapping (message type ) as below.
    mt_f2idoc
         zE1MBXYH
         ziE1MBXYI    (same level as header)
    and mapped to target  . (disabled edidc seg , given 1 to segements attr)
    *ques*
    i am getting run time exp in sxMB_MONI for mapping :
    That "Cannot produce target element /WMMBID02/IDOC/E1MBXYH/E1MBXYI. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd "
    what may be probelm ?
    please help me out .
    Thanks
    Sridhar

    Hi
    if u r getting the error like can not produce target element
    to make the error correction u can do the followng tests.
    forst check your Message Mappinh that u have created, you can test the message mapping in the test tab
    go to the test tab and execute and check whether the target strctute is generate or not.
    if the target structure will not be generated that it mwans some mandatpry nodes are not mapped.then mapped all the nodes and then check.
    if ur tyarget structure is generated in message mapping in the test tab then go to SXMB_MONI and thake the payload form the moni , copy this paylod in the message mapping and then  check ur message mapping. u will come to know about the mapping error.
    if u still face the problem please reply me back.
    Thanks
    Rinku

  • Adding Encoding in XML header without mapping

    Hi Gurus,
    I am stuck in a situation where in a pass through scenario, I need to add encoding type in XML header.
    Below is example -
    Current Situation - <?xml version="1.0"?>
    Expected result -  <?xml version="1.0" encoding="UTF-8"?>
    Can anybody help me in this regard? how to achieve this?
    Regards
    Vidhi S

    Hi Vidhi
    Use it in the below way in the receiver adapter.
    Module name: AF_Modules/XMLAnonymizerBean
    Parameter name: anonymizer.encoding
    This will work. I have tested already.

  • Problem mapping header/items in 1 Message Type

    Hello,
    I'm currently facing the following problem in my message mapping:
    On my 'CRM side'
    I have a MessageType (DataType) consisting out of +/- 10 header fields and a field called 'ITEMS'
    'ITEMS' is table type field consisting out of +/- 5 item fields. Ofcourse 'ITEMS' can occur min1 time - max ?? times
    On My 'Dbase' side I have a MT containing 2 'update' statements
    1 table is updated for every header record ( mapped with header fields )
    1 table is updated for every item ( mapped with header fields as well as item fields )
    As far as the header data is concerned everything works fine.
    The problem is in the update per item.
    The fields that are mapped with the fields inside 'ITEMS' are working fine.
    But ... I need to put 3 fields from my header level in the 'item table' as well. So I mapped them from header level to 'Item table'
    This seems to work fine as long as I have only 1 item. From the moment I have more then 1 item, the mapping throws an error that he can not create the target item.
    I have the impression that he 'looses' the link between header and item(s) from the second item on.
    Can somebody let me know that I have to use a special function or something to do this type of mapping ( mapping from header level towards item level ) ?
    I tried already some things with the functions 'Remove context' and 'CollapseContext' but this does not seem to help.
    Every help is welcome,

    Hi,
    Here you will be passing some values from Header Segments to Item level. So definately there should be a link available between them to pass the appropriate values..
    For multiple Item fields you need to use the single header fileds as common
    you should go for UseOneToMany API in Node function
    Header field to be passed                  --------->
    (Update table for Item level) ITem Node ------->   UseOneToMany  -----> splitByValue -------> Target field
    (Update table for Item level) ITem Node ------->
    Thanks
    swarup

  • Header/Line Item Mapping Problem

    Hi all
    I am trying to achieve some kind of header to line item mapping using the graphical mapping tool. The scenario is as following:
    PU1/PA1/NAME
    My big problem now is with NAME in the NM1 segment, which is kind of a header to item level mapping since it should become part of PU1 in the target structure which is created by the RMR segments of the source structure. I've tried to use the built-in useOneAsMany function, which works fine if the NM1 segment is always there. Nevertheless, this does not work if the NM1 segment is missing since the function apparently checks the context all the time and has then problems if the segment does not exist. I've tried a global variable with user-defined set and get functions, too, but didn't get it to work either.
    I hope that my explanations make any sense. Can maybe anybody help me to get this working? Any help would be appreciated.
    Thanks,
    Daniel

    Hi Daniel
    Node function <i>useoneasmany</i> will work only if the source field is available. If this source is missing then the MM will through an error. We can make use of ifexists function, using this we can map the soruce to target. the use is the value is mapped on if the source field exists. hope this helps
    thkx
    Prabhu

  • Java Error in RFC Lookup in XSLT Mapping usinf Java helper class

    Hi All,
    I am doing RFC Lookup in XSLT Mapping using Java Helper class.
    The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
    Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
    Following is the code I have written in XSLT for the lookup:
         <xsl:template name="Lookup_1">
              <xsl:param name="STDPN"/>
                   <rfc:RFC_READ_TABLE>
                        <QUERY_TABLE>KNA1</QUERY_TABLE>
                        <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$STDPN"/>
                             </TEXT></item>
                        </OPTIONS>
                        <FIELDS>
                             <item>
                                  <FIELDNAME>KUNNR</FIELDNAME>
                             </item>
                        </FIELDS>
                   </rfc:RFC_READ_TABLE>
              </xsl:variable>
              <xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
              <xsl:element name="STDPN">
                   <xsl:value-of select="$response//DATA/item/WA"/>
              </xsl:element>
         </xsl:template>
         <xsl:template name="Lookup_2">
              <xsl:param name="BELNR"/>
                   <xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
                   <xsl:variable name="request1">
                        <rfc:RFC_READ_TABLE>
                             <QUERY_TABLE>ZTABLE</QUERY_TABLE>
                             <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$Query"/>
                                  </TEXT></item>
                             </OPTIONS>
                             <FIELDS>
                                  <item>
                                       <FIELDNAME>KUNAG</FIELDNAME>
                                  </item>
                             </FIELDS>
                        </rfc:RFC_READ_TABLE>
                   </xsl:variable>
                   <xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
                   <xsl:element name="BELNR">
                        <xsl:value-of select="$response1//DATA/item/WA"/>
                   </xsl:element>
         </xsl:template>
    My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
    Thanks and Regards,
    Atul

    Hi Atul,
    I had the same problem like you had.
    The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
    Source source = new DOMSource(request.item(0));
    So I've created a workaround for this problem.
    In the call of the template I've put the request as a parameter object at the template call:
    <xsl:with-param name="req">
    <rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <APPLICATION>Z001</APPLICATION>
      <FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
      <MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
      <PLANT>FSD0</PLANT>
      <VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
      <BOMITEM_DATA/>
    </rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
    </xsl:with-param>
    With this change the request will be provided as a String object and not as a NodeList object.
    Afterwards the RfcLookup.java has to be changed to the following:
    package com.franke.mappings;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.lookup.Channel;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.lookup.RfcAccessor;
    import com.sap.aii.mapping.lookup.LookupService;
    import com.sap.aii.mapping.lookup.XmlPayload;
    * @author Thorsten Nordholm Søbirk, AppliCon A/S
    * Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
    * The class is generic in that it can be used to call any remote-enabled
    * function module in R/3. Generation of the XML request document and parsing of
    * the XML response is left to the stylesheet, where this can be done in a very
    * natural manner.
    * TD:
    * Changed the class that request is sent as String, because of IndexOutOfBound-exception
    * When sending multiple requests in one XSLT mapping.
    public class RfcLookup {
         * Execute RFC lookup.
         * @param request RFC request - TD: changed to String
         * @param service name of service
         * @param channelName name of communication channel
         * @param inputParam mapping parameters
         * @return Node containing RFC response
         public static Node execute( String request,
                 String service,
                 String channelName,
                 Map inputParam)
              AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
              Node responseNode = null;
              try {
                  // Get channel and accessor
                  Channel channel = LookupService.getChannel(service, channelName);
                  RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   // Serialise request NodeList - TD: Not needed anymore as request is String
                   /*TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer();
                   Source source = new DOMSource(request.item(0));
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();
                   StreamResult streamResult = new StreamResult(baos);
                   transformer.transform(source, streamResult);*/
                    // TD: Add xml header and remove linefeeds for the request string
                    request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", ""); 
                    // TD: Get byte Array from request String to send afterwards
                    byte[] requestBytes = request.getBytes();
                   // TD: Not used anymore as request is String
                    //byte[] requestBytes = baos.toByteArray();
                    trace.addDebugMessage("RFC Request: " + new String(requestBytes));
                    // Create input stream representing the function module request message
                    InputStream inputStream = new ByteArrayInputStream(requestBytes);
                    // Create XmlPayload
                    XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
                    // Execute lookup
                    XmlPayload responsePayload = accessor.call(requestPayload);
                    InputStream responseStream = responsePayload.getContent();
                    TeeInputStream tee = new TeeInputStream(responseStream);
                    // Create DOM tree for response
                    DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    Document document = docBuilder.parse(tee);
                    trace.addDebugMessage("RFC Response: " + tee.getStringContent());
                    responseNode = document.getFirstChild();
              } catch (Throwable t) {
                   StringWriter sw = new StringWriter();
                   t.printStackTrace(new PrintWriter(sw));
                   trace.addWarning(sw.toString());
              return responseNode;
         * Helper class which collects stream input while reading.
         static class TeeInputStream extends InputStream {
               private ByteArrayOutputStream baos;
               private InputStream wrappedInputStream;
               TeeInputStream(InputStream inputStream) {
                    baos = new ByteArrayOutputStream();
                    wrappedInputStream = inputStream;
               * @return stream content as String
               String getStringContent() {
                    return baos.toString();
              /* (non-Javadoc)
              * @see java.io.InputStream#read()
              public int read() throws IOException {
                   int r = wrappedInputStream.read();
                   baos.write(r);
                   return r;
    Then you need to compile and upload this class and it should work.
    I hope that this helps you.
    Best regards
    Till

  • RFC Call in Message Mapping

    Hi there
    I am trying to do a table lookup from XI in my message mapping by calling an remote RFC. The return values must return ALL the value for a specific column. The code I have here returns a blank value. Can someone see what my problem may be?
    My variables for my UDF is:
    public String UDF_RFC(String DBTABLE,String MATNR,String FIELDS,String businessSystem,String communicationChannel,Container container)
    And my Code:
    "My code appears to mess up my message structure, I will attach it in a responce..
    Thanks,
    Jan
    Edited by: Jan de Lange on Sep 16, 2009 11:09 AM
    Edited by: Jan de Lange on Sep 16, 2009 11:09 AM

    // declare parameters
    String returnValue = "";
    String rfcXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns0:ZINT_XI_GET_SITES xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"><LT_SITES><item><WERKS></WERKS></item></LT_SITES></ns0:ZINT_XI_GET_SITES>";
    AbstractTrace trace = container.getTrace();
    RfcAccessor accessor = null;
    ByteArrayOutputStream out = null;
    try
    // 1. Determine a communication channel (Business system + Communication channel)
    Channel channel = LookupService.getChannel(businessSystem,communicationChannel);
    // 2. Get a RFC accessor for the channel.
    accessor = LookupService.getRfcAccessor(channel);
    // 3. Create an XML input stream that represents the RFC request message.
    InputStream inputStream = new ByteArrayInputStream(rfcXML.getBytes());
    // 4. Create the XML Payload
    XmlPayload payload = LookupService.getXmlPayload(inputStream);
    // 5. Execute the lookup.
    Payload result = null;
    result = accessor.call(payload);
    InputStream in = result.getContent();
    // 6. Create a DOM structure from the input XML
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(in);
    NodeList      nodelist = document.getElementsByTagName("*");
    Node          node;
    Element       element;
    NamedNodeMap  nnm = null;
    String attrname;
    String attrval;
    int    i, len;
    len = nodelist.getLength();
    for (int j=0; j < len; j++) {
                element = (Element)nodelist.item(j);
                System.out.println(element.getTagName() + ":");
                nnm = element.getAttributes();
            if (nnm != null) {
                for (i=0; i<nnm.getLength(); i++) {
                    node = nnm.item(i);
                    attrname = node.getNodeName();
                    attrval  = node.getNodeValue();
                    returnValue += attrname + " = " + attrval + "##";
    // 7. To free resources, close the accessor..
    if (accessor!=null) {
    try {
    accessor.close();
    } catch (LookupException e) {
    trace.addWarning("Error while closing accessor " + e.getMessage() );
    } catch (Exception e) {
    trace.addWarning("Error" + e);
    // 8. return a single id value to the message mapping
    return returnValue;

  • Text to Xml-Header Line

    Hi
    In text to xml scenario...how to eliminate the headers in text file
    Text file data is like
    H1-header line1
    H2-header line 2
    E100 Rahul - Data
    E101 Siva - Data.
    I need only data in xml file..what setting i have to make in file content conversion parameters in sender side..In blogs it is given for text to xml..In those i am not getting regarding header line removal from text file (sender)
    Give some suggestion to get this scenario
    Regards
    Prakash

    Hi Prakash,
    Create the Data type with all fields (Headr & Item) but while mapping do not map the header filds to target. But in your Content Conversion Define every thing (Header & Item filed lengths etc.) so this way your file will be ficked up by adapter and while mapping only Item values will be mapped and you will get only item data in your XML file.
    Below is the example when you have HEADER & ITEM structure.
    FCC is case sensitive, give all the names in FCC same as your Data Type.
    In Recordset Structure = Header,1,Item,*
    Header.fieldFixedLengths = (field lengths) e.g. 1, 4, 7
    Header.fixedLengthTooShortHandling=ignore
    Header.endSeperator='nl'
    Item.fieldFixedLengths = give the item field length as shown above
    Item.endSeparator = 'nl'
    Item.lastFieldsOptional = YES
    Regards,
    Sarvesh
    ****Reward points, if found helpfull.

  • Create a new line in the xml-header structure.

    Hi,
    Can any one tell me how to create a new line in the xml-header structure.
    I am doing a IDOC-XI-HTTP scenario.
    Actually my mapping create this file:
    <b><?xml version="1.0" encoding="utf-8"?>
    <ORDERS05>
      <IDOC BEGIN="1">
        <EDI_DC40 SEGMENT="1"> </b>
    The result must look like this.
    <b><?xml version="1.0" encoding="utf-8"?>
    <ORDERS05>
      <IDOC BEGIN="1">
        <EDI_DC40 SEGMENT="1"> </b>
    Thanks and Regards,
    Eren

    Hi,
    thanks for you quick answer.
    I found a xsl script.
    It works fine.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
       <xsl:template match="*">
          <xsl:param name="depth">0</xsl:param>
          <!-- New line with indenting. -->
          <xsl:if test="$depth > 0">
             <xsl:text>    </xsl:text>
          </xsl:if>
          <xsl:text>&#xA;</xsl:text>
          <xsl:element name="{name(.)}">
             <xsl:for-each select="@*">
                <xsl:attribute name="{name(.)}"><xsl:value-of select="."/></xsl:attribute>
             </xsl:for-each>
             <xsl:apply-templates>
                <xsl:with-param name="depth" select="$depth + 1"/>
             </xsl:apply-templates>
          </xsl:element>
       </xsl:template>
    </xsl:stylesheet>
    Best regards
    Eren

  • Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy

    Hi there
    I am trying to consume a Web Service using ABAP Proxies.  I have done the following in the system:
    I configured the HTTP and HTTPS Proxy settings. 
    I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
    I created the proxy classes by using the WSDL provided by the system I'm trying to interface with. 
    I created my HTTP destination RFC via SM59. 
    I configured a logical port for the proxy. 
    I developed the ABAP code for calling the proxy. 
    In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
    I had a look at SM21 and the following message was written in the log:
    <b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
    SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>.  I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect.  I cannot find any ST22 entries.  The trace file looks as follows:
    SAP System ID: DGH
    Client: 009
    User: COLESKG
    System time: 072910
    System date: 20070531
    SAP Release: 700
    Host: hd307c
    Operating system: AIX
    DB System: ORACLE
    Program: ZUK_IPA00003
    Processing State: 0
    Location: Client
    Transport Binding: http://schemas.xmlsoap.org/soap/http
    SOAP Application: urn:sap-com:soap:runtime:application:client
    SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
    /runtime/protocol
    SOAP Protocols: <initial>
    Request Message: <initial>
    Response Message: <initial>
    Fault: <initial>
    Registry: <initial>
    SOAP Roles: <initial>
    Trace Level: 3
    Logging Level: 2
    Monitoring Level: 0
    Security Profile: <initial>
    WS Security Protocol: <initial>
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
    ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
    urn:sap-com:soap:runtime:application:client
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
    configuration
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
    http://schemas.xmlsoap.org/soap/http
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
    http://schemas.xmlsoap.org/soap/http
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
    .org/soap/http initialized
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
    created
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
    Protocol as SENDER with Priority 5
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
    Initialized
    INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
    Try to create instance for http://www.sap.com/webas/630/soap
    /runtime/session/protocol::http://www.sap.com/webas/630/soap
    /runtime/session/protocol/srt640_impl
    INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
    Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
    INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
    as SENDER with Priority 5
    INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
    create ICF Client for DESTINATION = ALSB
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
    Client created by DESTINATION
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
    DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
    :runtime:application:client initialized
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
    Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
    Error in module XMLParserGetNextElement:773
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
    Unallowed RFC-XML Tag
    Error in module XMLConverterReadTag:3061
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
    Unallowed RFC-XML Tag(24)
    Error in module ab_soap:4392
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
    failed with return code 1
    It then must be something in the config.  Has anyone got any idea why this message is encountered?
    Kind Regards
    Gustav Coleske
    Message was edited by:
            Gustav Coleske

    Hi,
    I have the same problem as described.
    Can you give me a little more information about the error you have solved in the proxy.
    Thanks for help
    John

  • Remove XML Header

    I am developing a Java Servlet and would like to query the database multiple times. I have used OracleXMLQuery and an array to be able to run three separate queries. My problem is occuring in my returned XML Document. Each query comes back with a XML Header such as:
    <?xml version = '1.0'?>
    <Query_1>
    <COL1>10</COL1>
    </Query_1>
    <?xml version = '1.0'?>
    <Query_2>
    <COL1>20</COL1>
    </Query_2>
    <?xml version = '1.0'?>
    <Query_3>
    <COL1>30</COL1>
    </Query_3>
    I have assigned the header separately and would just like to be able to turn off the generated header. My problem is coming when I am trying to use an applet and it does not like when it sees the XML header more than once. Any ideas or hints on how this can be done I would appreciate it.

    Hello this did solve my issue. I have same issue infact. I used this xsl mapping  as
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
    </xsl:stylesheet>
    But my output xml struıcture has broken. Should I  do some changing in my xsl mapping and how ?
    Regards,
    Ceren.

  • Boolean representation in RFC xml

    Hello, I have problems with representing boolean values in an RFC xml call using XI towards SAP. Using 'X' as a value for true does not seem to work. The BAPI I am calling through RFC xml is BAPI_CHARACT_CREATE and I am trying to set the parameter INTERVAL_ALLOWED. Anyone have a clue? Thanks

    Hi,
    Boolean functions return as an output either string true or false. As an true value they interpret either 1 or true (not case sensitive). Rest values are interpreted as false.
    In your case RFC data type is: ATXFE with value range: 'X' for true and ' ' for false then you can solved such case with simple message mapping:
    In mapping to RFC field use: boolean function "If" that returns either 'X' or ' '.
    In mapping from RFC field use: text function "equalsS" that check "X" and returns "true".
    Regards,
    Jakub

  • Adding additional XML Header in Target XML structure

    Hi all,
    I have a requirement that i need add one additional XML header to target XML messages. At the moment i can see default XML header as ,
    <?xml version="1.0" encoding="UTF-8" ?>
    <Test>
    <Add>Test Mesage</Add>
    </Test>
    But i would like to have one more additional header like below,
    <?xml version="1.0" encoding="UTF-8" ?>
    <?Siebel-Property-Set EscapeNames="false"?>
    <Test>
    <Add>Test Mesage</Add>
    </Test>
    Can some one help me to find a way to adding this additional header?
    Thanks in advance.
    Prasad Babu.

    Hi Prasad,
    Yes it is possible by Java Mapping. Please check my response for similar thread
    Re: Add XML header?

  • Create a new header+item after sync the item some informations are deleted

    Hi All,
    I have a DO with a backend adapter and 3 bapi wrapper (GetList, GetDetail, Create).
    When I create a new instance (header+item) on client side the data are correct in the database. After a sync the instance is also on the client and the Backend but he lost some informations in the item.
    For example i create e_top object (header) and t_vehicle object (item) the i added the item to the header an wirte it  in the database. In the datebase both tables for header and item are correct filled.
    Application Code:----
      public void SaveVehicle( java.lang.String Manufacturer, int Driver, java.lang.String Licence_Number, java.lang.String Type )  {
           VEHICLE_E_TOP e_top = model.createVEHICLE_E_TOP();
           e_top.setLICENCE_NUMBER(Licence_Number);
           wdContext.nodeVEHICLE_E_TOP().bind(Collections.singleton(e_top));
           wdContext.nodeVEHICLE_E_TOP().setLeadSelection(0);
           model.addToVEHICLE_E_TOPs(e_top);
           VEHICLE_T_VEHICLES t_vehicle = e_top.createNewT_VEHICLESs();
           t_vehicle.setDRIVER_ID(Driver);
           t_vehicle.setLICENCE_NUMBER(e_top.getLICENCE_NUMBER());
           t_vehicle.setMANUFACTURER(Manufacturer);
           t_vehicle.setTYPE(Type);
           wdContext.nodeVEHICLE_E_TOP().currentVEHICLE_E_TOPElement().model();
           e_top.addToT_VEHICLESs(t_vehicle);
           wdContext.nodeVEHICLE_T_VEHICLES().bind(Collections.singleton(t_vehicle));
           wdContext.nodeVEHICLE_T_VEHICLES().setLeadSelection(0);
           model.commit();
    Now when I snyc with the middleware the object is still on the client (1 row in the e_top table and 1 row in the item table) but in the row of the item table all data until the header key(Licence_Number) is deleted. In the Backend there is a new objekt with only the header imformations. 
    Best Regards,
    Dirk

    Hi,
    there was another post today n a similar issue. I still do not think it is a standard issue - so lets check first if your implementation is correct.
    You should have a look on the CREATE BADI in the backend and on the mapping in the DOE. I expect the CREATE handler does not get all informations form the client, cause you missed to do the propper mapping in the DOE on the middleware. Check this first. If you see the data on the client, the client side should be fine. Check the DOE and its mapping and the BADI implementation on the backend.
    Hope it helps!
    Regards,
    Oliver

  • Invalid XML, Expected item name child table but 'row' provided65171

    Hello Experts
    I am using SAP 8.81, PL05
    DTW is at 88.1.4 API Version 8.81.313
    I have problem in uploading data via DTW in UDO master type table.
    I only have problem in updating data in UDO master type table
    Detail log is Invalid XML, Expected item name 'ACC_VS_VIG' but got 'row' provided65171
    ACC_VS_VEH  - UDO
    ACC_VS_VEH - master type - UDT
    ACC_VS_VIG -master row type -UDT
    DTW ERROR FILE
    Code     Name     U_SrcNme     U_SrcRef     U_ManfNo     U_Manf     U_KModNo     U_ModelSpc     U_KTypNo     U_ModelTyp     U_BodyType     U_EngCapac     U_Cylinders     U_4WD     U_BrakeTyp     U_BrakeSys     U_Valves     U_StartDt     U_EndDt     U_CurrVolt     U_EngKGW     U_EngPS     U_DriveTyp     U_EngType     U_FuelType     U_Required     U_Publish     U_Flagged     U_FuelMix     U_CatlType     U_TranType     U_EngCC     U_ModGen     U_TypeDesc     U_Doors     U_FuelCap     U_ABS     U_ASR     U_Notes
    <---Do not fill this row----->                                                                                
    00010477     00010477
    ParentKey     LineNum     Code     U_PrdItG     U_BasePrc     U_Currency     U_Required     U_Publish     U_Notes
    <---Do not fill this row----->                                        
    00010477     1     00010477          10.78
    Please, please give me some suggestions
    Keith Lilley

    Hi Gordon
    Thanks for quick response,
    In DTW - Select Business Object I see the following:
    + Human Resources
    - User Defined Data
                  + Meta Data
                  + Tables (UDT)
                  - Objects (UDO)
                             UDO_ACC_VS_VEH
    After highlighting UDO_ACC_VS_VEH and Next then I see the following under Select Data Source:
    ACC_VS_VEH                                                                        CLICK BOX
                 ACC_VS_VIG                                                            CLICK BOX
    I then select the appropriate CSV's.  Everything Maps OK, Source Data OK but just noticed the following on Target Data:
    + ...  AdminInfo
    -  ...  ACC_VS_VEH
                   - ....Row
                        - .... Code                                 
                                      .    00010457
                        - ... Name
                                      .    00010457
    -  ...  ACC_VS_VIG
                  .....Row
                - .... Row
                        - .... Code                                 
                                      .    00010457
                        - ... U_BasePrc
                                      .    10.78
    Can you see the extra row with no by it. This is noted in the error message. Any ideas.  Also, from the above I assume this implies that ACC_VS_VIG IS the line object of ACC_VS_VEH.
    Regards
    Keith

Maybe you are looking for

  • How do i put my apps and music onto my new computer

    How do I put apps and music onto my new computer.

  • ENCORE IS RETARDED

    I have been attempting to use Encore since version 1. It was retarded then. I am now attempting to use Encore CS3. It is still retarded. Why can't you eggheads at ADOBE write a simple DVD authoring app that works AT LEAST as well as Pegasys DVD autho

  • Problem with variables declared as private?

    Hi all, I am currently having a very weird problem when i am running one of the JSP application deployed using weblogic. I have a variable x and is declared as private. By looking at the log file of every transaction done by the users, i can't trace

  • Apple TV vs. iPhone

    I want to stream Netflix and other media to my TV.  I'm not interested in viewing my photos and do not have much media saved to my Mac.  How much better is Apple TV for this than the new iPhone, if making calls is not an issue?  I have 2 TV's and it

  • FI/ABAP

    how to do customer aging analysis in abap. what r the fields to be used and what is the logic. Ols help me.