10-17-2007 4:26 PM
i am using basic idoc DELFOR02 and message type DELINS. i created a custom segment ZE1EDP16 under standard segment E2EDP16..i added a field called DNO in that custom segment.
value of this DNO is populated by EDI people. I need to pass that DNO value from ZE1EDP16 segment to field LIFEX in LIKP and to KANBAN TEXTS IN DELIVERY.
can anyone suggest how can i pass the value from this segment to likp-lifex.
idoc is inbound idoc.
10-17-2007 4:28 PM
While posting idoc, it uses the function modules. And there is a provision to write user exits to populate data. Check your function module, you will see while data is extracted, you have a provision for user exit. Use the same for your requirement.
ashish
10-17-2007 4:35 PM
hi ashish ..thanks for the reply i am new in abap..i found this exit EXIT_SAPLVED4_002
following is the code i found in the include
could you to tell me in coding..how pass value of field DNO in segement ZE1EDP16 to LIKP-LIFEX and delivery kanban texts.
CONSTANTS: C_E1EDP16(7) TYPE C VALUE 'E1EDP16',
C_ZE1EDP16(8) TYPE C VALUE 'ZE1EDP16',
C_EXTENSION(14) TYPE C VALUE 'ZEXTN_DELFOR02',
C_ETDAT(11) TYPE C VALUE 'RV45A-ETDAT',
C_LIFSP(10) TYPE C VALUE 'VBEP-LIFSP',
C_4003(4) TYPE C VALUE '4003',
C_YES TYPE C VALUE 'X'.
DATA: X_BDCDATA TYPE BDCDATA,
X_IDOCDATA TYPE EDIDD,
X_E1EDP16 TYPE E1EDP16,
X_ZE1EDP16 TYPE ZE1EDP16,
L_DATFM TYPE USR01-DATFM,
L_INDEX LIKE SY-TABIX,
L_EDATUB LIKE E1EDP16-EDATUB.
*To read the Control record to determine the extension
READ TABLE T_IDOC_CONTRL_1.
IF SY-SUBRC EQ 0.
*If it being executed for Extension ZEXTN_DELFOR02
IF T_IDOC_CONTRL_1-CIMTYP = C_EXTENSION.
*To execute the code only when Screen 4003 starts
READ TABLE T_BDCDATA WITH KEY DYNPRO = C_4003
DYNBEGIN = C_YES.
IF SY-SUBRC EQ 0.
*Loop at all the E1EDP16 segments and read their respective child
*segment ZE1EDP16
LOOP AT T_IDOC_DATA_1 WHERE SEGNAM = C_E1EDP16.
X_E1EDP16 = T_IDOC_DATA_1-SDATA.
READ TABLE T_IDOC_DATA_1 INTO X_IDOCDATA
WITH KEY SEGNAM = C_ZE1EDP16
PSGNUM = T_IDOC_DATA_1-SEGNUM.
IF SY-SUBRC EQ 0.
*The Date format is changed to adapt to the date format in the BDCDATA
*The Date format in the IDoc segment is YYYYMMDD
X_ZE1EDP16 = X_IDOCDATA-SDATA.
CLEAR: L_EDATUB,
L_DATFM.
*To get the BDCDATA date format check the User Settings
SELECT SINGLE DATFM
INTO L_DATFM
FROM USR01
WHERE BNAME EQ SY-UNAME.
IF SY-SUBRC EQ 0.
CASE L_DATFM.
WHEN 1. "DDMMYYYY
MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),
X_E1EDP16-EDATUB4(2) TO L_EDATUB2(2),
X_E1EDP16-EDATUB6(2) TO L_EDATUB0(2).
WHEN 2. "MMDDYYYY
MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),
X_E1EDP16-EDATUB4(2) TO L_EDATUB0(2),
X_E1EDP16-EDATUB6(2) TO L_EDATUB2(2).
WHEN 3. "MMDDYYYY
MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),
X_E1EDP16-EDATUB4(2) TO L_EDATUB0(2),
X_E1EDP16-EDATUB6(2) TO L_EDATUB2(2).
WHEN 4. "YYYYMMDD
MOVE: X_E1EDP16-EDATUB TO L_EDATUB.
WHEN 5. "YYYYMMDD
MOVE: X_E1EDP16-EDATUB TO L_EDATUB.
WHEN 6. "YYYYMMDD
MOVE: X_E1EDP16-EDATUB TO L_EDATUB.
WHEN OTHERS.
ENDCASE.
ENDIF.
*To Read the record in BDCDATA having the same Date
READ TABLE T_BDCDATA INTO X_BDCDATA
WITH KEY FNAM+0(11) = C_ETDAT
FVAL = L_EDATUB.
IF SY-SUBRC EQ 0.
*Insert an entry in BDCDATA for populating the value for LIFSP
CLEAR L_INDEX.
L_INDEX = SY-TABIX + 1.
X_BDCDATA-FNAM+0(11) = C_LIFSP.
CONDENSE X_BDCDATA-FNAM NO-GAPS.
X_BDCDATA-FVAL = X_ZE1EDP16-LIFSP.
INSERT X_BDCDATA INTO T_BDCDATA INDEX L_INDEX.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
DATA : L_TABIX LIKE SY-TABIX,
L_E1EDKA1 TYPE E1EDKA1.
CONSTANTS: C_4002(4) TYPE C VALUE '4002',
C_IHREZ(10) TYPE C VALUE 'VBKD-IHREZ',
C_E1EDKA1(7) TYPE C VALUE 'E1EDKA1',
C_AG(2) TYPE C VALUE 'AG'.
READ TABLE T_BDCDATA WITH KEY DYNPRO = C_4002.
IF SY-SUBRC EQ 0.
L_TABIX = SY-TABIX + 1 .
READ TABLE T_BDCDATA WITH KEY FNAM = C_IHREZ.
IF SY-SUBRC NE 0.
READ TABLE T_IDOC_DATA_1 WITH KEY SEGNUM = C_000004.
LOOP AT T_IDOC_DATA_1 WHERE SEGNAM = C_E1EDKA1.
IF T_IDOC_DATA_1-SDATA(2) EQ C_AG.
L_E1EDKA1 = T_IDOC_DATA_1-SDATA.
CLEAR X_BDCDATA .
X_BDCDATA-FNAM = C_IHREZ.
X_BDCDATA-FVAL = L_E1EDKA1-IHREZ.
INSERT X_BDCDATA INTO T_BDCDATA INDEX L_TABIX.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
10-17-2007 4:57 PM
Can you tell me what is the standard fm you are using for idoc posting. Also can you check which segment contains LIKP-LIFEX?