Mapping to 3rd hierarchical level in IDoc

Hi, well i have a little problem.
Scenario: File to IDoc
i get this kind of file:
<i>P|67220400|9991233643|
W|71123456|1|4|BPL
K|70100005|15|X|9999
K|70100200|4||1200
K|70100210|3||300
W|71123456|1|4|ABM
K|70100005|15|X|9999
K|70100200|4||1200
K|70100210|3||300</i>
...where P, W, K are keyfields.
The IDoc has three hierarchical levels, whereas P is first, W second and K third.
All these values should be mapped in one IDoc. But everytime a new W occurs there is a new recordset generated, so a new IDoc.
Nevertheless i map as follows:
<i>/ZIDOC/IDOC =/MT_EPLAN/ EPLANRecordSet=
/ZIDOC/IDOC/@BEGIN =const([value=])
/ZIDOC/IDOC/EDI_DC40/@SEGMENT =const([value=])
/ZIDOC/IDOC/EDI_DC40/TABNAM =const([value=])
/ZIDOC/IDOC/EDI_DC40/DIRECT =const([value=])
/ZIDOC/IDOC/EDI_DC40/IDOCTYP =const([value=])
/ZIDOC/IDOC/EDI_DC40/MESTYP =const([value=])
/ZIDOC/IDOC/EDI_DC40/SNDPOR =const([value=])
/ZIDOC/IDOC/EDI_DC40/SNDPRT =const([value=LS])
/ZIDOC/IDOC/EDI_DC40/SNDPRN =const([value=COS])
/ZIDOC/IDOC/EDI_DC40/RCVPOR =const([value=])
/ZIDOC/IDOC/EDI_DC40/RCVPRN =const([value=])
/ZIDOC/IDOC/ ZBC15_EPLAN= /MT_EPLAN/EPLANRecordSet/EPLANHead =
/ZIDOC/IDOC/ZBC15_EPLAN/ @SEGMENT=const([value=])
/ZIDOC/IDOC/ZBC15_EPLAN/EPLAN =/MT_EPLAN/EPLANRecordSet/EPLANHead/ Data1=
/ZIDOC/IDOC/ZBC15_EPLAN/ WERKSTUECK= /MT_EPLAN/EPLANRecordSet/EPLANHead/Data2 =
/ZIDOC/IDOC/ZBC15_EPLAN/ ZBC15_WERK= /MT_EPLAN/EPLANRecordSet/EPLANWerkz =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ @SEGMENT=const([value=])
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ WERKSTUECK= /MT_EPLAN/EPLANRecordSet/EPLANWerkz/Data1 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ POSNR= /MT_EPLAN/EPLANRecordSet/EPLANWerkz/Data2 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ ANZAHL= /MT_EPLAN/EPLANRecordSet/EPLANWerkz/Data3 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ KTEXT= /MT_EPLAN/EPLANRecordSet/EPLANWerkz/Data4 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ ZBC15_KOMP= /MT_EPLAN/EPLANRecordSet/EPLANKomp =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ZBC15_KOMP/ @SEGMENT=const([value=])
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ZBC15_KOMP/ KOMP= /MT_EPLAN/EPLANRecordSet/EPLANKomp/Data1 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ZBC15_KOMP/ ANZAHL= /MT_EPLAN/EPLANRecordSet/EPLANKomp/Data2 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ZBC15_KOMP/ ART= /MT_EPLAN/EPLANRecordSet/EPLANKomp/Data3 =
/ZIDOC/IDOC/ZBC15_EPLAN/ZBC15_WERK/ZBC15_KOMP/ MENGE= /MT_EPLAN/EPLANRecordSet/EPLANKomp/Data4 =
</i>
Can someone help me?!
br

Hi Carsten,
      As per my understanding of u r requirement check the maping for IDOC field in the strucutre.you have mapped with MT_EPLAN/ EPLANRecordSet.Once check the occurence of this.
Cheers
Veera
>>>Reward Points,If it is needful.

