Message Mapping Issue on header level

HI all,
I am doing File to IDOC scenario where I am having issue wiht mapping :
Flat File
Row -0Unbound
FieldA1..1
FieldB1..1
IDOC
--Segment
---Field1
---Field2
Segment1
Field11
FieldA is Order number.. IDOCs will generate up on order numbers change... FieldB is discount... If Discount is avaliable in any of the order number then I need to Pass YES orelse NO... Segment is a header segment where I need to pass whether discount is YES or NO... Suppose there are 5 rows of same order with discount in 4 row then I need to pass YES if discount doesnt avaliable in all 5 rows then NO..
Row
--FieldA<123>
--FieldB<>
</Row>
Row
--FieldA<123>
--FieldB<>
</Row>
Row
--FieldA<123>
--FieldB<10>
</Row>
Row
--FieldA<222>
--FieldB<>
</Row>
Row
--FieldA<222>
--FieldB<>
</Row>
IDOC
--Segment
---Field1<123>
---Field2<YES>
Segment1
Field11
</IDOC>
IDOC
--Segment
---Field1<222>
---Field2<NO>
Segment1
Field11
</IDOC>
Any inputs how to get value on header level? I tried but I am able to get only first value..not drilling down to each value depending on order number?
Thanks
Rajeev.

Hi Prakasu,
Its working but there is one issue: 
If one fo the discount value is 99.00 then I need to pass NO.. How can I achieve this? I used the UDF but it is taking only the highest value which is 99.00 but even if it is 99.00 I need to pass NO..
Suppose if first row discount is 99.00 and second row its 2,00 then I need to pass YES as it has 2,00 in the second row..
Row
--FieldA<123>
--FieldB
</Row>
Row
--FieldA<123>
--FieldB<99>
</Row>
Row
--FieldA<123>
--FieldB<>
</Row>
Row
--FieldA<222>
--FieldB<8>
</Row>
Row
--FieldA<222>
--FieldB
</Row>
IDOC
--Segment
---Field1<123>
---Field2<NO>
Segment1
Field11
</IDOC>
IDOC
--Segment
---Field1<222>
---Field2<YES>
Segment1
Field11
</IDOC>
First row value is 99 and Null it has to give NO as if discount has 99 then it should pass NO.. in the second order first row is 8 and second row is null.. it should give YES but it is giving NO becuase if is taking only the last value in the Context change..
Any inputs how to achieve this?
Thanks
Rajeev.
Edited by: rajeev raj on Nov 23, 2009 2:52 PM

