Message Mapping  Multi Level Hierarchy To Flat

HI
I have the following Message Structures
<HRMD_A05>
   <IDOC BEGIN="1">
      <EDI_DC40 SEGMENT="1">
         <TABNAM>EDI_DC40</TABNAM>
         <MANDT>100</MANDT>
         <DOCNUM>0000000000462483</DOCNUM>
         <DOCREL>700</DOCREL>
         <STATUS>30</STATUS>
         <DIRECT>1</DIRECT>
         <OUTMOD>2</OUTMOD>
         <IDOCTYP>HRMD_A05</IDOCTYP>
         <MESTYP>HRMD_A</MESTYP>
         <SNDPOR>SAPPH1</SNDPOR>
         <SNDPRT>LS</SNDPRT>
         <SNDPRN>PH1100</SNDPRN>
         <RCVPOR>A000000015</RCVPOR>
         <RCVPRT>LS</RCVPRT>
         <RCVPRN>GD_XIB_P</RCVPRN>
         <CREDAT>20110130</CREDAT>
         <CRETIM>200709</CRETIM>
         <SERIAL>20110130200628</SERIAL>
      </EDI_DC40>
      <E1PLOGI SEGMENT="1">
         <PLVAR>01</PLVAR>
         <OTYPE>P</OTYPE>
         <OBJID>00000021</OBJID>
         <OPERA>I</OPERA>
         <E1PITYP SEGMENT="1">
            <PLVAR>01</PLVAR>
            <OTYPE>P</OTYPE>
            <OBJID>00000021</OBJID>
            <INFTY>0001</INFTY>
            <BEGDA>20110130</BEGDA>
            <ENDDA>20110130</ENDDA>
            <E1P0001 SEGMENT="1">
               <PERNR>00000021</PERNR>
               <INFTY>0001</INFTY>
               <ENDDA>99991231</ENDDA>
               <BEGDA>20110101</BEGDA>
               <SEQNR>000</SEQNR>
               <AEDTM>20110110</AEDTM>
               <UNAME>CHEHROUTSDT</UNAME>
               <BUKRS>0116</BUKRS>
               <WERKS>UK01</WERKS>
               <PERSG>1</PERSG>
               <PERSK>M2</PERSK>
               <KOSTL>0000005000</KOSTL>
               <ORGEH>51004895</ORGEH>
               <PLANS>60006175</PLANS>
               <STELL>70000004</STELL>
               <SNAME>Financial Control</SNAME>
               <ENAME>Financial Controller &amp; Bus Tra Officer</ENAME>
            </E1P0001>
            <E1P0001 SEGMENT="1">
               <PERNR>00000021</PERNR>
               <INFTY>0001</INFTY>
               <SUBTY>GDP1</SUBTY>
               <ENDDA>99991231</ENDDA>
               <BEGDA>20110101</BEGDA>
               <SEQNR>000</SEQNR>
               <AEDTM>20110110</AEDTM>
               <UNAME>CHEHROUTSDT</UNAME>
               <WERKS>GB</WERKS>
               <PERSG>X</PERSG>
               <ORGEH>00000000</ORGEH>
               <PLANS>00000000</PLANS>
               <STELL>00000000</STELL>
               <MSTBR>00035657</MSTBR>
               <SNAME>TETRA PAK LTD.</SNAME>
               <ENAME>TP Tetra Pak Ltd.</ENAME>
               <FISTL>Wrexham</FISTL>
               <GEBER>GB0001</GEBER>
            </E1P0001>
            <E1P0001 SEGMENT="1">
               <PERNR>00000021</PERNR>
               <INFTY>0001</INFTY>
               <SUBTY>GDP2</SUBTY>
               <ENDDA>99991231</ENDDA>
               <BEGDA>20110101</BEGDA>
               <SEQNR>000</SEQNR>
               <AEDTM>20110110</AEDTM>
               <UNAME>CHEHROUTSDT</UNAME>
               <ORGEH>00000000</ORGEH>
               <PLANS>00000000</PLANS>
               <STELL>00000000</STELL>
               <SNAME>FI Accounting Leader</SNAME>
               <ENAME>Finance &amp; Business Transformation</ENAME>
            </E1P0001>
         </E1PITYP>
         </E1PLOGI>
   </IDOC>
