XSLT mapping - 2 messages to 1

Is it possible to map 2 xml files into 1 with only one XSLT mapping?
I need to use XSLT because the target message is a xml with only one tag of type string, and inside this string I need to pass the content of both source messages. But the only way of performing XML to string conversion is through XSLT.
I've managed to successfully perform 1 XML to string mapping, but I don't know how to proceed with 2 source xml's.
Thanks in advance.

Hi,
I think, XSLT mapping will read one xml document at a time.
So if get two xmls files under one tag(root element) then you can achieve this with message/xslt/java mapping.
Then it will be of type N:1 mapping
How are you planning to do in XI.. Are you using BPM here ? so that in the fork step you can two receivers (2 files) and execute transformation steps and send with 1 message.
http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
Hope this helps,
Regards,
Moorthy

Similar Messages

  • How to call xslt mapping in message transformbean

    Hi Folks,
    I have written a simple xslt mapping to convert 2 fields into different fields. That is working fine from me.
    I want to use this xslt mapping in message transformbean adapter module. I dont want to use this in operation mapping.  Can you please tell me how would I do this.
    How would I configure this.
    Thanks,
    Rohini

    Hi,
    According to me, we cannot call the xslt program/map from adapter module.
    Why we can't call is in adapter module we can use java EJBs, but what ever you suppose to call is not an EJB application.
    FYI
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3bdc14e1-0901-0010-b5a9-a01e29d75a6a
    Regards,
    Venkata Ramesh

  • Xslt mapping cidx message is Load Tender Motor

    Hi
    I am working on XSLT  Mapping from the below link SAP Technical
    Import corresponding XSD structure under External Definitions in IR. Here the corresponding CIDX message is Load Tender Motor.
    In the above line what is CIDX, I have little bit knowledge about that, I read that in Adapters topic CIDX, PIDX this are some industry standard adapters. but how to import that Load Tender Motor in to my Scenario.
    So can any body please go through that link and provide some usefull information.
    Thanks
    G V Anil

    Hi
    CIDX is adapter.use this thread for detail
    About CIDX
    CIDX scenario
    XI CIDX

  • XSLT-Mapping oder Message Mapping (grafisches Mapping)?

    Hallo,
    which mapping type is the best? xslt oder message mapping?
    Jens

    Hi,
    In terms of perfromance , XSLT is supposed to be very bad and is to be avoided whenever possibl.e
    Graphical Mapping is the best when it comes to performance of the mapping.
    But , there are a few features, which are not possible using graphical in which case you might have to go for JAVA/ ABAP / XSLT mapping.
    Regards,
    Bhavesh

  • Help Required for XSLT mapping

    Hi Folks,
    I am working on a scenario, where we had 17 different one to one mapping with same source strcture but different target structures. Source is a Idoc common for everyone.
    Sample Target Structure :
    Message Type(XYZ)
                     RECORDS(0,u)
                                             A(0,1)
                                             B(0,1)
                                             C(0,1)
                                             D(0,1)
    As per our requirement we need the output in which we need to have "GLOBE " at the top and the value of A, B, C and D on single row for each ouurance of RECORD. For 2nd occurance we need to change the line and 2 nd set of ABCD on 2nd row and so on. e.g.
    GLOBE
    0002044452KNA1 0000027079 0001E
    0002044452KNA1 0000027080 0001E
    0002044452KNA1 0000027080 0001E
    To acheive the above output we are using a XSLT map after Message Mapping
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no" encoding="UTF-8" omit-xml-declaration="yes"/>
    <xsl:preserve-space elements="*"/>
    <xsl:template match="/">GLOBE<xsl:text>&#xD;&#xA;</xsl:text>
    <xsl:for-each select="//RECORDS">
      <xsl:for-each select="*">
         <xsl:value-of select="current()"/>
      </xsl:for-each><xsl:text>&#xD;&#xA;</xsl:text></xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    NOW WE HAVE changed the 17 one to one maps to one multi mapping (1:17) as our source is same.
    Now as the output of this multi mapping is getting into XSL code, it is not able to parse it.
    How can we do the changes in this particular code So that we can Achieve:                     17 different file out of single multi mapping and XSL map like it was comming previously from 17 different maps.
    Thanks
    Pradeep

    Hi Pradeep,
    Depending on how you setup your multi mapping, when you execute you will end up with something like this as the xml output:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
      <ns0:Message1>
        <XYZ></XYZ>
        <XYZ></XYZ>
      </ns0:Message1>
    </ns0:Messages>
    Or this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
      <ns0:Message1>
        <XYZ></XYZ>
      </ns0:Message1>
      <ns0:Message2>
        <XYZ></XYZ>
      </ns0:Message2>
    </ns0:Messages>
    The single xml message with the u201CMessagesu201D wrapper is not split into separate messages until it hits one of the adapters in the adapter engine.  Perhaps you can try to adjust the xslt to expect this as input, but the output would still need to be <ns0:Messages>.  That might be what is causing the failure with your current xslt.  Can the flat file conversion in the file adapter?
    Thanks,
    -Russ

  • XSLT Mapping of Adapter-Specific Message Attributes

    Hi,
    We have the requirement to build a soap request with a custom soap envelop/header which contains a sessionId.
    Therefore we developed a xlst mapping which is called directly after a graphical mapping.
    In the graphical mapping the session id is written to the dynamic configuration.
    The goal is to read this session id in the xslt mapping from the dynamic configuration using XSLT Mapping of Adapter-Specific Message Attributes. We used  [this|http://help.sap.com/saphelp_nwpi711/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/content.htm] documentation as an example.
    But we are getting the following error: TransformerConfigurationException triggered while loading XSLT mapping. The error is raised at this node: <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    This is the coding of the xslt transformation:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns:ns1="urn:enterprise.soap.sforce.com"
          xmlns:map="java:java.util.Map"
          xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration"
          xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:output indent="no" />
    <xsl:param name="inputparam"/>
    <xsl:template match="/">
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com">
    <soapenv:Header>
    <urn:SessionHeader>
    <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/SOAP', 'sessionId')" />
    <xsl:variable name="dynamic-value" select="dyn:get($dynamic-conf, $dynamic-key)" />
    <urn:sessionId><xsl:value-of select="$dynamic-value"></xsl:value-of></urn:sessionId>
    </urn:SessionHeader>
    </soapenv:Header>
    <soapenv:Body>
    <xsl:copy-of select="*"/>
    </soapenv:Body>
    </soapenv:Envelope>
    </xsl:template>
    </xsl:stylesheet>
    Any help will be highly appreciated.
    Regards, Henk

    Hi, yes we did try that and lot's of other combination.
    The results of those trials are that it seems to go wrong with <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    When we enclose it with <xsl:if test="function-available('map:get')"> the transformation is not dumping, but the function is not available.
    Regards, Henk

  • XSLT mapping, how can I include a Runtime Constants in target message

    Hi, I would like in my XSLT mapping, to have an attribute include the MessageID.
    From my understanding of the online help [http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm], I have the following code in my XSL:
                   <xsl:param name="MessageId" />
                   <xsl:attribute name="filename">Output_<xsl:value-of select="$MessageId"/>.xml</xsl:attribute>
    But for now the result is to have a filename attribute that only contains: "Output_.xml" as if the $MessageId is empty.
    Anyone experienced successfully using one of those runtime constants with XSLT mapping ?
    Cheers,
    greg

    Hi, found the answer of why it was not running: I'm in a transform step of a BPM:
    For more info check this thread:
    [/message/435521#435521 [original link is broken]|/message/435521#435521 [original link is broken]]

  • FileName in ABAP XSLT Mapping

    Dear SDN,
    In an integration scenario we are using sender File Adapter and a  ABAP XSLT Mapping.
    Is there any way to get the source FileName from such mapping.  Im trying to use the adapter-specific message attributes, but it doesn't work, and I didn´t find an example, probably I and doing somthing wrong.
    regards,
    GP

    Thank you for your help,
    I just try to access the adapter-specific attibutes using:
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:variable name="filename"  select="key:create('http://sap.com/xi/XI/System/File', 'Directory')" />
    </xsl:stylesheet>
    but the following error raised:
    <SAP:Stack>Error while calling mapping program YXSLT_TEST (type Abap-XSLT, kernel error ID CX_XSLT_RUNTIME_ERROR) Call of unknown function</SAP:Stack>
    have you had this situation?

  • XSLT Mapping error

    Hi All
    I am working on PI 7.1 where I have customized standard XSLT mapping according to my requirement.
    I have to add 2 fields in the standard data type ReplenishmentOrder_Notfication from SNC 7.0 SWCV.
    In standard scenario once IDOC STPPOD.DELVRY03 is released from ECC the PI scenario send this to SNC Proxy ReplenishmentOrderNotification_In.
    In my requirement I have to send XML file generated from IDOC to one of Application Folder. I have customized data type, message type, operation mapping, service interface by coping standard things.
    So the changes I have done in standard XSLT mapping are just changin name of data type and not added any mapping for the two new fields I have added to the data type as its not require at the moment.
    When I am running test I am getting follwoing error in Trace. Here please notice that its mentioning standard xslt mapping program name only though on the top you see customized names.
    Please give your inputs to resolve the issue. Thanks.
    Operation Mapping
    StppodDelvry03_MT_ReceivedDeliveryNotification_01
    Name
    StppodDelvry03_MT_ReceivedDeliveryNotification_01
    Namespace
    http://sap.com/xi/SNC/Global
    Runtime error
    TransformerException occurred during XSLT mapping StppodDelvry03_ReceivedDeliveryNotification_01 (http://sap.com/xi/SNC/Global, 46c20a71-248e-11dc-c4be-dd500a115642, -1)
    <Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace> <Trace level="1" type="T">Interface Mapping http://sap.com/xi/SNC/Global StppodDelvry03_ReceivedDeliveryNotification_01 </Trace> <Trace level="1" type="T">TransfromerException during XSLT processing: Thrown: javax.xml.transform.TransformerException: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(, row:1, col:8)(, row=1, col=8) -&gt; com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(, row:1, col:8) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251) at com.sap.aii.ib.server.mapping.execution.AbstractMappingTransformer.transform(AbstractMappingTransfor
    Edited by: Amol on May 22, 2009 3:26 PM

    Hi Amol
    for the error CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV
    <Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace> <Trace level="1" type="T">
    just check this Thread issue is solved by restarting  the service verifySenderAgreement
    at thread
    Re: Wrong Sender Agreement
    Thanks
    Abhishek

  • XSLT mapping queries.

    Hi,
    I have a scenario in which I need to post the data in JMS queue from a proxy call.
    [Proxy>PI>JMS]. Here the MQ message is fed to a web application.
    The scenario contains two mapping viz message and XSLT mapping.
    The first one is message mapping and then XSLT is called.
    Now in the XSLT mapping CDATA tag is called to skip the xml parsing and send to JMS queue for HTML output in web application.
    My doubt is how can I achieve table formatting from PI. Few options can be
    1) incorporate xsl in CDATA tag of XSLT mapping for HTML tag for table format?
    2) instead of JMS queue, should I need to post in HTTP receiver directly?
    3) Is it the xsl need to add in Web application side for the sending xml from PI?
    Please help in my understanding.
    Thanks
    PV.

    Hi,
    Try with Java Proxy,you can directly update data in to web application or if you web application team ready to accept data in the form of web service then you no need to generate output in the form of HTML.
    Regards,
    Raj

  • XSLT Mapping Related

    Hello Experts,
    In a scenario we are sending Purchase orders and Purhase Order change from SAP to SNC through XI.
    Currently we are using Orders03 message type for IDOC.
    The requirement is to use Orders05 message type for IDOC.
    What changes would be necessary if we are to use Orders05 instead of Orders03
    - On SAP side,
    - in the XSLT mapping, and
    - On XI side.
    Thanks in advance,
    Suraj

    Hi,
    What changes would be necessary if we are to use Orders05 instead of Orders03
    - On SAP side,
    ==> you need to check your distribution model (BD64) and partner profiles (WE20) and adjust the settings there according to ORDERS05.
    - in the XSLT mapping, and
    ==> This depends on what your XSLT looks like. If there are any ORDERS03 specific statements, etc. or the structure is "heavily" changed from ORDERS03 to ORDERS05 you need to adjust the XSLT accordingly.
    - On XI side.
    ==> You need to import the ORDERS05 IDoc Metadata to XI Abap stack (IDX2). Also in IR you need to import the new IDoc, create message type and assign it to your mapping.
    Regards,
    Kai

  • XSLT mapping sorting against an output field

    Hi, all
    I am testing my XSLT mapping. Here is the output message type defintion:
    I want to sort f2 in my xslt mapping. Here is my mapping:
    <?xml version="1.0" encoding="UTF-8" ?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://fileconversion" xmlns:ns1="http://fileconversion">
        <xsl:template match="/">
          <ns1:TESTOUTPUT_MT>
            <Msg>
            <xsl:for-each select="ns0:TESTDATA_MT/Trans/Detail">
            <xsl:sort select="Transaction/Data/f2" />
              <Transaction>
                <Data>
                  <f1>
                    <xsl:value-of select="PERNR" />
                  </f1>
                  <f2>
                    <xsl:value-of select="POSITION" />
                  </f2>
                  <f3>
                    <xsl:value-of select="TEL" />
                  </f3>
                  <f4>
                    <xsl:value-of select="concat(concat(STREET,' '),CITY)" />
                  </f4>
                </Data>
              </Transaction>
                </xsl:for-each>
            </Msg>
          </ns1:TESTOUTPUT_MT>
        </xsl:template>
      </xsl:stylesheet>
    The sorting did not execute on field "f2" and the data is in the same order as the input.
    Note that I can do <xsl:sort select="POSITION " /> instead and it will work. But I am trying to test on sorting against output field as this is the requirement in the real interface.
    What did I do wrong? Please advise.
    Thanks,
    Jonathan.

    Hi Jon - You can sort the source values. If you use "sort select="Transaction/Data/f2" i don't think it has got some effect.
    You can use <xsl:sort select="POSITION " /> Any issues with that?
    Just to add - when you map Position with F2... how does the sorting will be different when you execute it on F2 or Position?
    If you are doing some calculation for F2 then should handle the Sort function accordingly..

  • XSLT Mapping with Java class not working in Integration Repository

    Hi,
    I have an XSLT mapping program with Java enhancement and I was able to successfully tested it in Stylus Studio. However, when I imported the Java class and the xslt program in Enterprise Service Builder and tested it, my program does not compile.
    Here is the error message: "Transformer Configuration Exception occurred when loading XSLT mapping_temp.xsl; details: Could not compile stylesheet".
    My java program is in a zip file containing SOAPHeaderHandler.java and SOAPHeaderhandler.class. My Java has a package com.nga.xslt.
    Here is the declaration of my Java class in the XSLT: xmlns:javamap="java:com.nga.xslt.SOAPHeaderHandler"
    It seems that it could not read the java class. Can you please advice what is wrong?

    Hi ,
    select XMLTOOLKIT option in Operation mapping and execute it.
    I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
    then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
    Regards,
    Raj

  • XSLT mapping to retrieve FileName from FILE SENDER adapter

    Hi
    I have an File Sender adapter scenario where I have switched on Adapter-specific message attributes (FileName).
    In my XSLT mapping program I need to RETRIEVE the filename and map it. Can anyone help please?
    Thx in advance

    Hi Bohamo
    Refer the following link.It provides the required solution for you.
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/83/2200cb50d345c793336d9a1683163e/frameset.htm
    Thanks
    Ram

  • XSLT Mapping: Problem in appending xmlns attribute

    Hi
    This is my source message
    <?xml version="1.0" encoding="UTF-8"?>
    <soap-env:Envelope xmlns:soap-env= "http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Body>
    <OrderID xmlns="http://dummyvalue">12345</OrderID>
    </soap-env:Body>
    My XSLT mapping
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
    <xsl:template match="/">
    <soap-env:Envelope>
    <soap-env:Body>
    <OrderID>
    <xsl:attribute name = "xmlns" >
    <xsl:value-of select="@xmlns"/>
    </xsl:attribute>
    <xsl:text>12345</xsl:text>
    </OrderID>
    </soap-env:Body>
    </soap-env:Envelope>
    </xsl:template>
    </xsl:stylesheet>
    I am getting the error message as
    ERROR: Description: The value of the 'name' attribute may not be 'xmlns'.
    Please help me how to append xmlns attribute in OrderID element ??

    Hi,
    Use <xsl:element> to create a node in the output and specify the namespace.
    <xsl:element
    name="name"
    namespace="URI"
    use-attribute-sets="namelist">  <!-- Content:template --></xsl:element>
    Thanks,
    Beena.

Maybe you are looking for

  • How to delete multiple music tracks

    how to delete multiple music tracks?

  • CS 5 not available from Lightroom

    Within the last week I've received and installed CS5.  Since then, I've also deactivated and uninstalled CS3 and CS4.  I've never encountered the following problem after installing an upgrade and I've installed every one since PS7. My problem is that

  • Kinect for Windows V2 Gesture Exception

    Hi When i delete Discrete gesture builder db in WPF and imported my own new db then it will through and exception.This API has returned an exception from an HRESULT: 0x80004005

  • Elements 4 CD but no serial number.

    I have an Elements 4 CD that came as a package with my PC. I no longer have the slip that it came in and now I want to reinstall it on my PC. Where can I find the serial number?

  • DVD project with movie and additional files on same disk?

    Hi- Dell 9200 (aka XPS 410), WinXP Pro SP2, Encore 2.0. I have a DVD project that I am assembling and need to include different types of files on the same DVD. I have an educational movie that is already formatted on a stand-alone DVD (just like one