Message mapping approach

Hi Experts, 
I need to get your suggestions on mapping approaches in PI. We're doing EDI with PI7.1 with Seeburger Adapter.
We are in design phase. We're making design decisions now and the question came up whether we should build one map per IDoc-Partner-X12 transaction or one map per X12 transaction-Idoc pair and build in logic to take care of partner specific requirements.
Can you suggest what is best approach.
Your help is appreciated
Thanks,
Kishore

Hi,
it is a broad question with no general answer.
First, it is a question of "How Much"?. If you have dozens of Partners and a lot of special requirements, than you are better up with a dedicated mapping per situation.
We also have done this with a two-step approach: One generic Maping for all, and a specific mapping per customer as a second additional step in message mapping, where every customer has its own name space.
This requires a very good design, a good planning and pattern-oriented solution  and a very tight execution and overall architecture and quality control, to not get out of hand. There are some good books and blogs about enterprise patterns in EAI that will help here.
There are a lot of possibilties, but , nothing that fits easily in a short forum answer.

Similar Messages

  • Message mapping challenge in IDOC to EDI scenario

    Dear PI message mapping experts,
    I'm a newbie in PI and facing a mapping problem using graphical message mapping.
    I'm in an IDOC (INVOIC.INVOICE02) to FILE (EDI) scenario.
    Here after is the mapping i need to perform :
    Source structure IDOC :
    <E1EDKA1> (0..99)
       <NAME1> A </NAME1>  (0..1)
       <NAME2> B </NAME2>  (0..1)
       <NAME3> C </NAME3>  (0..1)
       <NAME4> D </NAME4>  (0..1)
    </E1EDKA1>
    Target structure :
    <AccountingCustomerParty>  (1..1)
       <Party> (0..1)
          <PartyName> (0..unbounded)
              <Name>A</Name> (1..1)
          </PartyName>
          <PartyName>
              <Name>B</Name>
          </PartyName>
          <PartyName>
              <Name>C</Name>
          </PartyName>
          <PartyName>
              <Name>D</Name>
          </PartyName>
       </Party>
    </AccountingCustomerParty>
    I know i have to play with context and queues with stanard function or UDF but cannot succeed to do it.
    Could you please help me ?
    Thanks in advance,
    Alysee

    One approach out of available few ways to implement this:
    NAME1 - Exists - CreateIf - PartyName[0]
    NAME2 - Exists - CreateIf - PartyName[1] (Create deuplicate segment)
    NAME3 - Exists - CreateIf - PartyName[2] (Create deuplicate segment)
    NAME4 - Exists - CreateIf - PartyName[3] (Create deuplicate segment)
    Srikanth Srinivasan

  • 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

  • How to Alert RFC connection failure via message mapping? Kindly Help!

    Hi Experts,
        I have a JMS - XI - RFC scenario.
    JMS receives the Rosattenet PIP contents and sends it to RFC function module in remote SAP R/3 system.
       I have a requirement where I have to monitor RFC connection failure because of the remote R/3 system being down. I have to send a email alert where the subject contains the PIP number to understand for which PIP the connection failed.
      The PIP number exists in the PIP content at the interface.
      If I use the Alert configuration in the runtime workbench for monitoring then I cannot dynamically pass the PIP number.
      Only way I think of triggering alert is in the message mapping via a Java UDF.
      But I am not sure how can I do this? How do I check in the UDF if RFC connection has failed? Is this the correct approach?
      How to acheive my requirement? Note that my email subject content is dynamic bacause if PIP number.
    Please help!
    Thanks
    Gopal
    Message was edited by:
            gopalkrishna baliga

    Hi Gopal,
    what version/sps of XI are u running?
    The easiest way to do what u want inside a UDF is to
    1. use JCo to try estabilish a connection to the remote SAP System
    2. if that fails, use JavaMail to send an email message
    Let your UDF work on the PIP number, accepting it as input, and (maybe) returning it as output if everything goes ok. Otherwise break the mapping execution as described by Michal in one of his last weblog (using Dynamic Configuration).
    Note that the above method doesn't guarantee that the message will be actually delivered, as some seconds could last between your check and the real RFC delivery operated by the Adapter Engine...
    I am evaluating a way to do the same with Alert Framework. I will let you know the result!
    Cheers,
    Alex

  • 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

  • Message Mapping - same structure

    I have the Source and Target Structures are the SAME XML format.
    Should I need a Message Mapping?
    Should I need an Interface Mapping?
    Please help me.
    Thanks.

    Bhavesh, to be precise the Source and Target Structures are cXML(We are doing this for a testing purpose). The cXML has been imported into the External Definitions.
    >> Rohini, if your idea is just to sent the same file to the target system, i guess your solution is the same as the approach i have followed in this weblog.
    it doesnt even mattter if you have imported your XSD, any dummy type created will do.
    Ref:
    /people/shabarish.vijayakumar/blog/2006/04/03/xi-in-the-role-of-a-ftp

  • CPU time of BPM or message mapping?

    Hi all,
    is there a way to find out how much CPU time is spent by a certain BPM instance (or message mapping instance)?
    It would be sufficient to get that value per BPM type / message mapping type.
    So far, I've found the following sources, which all won't work, unfortunately:
    - table SWWWIHEAD: No CPU time information (as far as I see)
    - transaction STAD: I don't see a way to connect an entry to the resp. BPM. There is a Transaction-ID, but I can't find it in the BPM...
    - transaction ST03N: Only aggregated values for user WF_BATCH, not detailed statistics
    - several places, which only show clock time, but not CPU time
    Thanks in advance!
    Kind regards,
    Dennis

    Hi Michal,
    Thanks a lot for your info.
    Too bad that there is no other possibility yet.
    I'm not completely sure whether the result is worth the effort, though, as there will probably be a lot of different BPM types on this system, so benchmarking each is quite some work (and requires an otherwise idle test system during this time).
    In addition, it could be difficult to generate test data that will most likely represent the expected data during production use. Especially for BPMs with many conditional tasks (branches, loops, ...), this can be a mess...
    But I will propose it anyway. If it gets accepted, I'll post the gained experience with this approach here. Maybe it works better than my pessimistic expection.
    Hopefully, SAP will integrate this functionality somewhen. I guess I set up some customer feedback.
    Kind regards,
    Dennis

  • Create IDoc from flat file - How to do the message mapping

    Hi everybody,
    I want to create an IDoc from a flat file.
    The file structure looks like this:
    MT_XYZ
    - Node001       0...1
      - Leaf001
    - Node002       0...unbounded
       - Node003    0...1
          - Leaf002
          - Leaf003
       - Node004    0...1
          - Leaf004
       - Node005    0...1
          - Leaf005
    I have created a mapping and all the other stuff to set up the IDoc adapter.
    Now when I try to test the interface the IDoc is created properly but obviously no information from the nodes "Node003" to "Node005" is inserted in the IDoc. Only the information kept in the elements (leafs) of "Node001" are inserted.
    All IDoc segments and their "Segment" elements are linked to the root node of the file structure "MT_XYZ". I tried to link some IDoc segments only to "Node002" but then this segment is not created.
    So how can I set up the message mapping in a way that the information from "Node003" to "Node005" is transported to the IDoc? Can anyone help me here?
    Thanks in advance for all answers!
    Regards,
    Torben
    Edited by: Torben Hönemann on Dec 14, 2009 4:26 AM

    Hi Torben,
    >>I want to create an IDoc from a flat file.
    So you are using File content Conversion on the sender side. Right?
    >>no information from the nodes "Node003" to "Node005" is inserted in the IDoc.
    Are these information available in the source XML (you can check in transaction SXMB_MONI-> Input Payload).. There is a limitation in File Content Conversion of File adapter and it is that I can make an XML structure of 3 level.. Since these nodes details are in level 4 and 5 they should be missing in Source XML structure itself (after content conversion of File adapter). check that
    >>So how can I set up the message mapping in a way that the information from "Node003" to "Node005" is transported to the IDoc? Can anyone help me here?
    So you need to take an alternate approach where you do File Content Conversion and make 3 level structure.. then using a mapping convert this three level structure to your 5 level one and then try to map with the idoc.
    Check this blog for an idea
    http://www.riyaz.net/blog/xipi-file-content-conversion-for-complex-structures/
    http://www.riyaz.net/blog/xipi-convert-flat-file-to-deeply-nested-xml-structures-using-only-graphical-mapping/
    Regards
    Suraj

  • Message Mapping: Constants 'Sender' / 'Receiver'

    Hallo
    Can anyone of you tell me there I can find some information about the constants 'sender' and 'receiver' which can be found when designing the message mapping?
    Kind regards,
    Mathias

    Satish, thanks for that link!
    @Hemant:
    I have an asynchronous message A call scenario (SOAP->XI->RFC). In our scenario multiple clients can send SOAP messages to one service provider. Once the service provider has processed a request, it sends another asynchronous message B to XI containing response messages. But how can XI now handle the correct recipient at runtime?
    Therefore I thought to enhance the initial message A from XI->RFC with sender information (sender constant?). So that the "response message" B also contains the original sender information and XI can use this information as context object to determine the correct receiving system.
    Can this approach work?
    Regards, Mathias

  • Hi , friends pls explain abap mapping and message mapping

    1) pls explain abap mapping and message mapping
       send me screen shorts also.

    Hi
    Mapping Techniques
    XI provides 3 standard ways of interface mapping between source and target.
    Graphical mapping
    Java Mapping
    XSLT Mapping
    Two more additional mapping types can be activated in XI by making changes to the exchange profile. Those two mappings are
    ABAP mapping
    XSLT mapping with ABAP Extensions
    Graphical Mapping
    Graphical mapping is a common approach followed by everyone for generating desired target structure. It involves simple drag-n-drop to correlate respective nodes (fields) from source and target structure. It hardly involves coding. (Exception - User defined functions). But sometimes with graphical mapping it is difficult to produce required output. For example ... text/html output, namespace change, sorting or grouping of records etc.
    ABAP Mapping
    A person comfortable with Object Oriented ABAP can go for ABAP mapping instead.
    Java Mapping
    Java Mapping uses 2 types of parsers. DOM and SAX. DOM is easier to use with lots of classes to help you create nodes and elements, but , DOM is very processor intensive.
    SAX parser is something that parses your XML one after the other, and so is not processor intensive. But, it is not exaclty easy to develop either.
    XSLT Mapping
    One can also think of Java mapping as another option but it is a bit complex and required knowledge of Java. In such cases, XSLT mapping can be the best approach to meet the requirements.
    A few example cases in which an XSLT mapping can be used:-
    When the required output is other than XML like Text, Html or XHTML (html displayed as XML)
    When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
    When data is to be filtered based on certain fields (considering File as source)
    When data is to be sorted based on certain field (considering File as source)
    When data is to be grouped based on certain field (considering File as source)\
    Advantages of using XSLT mapping
    XSLT program itself defines its own target structure.
    XSLT programs can be imported into SAP XI. Message mapping step can be avoided. One can directly go for interface mapping once message interfaces are created and mapping is imported.
    XSLT provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
    File content conversion at receiver side can be avoided in case of text or html output.
    Multiple occurrences of node within tree (source XML) can be handled easily.
    XSLT can be used in combination with graphical mapping.
    Multi-mapping is also possible using xslt.
    XSLT can be used with ABAP and JAVA Extensions.
    Disadvantages of using XSLT mapping
    Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
    Interface mapping testing does not show proper error description. So errors in XSLT programs are difficult to trace in XI but can be easily identified outside XI using browser.
    XSLT mapping requires more memory than mapping classes generated in Java.
    XSLT program become lengthier as source structure fields grows in numbers.
    XSLT program sometimes become complex to meet desired functionality.
    Some XSL functions are dependent on version of browser.
    Different types of Mappings
    MAPPING SUPPORTED BY XI
    Message Mapping -> Graphical Design and testing environment. Default Provided By XI. Queue based modelling allow handling or large documents. Extensible via user defined functions
    XSLT Mapping - > Based on openstandard, Portable across application platform, Extensible using user defined functions kewl but disadvantage is Memory overload while handling large documents.
    SAX -> Simple Api For XML. -> Allows you to parse through a XML document. Doesn't consume any memory. But the message can be parsed only once from top to bottom. It Has evolved by contributions made by group of ppl itz a open architecture.
    DOM -> Document Object Model -> Itz designed by W3C. Consumes Memory as the message will be loaded. Allows parsing of document in both way top down and bottom up.
    Send me your email id.Shall send you very good docs for both ABAP Mapping and message mapping.
    Thanks

  • Message mapping - lower node condition for top node

    Hello,
    E1EDK03
         SEGMENT
         IDDAT
         DATUM
         UZEIT
    I would like to have only the E1EDK03s, where IDDAT is 002. So I tried to do it this way on the E1EDK03 level:
    Constant 002 and IDDAT --> equalS than E1EDK03-->E1EDK03. But somehow it doesn't work. I also attached a picture of my message mapping.
    Would be nice if somebody could help me. 

    Thx for your help. I tried it with Mr. Gandepallis approach and it worked perfectly.
    3 E1EDK03 nodes - perfect.
    Now I would like to take it a little further. Let's say I would like to have only the E1EDK03 for IDDAT 025 if QUALF 008 exists in the node above E1EDK03. I tried it with "equalS" and "And", but it's not working.
    Would be nice if someone would have a solution for this. I really appreciate your help.

  • Error while activating any message mapping in IR: very strange

    hi forum i m getting an error in IR while activating any messageMapping.
    the error is too long to be posted....i m posting a few lines of that:
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))

    Sudeep,
    Let we try this way. I'm sure you might have some existing mapping objects in IR.
    Try to change that object(Description give some name) and activate again the object.
    Reply your results whether you are getting the same error.
    One sec before changing the object just test the mapping and change the object.
    Best regards,
    raj.

  • Error while activating message mapping

    Hi,
    We are trying to activate message mappings and getting error as CHECK_EXCEPTION and in error details its showing that usr/sap/server.........................../classpath_resolver/Map.......................no such file or directory.........
    What can be the issue?We can activate all other objects(DT,MT,IM,etc)
    Best Regards,
    Harleen Kaur Chadha

    Hi
    Check this thread you can find the reason for this error CHECK_EXCEPTION solved here
    Activating Object in IR - Getting Null Pointer Exception
    Re: mapping test error
    Internal error while checking object Message Mapping...
    Problem Activating Mappings in the IR
    Message Mapping activation Error
    Regards
    Abhishek

  • Error while opening Message Mapping

    Hi All,
    I have one MM in ESR, IDoc to EDI, it has been developed before, and the interface is working successfully.But when I open this MM in ESR, it given a STOP error with desc as 'For input string: ""'.
    and then there is nothing displayed on Screen under Definition,Test and Functions tab of MM.The Signature tab content is visible properly.
    I am working on PI 7.1.
    Is this issue is because of version comapatibilty or missing object. Please provide your inputs to resolve this issue,
    Thanks,
    Ruchi

    Hi All,
    I have checked with my basis team, but they suggested that the patches can not be installed as this problem is happening with single message mapping.
    When I open this MM, it gives the same STOP error :For input string: "". and when I click on Message Mapping -> Check button, it prompts a message 'Parameter #ParamName# has the invalid value null'.
    Please help me to resolve this.As the mapping itself is not getting loaded, so not getting how to set this parameter value(if it is used in MM).

  • PI 7.11: IDoc Message mapping

    Hi there,
    I'm currently working on a graphical message mapping using IDoc HRMD_A06 as source structure (HR master data transferred via PFAL).
    In my result structure I have to fill a field CostCenter with the following logic:
    If field KOSTL (cost center) is filled in node E1P0315, map this field to CostCenter in result structure, otherwise take KOSTL of node E1P0001.
    The end date (ENDDA) has to be '99991231' in each case.
    This is how the result structure looks like:
    <e>                       [1...1]
      <CostCenter>            [1...1]
    </e>
    This is the simplified source structure:
    <E1PLOGI SEGMENT="1">
      <E1PITYP SEGMENT="1">                        [0...n]
         <E1P0001 SEGMENT="1">                     [0...n]
           <INFTY>0001</INFTY>                     [0...1]
           <ENDDA>99991231</ENDDA>                 [0...1]
           <KOSTL>0000012345</KOSTL>               [0...1]
        </E1P0001>
      </E1PITYP>
      <E1PITYP SEGMENT="1">                        [0...n]
        <E1P0315 SEGMENT="1">                      [0...n]
          <INFTY>0315</INFTY>                      [0...1]
          <ENDDA>99991231</ENDDA>                  [0...1]
          <KOSTL>0000024001</KOSTL>                [0...1]
        </E1P0315>
      </E1PITYP>
    </E1PLOGI>
    How can I do the check if field KOSTL of node E1P0315 is null?
    I've tried an existence check for the whole node (E1P0315->exists), but then it fails, because all E1PITYP nodes are processed.
    I hope my problem is clear to you.
    Would it be better to use another mapping type?
    As I'm an ABAP developer, I would of course prefer some lines of code to this graphical drag&drop thing.
    Thanks in advance!

    Cheers, guys!
    I did it now like that:
    http://www.abload.de/image.php?img=mappingflknz.jpg
    Click on the image to enlarge it!
    The logic is as following (ABAP Pseudo-code ):
    IF 0315_KOSTL and 0315_ENDDA are populated.
      IF 0315_ENDDA equals '99991231'.
        map 0315_KOSTL to Cost_Center.
      ENDIF.
    ELSE.
      IF 0001_KOSTL and 0001_ENDDA are populated.
        IF 0001_ENDDA equals '99991231'.
          map 0001_KOSTL to Cost_Center.
        ENDIF.
      ENDIF.
    ENDIF.
    Is that a good way to do that mapping?
    Do I also have to use the removeContexts function or is it ok like that?
    Could I also do that with an ABAP mapping program?
    Thanks in advance!