</HRMD_A05>
in the above structure  <HRMD_A05>/<IDOC>/<E1PLOGI><E1PITYP> has a segment <E1P0001> which gets repeated 3 with different Qualifers("",GD1,GD2) base on the Qualifer the <Smane> has to be mapped to 3 different fields in the target Structure
The Target Structure is a Flat Structure As shown Below
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:xibprototype:source:to:target" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xibprototype:source:to:target">
   <xsd:element name="HRPlanningAndMasterData" type="HRPlanningAndMasterData"/>
   <xsd:complexType name="HRPlanningAndMasterData">
      <xsd:annotation>
         <xsd:appinfo source="http://sap.com/xi/VersionID">154335859c8011e0ac8a0000022ca112</xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="LineItems" minOccurs="0" maxOccurs="unbounded">
            <xsd:complexType>
              <xsd:sequence>
                  <xsd:element name="tpjobtype" type="xsd:string" minOccurs="0"/>
                  <xsd:element name="tpposition" type="xsd:string" minOccurs="0"/>
                  <xsd:element name="tpfunctionalarea" type="xsd:string" minOccurs="0"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
</xsd:schema>
I did the graphical Mapping  the As Below
ns0:HRPlanningAndMasterData/LineItems/tpjobtype=mapWithDefault(SplitByValue(removeContexts(ifWithoutElse(stringEquals(/HRMD_A05/IDOC/E1PLOGI/E1PITYP/E1P0001/SUBTY, const(value=GDP2)), /HRMD_A05/IDOC/E1PLOGI/E1PITYP/E1P0001/SNAME, keepss=true)), type=0), default_value=, result)
If i load the Instance XMl file and See the Context Queues .. the Number of the Context Changes in the Queue in more than the Context Changes that are to be produced
eg.. I feed 2 records as input then i see 6 context Changes
eg..
SUPPRESS
SUPPRESS
<ActualValue>
SUPPRESS
SUPPRESS
<ACTUAL VALUE>
I am expecting only 2 context changes with the actual Values... (if the second record does not have a value an empty value is expected)
Can Some help me in solving these Values... Some How i need to remove the SUPPRESS/false Values
Note: The Contects for the Source Elements are not changed
Regards
Edited by: aalla renukumar on Jun 27, 2011 12:18 PM

Hi aalla
Try setting property keepss of ifWithoutElse block to false.
Regards,
Giuseppe

