Message mapping with signature changed

Hello,
I have a mapping whose incoming and outgoing message has the same message type, let's say the message type for both in and out message is *MT_Material *. The mapping basically copy all data from in message to out message, however, the out message is only created based on certain condition. Therefore I changed the signature to define the Occurance of the out message as 0..1 while the in message has occurance of 1.
Things work fine, out message only contains data when the condition is fullfilled. However the mapping program expects incoming message like;
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
   <ns0:Message1>
      <ns1:MT_Material xmlns:ns1="http://mynamespace">
         <MatNo>123345</MatNo>
         <MatText>
            <Language>en</Language>
            <Text>esx</Text>
         </MatText>
         <MatText>
            <Language>fr</Language>
            <Text>esxfr</Text>
         </MatText>
      </ns1:MT_Material>
   </ns0:Message1>
</ns0:Messages>
Note the xml tags in bold are needed because of the signature change (occurance change). However the outbound interface is based on the message type of MT_Material, thus the sender will NOT send the xml tags in bold, rather following message is sent:
<?xml version="1.0" encoding="UTF-8"?>
      <ns0:MT_Material xmlns:ns1="http://mynamespace">
         <MatNo>123345</MatNo>
         <MatText>
            <Language>en</Language>
            <Text>esx</Text>
         </MatText>
         <MatText>
            <Language>fr</Language>
            <Text>esxfr</Text>
         </MatText>
      </ns0:MT_Material>
Message in this format is NOT expected by the mapping program with changed signature, thus mapping is does NOT result in the right result.
So what should I do with it? looks like change signature doesn't make any sense because it expects different outbound message format as the one without signature changed.
Basically mapping is PI internal stuff, the sender should not be aware of it, thus sender should just send a message based on the message interface which is based on MT_Material.
what do you thnk of this?
Any

Hi Jayson
You are correct to some extent we should not force the vendor to send a tag to satisfy middleware. But if the tag is required for the business process what can be done other than forcing as a rule to vendor
As PI is a XML based tool where XML is tied to a XSD all messages need to follow XSD. Now in your requirement we need to meet the condition for generating the output. Being a middle ware PI is not meant for holding the messages or used as an end point for some communication. It works on two engines and we need to pass IS without error. Mapping will work at IS and if it failed its an error but we have to satisfy condition.
I have faced similar requirement to yours. I had routed the messages through email to vendor when no output need to be generated as they were incorrect and doesn't follow business rule of the process.
We can check with Xpath or either some the way we discussed above in case condition is not met
Thanks
Gaurav

