INVOIC02 - E1EDP01 Segment

Hello Everybody,
It has been observerd that in outbound function module IDOC_OUTPUT_INVOIC there is no code to populate fields like VPREI, PEINH and PMENE of E1EDP01 segment. These fields information is must for my data transfer. I can get these data by implementing any customer exit. But i dont want to go for customer exits, is there any standard way that has been provided by SAP in ECC 6.0?
Please help me.
Thanks,
Vijay Kumar T.

Vijay,
If there was a standard way, SAP would have readily coded for these fields.
You need to add the logic in the customer exit, which is as simple as any other method.
cheers,
Sushil Joshi

Similar Messages

  • Mapping of inbound INVOIC02 iDoc Segment to MIRO/MIR7 Header Text? Help!

    Hi Experts,
    I need to map a field from the inbound INVOIC02 idoc to the header text field. This field is TABLE:INVFO;(Struct)Field:SGTXT as shown in MIR7. I thought that segments E1EDPT1 & E1EDPT2 would map to this field but it is not showing up in the processed invoice. Is there a segment/field in INVOIC02 that maps to this field?
    Thanks,
    Doug

    Hi,
    Try like this
    Ledger                        Ledger     
           EqualS------------OR            EqualS------------OR  EqualS------------OR   EqualS------------OR----Not---
    Constant(460050)       Constant(471000)          Constant(420600)       Constant(472150)
    and   Brand-------
                    EqualS--CreateIF-----Target Brand
    Constant(75999)
    Thanks!

  • E1EDP01 segment does hv two E1EDP19 segments in ORDERS05??

    Hi Experts,
    In our system, there is INBOUND iodc, say, 12345678 of ORDERS05 basic idoc type, there is a  segment(for ITEM-POSNR) of E1EDP01............under this, there r 2 child segments of E1EDP19.
    E1EDP01 is for ITEM 10........fine, and its contained the data of QUANTITY, UOM fine.
    under this(E1EDP01) there r 2 child segments as E1EDP19, as,
    1) E1EDP19--QUALIFIER 002, containing the MATERIAL number as 11111111 for the fileld of  IDTNR
    2) E1EDP19--QUALIFIER 001 containing the MATERIAL number as 22222222 for the fileld of  IDTNR
    so, pls. clarifyme that,
    1) How its possible that, ITEM 10 does hv 2 material numbers? i mean, 2 materials?
    2) wht is QUALIFIER concept?
    thanq
    Edited by: SAP ABAPer on Sep 25, 2008 11:24 AM

    Hi
    In case of set of data(chance of having more than one) like
    partner numbers( ship-to-party, sold-to-party,...),
    organizational data(company code, cost center,...) ,
    SAP uses single segment with a field and qualifier.
    Based on the qualifiers, we have to identify the data.
    For this, Material has the qualifiers whether it is a customer material or vendor material or serial number or batch number ect..
    You can find out list of qualifiers in SE11-->Domain: EDI_QUALFI & In Value range Tab
    Otherwise drill down your segment E1EDP19 in SE11-->TABLE, till domain level

  • Graphical Mapping Problem : Create Segments by conditions

    Hi,
    i have a problem while mapping an incoming invoice to IDoc Invoic02. I had to create some Segments (E1EDP02) on basis of identifiers in the incoming message. I hope the following example i created will help to understand my exact problem:
    EXAMPLE MESSAGE:
    <invoice>
    <document>
    <position>
       <line>
         <posnum> 1 </posnum>
         <IMD>
         <ident> Name </ident>
         <val>   Maxx </val>
         </IMD>
         <IMD>
         <ident> Age </ident>
         <val>   19 </val>
         </IMD>
         <IMD>
         <ident> Gender </ident>
         <val>   Male </val>
         </IMD>
       </line>
    </position>
    <position>
       <line>
         <posnum> 2 </posnum>
         <IMD>
         <ident> Name </ident>
         <val>   Tina </val>
         </IMD>
         <IMD>
         <ident> Age </ident>
         <val>   28 </val>
         </IMD>
         <IMD>
         <ident> Gender </ident>
         <val>   Female </val>
         </IMD>
       </line>
    </position>
    </document>
    </invoice>
    THE RESULT I WANT:
    <invoic02>
    <E1EDP01>
    <SEGMENT> </SEGMENT>
    <POSEX> 1 </POSEX>
      <E1EDP02>
           <SEGMENT> </SEGMENT>
         <QUALF> 021 </QUALF>
         <BELNR> 19 </BELNR> // THIS should be the Age
      </E1EDP02>
      <E1EDP19>
      </E1EDP19>
    </E1EDP01>
    <E1EDP01>
    <SEGMENT> </SEGMENT>
      <POSEX> 2 </POSEX>
      <E1EDP02>
         <SEGMENT> </SEGMENT>
         <QUALF> 021 </QUALF>
         <BELNR> 28 </BELNR> // THIS should be the Age
      </E1EDP02>
      <E1EDP19>
      </E1EDP19>
    </E1EDP01>
    </invoic02>
    I tried to different ways to get the above result but i failed
    My first try:
    ident      -------|--- equalsS ------ createIf ---- E1EDP02
    Constant[000] --------- SEGMENT
    Constant[Age]--|
    ident      -------|--- equalsS ------ ifWithoutElse ---- QUALF
    Constant[Age]--|             |          
                           |
                        Constant[021]
    ident      -------|--- equalsS ------ ifWithoutElse ---- BELNR
    Constant[Age]--|             |          
                           |
                           val
    Result:
    The E1EDP02 Element will not created reliable. Sometimes it is there sometimes not dunno why ? Any Idea ?
    My second try:
    IMD -------------- E1EDP02
    Constant[000] --------- SEGMENT
    ident      -------|--- equalsS ------ ifWithoutElse ---- QUALF
    Constant[Age]--|             |          
                           |
                        Constant[021]
    ident      -------|--- equalsS ------ ifWithoutElse ---- BELNR
    Constant[Age]--|             |          
                           |
                           val
    Result:
    Now every E1EDP01 Element has two E1EDP02 Elements. One correct one and an empty one with only a segment element. Is there a way to delete this empty elements ?
    Any ideas to create a working mapping ?
    Thanks

    @Liang Ji 
    When i do this i have only the first E1EDP01 Element
    @Tarang Shah
    Which function i had to use for this ?
    Thank you

  • The IDOC-SDATA for the segment E1EDP01 does not have the whole value passed

    HI
    I am triggring the ORDERS05 Idoc from TCode - WE19 .
    In the E1EDP01 segment I have populated the quantity field , UOM field , currency field and the plant field.
    I am facing the issue
    1) It is not updating the plant field in R/3 orders that are created .
    2) I debugged the code and found that the data for the currency field and the plant field is not being pulled in the IDOC-SDATA for the segment E1EDP01 .
    Any idea why is this happening
    Thanks
    Nikhil

    HI
    I got the answer for it.
    This has to be delt in the E1EDP02 segment with the qualifier value as 083 and the document value as the plant
    Thanks
    Nikhil

  • Summarize prices for INVOIC02 in Message Mapping

    Hello,
    I have to summarize prices in the INVOIC02 IDOC. In the invoice there is
    header items and kit order items. The prices is found in the field BETRG
    in the Y_E1EDP05 segment. It is only the prices with KSCHL = IV01 that
    should be summarized. The link between header and kit items is found in
    the field UEPOS, so the prices should be calculated to the correct header.
    To only show the header items I can use this function:
    UEPOS -> exists -> not -> createIf -> removeContext -> E1EDP01
    So that is ok, but to get the correct prices to the header I guess one would need
    some kind of UDF. I am a bit lost at this mapping, so I hope anyone can help.
    I have provided the corresponding structures:
    Here is the source message:
              <E1EDP01 SEGMENT="1">
                   <POSEX>000010</POSEX>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000020</POSEX>     
                   <UEPOS>000010</UEPOS>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>2.00</BETRG>
                        <KRATE>1.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000030</POSEX>
                   <UEPOS>000010</UEPOS>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>2.00</BETRG>
                        <KRATE>1.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000040</POSEX>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000050</POSEX>     
                   <UEPOS>000040</UEPOS>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>12.00</BETRG>
                        <KRATE>1.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000060</POSEX>
                   <UEPOS>000040</UEPOS>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>20.00</BETRG>
                        <KRATE>1.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
    This is how the target message should look:
              <E1EDP01 SEGMENT="1">
                   <POSEX>000010</POSEX>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>4.00</BETRG>
                        <KRATE>0.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
              <E1EDP01 SEGMENT="1">
                   <POSEX>000040</POSEX>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>IV01</KSCHL>
                        <BETRG>32.00</BETRG>
                        <KRATE>0.00</KRATE>
                   </Y_E1EDP05>
                   <Y_E1EDP05 SEGMENT="1">
                        <ALCKZ>+</ALCKZ>
                        <KSCHL>MWST</KSCHL>
                        <BETRG>0.00</BETRG>
                        <KRATE>0.000</KRATE>
                   </Y_E1EDP05>
              </E1EDP05>
    Kind regards,
    Per Rune

    Hi.
    I was review your questions.  let me see if i understand.
    You need to summarize when KSCHL = IV01 and when UEPOS  exist. 
    You should be check the context for the field  BETRG. and use the same logic. on the segment header.

  • Posting Header Freight to separate account with idoc INVOIC02

    Hi,
    I am using idoc type INVOIC02 to post a cross-company code invoice.  There is freight at the header level in the invoice and I want the freight amount to hit a different G/L account than the rest of the document. From the help documentation, it looks like I should be able to set the flag in T076S-KOKSEPA, and this should then take the amount in segment E1EDK05 and place it in a separate line item segment in the Idoc.  Once it's in its in a separate segment then I should be able to use settings in table T076I to direct it to a separate G/L account.  However, when I set this flag inT076S-KOKSEPA the system is not doing anything with the amount in the header segment..
    Does anyone have experience with this?  If I set the flag in T076S-KOKSEPA what should I expect to see at the item segment level? Should I get an additional E1EDP01 segment?  If not, what's the best way to get header freight to post to a separate account?
    Thanks,

    Hi,
    You need to add a record in T076I using OBCB transaction, fill EWLNR with the folllowing concatenated values from E1EDK05 :
    - E1EDK05-ALCKZ (the value is - or +)
    - E1EDK05-KSCHL
    In my case T076S-KOKSEPA doesn't work, I got an accounting item corresponding to header condition but no more accounting lines corresponding to invoice items...
    But it works fine using T076S-KOPSEPA to post conditions at item level.
    Your questions :
    - Does anyone have experience with this ?  > We are still waiting ...
    - If I set the flag in T076S-KOKSEPA what should I expect to see at the item segment level ? > Nothing, this parameter works later, when the idoc is processed to create the accounting data (function IDOC_INPUT_INVOIC_FI not function IDOC_OUTPUT_INVOIC_IV_MM)
    - Should I get an additional E1EDP01 segment ?  > No
    - If not, what's the best way to get header freight to post to a separate account ? > It is the best way, but you can try at item level (T076S-KOPSEPA), in my case it works immediatly.
    My question :
    When the flag is set at header level (set the flag in T076S-KOKSEPA), an accounting item is created for the header condition, but how this value is allowed (- or +) on the other accounting items ?

  • How to change data in a particular segment?

    while creating po with 10 materials,idoc has E1EDP01 segment 10 times,Now I need to delete one among those 10 segments ensure that it is a generic material.for this i am doingmodification in exit_sapleinm_002.
    how to read data from e1edp01 and modify the data?

    i have coded this but the segment e1edp20(child segment to e1edp01) is coming with data in idoc output. i should not get this
    if int_edidd-segnam = lc_segname.
        ls_e1edp01-uepos = ' '.
        if ls_edi-segnam = lc_e1edp19.
          ls_e1edp19_tmp-qualf =  '001'.
          ls_e1edp19_tmp-idtnr =  ls_e1edp19-idtnr.
       append ls_e1edp19_tmp to lt_e1edp19_tmp.
         lv_matnr = ls_e1edp19_tmp-idtnr.
        SELECT matnr attyp
          FROM mara
          INTO TABLE lt_mara
          WHERE matnr = lv_matnr
            AND attyp = '01'.
          IF sy-subrc EQ 0.
          read TABLE lt_mara into ls_mara index 1.
          IF ls_edi-segnam = lc_e1edp20.
            ls_e1edp20-wmeng = ' '.
            ls_e1edp20-ameng = ' '.
            ls_e1edp20-edatu = ' '.
       move ls_e1edp20 to ls_edi-sdata.
       append ls_edi to int_edidd.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.

  • Mapping problem with coupled PO1 segments

    The following idoc message is being processed:
    - <E1EDP01 SEGMENT="1">
      <POSEX>00011</POSEX>
      <ACTION>001</ACTION>
      <PSTYP>0</PSTYP>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <BMNG2>1.000</BMNG2>
      <PMENE>PCE</PMENE>
      <PEINH>1</PEINH>
      <GEWEI>KGM</GEWEI>
      <MATKL>79</MATKL>
      <UEPOS>00010</UEPOS>
      <BPUMN>1</BPUMN>
      <BPUMZ>1</BPUMZ>
      <BRGEW>0.7</BRGEW>
      <WERKS>DC01</WERKS>
      <LGORT>CD01</LGORT>
    - <E1EDP20 SEGMENT="1">
      <WMENG>1.000</WMENG>
      <AMENG>0.000</AMENG>
      <EDATU>20050302</EDATU>
      </E1EDP20>
    - <E1EDP19 SEGMENT="1">
      <QUALF>002</QUALF>
      <IDTNR>0017400</IDTNR>
      </E1EDP19>
    - <E1EDP19 SEGMENT="1">
      <QUALF>001</QUALF>
      <IDTNR>000000000000001683</IDTNR>
      <KTEXT>PHILIPS HQ100 T</KTEXT>
      </E1EDP19>
    - <E1EDP19 SEGMENT="1">
      <QUALF>003</QUALF>
      <IDTNR>8710103083351</IDTNR>
      </E1EDP19>
      </E1EDP01>
    - <E1EDP01 SEGMENT="1">
      <POSEX>1</POSEX>
      <UEPOS>00011</UEPOS>
      <MATNR>000000000000001683</MATNR>
    - <E1ADDI1 SEGMENT="1">
      <ADDIMATNR>SERVICE_PREPACK</ADDIMATNR>
      <ADDINUMBER>1.000</ADDINUMBER>
      <ADDIVKME>PCE</ADDIVKME>
      <ADDIFM>0005</ADDIFM>
      <ADDIFM_TXT>SLS: transito-picken</ADDIFM_TXT>
      </E1ADDI1>
    - <E1EDPA1 SEGMENT="1">
      <PARVW>SLS</PARVW>
      <PARTN>0000000004</PARTN>
      <NAME1>Osdorp 04</NAME1>
      <NAME4>0000000004</NAME4>
      <STRAS>Osdorpplein 138</STRAS>
      <ORT01>Amsterdam</ORT01>
      <PSTLZ>1068 EN</PSTLZ>
      <LAND1>NL</LAND1>
      <SPRAS>N</SPRAS>
      <SPRAS_ISO>NL</SPRAS_ISO>
      </E1EDPA1>
    - <E1EDP19 SEGMENT="1">
      <QUALF>017</QUALF>
      <IDTNR>0001</IDTNR>
      </E1EDP19>
      </E1EDP01>
    - <E1EDP01 SEGMENT="1">
      <POSEX>00012</POSEX>
      <ACTION>001</ACTION>
      <PSTYP>0</PSTYP>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <BMNG2>1.000</BMNG2>
      <PMENE>PCE</PMENE>
      <PEINH>1</PEINH>
      <GEWEI>KGM</GEWEI>
      <MATKL>79</MATKL>
      <UEPOS>00010</UEPOS>
      <BPUMN>1</BPUMN>
      <BPUMZ>1</BPUMZ>
      <BRGEW>0.7</BRGEW>
      <WERKS>DC01</WERKS>
      <LGORT>CD01</LGORT>
    - <E1EDP20 SEGMENT="1">
      <WMENG>1.000</WMENG>
      <AMENG>0.000</AMENG>
      <EDATU>20050302</EDATU>
      </E1EDP20>
    - <E1EDP19 SEGMENT="1">
      <QUALF>002</QUALF>
      <IDTNR>0017400</IDTNR>
      </E1EDP19>
    - <E1EDP19 SEGMENT="1">
      <QUALF>001</QUALF>
      <IDTNR>000000000000001683</IDTNR>
      <KTEXT>PHILIPS HQ100 T</KTEXT>
      </E1EDP19>
    - <E1EDP19 SEGMENT="1">
      <QUALF>003</QUALF>
      <IDTNR>8710103083351</IDTNR>
      </E1EDP19>
      </E1EDP01>
    - <E1EDP01 SEGMENT="1">
      <POSEX>1</POSEX>
      <UEPOS>00012</UEPOS>
      <MATNR>000000000000001683</MATNR>
    - <E1ADDI1 SEGMENT="1">
      <ADDIMATNR>SERVICE_PREPACK</ADDIMATNR>
      <ADDINUMBER>1.000</ADDINUMBER>
      <ADDIVKME>PCE</ADDIVKME>
      <ADDIFM>0005</ADDIFM>
      <ADDIFM_TXT>SLS: transito-picken</ADDIFM_TXT>
      </E1ADDI1>
    - <E1EDPA1 SEGMENT="1">
      <PARVW>SLS</PARVW>
      <PARTN>0000000022</PARTN>
      <NAME1>Amersfoort 22</NAME1>
      <NAME4>0000000022</NAME4>
      <STRAS>Amsterdamseweg 8-1-</STRAS>
      <ORT01>Amersfoort</ORT01>
      <PSTLZ>3812 RS</PSTLZ>
      <LAND1>NL</LAND1>
      <SPRAS>N</SPRAS>
      <SPRAS_ISO>NL</SPRAS_ISO>
      </E1EDPA1>
    - <E1EDP19 SEGMENT="1">
      <QUALF>017</QUALF>
      <IDTNR>0001</IDTNR>
      </E1EDP19>
      </E1EDP01>
    Every position has data in two PO1 segments. The first one is referenced in the second one by the UEPOS field. In our mapping we want to create a record in a flat file when such a couple is existing in the idoc.
    In my mapping I create a record in the flat file when the first segment is being found. At the second PO1 segment the record is not being written (exactly as wanted). Nevertheless I need to map a field out of the second PO1 segment to the flat file (a field in the PA1 segment), except I cannot access the field from the second segment in the first record. I should I do this??? Working with contexts isn't helping me neither.

    Hi Mark,
    Here is the code to convert
    grey
    any value
    grey
    0000000004
    grey
    any value
    grey
    0000000022
    darkgrey
    into
    grey
    0000000004
    grey
    any value
    grey
    0000000022
    grey
    any value
    darkgrey
    You have to cache the whole queue:
    boolean first = true;
    for (int k=0; k<a.length;k++)
      if ( ! a[k].equals(ResultList.CC))
        if (first)
          first = false;
        else {
          first = true;
          result.addValue(a[k]);
          result.addContextChange();
          result.addValue("");
          if  (k<a.length-1)
            result.addContextChange();
    This works only, if the line comes strictly in pairs.
    Hope that hepls,
    Stefan

  • PI : Idoc to JDBC scenario : repeating segments mapping issue

    Experts
    Please help.
    Question reg. mapping for ECC idoc to JDBC scenario.
    I am using the ORDRSP idoc which has multiple segments as below.
    IDOC -> multiple E1EDK14 segments with 2 fields (QUALF and ORGID)
    Depending on the value of the QUALF field i need to populate the column in my target structure.
    QUALF 001  => Colmn a
    QUALF 002 => Colmn b
    For now my graphical mapping is very simple - QUALF => column a (done just to find out how PI mapping works)
    What happens in my case, is the PI Payload shows all the E1EDK14 segments however only the value 006 present in the first occurence goes into the target column.
    How do I repeat a mapping between QUALF and target col. for multiple occurences of the same segment?
    Please can you guide me reg. use of context, loop over segment, UDF = which will be the best solution to achieve this?

    Hi
    My mapping is as below. I will take an example of a sales order that has 2 line items 00010, 00020. The payload is as follows
    I see this payload in the SXMB_MONI transaction => Receiver grouping => Payloads
    - <ZORDRES>
    - <IDOC BEGIN="1">
    + <EDI_DC40 SEGMENT="1">
    + <E1EDK01 SEGMENT="1">
    + <E1EDK14 SEGMENT="1">
      <QUALF>006</QUALF>
      <ORGID>01</ORGID>
      </E1EDK14>
    + <E1EDK14 SEGMENT="1">
      <QUALF>007</QUALF>
      <ORGID>01</ORGID>
      </E1EDK14>+ <E1EDK03 SEGMENT="1">
    + <E1EDK03 SEGMENT="1">
    + <E1EDK03 SEGMENT="1">
    + <E1EDK03 SEGMENT="1">
    + <E1EDKA1 SEGMENT="1">
    + <E1EDKA1 SEGMENT="1">
    + <E1EDKA1 SEGMENT="1">
    + <E1EDKA1 SEGMENT="1">
    + <E1EDKA1 SEGMENT="1">
    + <E1EDK02 SEGMENT="1">
    + <E1EDK02 SEGMENT="1">
    + <E1EDK17 SEGMENT="1">
    + <E1EDK18 SEGMENT="1">
    + <E1EDK18 SEGMENT="1">
    + <E1EDP01 SEGMENT="1">
      <POSEX>000010</POSEX>
    + <E1EDP01 SEGMENT="1">
      <POSEX>000020</POSEX>
      </E1EDP01>+ <E1EDS01 SEGMENT="1">
      <SUMID>001</SUMID>
      <SUMME>2</SUMME>
      </E1EDS01>
    + <E1EDS01 SEGMENT="1">
      <SUMID>002</SUMID>
      <SUMME>1100.00</SUMME>
      <SUNIT>GBP</SUNIT>
      </E1EDS01>
      </IDOC>
      </ZORDRES>
    There are 2 problems. First one which I discovered after posting the query. I can see only the line item 10 in the query that gets contructed in PI to insert the data into the target jdbc table. Please see jdbc receiver communication channel log below
    If you see above there are 2 E1EDP01 segments for line 00010, 00020.
    INSERT INTO  tblOItem  (IDocDate, IDocTime, SalesOrderNo, ItemNo, Plant, ItemCategory, UnitSellPrice, QuantityOrdered, QuantityAllocated, ScheduledDeliveryDate) VALUES (20111206, 135530, 0015002085, 000010, 0086, ZTAN, 0.00, 1.000, 1.000, 20111201)
    My source and target mappings are as below.
    ZSALORD
        IDOC
           BEGIN
             E1EDK01
             E1EDP01
               POSEX               =============>  SalOrdItm table column itemno
    My target side structure (idoc to jdbc scenario is as follows)
    I have mapped the E1EDP01 to Statement - I thought this will build one query per line item (per occurence of E1EDP01) but this is not working.
    MT_OITEM
      Statement
        dbtablename       ============> SalOrdItm
          action      =================> Insert
          table
          access
            Itemno      (this is one of the columns from the table)
    The occurence of E1EDP01 is 0..9999999 while the occurence of Statement node is 1...unbounded.
    Please is there any email address where I can send you screen shots if the above is not clear.
    I need to get this interface delivered as soon as possible but am STUCK.
    Edited by: gary jojo on Dec 6, 2011 3:06 PM

  • Remove segment in Message Mapping

    Hello,
    I am sending the ORDRSP.ORDERS05 to an external message ORDERS05 which is based on the
    same structure as the ORDERS05.
    However I should not be sending all E1EDP01 segments. If the item belongs to a higher level item, then it should not be sent. If the item belongs to a higher level item then the field E1EDP01-UEPOS exists and has a value. In that case I should not transfer the E1EDP01 segment.
    See example for what I mean. This would be the source message:
    - <E1EDP01 SEGMENT="1">
      <POSEX>000010</POSEX>
      <ACTION>000</ACTION>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <PMENE>PCE</PMENE>
    - <E1EDP01 SEGMENT="1">
      <POSEX>000020</POSEX>
      <ACTION>000</ACTION>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <PMENE>PCE</PMENE>
      <UEPOS>000010</UEPOS>
    - <E1EDP01 SEGMENT="1">
      <POSEX>000030</POSEX>
      <ACTION>000</ACTION>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <PMENE>PCE</PMENE>
      <UEPOS>000010</UEPOS>
    This first item is the header item and does not contain the field UEPOS.
    The next two items belongs to item 000010 and should not be sent.
    In this case only the POSEX 000010 should be sent.
    The target message should then look like this:
    <E1EDP01 SEGMENT="1">
      <POSEX>000010</POSEX>
      <ACTION>000</ACTION>
      <MENGE>1.000</MENGE>
      <MENEE>PCE</MENEE>
      <PMENE>PCE</PMENE>
    I think this should be possible with the standard functions in Message Mapping, and I have been playing around with CREATEIF and EXISTS, but have had no success. Anybody has any idea what to do?
    Regards,
    Per Rune

    Hi Per,
    If I understood correctly ,Do like this and let us know.
    UEPOS---> Exists -----------> 
                                                and------>Not------->  IfWithoutElse --> E1EDP01----->E1EDP01
    UEPOS-> Equals -> POSEX
    Thanks!

  • How to create segments

    Hi Experts,
    XML file contains multiple sales orders (not sorted) where each sales orders can contain 1 to many Items and in turn each item contains 1 to many charachteristics and should be mapped to Idoc ORDERS.ORDERS05.
    Number of Idoc's to be generated depends on number of unique V_IN_ORDERNUM and number of items i.e. E1EDP01 depends on unique RIGANUM for a sales order.
    my question is how to create the the number of items i,e E1EDP01 segment based on the unique RIGANUM for a sales order

    Hello,
    my question is how to create the the number of items i,e E1EDP01 segment based on the unique RIGANUM for a sales order
    Logic should be similar to this:
    RIGANUM -> removeContext -> sort: ascending lexicographical -> splitByValue:valueChanged -> collapseContext -> E1EDP01
    Hope this helps,
    Mark

  • Adding several standard segments in Outbound IDoc

    Hi All,
    I have a requirement in Orders05 Idoc type (Extension created). I want to pass Segment E1EDP19 three times based on the value of qualifier (3 qualifiers) in  the customer exit.
    As per my understanding, Loop at idoc_data is used when updating a Segment field with some value. But in this case I have to pass/add the same segment to internal table.
    Please suggest the approach for this.
    Thanks in advance!
    Regards
    Tanu

    Hi Tanu,
    There are several ways to do this, below mentioned are a couple of them,
    1) In the mentioned user exit, you will have all the Segments filled in. Your requirement if i understand correctly is to add E1EDP19 segments under E1EDP01 segments. So all that you have to do is build the logic to insert(not append as append would put E1EDP19 at the very which is not correct as per the structure/syntax of ORDERS05) E1EDP19 under E1EDP01 segments accordingly.
    2) The other way to accomplish(this should be relatively easy i guess) this would be to append the E1EDP19 segments into INT_EDIDD with corresponding Segment Num, Parent Segnam and parent Segnum accordingly and the use the FM SPCM_SORT_IDOC_STRUCTURE to re-structure the IDOC as per the structure of ORDERS05.
    Refer the below thread where i have provided my inputs for a similar requirment.
    Sorting Idoc Segments
    Regards,
    Chen
    Edited by: Chen K V on Jun 23, 2011 11:40 AM

  • IDOC Segment Modification

    Hi,
    I have an E1EDP01 segment which is the parent and comes the E1EDP19 with QUALF=003.
    Based on some data coming from E1EDP19 I need to modify the E1EDP01 segment.
    But, the idoc user exit would have already traversed e1edp01 segment when it comes to e1edp19.
    Is there any possibility that i can modifiy e1edp01 being in e1edp19.  Some useful code would be appreciated.
    Regards
    KRish

    can you uncheck the "released" checkbox and modify?

  • How to count the occurrence of an unbounded segment of an idoc

    idoc ORDERS.ORDERS05 has segment  E1EDP01 which  has an occurrence(0-9999), how can we count the number of times E1EDP01 segment is coming in a particular ORDERS.ORDERS05 idoc

    Hello,
    You can use the pre-defined statistic function called count in your requirement
    E1EDP01 -> removeContext -> count -> targetField
    Hope this helps,
    Mark

Maybe you are looking for

  • IPOD TOUCH UPDATED BACK TO FACTORY SETTINGS

    My computer broke a few months ago, it had all 6000 songs that i had downloaded from CD's and songs people had sent me of their recordings etc etc. It had my full library on and i know apple updates every time you plug your ipod in and so any changes

  • Not receiving bt emails?

    My email telling me my bt bill is ready online and my bt confirmation email for paying my bill online in my bt have not been received. I always get an email for both these things. Any ideas why I have not received these emails? Thanks. Solved! Go to

  • Facetime with my kids

    It appears that Facetime requires an Apple ID. Problem is my kids are young and I don't want to set up email addresses for them, which I assume you need to setup Apple ID's. It would be great to use Facetime from their Touches to my iPhone 4. What ar

  • Duplicating burned dvd's? any programs?

    i have a ton of dvds burned on dvd-r's and i need a program to copy them. i tried using "burn" but you need an image file to mount and i dont know how to do that. any other programs out there that would work?

  • Always on Top problem

    Hi! I have swing application, which can create many frames and every created frame if .setAlwaysOnTop(true); Al is fine. But shen all frames is opened, and I open, for example winamp, or some Open Office tools, this tools is under my swing applicatio