Similar Messages

  • Mapping problem on different levels. (IDOC) to XML

    I am having a mapping issue with a multi segment IDOC. It seems that it should be pretty straight forward but I am struggling. I have looked at some pretty good documentation but it still doesn't seem to help. The IDOC segments deal with text lines in SAP. The text identifier is at a higher level and the text lines are a level below the text identifier. I am writing these records to XML . Both of these are at the same level. I need to combine the text identifier from the higher level to to each text line in the XML.
    Here is my source file. It contains two different types of text identifiers (TDID)
    <E1TXTH8 SEGMENT="1">
    <TDID>0012</TDID>
    <TDSPRAS>E</TDSPRAS>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 1 of TDID 0012</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 2 of TDID 0012</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 3 of TDID 0012</TDLINE>
    </E1TXTP8>
    </E1TXTH8>
    <E1TXTH8 SEGMENT="1">
    <TDID>Z110</TDID>
    <TDSPRAS>E</TDSPRAS>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 1 of TDID Z110</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 2 of TDID Z110.</TDLINE>
    </E1TXTP8>
    </E1TXTH8>
    I wand this to map so that I see the following results:
    <TDID>0012</TDID>
    <TDLINE>This is line 1 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>0012</TDID>
    <TDLINE>This is line 2 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>0012</TDID>
    <TDLINE>This is line 3 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>Z110</TDID>
    <TDLINE>This is line 1 of TDID Z110</TDLINE>
    </access>
    <access>
    <TDID>Z110</TDID>
    <TDLINE>This is line 2 of TDID Z110</TDLINE>
    </access>
    </MDB_tblshippingtext>
    </InsertStatement_ShippingText>
    So far I have been unsuccessful. I am mapping the access element to the lower level segment E1TXTP8. This gives me all of the text lines but the TDID is not filled in properly.
    If I map the access element to the highler level E1TXTH8 then I do not get all of my text lines from the lower level. I have looked at the document "Replication of Nodes using the graphical tool mapper" but I still don't seem to understand my problem.
    Any help is appreciated.
    Thanks,

    Hi Neela,
    I have uploaded Mapping pictures(Access node Mapping,TDID field Mapping,TDLINE Field Mapping).
    http://www.flickr.com/photos/14144840@N02
    In Access node Mapping You can use removeContexts node function as shown in Pic or without using removeContexts function Change Context to parent of E1TXTH8 node (How to Change Context: Right click on TDLINE in Data flow editor Context->select parent of E1TXTH8 node)
    In TDID field Mapping  useOneAsMany node function and change contexts of 2nd and 3rd inputs of this function to E1TXTH8 as shown in Pic.
    Please let me know if you have any issues.
    Thanks,
    Jag

  • Mapping problem on different levels. (IDOC) to SQL

    I am having a mapping issue with a multi segment IDOC. It seems that it should be pretty straight forward but I am struggling. I have looked at some pretty good documentation but it still doesn't seem to help. The IDOC segments deal with text lines in SAP. The text identifier is at a higher level and the text lines are a level below the text identifier. I am writing these records to a SQL database table and the table will just contain the text identifier and then the text line. Both of these are at the same level. I need to combine the text identifier from the higher level to to each text line in the database table.
    Here is my source file. It contains two different types of text identifiers (TDID)
    <E1TXTH8 SEGMENT="1">
    <TDID>0012</TDID>
    <TDSPRAS>E</TDSPRAS>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 1 of TDID 0012</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 2 of TDID 0012</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 3 of TDID 0012</TDLINE>
    </E1TXTP8>
    </E1TXTH8>
    <E1TXTH8 SEGMENT="1">
    <TDID>Z110</TDID>
    <TDSPRAS>E</TDSPRAS>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 1 of TDID Z110</TDLINE>
    </E1TXTP8>
    <E1TXTP8 SEGMENT="1">
    <TDLINE>This is line 2 of TDID Z110.</TDLINE>
    </E1TXTP8>
    </E1TXTH8>
    I wand this to map so that I see the following results:
    <InsertStatement_ShippingText>
    <MDB_tblshippingtext action="INSERT">
    <access>
    <TDID>0012</TDID>
    <TDLINE>This is line 1 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>0012</TDID>
    <TDLINE>This is line 2 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>0012</TDID> 
    <TDLINE>This is line 3 of TDID 0012</TDLINE>
    </access>
    <access>
    <TDID>Z110</TDID> 
    <TDLINE>This is line 1 of TDID Z110</TDLINE>
    </access>
    <access>
    <TDID>Z110</TDID> 
    <TDLINE>This is line 2 of TDID Z110</TDLINE>
    </access>
    </MDB_tblshippingtext>
    </InsertStatement_ShippingText>
    So far I have been unsuccessful. I am mapping the access element to the lower level segment E1TXTP8. This gives me all of the text lines but the TDID is not filled in properly.
    If I map the access element to the highler level E1TXTH8 then I do not get all of my text lines from the lower level. I have looked at the document "Replication of Nodes using the graphical tool mapper" but I still don't seem to understand my problem.
    Any help is appreciated.
    Thanks,
    Jim

    Hi Jim,
    there are a couple of things to look at:
    1. If you always have at least one E1TXTP8 segment under each E1TXTH8 segment, you can use the function useOneAsMany. Jin Chin gave you all the pointers to look at (remember to check the context for the mapping of your element "access")
    2. If you test with samples that have a E1TXTH8 segment without a segment E1TXTP8 underneath, the function useOneAsMany will give you the error you encounter. In that case you need to use one of the different mappings described in the <a href="/people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool">weblog</a> you mentioned.
    3. If it still doesn't work, can you give us the sample XML that causes the error?
    Regards,
    Claus

  • Communication between SAP and 3rd Party Systems using IDOC HTTP XML Interfa

    Hi
    i am try do
    Communication between SAP and 3rd Party Systems using IDOC HTTP XML Interface
    With The help of SDN Contribution
    link----
    ( have look on it)
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4943f2b7-0a01-0010-37af-faff35b2f08c
    I am getting error in
    Partner system as HTTPLOG and "Execute" to check the results
    Error is --  Port could not be created
    RFC destination HTTPLOG Not specified for system HTTPLOG
    any 1 have any idea  if plzzzzzzzz...........
    Thank u
    Ram

    Hello .
      we are also in  process of implementing the same
    could you share the knowledge pl?
    1)is it a separate add on with ALE to saphr
       or using ECC ??
    2)can u share the configuration part ??
    we are trying it on webas as addon 3.0 .

  • Mapping - Checking 3 fields to change IDOC

    Hello,
    I am triggering a new IDOC whenever the source field1 changes as below.
    field1 -> removecontext -> splitbyvalue [value change] -> collapsecontext ->  IDOC
    If i need to check for 2 more fields field2  & field3 and if any one of these 3 field changes trigger the creation of new IDOC field?
    How do I map the other two fields to IDOC?
    Thanks,
    Hari

    Hi,
       Since we can not map the target IDOC when any of the field changes using nodefunctions , you can write UDF and check the same i.e if field1 changes or field2 changes or field3 changes then trigger new IDoc. This is one of the options that you can try...please try it once.
    Regards
    Priyanka

  • Google maps don't display right, part is good but about half of it says "we are sorry, but we don't have maps at this zoom level for this region." Zooming out doesn't help.

    When displaying a Google map I get about four vertical strips that alternately display good and in gray bands. The gray area displays the message "we are sorry, but we don't have maps at this zoom level for this region." Zooming out doesn't get rid of the gray areas.
    I've had this problem for over a year and get around it by using either MS Internet Explorer or Google Chrome which work Ok. Otherwise Firefox works fine and I use it for everything else except Google Maps.
    I've tried an uninstall of FireFox and then reinstall but it didn't help. I don't remember what I was doing when this problem first showed up.

    You're welcome

  • Replication of hierarchical levels labels from ECC to SRM

    Hi Gurus!
    I am working on SRM 5.0 in Classic scenario and ECC 6.
    We are trying to replicate data from ECC to SRM in order to retrieve the same organisational structure as the one existing in ECC in SRM.
    We succeed in replicating hierarchical levels from ECC to SRM, indeed we retrieve data of infotype 0001 employee subgroup in table HRP5581-PERSK. But we did not retrieve labels of those subgroups?
    Have we missed to customize a filter in tx BD64 in ECC? Or the problem is just that data replication does not send hierarchical levels labels from ECC to SRM?
    Please help!!
    Thanks a lot.
    Regards,
    Morgane Chevallier

    Hello all!!
    Any idea on the subject??
    Please help!
    Regards,
    morgane

  • Create Keywords at highest hierarchical level  in Lightroom 5

    I cannot seem to create a new keyword in LR5 at the highest hierarchical level.  When I try to create a new keyword, either with an image selected or not, it puts that new keyword in as a (third-level) sublevel keyword within a keyword that I have created in the past.  I can move the newly created (sublevel) keyword to be a sublevel keyword within another previously created highest level keyword.  But I cannot create a new highest level keyword. 
    This does not seem to make sense to me.  Can anyone help?

    Right-click on any keyword and you'll see some options, one of which is "Put New Keywords Inside this Keyword", which if selected means that any new keywords get listed under that keyword's hierarchy, rather than at the top level. Once this option is selected, the "target" keyword is denoted by a small dot after its name, see the attached screenshot. If that's what's happened, simple right-click again on that target keyword and uncheck that option.

  • Hierarchie Levels

    Hi,
    in my report i need to display hierarchie levels 4 & 7 only.
    I was selected my Hierarchy >>right click>> restrict>>
    My hierarchy like this
    SAP
    + SAP Labs
         + SAP Group
            + SAP Divisions
               + Regeions
    + SAP GDC
       + SAP Group
            + SAP Divisions
               + Regeions
    + SAP Group
        +SAP Group
            + SAP Divisions
               + Regeions
    in above scenario how can i restrict my heirarchie for 4 & 7 levels.
    Plz help me out of this issue.
    Thanks in Advance
    Regards
    Aravinda

    Dear Aravinda,
    You can restrict the values in query level itself or otherwise if u want to populate values for this hierarchy field , create one variable and write a user exit and populate the values it will show the report based on the populated values.
    Hope it will work!!
    Please assign points or reply with ur requirement again.
    Best Regards,
    SG

  • 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

  • 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

  • Partner Profile type : Receiving Data from an 3rd party sys & Posting IDoc

    Hi all,
    My scenario is Receiving Data from a third party system and sending it to a R3 system as an IDoc...
    It is a B2B scenario.....
    So please tell me what should be my Scheme for the indentifier that i will be mentioning in the sender party...
    Should it be ALE#KU or ALE#LS.........
    it is working fine with ALE#KU...i m getting an error if i define it as ALE#LS......
    Is there an extra setting that should be done for configuring it as ALE#LS or , it is not possible configuring using ALE#LS
    Thanks in Advance,
    Sushil H.

    Hi Sushil,
    I have a similar problem and opened a thread: Unable to convert the sender service ABC_Service to an ALE logical system
    i was able to do it without specifying any identifier ...and mapping the sender information in the message mapping,,,,
    Can you please tell me:
    1) What value you specified in the mapping for sender (was it 3rd party/ PI/ R3)? Did you disable the other fields like RCVPRN/ RCVPOR etc?
    2) Did you make any change in the receiver channel for IDOC (in identifier section)?
    It will be very helpful to me if you reply.
    Thank you,
    Pankaj.

  • How to map text payload (Not XML) to IDOC

    Hi All,
    In a scenario wherein I am getting a Text file as a Outbound Payload in XI (It is not a XML file - simple text Payload file which we see in SXMB_MONI) through XI Adapter and I need to map the text file to IDOC.
    I can not use here File Adapter (File Content Conversion) as Incoming file is not stored at any location and it is just pushed to PI Server.
    However I am not able to visualize how the text Payload will be read and mapped to IDOC.
    Your inputs will be highly appreciated.
    Regards,
    Nitin Patil

    I can not use here File Adapter (File Content Conversion) as Incoming file is not stored at any location
    and it is just pushed to PI Server
    Which adapter are you planning to use in this case? If not FCC then you can also opt for MessageTransformbean to do the conversion....for more information refer this blog /people/gabrielsagayaselvam.panneerselvam/blog/2009/12/07/standard-adapter-framework-modules-afmodules-in-pi-71-150part-2 (also check the embedded blog reference given by the author)
    What is the content (format) of the file....even a .txt file can have a XML message......just that we need FCC or above bean when the file is a CSV file.
    Regards,
    Abhishek.

  • Value mapping in the ERP system during IDOC creation

    We have a PI File-IDOC scenario.
    We can translate simple mappings such as currency or unit of measure in PI(7.1) using the Value Mapping function. For complicated mappings involving business logic (e.g. Tax code which is derived from multiple fields) we want to perform these mapping in the ERP (ECC6) system. Is there an approved generic SAP standard process where these value mappings can be done in the IDOC creation which is still valid when re-processing?
    e.g. a specific BADI or enhancement point recommended for these mapping?
    There might also be a requirement to add segments based on value mapping logic for example when a tax record segment is only required for a non-zero tax code which is mapped via business logic.
    Can someone please direct me in the right direction.

    Thanks for your answers but I assumed that using a user exit / Enhancement point was obvious. What I'd like to know is a generic entry point that I can estabolish a IDOC enhancement framework. Somewhere I can call a class containing methods linked to IDOC message types
    e.g. Call similar to my prototype (this will be where dependant on mappings certain segments will need to be inserted such as tax segments.
      ASSIGN control-mestyp TO <mestyp>.
        CALL METHOD (<mestyp>)
          EXPORTING
            control        = control
            data           = data
          IMPORTING
            have_to_change = have_to_change
            protocol       = protocol
            new_entries    = new_entries.
    The "entry point" must be processed both at creation and reprocess. We are also dealing with Inbound IDOCs not outbound

  • Mapping a flat file to the iDoc OILLDD

    Hi.
    <b>I have a file with this structure after I got it from the fileadapter.:</b>
    B Dataxxxxxxxxx
    C Datayyyyyy
    D Datazzzzzz
    D Datazzzzzz
    C Datayyyyyy
    C Datayyyyyy
    D Datazzzzzz
    C Datayyyyyy
    C Datayyyyyy
    E Dataxxxxxxxxx
    B
    E
    B
    E
    etc.
    <b>I want to map this structure to the Idoc OILLDD which  have this structure.:</b>
    OILLDD01
       IDOC
          E1OILT1
              E1OILT2
              E1OILT3
                  E1OILT4
    each  B-Recor shall produce a new iDoc.
    each  C-Record  shall make an E1OILT1-segment
    each  D-Record  shall make an E1OILT3-segment(if the D-record exist)
    My problem is.:
    How can I make an new iDoc for each B-Records in the file.
    I got the file  tthrough the filadapter. 
    Hope someone can help me.
    Thanks.

    The file from the file adapter have to be parsed using the File Content Conversion.
    Now this converted XML will have the fields with value "A", "B","C" etc.
    This can be then mapped according to ur requirements. U need to export the IDOC as XSD , change the occurrence and then reimport it in the external definitions.
    Regards,
    Prateek

Maybe you are looking for

  • Can't open CS4 doc in CS3

    I've followed the instructions in saving files backwards, and have saved the CS4 doc as INX format, but still can't open in CS3. What's the problem?

  • App World Errors

    Hello! I'm not English, but I can't find any solutions for this problem in other sites. So, certainly I will do a lot of mistakes, but don't worry about it.  Anyway, I have a BlackBerry Curve 8520 that can't connect to the App World and I don't know

  • Apple TV Reverse Sync FAIL

    I buy content on my Apple TV and it has started not reverse syncing that content so I can see it on my MacBook iTubes library. I use the same iTunes account on both so they should have the same content no matter on which I purchase on. Even when I ri

  • I Deleted my photos from my Macbook

    I deleted my photos form my MacBook, and then emptied the trash can with them in it, how do I get them back if possible.  Thanks for the help. Eric

  • How to set Bean property

    I have JSF input <h:inputtext> and JSF Button on click i want to set bean property value = user whatever enter in text box how acn i do that?