Maybe you are looking for

  • HT201303 How can I change my billing details?

    I've been overseas for a year, cancelled my last visa debit card then and now want to update the details so I can make purchases but iTunes is asking me for my security code from my old card which I don't have! I already called Apple and they couldn'

  • How to instal a LAN WebSite in MacOSX Server 10.2 ?

    How to install a Site Interns (Intranet / LAN) on MacOS X Server 10.2? I sought in the APPLE forum, but did not find anything on the subject. Would somebody have the method, with screen printing for beginner? And, is it possible to create, on this XS

  • Unable to Log In and support no help

    Unbelievable several days with Customer support.  Signed up for Creative Cloud at the first price they advertised at $49 and found that I qualified for a lower rate and the nightmare began when I contacted support.  I am providing transcripts of two

  • Condition value of Tax condition type gets added to Total Value in Contract

    Hi All, I'm currently investigating an issue where there are 2 line items in an SAP Sales Contract. There is a human error in the second line where the billing end date is less than billing start date in the billing plan.  Consequently, the second li

  • HELP! Cant view my photos on publish site...

    Having created my website in iweb, I have added a photo gallery, once the site is 'published' no one can view the photos on the big wide web, have deleted page and re-designed, re-added, but no joy, can anyone help and advise? I'm at a complete blank