Similar Messages

  • FCC for Multi-level Hierarchy

    Hi Friends,
    Can someone please help me out with this.Below is my Sender Data Type which needs to be converted:
    DT_TRAC_MESG
    (Hierarchy 1)         TRAC_INFO
                      (Hierarchy 2)   TRAC00
                         (Hierarchy 2)GROUP1
                                    (Hierarchy 3)TRAC05
                                    (Hierarchy 3)GROUP2
                                                 (Hierarchy 4)TRAC10
    (Hierarchy 4)                                             GROUP3
                     (Hierarchy 5)                                         TRAC11
    and my input data is as below :
    XXXXXXXXX  TRAC00 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (occurance 1)
    XXXXXXXXXXXXXXXXXXTRAC05XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (occurance 1)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC10XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC10XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC10XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTRAC11XXXXXXXXXXXXXXXXXXXXXXX
    I know Std SAP XI doesnt support more than 3 hierarchies but we are using a JMS adapter and this support more than 3 hierarchies.So please help us in achieving this mutli hierarchy conversion.Please atleast provide me the procedure to convert a 3 level Hierarchy structure.
    It would be of great help for me if someone can answer this and asap.
    Thanks & Regards,
    Pradeep.

    Hi
    follow this weblog
    File Content Conversion for Multi Hierarchical Structure
    or
    you can use seeburger to use multi level hierarchy
    SAP PI/XI : Content conversion using Generator mapping functionality of SeeBurger : Part 1.
    SAP PI/XI : Content Conversion using Generator mapping functionality of SeeBurger : Part 2.
    regards
    sandeep
    Edited by: sandeep sharma on Dec 15, 2008 10:45 AM

  • BAdI multi level hierarchy

    Regarding BAdIs we read a point in almost every website "Business Add-ins infrastructure is multi-level system landscape (SAP, partner, customer solutions, as well as country versions, and industry solutions). ". What does this exactly mean ? Kindly illustrate with an example.

    Hi,
    Please send some data from you table and what result would you like to recieve.
    Thanks
    Peter D.

  • Multi level hierarchy AdvancedDataGrid

    Hey guys,
       I have create a data struct as follows
    {env:"Marine"
         children:[
              {name: "name1",
               size: "size1",
              children:[
                   {complete: "val-1",
                    incomplete: "val-2"}
    I can display the first leve of hierarchy no problem, similar to example here (http://ticore.blogspot.com/2008/04/flex-collapsible-datagrid.html).  What I would really like to do is have, the second level expand so I can display values of complete and incomplete and other under the second child, eventually instead of displaying the values under second child, I want to create pie charts and have them expand/hide as user chooses.
    Does anyone have any pointers? I did google but didn't find anything that could help.
    Thank you
    Jaysheel

    Hey Guys,
      I have figured out how I could create a chart based on data input.  Only thing I need to do is have a Grid looking similar to the one here
    http://ticore.blogspot.com/2008/04/flex-collapsible-datagrid.html
    I just need not a way to expand each record, and display pie charts.  In the case of example above, I need to have it such that I can expand each person's record and see a pie chart.  I am banging my head against this one, and I have a feeling that I am overlooking something quite simple
    Thank you
    Jaysheel

  • How can i manage multi level hierarchy in ADF

    hi,
    i have three View Object which is based on table.
    EmployeeHdr- EmployeeVo
    LeaveApplyHdr- LeaveHdrVo
    LeaveApplyDet- LeaveDetVo
    now how can i manage master detail type of hierarchy among these table.
    a)foreign key relation b/w EmployeeHdr and LeaveApplyHdr based on EmployeeHdr.empcd = LeaveApplyHdr.empcd
    b)foreign key relation b/w LeaveApplyHd and LeaveApplyDet based on LeaveApplyHdr.apply_no=LeaveApplyDet.apply_no
    i have already create association and viewlink for these relationship.
    now can i manage this in Single jsf page.

    hi,
    open your application module and take the source
    And find out where the view links are Used..
    it may be like this...
    <ViewLinkUsage
        Name="ViewLinkA****1"
        Version="@@@@@@@@@@@@@@"
        ViewLinkObjectName="model.ViewLinkA****"
        SrcViewUsageName="model.AppModule.EmployeeVo5 "
        DstViewUsageName="model.AppModule.LeaveHdrvo6 " // check this
        Reversed="false"/>
      <ViewLinkUsage
        Name="ViewLinkB****1"
        Version="@@@@@@@@@@@@@@"
        ViewLinkObjectName="model.ViewLinkB****"
        SrcViewUsageName="model.AppModule.LeaveHdrvo6"//check this
        DstViewUsageName="model.AppModule.LeaveDetVo7 "
        Reversed="false"/>
      From this you can see that SrcViewUsageName reference, change it as per your need.
    Already in application module you may have different instance names, make sure that you have specified the correct names in the application module.
    Then refresh the datacontrol
    Ranjith

  • Multi-level error propagation during the execution of CFM2 transaction

    Hi,
    We are implementing SAP SCM 5.0 integrated to SAP R/3 Mills IS.
    During the execution of CFM2  transaction, while  trying to activate the integration model for the object u201COrdersu201D for the very first time, the following error message appears:
    *"Multi-level error propagation carried out".*
    There are also messages related to inbound queues blocked. In the case of maintenance orders, CIF_MNT_INBOUND message shows up. While working with Production orders, CIF_ORDER_INBOUND message emerges.
    The items listed below should be taken into account:
    -The production orders that are meant to be transferred to APO are regular production orders corresponding to several products.
    -We are working with configurable materials.
    -We are working with the active model (000) and for each plant we are using 2 different planning versions.
    Regards,
    Analía Nahmías

    Dear Analía,
    The corresponding error messages issued when executing //CCR indiacted the peg-ids are missing in liveCache.
    Recommendations:                                                      
    -Run transaction /SAPAPO/OM17 to check the internal consistency between database and liveCache within SCM system. Correct the inconsistencies                                                       
    -Execute report /sapapo/cif_deltareport3 to correct the inconsistencies between ECC and SCM system                            
    Regards,
    Tibor

  • Error in Multi Message Mapping

    Hi,
    I am getting the following error in my multi message mapping scenario where I am trying to create 2 different output files from a single input file based on some condition. I tested the message mapping by using a test file and it works fine, but when I use the same file and test it end to end the scenario is failing with the following error.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>Split mapping created no messages</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Split mapping created no messages</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Is there something wrong with my configuration?
    The trace has the following content.
    Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
      <Trace level="3" type="T">Document start</Trace>
      <Trace level="3" type="T">Start tag [ns0:Messages]</Trace>
      <Trace level="3" type="T">Add raw attribute [ xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"]</Trace>
      <Trace level="3" type="T">Start tag [ns0:Message1]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Message1]</Trace>
      <Trace level="3" type="T">Start tag [ns0:Message2]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Message2]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Messages]</Trace>
      <Trace level="3" type="T">Document end</Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_Employee1_MT_To_Employee1_MT_AND_Employee2_MT_MM_ completed. (executeStep() of com.sap.xi.tf._Employee1_MT_To_Employee1_MT_AND_Employee2_MT_MM_).</Trace>
      <Trace level="3" type="T">Message Type 1 Number of Messages 0</Trace>
      <Trace level="3" type="T">Message Type 2 Number of Messages 0</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 001</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>

    Hi,
    The scenario I am trying to test is a multi mapping scenario where I am trying to split one source message and create two target messages by using two different receiver interfaces, one for each message.
    I am on PI 7.1 and when I test message mapping and operation mapping using the payload from SXMB_MONI, it is successful. Whereas when I test the scenario end to end I am getting the following error messages:
    Operation Mapping
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Name
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Namespace
    http://accenture.com/1:N_multi-mapping
    Runtime error
    Split mapping created no messages
    Start tag ns0:Messages Add raw attribute xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge" Start tag ns0:Message1 Close tag ns0:Message1 Start tag ns0:Message2 Close tag ns0:Message2 Close tag ns0:Messages
    Could someone please help
    Cheers,
    S

  • Multi level mapping in PI. eg:  A = B= C w/o BPM

    Hi All,
    I want to do multi level mapping withou BPM i.e Structure A to structure B mapping and Structure B to Structure C i.e
    A=>B=> C. Let me know proc in PI 7.0/7.1 without BPM. Is this possible through Interface mapping or Interface determination ?
    Thanks,
    Jogula Ramesh

    Hi Ramesh,
    Finally you want Strcuture C as the out from PI System,?? if Yes then develop two mappings(A>B,B>C)and add it in Interface mapping,we can add any number of mappings in Interface mappings.
    The source message to Interface mapping is A and receiver would be C.
    This is will work.
    Regards,
    Raj

  • Query Regarding Multi-Message Mapping in Interface Mapping.

    Hi All,
    I've a query that can we use Multi-Message Mapping in Interface Mapping if:
    One mapping structure is simple one-2-one mapping and
    Second mapping is calling a stored procedure.
    Please give me some links if the answer is YES.
    Thanks in Advance.
    Regards,
    Sreedhar.
    Edited by: Sreedhar Av on Oct 12, 2009 1:26 PM

    Hi,
    Your question not clear buddy..what i understood is..
    If you want execute multiple message mappings in Interface mapping we can ,just add two mapping programs in interface mapping.first mapping program output is input to the second mapping program.
    If first mapping program is very simple,if you want to execute stored procedure in second level mapping write used defned fun ction to conect to data base or create JDMC receiver communication channel ,cal the communictaion channel in udf.write stored procedure in UDF.
    SEARCH for more info in sdn how to perform DBLOOKUPS.
    regards,
    Raj

  • 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

  • File-name not being fetched in a multi-message mapping by Dynamic Conf

    In a scenario, i have a BPM which has a transformation step which contains a mutimapping ...means 2 messages mapped to 1 messgaes, here in the mapping i m using an UDF and written code to extract the file name from dynamic configuration.....
    the problem is ...the same BPM contains another transformation step which contains a message mapping (which is not multi mapping), and here the code (UDF) works to fetch the file name...
    the code is all correct....and it looks like
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String sourceFileName = conf.get(key);
    if (sourceFileName == null ){
    sourceFileName = "ErrorFile.xml";}
    return sourceFileName;

    Hi,
    The scenario I am trying to test is a multi mapping scenario where I am trying to split one source message and create two target messages by using two different receiver interfaces, one for each message.
    I am on PI 7.1 and when I test message mapping and operation mapping using the payload from SXMB_MONI, it is successful. Whereas when I test the scenario end to end I am getting the following error messages:
    Operation Mapping
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Name
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Namespace
    http://accenture.com/1:N_multi-mapping
    Runtime error
    Split mapping created no messages
    Start tag ns0:Messages Add raw attribute xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge" Start tag ns0:Message1 Close tag ns0:Message1 Start tag ns0:Message2 Close tag ns0:Message2 Close tag ns0:Messages
    Could someone please help
    Cheers,
    S

  • Error wile Outbinding of the message in multi mapping

    HI
    I have a scenario SIEBEL->XI->R/3
    the data from siebel system is send through web services
    in xi this data is mapped into 2 IDOCS using multi mapping .
    I tested the scenario and i am getting the following error .
    <b><SAP:Code area="OUTBINDING">CO_TXT_MMF_ENGINETYPE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Messages in multi-message format can only be sent to one Adapter Engine</SAP:Stack>
    </b>
    Can some one help with this issue
    Thanks
    Nikhil

    Nikhil,
    For IDOC bundling, take a look at this blog and note no : 814393.
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    Regards,
    Bhavesh

  • 1: N multi mapping -----Message Mapping Error

    Hi,
    I am doing this scenario
    Various multi-mappings and Optimizing their Implementation in Integration Processes (BPM) in XI.
    In the design part of the mapping.
    How can I perform the message mapping
    Step 1. We are controlling occurrence of Output Piyush_msg_out_3 by mapping it with element2 with message context.
    Step 2.
    We are using u201CUseOneAsManyu201D under category node functions (SP14). It has three inputs ;
       1. Element which is going to be used for multiple times. In our case it is Element1 with message context.
       2. The element which is going to define how many times it will be replicated. Important thing, context should be same.
       3. Same as second input but with its own context in our case it is Element2.
    For Step 1,
    I have mapped piyush_msg_out_3 with Element2 (context is root)
    For Step 2,
    I have mapped
    Element1(context root)----
    |
    Element2(context root)----
    |   useOneAsMany -
    >Element1
    Element2(context root)----
    |
    subelement------> subelement
    I did not do root mapping.
    when do the test I am getting the following error
    Start of test
    Compilation of MM_multimappingandoptimizing successful Cannot produce target element
    /ns0:Messages/ns0:Message1/ns1:piyush_msg_out_3[2]/root/Element1. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd Cannot produce target element
    /ns0:Messages/ns0:Message1/ns1:piyush_msg_out_3[2]/root/Element1. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
    End of test
    I thought error generated due to Parent Node condition fails, How do I map the Top node,
    even though I mapped root------->root, I am  getting the same error in the instance test
    Please give me some suggestions
    my message mapping is correct or do I need to change the context of the node  or what should I have to do ?
    thanks
    manian

    Hi Praveen,
    I have checked the XSD tab of Source and Target message types. I can see the complete XSD.
    Source Message Type XSD:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:mlr:multimappingandoptimizing" targetNamespace="urn:mlr:multimappingandoptimizing">
         <xsd:element name="piyush_msg_in_1" type="piyush_msg_in_1" />
         <xsd:complexType name="piyush_msg_in_1">
              <xsd:annotation>
                   <xsd:appinfo source="http://sap.com/xi/TextID">
                   f1fd03a0cddd11ddc1c4001cc01cef0d
                   </xsd:appinfo>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="root">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             99ffb9e0cd1a11ddc6b0001cc01cef0d
                             </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="Element1" type="xsd:string">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            99ffb9e1cd1a11dd8843001cc01cef0d
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                  </xsd:element>
                                  <xsd:element name="Element2" maxOccurs="unbounded">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            99ffb9e2cd1a11dd8f7a001cc01cef0d
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="subelement" type="xsd:string">
                                                      <xsd:annotation>
                                                           <xsd:appinfo source="http://sap.com/xi/TextID">
                                                           99ffb9e3cd1a11dd8ff2001cc01cef0d
                                                           </xsd:appinfo>
                                                      </xsd:annotation>
                                                 </xsd:element>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:sequence>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>
    Target Message Type XSD:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:mlr:multimappingandoptimizing" targetNamespace="urn:mlr:multimappingandoptimizing">
         <xsd:element name="piyush_msg_out_3" type="piyush_msg_out_3" />
         <xsd:complexType name="piyush_msg_out_3">
              <xsd:annotation>
                   <xsd:appinfo source="http://sap.com/xi/TextID">
                   058e2b60cdde11ddaffd001cc01cef0d
                   </xsd:appinfo>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="root">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             7fb0d7d0cd1b11dd99ae001cc01cef0d
                             </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="Element1" type="xsd:string">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            7fb0d7d1cd1b11ddc07e001cc01cef0d
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                  </xsd:element>
                                  <xsd:element name="Element2">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            7fb0d7d2cd1b11dd9385001cc01cef0d
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="subelement" type="xsd:string">
                                                      <xsd:annotation>
                                                           <xsd:appinfo source="http://sap.com/xi/TextID">
                                                           7fb0d7d3cd1b11dda9d7001cc01cef0d
                                                           </xsd:appinfo>
                                                      </xsd:annotation>
                                                 </xsd:element>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:sequence>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>
    thanks
    manian

  • Multi-Message Mapping based on value of field - (Without BPM)

    Hi.
    I am having a bit of difficulty with multi-message mapping without BPM. I want to map to message1 & message2 based on a field in the rows of the source structure.
    e.g.
    row1-Source-Field1=> (if equal 0)   => <b>Message1</b>-field1.
    row2-Source-Field1=> (if equal 10) => <b>Message2</b>-field1.
    To attempt to do this, I use the conditions in the graphical mapper:
    if row-Source-Field1 = 0   => Map "Row to MessageType1".
    if row-Source-Field1 = 10 => Map "Row to MessageType2".
    However when I test this the mapping only seems to consider the first row value in row-Source-Field1 and ignores the fact that row two has a value of 10. I think this has something to do with contexts etc..
    I would appreciate any help please.
    Regards.
    Mick.

    in that case try this out
    row1-source-field1 (remove context) -- UDF -splitbyvalue-target
    UDF1(for message 1)
    for(int i=0;i<field1.length;i++)
    if(field1<i>.equals("0"))
    result.addValue(<field to be mapped><i>);
    UDF2(for message 2)
    for(int i=0;i<field1.length;i++)
    if(field1<i>.equals("10"))
    result.addValue(<field to be mapped><i>);

  • Message Mapping from flat XML to a Record structure

    Hi All,
    We have a scenario in which the input message is a PDF document. we are following below the blog to convert PDF to XML format which uses <b>PDF box utitlity</b>.
    /people/sap.user72/blog/2005/07/31/xi-read-data-from-pdf-file-in-sender-adapter
    We are able to convert the PDF doc to a flat XML file.
    Now we have the following queries...
    what are the different ways to map the flat XML to our record structure?
    Do we have any utitlity in PDF box to do that?
    Regards,
    Rakesh.

    Hi Rakesh,
    You have Graphical mapping, Java mapping, ABAP mapping and XSLT mapping. The choice depends on the scenario and what target result you require.
    <b>Message mapping using graphical mapping editor:</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/49/1ebc6111ea2f45a9946c702b685299/frameset.htm
    <b>XSLT mapping:</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/frameset.htm
    <b>Java Mapping:</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/frameset.htm
    <b>ABAP mapping:</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/ba/e18b1a0fc14f1faf884ae50cece51b/frameset.htm
    As said earlier, graphical mapping is the simplest and quite a few built in options are available with it, explore it and see which is suitable for your scenario.
    Regards,
    Chandra

Maybe you are looking for