Similar Messages

  • XI message mapping issue

    Hi,
    I have HTML -> XI -> RFC scenario and I have a problem with maping ...
    HTML outbound interface looks like:
    s_element_1
    s_element_2
    s_element_3
       s_element_3_1
       s_element_3_2
          s_element_3_2_1
          s_element_3_2_2
          s_element_3_2_3
    RFC inbound interface is as follows
    d_element_1
    d_element_2
    d_element_3
    d_element_4
    d_element_5
    d_element_6
    I have following mapping:
    s_element_1        -> d_element_1
    s_element_2        -> d_element_2
    s_element_3_1    -> d_element_3
    s_element_3_2_1 -> d_element_4
    s_element_3_2_2 -> d_element_5
    s_element_3_2_3 -> d_element_6
    mapping of s_element_1, s_element_2 to d_element_1, d_element_2 works correctly. Mapping of other elements does not work ... I have direct mapping without any functions.
    Has anybody an idea, why not?
    Thank you.

    Ask your basis to increase the trace level.
    Go to transaction sxmb_adm.
    Integration engine configuration --> specific configuration
    Category - Runtime
    Parameter - Trace_level
    Parameter TRACE_LEVEL
    Meaning
    The parameter TRACE_LEVEL enables you to locally set the trace level for all pipelines in an Integration Engine.
    However, the diagnostic header of a message can specify the trace level at which it is to be processed. Runtime then uses the higher of the local trace level and the message trace level.
    Usage
    You set this parameter when you want to analyze message processing as it enables you to document either individual steps or all steps in a pipeline.
    Possible Values
    0 Trace deactivated
    1 Document important processing steps
    2 Document important processing steps and details
    3 Document all processing steps and details
    Thanks,
    Beena.

  • Message Mapping Issue in PI 7.1

    Hi Experts
    I am working on a Message mapping,  and I have the following structures on the Sender and receiver side
    -->InterfaceHeader
    -->DocumentHeader  (1-Unbounded)
    -->DocumentLineItems (1-Unbounded)
    -->InterfaceTrailer -1
    Same structure on the sender and Receiver, I am sending the data as follows
    -->InterfaceHeader
    -->DocumentHeader1
    -->DocumentlineItems1
    -->DocumentHeader2
    -->DocumentlineItems2
    -->InterfaceTrailer -1
    after mapping I am getting the following results
    -->InterfaceHeader
    -->DocumentHeader1
    -->DocumentHeader2
    -->DocumentlineItems1
    -->DocumentlineItems2
    -->InterfaceTrailer -1
    i.e Header 1 and 2 are coming same and then details are coming, I need the result xml the same way which I have sent.
    find the example payload below, please let me know how can I get the structures in the same order of the sender payload.
    results should be
    -->InterfaceHeader
    -->DocumentHeader1
    -->DocumentlineItems1
    -->DocumentHeader2
    -->DocumentlineItems2
    -->InterfaceTrailer -1
    Thanks
    PR

    Check this blog...you have solution for this
    /people/shabarish.vijayakumar/blog/2010/01/14/file-conversion-using-nodeception

  • Message Mapping Issue with data without namespace

    Hi,
    I have a common xsd imported which has its own target namespace into my SWC namespace. Based on this xsd I have generated a Message Interface and webservice and given the wsdl to third party system for invoking my webservice.
    The problem is I have done the message mapping based on xsd which has namespace but whereas the third party system which is consuming my webservice is sending the xml data without any namespace and because of which my mapping is failing (target structure is not getting generated as expected). I have tested the mapping with namespace and without namespace from IR already. I have explained this below with example.
    I cannot change the xsd as it is a common and even cannot ask the end system to change the data format they are sending as they are sending the same data to some other systems also, which are not complaining.
    How to resolve this issue in XI?
    Actual xml data generated from my imported xsd (with namespace)
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Root xmlns:ns0="http://employee/types">
       <ns0:EmployeeDetails>
          <ns0:EmployeeId>12</ns0:EmployeeId>
            <ns0:EmployeeName>XYZ</ns0:EmployeeName>
    </ns0:EmployeeDetails>
    </ns0:Root>
    Actual Data coming from third party system (without namespace)
    <?xml version="1.0" encoding="UTF-8"?>
    <Root>
       <EmployeeDetails>
          <EmployeeId>12</EmployeeId>
            <EmployeeName>XYZ</EmployeeName>
    </EmployeeDetails>
    </Root>
    Thanks
    Amit

    Just  wild guess:)
    I am not 100% sure but i guess XSLT mapping does not checks the incoming payload against the sender message type.Within XSLT mapping you can add/remove namespace as you would like,use this XSLT mapping before your actual message mapping in interface mapping.
    I am saying this coz recently i was able to generate XSLT mapping(in altova Map Transform) without even specifying any sender or receiver Message type and it worked just fine.
    Thanx
    Aamir

  • Message Mapping for multiple item levels

    Hi,
    My query is regarding message mapping
    Example of source data structure & Target data structure
    Source data Structure
    <item>
          --<no>1</no>
          --<address/>
          --<ITEMS>
            ----<item>
              ------<Name>a</Name>
            ----<item>
              ------<Name>b</Name>
    <item>
          --<no>2</no>
          --<address/>
          --<ITEMS>
            ----<item>
              ------<Name>c</Name>
            ----<item>
              ------<Name>d</Name>
    Expected  Target data structure
    <Item>
      -- <no>1</no>
      -- <name>a</name>
    <Item>
      -- <no>1</no>
      -- <name>b</name>
    <Item>
      -- <no>2</no>
      -- <name>c</name>
    <Item>
      -- <no>2</no>
      -- <name>d</name>
    How I can map the '<no>' field to target '<no>' field to repeat value until to second sub item level occurance complete ?
    Thank you
    Sateesh

    Hi Sateesh,
    Please see the solution below.
    The are 2 contect changes you need to do on field level. Right click and go to context and select your context you need.
    Context on ITEMS - Should be on Root Structure(In my mapping it is MT_Multiple_Item_Level_Source)
    Context on Name - Should be on Item (The first Item Tag)
    Good Luck.
    Regards,
    Jannus Botha

  • PO Form Issue with Header Level Changes

    Issue:
    It has been observed that whenever changes are done in PO Header (e.g. Header Text), system prints Billing Address and Communications Details as blank. If the changes are made to Line Item level along with header then system prints the Billing address and Communication Details correctly.
    Analyse:
    we are using the SELECT statement below to fetch the field for
    Billing Address and Communications Details.
    SELECT SINGLE
    mandt z_plant z_company_code z_toll_free_no z_local_no z_fax_no
    z_email z_name1 z_name2 z_street z_house_no z_district z_post_code
    z_city z_country z_vat_no z_loc_term_cond z_langu
      FROM zptp_poformdata
      INTO w_poformdata
      WHERE z_plant = ls_ekpo-werks
    AND   z_company_code = ls_ekpo-bukrs .  
    And when we only change the header level  data no value is passing for comany code and plant . as a result Select statement gets failed and we are getting blank window.
    NOTE: we are getting blank box only when we fire a print or fax.The preview is coming fine.

    by asking so many questions in a single post,you are violating the rule of engagement given below
    Only One Question Per Posting
    For each question that you have, make a separate posting. Don't ask multiple questions in one posting, this is confusing for people and might not get answered, since the subject line does not reflect all your problems. If a new and unrelated question comes up during a thread, start a new thread.

  • SQL to BAPI  Message Mapping Issue

    This is my datatype for source, which refered by resultset
    <?xml version="1.0" encoding="UTF-8"?>
    <mt_PhysCountInfo>
       <row>
          <PROCESSED/>
          <TRANS_ID/>
          <TRANS_RFC/>
          <SAPABX_STATUS/>
          <SIGN/>
          <OPTION1/>
          <LOW/>
          <HIGH/>
       </row>
    </mt_PhysCountInfo>
    When  JBDC Sender Adapter polls SQL Database, SQL select statement is written in such way that its picks data from 5 tables among them datatypes in 4 tables is same(SIGN, OPTION1, LOW, HIGH) with different values....which in turn will be mapped to 4 corresponding tables in BAPI.
    Here is my souce once JDBC adapter picks from SQL tables:
    <?xml version="1.0" encoding="utf-8"?>
    <mt_PhysCountInfo>
         <row>
              <PROCESSED>N</PROCESSED>
                    <TRANS_ID>1847201</TRANS_ID>
                    <TRANS_RFC>BAPI_MATPHYSINV_GETITEMS () <b>plant_ra, stge_loc_ra, count_status_ra, phys_inv_no_ra</b>, items, headers, return</TRANS_RFC>
                    <SAPABX_STATUS>x</SAPABX_STATUS>
                    <SIGN><b>I</b></SIGN>
                    <OPTION1><b>EQ</b></OPTION1>
                    <LOW> </LOW>
                    <HIGH></HIGH>
                    <SAPABX_STATUS>x</SAPABX_STATUS>
                    <SIGN><b>I</b></SIGN>
                    <OPTION1><b>BT</b></OPTION1>
                    <LOW></LOW>
                    <HIGH><b>ZZZZZZZZZZZZZZZZ</b></HIGH>
                    <SAPABX_STATUS>x</SAPABX_STATUS>
                    <SIGN><b>I</b></SIGN>
                    <OPTION1><b>EQ</b></OPTION1>
                    <LOW><b>WOIL</b></LOW>
                    <HIGH></HIGH>
                    <SAPABX_STATUS>x</SAPABX_STATUS>
                    <SIGN><b>I</b></SIGN>
                    <OPTION1><b>BT</b></OPTION1>
                    <LOW>    </LOW>
                    <HIGH><b>ZZZZ</b></HIGH>
         </row>
    </mt_PhysCountInfo>
    This is how my target stucture looks like now. But I am not getting right mapping here. If you see values for SIGN, OPTION1, LOW and HIGH they all are same for all tables...means its mapping first set values from source to all tables in target.
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:BAPI_MATPHYSINV_GETITEMS xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <b><COUNT_STATUS_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> </LOW>
             <HIGH/>
          </item>
       <b></COUNT_STATUS_RA></b>
       <HEADERS/>
       <ITEMS/>
       <b><PHYS_INV_NO_RA></b>    
          <item> 
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> </LOW>
             <HIGH/>
          </item>
       <b></PHYS_INV_NO_RA></b>  
       <b><PLANT_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> </LOW>
             <HIGH/>
          </item>
       <b></PLANT_RA></b>
       <RETURN/>
       <b><STGE_LOC_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> </LOW>
             <HIGH/>
          </item>
       <b></STGE_LOC_RA></b>
    </ns0:BAPI_MATPHYSINV_GETITEMS>
    But target should look like this after mapping:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:BAPI_MATPHYSINV_GETITEMS xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
       <b><COUNT_STATUS_RA></b>     
           <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> <b>WOIL</b></LOW>
             <HIGH/>
          </item>
       <b></COUNT_STATUS_RA></b>
       <HEADERS/>
       <ITEMS/>
       <b><PHYS_INV_NO_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>BT</b></OPTION>
             <LOW> </LOW>
             <HIGH><b>ZZZZ</b></HIGH>
          </item>
       <b></PHYS_INV_NO_RA></b>
       <b><PLANT_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>EQ</b></OPTION>
             <LOW> </LOW>
             <HIGH/>
          </item>
       <b></PLANT_RA></b>
       <RETURN/>
       <b><STGE_LOC_RA></b>
          <item>
             <SIGN><b>I</b></SIGN>
             <OPTION><b>BT</b></OPTION>
             <LOW> </LOW>
             <HIGH><b>ZZZZZZZZZZZZZZZZ</b></HIGH>
          </item>
       <b></STGE_LOC_RA></b>
    </ns0:BAPI_MATPHYSINV_GETITEMS>
    Can I achieve this by using Message Mapping??? or If I have to do with XSLT or JAVA can anybody provide me code.
    Thank You
    Indrasena

    Hi,
    >>>Can I achieve this by using Message Mapping???
    it depends:)
    do you always get 4 values (one for each target table?)
    if so then you create a few user advanced functions
    that will return values in direct order:
    first function:
    result.addValue(a[0]);
    sencond one:
    result.addValue(a[1]);
    and so on
    then you can use those functions
    to map values to different tables
    if you have more then you can do some if conditions
    in the user advanced function
    Regards,
    michal

  • Message mapping issue

    Hi guys,
    I am facing an issue in mapping.
    it is IDOC to File scenario.
    this is wat i have to perform.
    (MARM-UMREN / MARM-UMREZ) for PC               x                    (MARM-UMREZ / MARM-UMREN) for CAS.
    here PC and CAS both taken from MARM-MARM..which i got from my IDOC.
    How can i get make 2 values for MARM_meinh(PC and CAS).only 1 value comes in idoc.
    please provide me some logic for this.
    Thanks in advance.
    Sahil

    Hi,
    You can use advanced user defined function.
    Give input as Header element.
    add all the elements within header in the result set.
    put splitByvalue at the output of user defined funstion and map it to  sub..
    i assume that sub is unbounded.
    This should work. check this out.
    reply if it works
    thanks and regards
    P.Venkat

  • Message mapping issue in idoc to jdbc scenario

    We have a scenario of  idoc->XI-JDBC
    the below given segment may get repeated , as shown below ,
    E1EDP19[2]--idoc segment
       QUALF---003
       IDTNR---01000123(Bar Code No)
    E1EDP19[3]--idoc segment
       QUALF---003
       IDTNR---20500000000034(EAN No)
    Reqd mapping
    if QUALF=003
    THEN IDTNR----->Bar_code_Number_EAN
    Now IDTNR has to be mapped with Bar_code_Number_EAN for the segment which comes last
    Pl suggest how to map using graphical mapping for the above scenario.

    Hi Raj ,
    The current mapping works fine if the parent segment E1EDP01 is only one but if that gets repeated then the last value of IDTNR is getting populated in the target side, very clearly i m giving the source and target structure and the mapping done using the UDF
    Source structure
    E1EDP01
           E1EDP19[1]--idoc segment
                  QUALF---002
                  IDTNR---01000123(Bar Code No)
           E1EDP19[2]--idoc segment
                  QUALF---003
                  IDTNR---01000123(Bar Code No)
           E1EDP19[3]--idoc segment
               QUALF---003
               IDTNR---20500000000030(EAN No)
    E1EDP01
         E1EDP19[1]--idoc segment
                    QUALF---002
                    IDTNR---01000123(Bar Code No)
         E1EDP19[2]--idoc segment
                   QUALF---003
                   IDTNR---01000123(Bar Code No)
          E1EDP19[3]--idoc segment
                 QUALF---003
                 IDTNR---20500000000031(EAN No)
    E1EDP01
           E1EDP19[1]--idoc segment
                   QUALF---002
                    IDTNR---01000123(Bar Code No)
          E1EDP19[2]--idoc segment
                  QUALF---003
                  IDTNR---01000123(Bar Code No)
         E1EDP19[3]--idoc segment
              QUALF---003
              IDTNR---20500000000032(EAN No)
    Target mapping
    if QUALF=002
    THEN IDTNR--->Article_No this is the direct mapping so , no issues
    if  QUALF=003
    THEN IDTNR----->Bar_code_Number_EAN, now this IDTNR should get repeated every time  the segment  E1EDP01 gets repeated , currently only the last value form all the  IDTNR is coming to the target side.
    The current mapping works fine if the parent segment E1EDP01 is only one
    Target structure
    Access1
    IDTNR--> Bar_code_Number_EAN( value is 20500000000030)
    Access2
    IDTNR--> Bar_code_Number_EAN( value is 20500000000031)
    Access3
    IDTNR--> Bar_code_Number_EAN( value is 20500000000032)
    Current mapping
    If QUALF = 003
                    Then  QUALF ---->
                                                     mapBarCodeEAN---->Bar_code_Num_EAN
    If QUALF = 003
                    Then  IDTNR ---->
    Context of QUALF is set to E1EDP01
    Context of IDTNR is set to  E1EDP01
    thanks for your personalised help
    rgds
    mojib
    Edited by: mohammad mojib ur rahman on Apr 9, 2010 1:30 PM

  • Message Mapping - Node's sub-levels navigation

    Hi all,
    How should I code in order to navigate between different levels of a given node of the source structure?
    example:
    Main
      Struct_11
        Struct1101
          Field_1101_A
          Field_1101_B
        Struct1102
          Field_1102_A
          Field_1102_B
      Struct_22
        Struct2201
          Field_2201_A
          Field_2201_B
        Struct2202
          Field_2202_A
          Field_2202_B
    In the sample above, how should I do to map the node Struct_11 and, within a UDF (or some other way, but I only imagine through a Java UDF), access and validate Struct1101-Field_1101_A, or Struct1102-Field_1102_B, etc?
    If someone could provide me with a sample code, it'd help me.
    Thank you!

    Mark, tks. It helped.
    I could do all that I needed withing the XML working as a text.
    The only problem now is that, the target structure must be built according to the source cardinality (N..N).
    In the sample bellow, see that in the source structure, the Struct_11 repeat 3 times. In the 1st and 3rd, it contains the substructure Struct1101. I have to check if Struct1101 exists, if so, I have to take the Field_1101_A and validate if it's equal to WE. If yes, then the correspondent Field_1101_B has to be sent to target <row> field.
    In the 2nd occurrence, there NO Struct1101, so the UDF returns #void#.
    UDF to map Struct_11:
    int v_pos1, v_pos2, v_start = 0;
    String v_Struct1101 = "Struct1101";
    String v_WE = "WE";
    String v_FieldA = "<Field_1101_A>WE</Field_1101_A>";
    String v_FieldB = "";
    v_pos1 = Item.indexOf(v_Struct1101);
    if(v_pos1 >= 0){
         v_pos2 = Item.indexOf(v_FieldA);
         v_start = v_pos2 + 32;
         v_FieldB = Item.substring(v_start, v_start+10);
    }else{
              v_FieldB = "#void#";
    return v_FieldB;
    Source
    <Main>
      <Struct_11>
        <Struct1101>
          <Field_1101_A>WE</Field_1101_A>
          <Field_1101_B>110</Field_1101_B>
        </Struct1101>
        <Struct1102>
          <Field_1102_A>ZS</Field_1102_A>
          <Field_1102_B>222</Field_1102_B>
        </Struct1102>
      </Struct_11>
      <Struct_11>
        <Struct1102>
          <Field_1102_A>ZS</Field_1102_A>
          <Field_1102_B>222</Field_1102_B>
        </Struct1102>
      </Struct_11>
      <Struct_11>
        <Struct1101>
          <Field_1101_A>WE</Field_1101_A>
          <Field_1101_B>112</Field_1101_B>
        </Struct1101>
        <Struct1102>
          <Field_1102_A>ZS</Field_1102_A>
          <Field_1102_B>222</Field_1102_B>
        </Struct1102>
      </Struct_11>
      <Struct_22>
        <Struct2201>
          </Field_2201_A>
          </Field_2201_B>
        <Struct2202>
          </Field_2202_A>
          </Field_2202_B>
    </Main>
    Target
    <result>
      <row>110</row></result>
    <result>
      <row>#void#</row></result>
    <result>  <row>112</row></result>
    <result> is mapped to <Struct_11>, so that for each <Struct_11>, one <result> is created.
    I've insert this sample payload and in the Definition tab, Display Queue option shows me the right result:
    110
    #void#
    112
    However, during the MM test, it throws error:
    Cannot create target element /ns0:MT_TARGET/result[2]/row. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD
    Any clue?
    Thank you !
    Edited by: rvsilvax on Sep 14, 2011 9:00 PM

  • XML message mapping issue!!

    Hi ipbuff,
    Many Thanks for your very quick reply. I have tried the way what explain, but not working . I am attaching both the structures, please guys throw your valuable openions and technical ways how to resolve this. I have 5 segments in Header, more than Lin item repeats more than 50 times. How do I map DTM Segment, <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> value for all target side node <ProductActivityNotification>ProductActitvity>Item>SalesTimeSeries>Item>Validate-->StartDate field.
    This filed generates the same amount of lIn item generates.
    Please your quick response.
    I will really appreciate your quick and positive response.
    http://img837.imageshack.us/img837/7786/mappinghelp.jpg
    Many Thanks
    Kind Regars
    San

    Hi Sandhya,
    I have 5 segments in Header, more than Lin item repeats more than 50 times. How do I map DTM Segment, <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> value for all target side node <ProductActivityNotification>ProductActitvity>Item>SalesTimeSeries>Item>Validate-->StartDate field
    Upto my understanding, u want to map <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> to StartDate(as above mentioned path).
    Since u have 50 occurences for <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> parent node, but in target its not..... am i rt?
    If yes..
    Map from <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> to StartDate, and u also add a node function collapse contexts.
    Collapse context will give the very first value in every context.
    <DTM_Y2K_DATE>20100531</DTM_Y2K_DATE> > Collapse Context>StartDate.
    I think this should solve ur problem.
    If still not let us know...
    Babu

  • Message Mapping: Items under Header node.

    Hi,
    Below is the file sample:
    0LBS00000000082011090707:30:13~0000000009
    4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
    5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    5002QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    4GBP55.67SB300005VISTADocNO1100DistChanPaymentDays
    5001QuanUoMNetPriceGrossPricePubDiv9781444724585201109071001.1
    1~7
    Record Type:Header Record(Always = 0),Min Occurrence:1,Max Occurrence:1
    Record Type:Sales Invoice Header Record (Always = 4),Min Occurrence:0,Max Occurrence:unlimited
    Record Type:Sales Invoice Item Record (Always = 5) ,Min Occurrence:1(per Sales Invoice Header Record)
    ,Max Occurrence:999999 (per Sales Invoice Header Record)
    Record Type:Trailer Record(Always = 1),Min Occurrence:1,Max Occurrence:1
    The Src Str is:
    Header
    SalesInvoiceHeader
    SalesInvoiceItem
    Trailer
    The target Str is:
    Header
    SalesInvoiceHeader
    SalesInvoiceItem (Child node of SalesInvoiceHeader)
    Trailer
    Provide some inputs.
    Thanx

    You can read this with FCC.
    you to create  4 structure
    DT_input
    ...HeaderRecord 1..1
    .....f1
    .....f2
    .....fn
    ...SalesInvoiceHeader 1..unbounded
    .....f1
    .....f2
    .....fn
    ...SalesInvoiceItem  1..unbounded
    .....f1
    .....f2
    .....fn
    ...Trailer  1..1
    .....f1
    Content conversion paarameters
    Recorset Structure = HeaderRecord,1,SalesInvoiceHeader,*,SalesInvoiceItem,*,Trailer,1
    Key Field Names = KEY
    HeaderRecord.fieldNames = KEY,.......
    HeaderRecord.fieldSeparator = '~'
    HeaderRecord.keyfieldValue = 0
    SalesInvoiceHeader.fieldNames = KEY,.......
    SalesInvoiceHeader.fieldSeparator = '~'
    SalesInvoiceHeader.keyfieldValue = 4
    SalesInvoiceItem .fieldNames = KEY,.......
    SalesInvoiceItem .fieldSeparator = '~'
    SalesInvoiceItem .keyfieldValue = 5
    Trailer .fieldNames = KEY
    Trailer .fieldSeparator = '~'
    Trailer .keyfieldValue = 1
    good luck

  • Message Mapping Doubt

    Hi Experts,
    Im stuck up with a message mapping issue. Need your advice if I can handle this in message mapping or should I changed the FCC.
    FILE to RFC scenario.
    Input file sample.
    1|OPENED|153-01-19|T001|005151|0237|20100705|17:35:55|001     |20100705
    101|A005152|1|20100705|11:46:38|001     ||||001||1|N|SALE
    111|WCAKE004|1.000|42.00|42.00||G||0.00|LIQUOR|||N|42.00|0.00|$|0.00|WCAKE004
    111|WCAKE004|-1.000|42.00|42.00||G||0.00|LIQUOR|||N|-42.00|0.00|$|0.00|WCAKE004
    111|WCAKE005|1.000|38.00|38.00||G||0.00|LIQUOR|||N|38.00|0.00|$|0.00|WCAKE005
    121|38.00|0.00|0.00|0.00|0.00|I|N||0.00|0.00
    131|T|CASH|S$|1.0000000|38.00||||38.00
    141|G|0.00
    1|CLOSED|153-01-19|T001|005162|0237|20100705|17:35:55|001     |20100705
    After the FCC the message comes into XI in the format (Source message) .
    GMRSTORES
    --CODE1
    1
    OPENED etc..
    --CODE101
    101
    A005152
    1 etc..
    --CODE111
    111 etc..
    --CODE111
    111 etc..
    --CODE111
    --121
    --131
    --141
    --1
    The problem is on the target side when I try to map the Code111 (line item) to the targert RFC it comes only once or all the Code111 nodes comes under the same "ITEM_LI" The target RFC structure is like.
    --/POSDW/CREATE_TRANSACTIONS_EXT
    IT_TRANSACTION
    ITEM
    RetailLIne Item
    ITEM_LI (here is the problem I expect 3 ITEM_LI nodes for each CODE111)
    Pls advice.
    Thanks
    Prasanna

    The problem is on the target side when I try to map the Code111 (line item) to the targert RFC it comes only once or all the
    Code111 nodes comes under the same "ITEM_LI"
    here is the problem I expect 3 ITEM_LI nodes for each CODE111
    1) Ensure that you have raised the Context of the source node (CODE111) to a higher node.
    2) Is your mapping logic proper..... is the ITEM_LI node or its parent node mapped properly so that when the CODE111 repeats, the target is also able to repeat?
    3) did you check the max occurence of ITEM_LI node.....it should be more than 1
    Regards,
    Abhishek.

  • Message Mapping of a CASE statement

    I'd like to implement the functionality offered by a CASE statement in a Message Map or a multi-level if-else.
    If "S" Then
    "Acc"
    ElseIf "I" Then
    "In"
    Elseif "E" Then
    "Rej"
    EndIf
    TIA
    Tim

    Hi Tim,
    There's a built-in function in Message Mapping that you can use without writing a user-defined function.
    Category: Conversions
    Name: FixedValues
    Thanks,
    Jesse

  • ME21N-Clear error at header level

    Hello Experts,
    I have a requirement to throw an error message in ME21N if the PR's Sale order has credit limit exceeded.
    I have done this with exits. Once the error message is thrown, this error message sits at the header level. Even when deleting the erroraneous line item, this message is not cleared.
    I want to remove this message at header level when this erroraneous record is deleted. Please guide me for this.
    Thanks
    Seema

    Hi,
    Deactivate that Exit and do this with the BADI.
    BADI for this is ME_PROCESS_PO_CUST.
    There is one method Process_header. Do the validation in this method for the header level.
    Hope this will be easy comparing with Exits.
    With Regards,
    Sumodh.P

Maybe you are looking for

  • Printing from Pages 3.0.1

    Anybody know why I get a a 'paper too small' error when printing in A4 landscape to a HP B9180 using Pages 3.0.1? I have had to revert to Pages 3.0, which fixed the problem. Has anybody come across this with other printers, please?

  • Slideshow can not be export: An invalid file or volume name has been detected.

    How can I find this file after following error? slideshow can not be export An invalid file or volume name has been detected. I am not able to export my slideshow at all Wie kann ich diese Datei finden nach der Error Meldung? Diashow kann nicht expor

  • Refresh of BW development from BW production - consequences

    One of the customers I work with - we are looking at refreshing BW Development system from BW production - just to bring them in sync . I believe this can cause issues with 1) object ownership - the TADIR entry for all objects - "originating system"

  • How do i troubleshoot my ipod touch?

    I Need to figure out how to trouble shoot my Ipod touch because I updated it to the newest version and when it restored it, it deleted all my music and I broke the computer that I had all the music on. If you can help me I will deeply appreciated it

  • JavaBean as Model ?

    Can I use a javabean (not an EJB) in the model part of the MVC. I use a javabean for extracting information from my database. Thank you vry much.