Similar Messages

  • Message mapping with dynamic node

    Hi,
    I am doing message mapping where my source structure is
    <root>
         <EmpCount>2</EmpCount>
         <Emp>
              <item>
                   <code>1</code>
                   <name>ABC</name>
              </item>
                                     <item>
                   <code>2</code>
                   <name>PQR</name>
              </item>
         </Emp>
    <root>
    If EmpCount is having value 2 then Emp node will have only 2 items
    Target structure is flat structure like (something like fix file format)
    <root>
         <EmpData>EmpDetails</EmpData>      occurrences 0...unbounded
    </root>
    With above sources data following is expected target sturcure…
    <root>
         <EmpData>2ABC</EmpData>
         <EmpData>3PQR</EmpData>
    </root>
    Here my query is how I can create more than one node to target structure with employee details.
    I already tried with following Re: how to create target node a constant number of times
    This help to get all 2 nodes of EmpData in target structure but it is showing only First value in both nodes. Following is output I am getting…
    <root>
         <EmpData>2ABC</EmpData>
         <EmpData>2ABC</EmpData>
    </root>

    Sunil,
    Please see the sample i/p and o/p payload. Also please let me know , is this the same u are looking for
    I/P
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_Check xmlns:ns0="urn:hdmc:samplescenarios">
       <EmpCount>2</EmpCount>
       <Emp>
          <Item>
             <Code>1</Code>
             <Name>A</Name>
          </Item>
          <Item>
             <Code>1</Code>
             <Name>B</Name>
          </Item>
       </Emp>
    </ns0:MT_Check>
    O/P
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_Check_Out xmlns:ns0="urn:hdmc:samplescenarios">
       <Root>
          <EmpData>2A</EmpData>
          <EmpData>2B</EmpData>
       </Root>
    </ns0:MT_Check_Out>
    Best regards,
    raj.

  • Message mapping with attachments?

    Hi there,
    I want to read in two flat files and process them afterwards in the XI (message mapping and such).
    I know that it is possible via BPM (as discussed here, for example: Combining Input Files ). But I'm told to do it via the file adapter's "Specifying Additional Files" ( http://help.sap.com/saphelp_nw04/helpdata/en/ae/d03341771b4c0de10000000a1550b0/frameset.htm ), where those additional files are attached to the message. The advantage of this approach is that I can tell the File Adapter to only start when both files are present (--> optional = NO). This is not possible with the BPM method, is it?
    I haven't found a way to use the attached file(s) in a message mapping - apart from using ABAP mapping or implementing a adapter module that merges the attachment into the payload. Both possibilities seem to need way more effort than I feel should be necessary...
    Thanks in advance!
    Dennis

    Hi all!
    Thanks once again for your kind help! We finally agreed to take the BPM approach nevertheless, as it's "nearest to the standard" and thus (hopefully) easiest to maintain.
    We inserted a time-out into the BPM, so that it will abort after a short time when only one file was present. Not perfect, but good enough.
    The advantage of this solution is that we can convert the CSV files to XML within the File adapter again. Both calling a MapForce transformation and afterwards combine the XML files within an Adapter module really doesn't sound like the optimal way...
    Cheers,
    Dennis

  • Message Mapping with cXML

    I have a message mapping scenario. I am trying to test something and for this I have the following Getpending Response as source and Target in message mapping.
    When I try to test this in the Repository I am getting some error(listed below)
    Note : I imported the below cXML into my respository in the external definition as an XSD(I used Altova XML spy to convert the XML into an XSD)
    In the occurence I have given both source and target as 1.
    Your assistance is greatly appreciated. Thanks  lot.
    Getpending Response cXML
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
    <cXML timestamp="2005-01-12T16:00:18-08:00" payloadID="[email protected]">
       <Response>
          <Status code="200" text="OK"/>
          <GetPendingResponse>
             <cXML timestamp="2005-01-12T16:00:18-08:00"
                   payloadID="[email protected]">
                <Header>
                   <From>
                      <Credential domain="NetworkId">
                         <Identity>AN01000000001</Identity>
                      </Credential>
                   </From>
                   <To>
                      <Credential domain="NetworkId">
                         <Identity>AN13000000259</Identity>
                      </Credential>
                   </To>
                   <Sender>
                      <Credential domain="NetworkId">
                         <Identity>AN01000000001</Identity>
                      </Credential>
                      <UserAgent>ANCXMLDispatcher</UserAgent>
                   </Sender>
                </Header>
                <Message>
                   <DataAvailableMessage>
                      <InternalID domain="PendingMessages">3738</InternalID>
                   </DataAvailableMessage>
                </Message>
             </cXML>
          </GetPendingResponse>
       </Response>
    </cXML>
    I am getting the following error
    Start of test
    Compilation of GetPendingResponse_DataREquest_MM successful
    Document start
    Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) com.sap.aii.utilxi.misc.api.BaseRuntimeException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:130) at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68) Root Cause: java.io.IOException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) at com.sap.engine.lib.xml.parser.URLLoaderBase.resolveEntity(URLLoaderBase.java:148) at com.sap.engine.lib.xml.parser.XMLParser.scanDTD(XMLParser.java:1212) at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2678) at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713) at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245) at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276) at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338) at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125) at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128) at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68) Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238)
    End of test

    Hi Jenni,
    This might help
    Message Mapping - same structure
    /people/shabarish.vijayakumar/blog/2006/04/03/xi-in-the-role-of-a-ftp
    http://www.cxml.org/files/downloads.cfm
    Thanks & Regards
    Agasthuri Doss
    Message was edited by: Agasthuri Doss Baladandapani

  • BC-XI V3.0 Message Mapping with Java Class

    Hi all
    In the Integretion Builder Design i try to import a Java Class in order to convert a source to a target field. I have created an tested the class with the eclipse V3.0.
    If i import the source in a customized mapping function i always get the error:
    "OFFMANNONLINESHOP_ORDER2SAP_ORDERS05_MSGMAP01 hat keinen Quellkode."    (...message..has no source code)
    I have also imported the import classes in the "Imported Archives".
    This message always appear if the import line for the classes is filled.
    Do somebody knows this problem
    Message was edited by: Christoph Borst
    Message was edited by: Christoph Borst
    Message was edited by: Christoph Borst

    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

  • PI 7.30 Message Mapping with MsgSplit error Split mapping created no messages, cannot proceed.

    Hi @all,
    I am working on a scenario to split one soruce message with several items to 0..n message for the same receiver.
    Therefore the occurrency of target message (signature in MM) have been adjusted.
    Not all items are forwarded to receiver, only if the content meets some rules the item should be forwarded.
    It could be that no item of the source message meet these rules and therefore no target message at all should be created.
    During test of this case I am facing following error in RWB, scenario is setup as integrated configuration.
    MappingException: Split mapping created no messages, cannot proceed. Review your mapping setup: splitting to 0 messages is not allowed.
    As the occurrency of the target message is 0..n, 0 should be also valid and there should be no error in this case, just stop processing like if there is no receiver in receiver determination step (mode IGNORE)
    Otherwise this will end up in lots of error messages which have to be analyzed and canceled manually which is quite time consuming.
    Maybe someone faced the same issue and found a solution to get rid of this error message.
    Best regards
    Jochen

    Hi Somil,
    hi Sriram,
    thanks for your response.
    In my scenario there also multiple receiver applications receiving data from one single sender application. We are using PI 7.30 dual stack and major goal is to setup all scenario as integrated configurations to have java only processing. One reason for this setup is that the main support user do not have extensive PI knowledge so far and we want to keep it as simple as possible and therefore do not want them to care about the abap stack as much as possible.
    Unfortunately migration to java only is not possible yet.
    In this release extended receiver determination using operation mapping is not supported in integrated configuration.
    There is quite complex rules to check if an item should be forward or not including lots of fields and also value mapping, so it would be quite difficult/impossible to write XPATH expression to have the same check during receiver determination step.
    One workaround could be creating a dummy message in case of no item to be forward and root this message to different place (local file which is always to be overwritten)
    Are there any alternatives/workarounds?
    Best regards
    Jochen
    Message was edited by: Jochen Gugel

  • Multiple Message Mapping with same Idoc, Sender and Receiver

    Hi,
    We have one Interface sending INVOIC02 Idoc from SAP R3 4.6C to SAP R3 4.6C through XI 3.0.
    On Inbound side we are using SAP standard configuring one Partner Profile with inbound INVOIC MM process code INVL.
    In customizing, we have defined one invoic type for the EDI partner.
    Now we have to integrate another type of inbound invoic, but in customizing it's not possible to assign more than one invoic type to the same Partner EDI.
    So, we have a restriction in SAP 4.6C inbound standard. On the other hand, we can't desing two Integration Scenarios in XI 3.0 with the same idoc INVOIC02, for the same sender service and receiver service because Integration Directory doesn't allow to create two interface determination for them.
    We are thinking on using header mapping in XI (receiver agreement to avoid use the same EDI partner profile for the inbound invoic, but we can't assign the same client and technical system with the same ALE Logical System in SLD for two different business systems.
    Does anybody have any solution for this problem, SAP side or XI side?.
    Thank you
    Best regards
    Luis

    Hi!
    In XI configuration  - interface determination, you can specify more than one Inbound interface. If you identify more than one, you get a new column where you specify condition (xpath) for selecting between the different inbound interfaces.
    In 4.6c, you can have more than one inbound invoic for the same EDI partner profile, if you separate between them using message function. Just add a new inbound parameter with a different message function, or copy the one you have and specify another message function, i,e. "DIFF".
    Hope this helps.
    Regards,
    Oeystein

  • Message mapping -How to change 1.2345 to 12345

    Hi everybody,
    How can I have all the digits of the source field in the target field with the decimal pont removed.
    Source field --1.2345
    target field --12345
    thanks,
    Ramya Shenoy

    Hi,
       Prepare an udf to remove decimal point.
      you can use the following java code for udf .
           String s1="";
                  for( int i=0; i<a.length();i++)
                       if (a.charAt(i) == '.')  {}
                          else
                           s1= s1 +a.charAt(i);
                 return s1;
    regards
    mahesh

  • Message Mapping, filling field with 0 (zeros) on left

    I need to fill a field with values that has variable lenght adding 0 (zeros) on the left, how can I do it ?
    I'm using the LENGHT in message mapping, with value returned by LENGHT I use FIXVALUES to map the quantity of 0 (zeros) that I need to add in the field.
    Somebody can help me with this problem ?
    Thank's.

    Hi Regis,
    You can use the Arithmetic:FormatNum built-in function for this.
    If you want to left-pad the number with zeros so that the length is always 10, then specify 10 zeros for the format, 0000000000.
    This function takes formats based on java.text.DecimalFormat so you can see all of the possibilities at:
    java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html
    Thanks,
    Jesse

  • Missing closing tag in message mapping

    Hi experts,
    I have an RFC --> PI --> JDBC scenario with the following message mapping:
    SOURCE --> TRIM --> mapWithDefault [] --> DESTINATION
    If the source field doesn't come, the input XML is a follows:
    <SOURCE/>
    And after the mapping I obtain the following: <DESTINATION></DESTINATION> that is exactly what the reciever system is expecting. This was been working fine until the upgrade to ECC 6.0 of the Sender system. Actually I don't know if it has anything to do, because the RFC XML looks exactly the same, but the user claims it has stopped working since the upgrade.
    Now the same mapping, with the same <SOURCE/> input creates this output: <DESTINATION/>. This is not accepted by the reciver system and throws an error.
    What can be happening? The message mapping has not changed and the RFC XML looks exactly the same....any ideas?? Thanks! Pablo

    >
    Stefan Grube wrote:
    > >. This is not accepted by the reciver system and throws an error.
    > What is the error?
    > If you use JBDC adapter, it is no difference, whetehr you have <tag></tag> or <tag />, because this is the same.
    If  you see the payload in Internet Explorer, for example you'll see <tag />. But if you see the XML with a text editor, it should be <tag></tag>: Before this issue the receiver system was getting a "blank" value, now it's getting "null" and it can't handle it.
    Sarvesh: thanks for your advice but I'm already using that function...
    I'll try Pedro's, Srinivas' and Hetal's ideas, but the user has to setup the development box for testing.
    I'll update later, thanks for your help. More ideas are appreciated!
    Pablo

  • Mapping with XSD?

    hello  all,
                     i am having an XSD file . i am thinking to go for message mapping . with this XSD format how can i go for message mapping . for that i need  a  data structure . please suggest me how i have to do this my receiver interfaces are bapis & rfc. if it is p[ossible to convert xsd to data type then please tell me how ?
                   thanks in advance ,
    thanks & regards,
    ramana

    Hi
    As explained to you in the previous thread in detail..after you have the xsd file imported you can go for MM directly.
    You need to import the RFC/BAPI as you say that you have RFC/BAPI in the receiver side.
    Get the RFC list in the IR by:
    In the IR you can import the RFC from R/3 system.
    Click on the Imported Objects and right click on the RFC and choose import the RFC.
    Do not forget to change the option in the namespace.Click on Import of RFC/iDoc allowed.
    Next in MM you will both the structures.So mapping will be straight forward.
    Get back if you have further doubts
    Thanks

  • Function Module Undefined during message mapping.

    Hi,
    My Scenario is Idoc to Multiple Files without any condition i have to drop 2 files at the 2 differient directories of  FTP,
    So we are using PI 7.1 and in the Message Mapping using Signature Tab we have added 2 Target messages and at the source we have used the IDOC.
    When we see the structure under Definition Tab in Message Mapping, We are facing the below error
    "FUNCTION MODEL UNDEFINED"
    So can anyone suggest what could be the problem, do i need to change any occurence in the signature tab for the message types else what shuld i do to get the structures in the Definiton Tab.
    Please suggest how to approach this..
    Thanks,
    --Kishore

    My Scenario is Idoc to Multiple Files without any condition i have to drop 2 files at the 2 differient directories of FTP,
    1. Use multi mapping - /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    2. use two different inbound interfaces, and do two different interface determination without conditions for the same receiver determination

  • IDoc and Message Mapping

    Hi,
    I have a question.
    In a idoc to file scenario,idoc as a sender,.If the idoc is updated in r/3 system due to some change request after we finish the mesage mapping,what steps need to be followed to ensure the correct mapping.
    Do we need to change the mapping.
    Regards,
    Haritha

    Hello,
    if just the values of your IDoc changed you don't have to change
    your message mapping.
    If the structure has changed you have to reload the metadata (idx2)
    and the IDoc in your Repository and then update your message mapping with reloading your IDoc.
    Regards
    Patrick

  • Message mapping RFC lookup

    Hi.
    I'm trying to do a RFC inside a message mapping with java code. I have to send a field (id) and return the vendor code (lifnr).
    I'm searching michal Krawczyk's weblog to see how can i do that but the link is broken.
    Does anybody has that document that can send me to [email protected]?
    Regards.
    Inigo.

    hi Inigo,
    please look at the following blogs,
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/michal.krawczyk2/blog/2005/09/15/xi-rfc-mapping-lookups-from-bc-to-xi
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    Regards
    Sreeram.G.Reddy
    Message was edited by:
            Sreeram Reddy

  • Message Mapping : ( Not Activating )-Main Exception in thread "main"

    Hi all
          I have configured a message mapping , with proper occurence checked for
    both source & target MesTypes.
    But on activation it is throwing the error :
    <b>java.lang.NoClassDefFoundError: com/sun/tools/javac/Main Exception in thread "main"</b>
    Also my previous mappings are also not activating , which were running properly previously...
    i tried these option already :-
    --> i also restart the Java Stack...
    ---> Re: JAVA stack not starting
    > SAp note 928038
    still i am getting the same error..
    Regards
    Ashutosh Rawat

    Ashutosh,
    I am not sure weather it will resolve your problem but you can give a try to it.
    If you have the access for tcode "<b>SICF</b>" then
    1. Run tcode SICF, and press F8 button.
    2. default_host>sap>xi.
    3. Now check the below mentioned are activated (activated services will be in black) or not, if not then just right click and activate the service:
         i). adapter_plain
        ii). cache
       iii). cache_gui
        iv). cache_ssl
         v). docu_apperror
        vi). docu_syserror
       vii). engine
      viii). simulation
    Regards,
    Sarvesh
    Message was edited by:
            Sarvesh Singh
        <b>SFIC</b> is corrected to "<b>SICF</b>"

Maybe you are looking for

  • Getting Error while running a script.

    I just installed InDesign Server to our Server and then <br />I ran a simple script "hello world" which is embbeded to ASP web programming <br />test.asp <br /><%<br />Set myInDesignServer = CreateObject("InDesignServer.Application.CS3") <br />Set my

  • My macbook pro early 2012 won't install release version of yosemite after being in the beta test

    my macbook pro early 2012 won't install release version of yosemite after being in the beta test, anyone else having any issues with this?

  • IPhone 4s Ringtone No Longer Works

    My message alert tone will only work if the message application is open on the screen. This applies to vibrate as well. The ringtones still go off when receiving phone calls, but never for text messages. Help!

  • New Mac Pro pops AFCI type circuit breaker - HELP

    Local code requires Arc Fault Circuit Interuptors as circuite breakers, and I am glad I have a new 1500VA UPS. As soon as the Mac Pro started, the AFCI down on the panel popped, the UPS held the load (between 200 - 300 watts. I finished the new setup

  • Hp w2338h lcd monitor

    I have an HP w2338h LCD monitor which goes blank after a couple of minutes. Is making a buzzing noise too. I suspect is the inverter. What tipe and how should I change it? Thnaks