WHEN CREATING AN INBOUND IDOC I NEED TO POPULATE VALUES TO SOME OF THE SEGMENTS WHICH IS ALREADY CREATED.
FOR EX.
E1EDKA1 CONTAINS THE PARTNER FN. AG AND WE.
SO I NEED TO MODIFY THE VALUES OF SOLD-TO PARTY AND SHIP-TO PARTY OF FIELD (E1EDKA1-PARTN ).THEREFORE I NEED TO PASS MY VALUES TO THESE SEGMENTS .HOW CAN I DO IT.
THE OPTIONS WHICH I HAVE TRIED IS :
1) CREATED A USER-EXIT IN CMOD.
2) ENHANCEMENT ASSINGMENT : VEDA0001
3) I HAVE WRITTEN MY CODING IN ALL THOSE 12 EXITS BUT IN THE INTERNAL TABLE ALL THE VALUES GET MODIFIED BUT WHEN IDOC IS CREATED NO VALUES R FOUND FOR THIS PARTNER FN.
HELPFULL ANSWERS WILL BE REWARDED WITH POINTS......
PROGRAM:
TABLES: edidd, " Data record(IDoc).
edidc,
e1edka1, " Document Header Partnerinformation.
e1edk14,
zhvt_sapedipart. " SAP EDI Partner
**----
**
TABLES DECLARATION
**
**----
DATA: v_zcustgsid1(13),
v_zcustgsid2(13),
v_zcustloc(13),
v_zsoldto(10),
v_zshipto(10),
v_zsalorg(4),
v_zdistchan(2),
v_zdivision(2),
v_tabix TYPE i,
v_flag,
v_segnum TYPE i.
v_zcustgsid1 = didoc_cntrl-rcvlad.
v_zcustgsid2 = didoc_cntrl-sndlad.
READ TABLE didoc_data INTO edidd WITH KEY
segnam = 'E1EDKA1' sdata+0(2) = 'WE'.
e1edka1 = edidd-sdata.
v_zcustloc = e1edka1-ilnnr.
SELECT zsoldto
zshipto
zsalorg
zdistchan
zdivision
FROM zhvt_sapedipart UP TO 1 ROWS
INTO (v_zsoldto,v_zshipto,v_zsalorg,v_zdistchan,
v_zdivision)
WHERE zcustgsid1 = v_zcustgsid1
AND zcustgsid2 = v_zcustgsid2
AND zcustloc = v_zcustloc
AND z856ind = 'X'.
ENDSELECT.
IF sy-subrc EQ 0.
LOOP AT didoc_data INTO edidd WHERE segnam = 'E1EDKA1'
AND ( sdata+0(2) = 'AG'
OR sdata+0(2) = 'WE' ).
v_tabix = sy-tabix.
*assigning the segment 'e1edka1' to the workarea.
e1edka1 = edidd-sdata.
IF e1edka1-parvw = 'AG'.
e1edka1-partn = v_zsoldto.
ELSE.
e1edka1-partn = v_zshipto.
ENDIF.
*moving the values to the structure.
MOVE e1edka1 TO edidd-sdata.
*
**modify the internal table to populate the value.
MODIFY didoc_data FROM edidd INDEX v_tabix
TRANSPORTING sdata.
*clearing the structures.
CLEAR : e1edka1,
edidd.
ENDLOOP.
ELSE.
EXIT.
ENDIF.