cancel
Showing results for 
Search instead for 
Did you mean: 

CMOD - fields not populated

Former Member
0 Kudos

CMOD - fields not populated

-


Hi,

When I extract the data,

I am able to populate

ZZDATVR

ZZIHREZ

ZZINCO1

ZZBUDAT

But, I AM NOT ABLE TO POPULATE

ZZNETPR

ZZLOEKZ

ZZMENGE

---

Please let me know the changes that I need to make in the below code:

-


**************************************************************************

  • Enhancement to the Purchasing Data (Item Level)

DATA DATVR1 LIKE NAST-DATVR.

DATA: BUDAT1 LIKE EKBE-BUDAT,

IHREZ1 LIKE EKKO-IHREZ,

INCO11 LIKE EKKO-INCO1.

data: Begin of i_EKKO occurs 0,

EBELN LIKE EKKO-EBELN,

IHREZ1 LIKE EKKO-IHREZ,

INCO11 LIKE EKKO-INCO1,

END OF I_EKKO.

DATA W_MC02M_0ITM LIKE MC02M_0ITM.

WHEN '2LIS_02_ITM'.

LOOP AT C_T_DATA.

CLEAR W_MC02M_0ITM.

W_MC02M_0ITM = C_T_DATA.

CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

W_MC02M_0ITM-ZZDATVR = DATVR1.

SELECT SINGLE BUDAT INTO BUDAT1 FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

AND BWART = '101'.

W_MC02M_0ITM-ZZBUDAT = BUDAT1.

SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

IF SY-SUBRC EQ 0.

W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

ENDIF.

MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

ENDLOOP.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

&----


*& Include ZXRSAU01 *

&----


data l_line type i.

describe table C_T_DATA lines l_line.

check l_line gt 0.

CASE i_datasource.

WHEN '0FI_AA_006'.

PERFORM populate_asset_trans_data TABLES C_T_DATA.

*{ INSERT DV1K902092 1

tables:

ekko,ekpo,ekbe,eine.

DATA:

W_DATVR LIKE NAST-DATVR,

W_IHREZ LIKE EKKO-IHREZ,

W_INCO1 LIKE EKKO-INCO1,

W_EBELN LIKE EKKO-EBELN,

W_LIFNR LIKE EKKO-LIFNR,

W_NETPR LIKE EINE-NETPR.

data:

Begin of i_budat occurs 0,

budat1 like ekbe-budat,

end of i_budat.

  • WORK AREA TO STORE DATA

DATA: BEGIN OF w_DATA ,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

WERKS LIKE EKPO-WERKS,

IDNLF LIKE EKPO-IDNLF,

LGORT LIKE EKPO-LGORT,

LOEKZ LIKE EKPO-LOEKZ,

MENGE LIKE EKPO-MENGE,

infnr like ekpo-infnr,

LIFNR LIKE EKKO-LIFNR,

budat like ekbe-budat,

IHREZ LIKE EKKO-IHREZ,

INCO1 LIKE EKKO-INCO1,

DATVR LIKE NAST-DATVR,

NETPR LIKE EINE-NETPR,

ELIKZ LIKE EKPO-ELIKZ,

END OF w_DATA.

  • INTERNAL TABLE TO STORE DATA

data:

i_data like standard table of w_data with header line.

DATA W_MC02M_0ITM LIKE MC02M_0ITM.

DATA:

ZC_T_DATA LIKE STANDARD TABLE OF W_MC02M_0ITM

WITH HEADER LINE..

when '2LIS_02_ITM'.

loop at c_t_data.

*

*

clear w_mc02m_0itm.

*

w_mc02m_0itm = c_t_data.

*

**zc_t_data[] = c_t_data[].

  • GET ALL DATA FROM EKPO FOR ALL PURCHASING ORDER DOCUMENTS

SELECT EBELN

EBELP

MATNR

WERKS

IDNLF

LGORT

LOEKZ

MENGE

infnr

ELIKZ

FROM EKPO

INTO I_DATA

  • for all entries in c_t_data

WHERE EBELN EQ w_mc02m_0itm-EBELN

AND LOEKZ NE 'L'.

append i_data.

endselect.

endloop.

sort i_data by ebeln ebelp.

delete adjacent duplicates from i_data comparing ebeln ebelp.

  • APPEND OTHER DATA (LIKE DATVR,IHREZ,INCO1,NETPR) TO THE INTERNAL TABLE

loop at i_data into w_data.

clear:

  • W_DATA,

w_datvr,

w_ihrez,

w_inco1,

w_lifnr,

w_netpr,

i_data.

*

  • w_data = i_data.,

  • get DATVR from NAST table

SELECT SINGLE DATVR

INTO w_DATVR

FROM NAST

WHERE OBJKY = W_data-EBELN.

if sy-subrc eq 0.

W_data-datvr = w_DATVR.

endif.

if i_data-elikz eq 'X'.

  • get BUDAT from EKBE table...

SELECT BUDAT

INTO table i_BUDAT

FROM EKBE

WHERE EBELN = W_data-EBELN

AND EBELP = W_data-EBELP

AND BWART = '101' . " movement type is 101

sort i_budat descending.

  • get latest BUDAT

read table i_budat index 1.

if sy-subrc eq 0.

W_data-budat = i_budat-BUDAT1.

endif.

endif.

  • get IHREZ and INCO1 from EKKO

SELECT SINGLE EBELN

IHREZ

INCO1

LIFNR

INTO (w_ebeln, w_ihrez, w_inco1, W_LIFNR)

FROM EKKO

where ebeln = w_data-ebeln.

IF SY-SUBRC EQ 0.

W_data-ihrez = w_IHREZ.

W_data-inco1 = w_INCO1.

W_DATA-LIFNR = W_LIFNR.

ENDIF.

  • get NETPR from EINE

SELECT SINGLE NETPR

INTO W_NETPR

FROM EINE

where EBELN = W_data-EBELN

AND EBELP = W_data-EBELP

and infnr = w_data-infnr.

if sy-subrc eq 0.

W_data-NETPR = W_NETPR.

endif.

MODIFY i_DATA FROM W_data.

ENDLOOP.

*

**********************************************

refresh C_T_DATA[].

clear zc_t_data.

delete table c_t_data.

  • APPEND THIS DATA TO THE FINAL STRUCTURE

LOOP AT I_DATA into w_data.

CLEAR: W_MC02M_0ITM.

*W_DATA = I_DATA.

MOVE:

W_DATA-EBELN TO W_MC02M_0ITM-EBELN,

W_DATA-EBELP TO W_MC02M_0ITM-EBELP,

W_DATA-MATNR TO W_MC02M_0ITM-MATNR,

W_DATA-WERKS TO W_MC02M_0ITM-WERKS,

W_DATA-IDNLF TO W_MC02M_0ITM-ZZIDNLF,

W_DATA-LGORT TO W_MC02M_0ITM-LGORT,

W_DATA-LOEKZ TO W_MC02M_0ITM-ZZLOEKZ,

W_DATA-MENGE TO W_MC02M_0ITM-MENGE,

W_DATA-ELIKZ TO W_MC02M_0ITM-ELIKZ,

W_DATA-LIFNR TO W_MC02M_0ITM-LIFNR,

W_DATA-budat TO W_MC02M_0ITM-ZZbudat,

W_DATA-IHREZ TO W_MC02M_0ITM-ZZIHREZ,

W_DATA-INCO1 TO W_MC02M_0ITM-ZZINCO1,

W_DATA-DATVR TO W_MC02M_0ITM-ZZDATVR,

W_DATA-NETPR TO W_MC02M_0ITM-ZZNETPR.

APPEND W_MC02M_0ITM TO C_T_DATA.

ENDLOOP.

    • aug 23

*

**************************************************************************

*

    • Enhancement to the Purchasing Data (Item Level)

*

*

*DATA:

*

*INCO11 LIKE EKKO-INCO1,

*

*EBELN1 LIKE EKKO-EBELN,

*

*DATVR1 LIKE NAST-DATVR,

*

*BUDAT1 LIKE EKBE-BUDAT,

*

*IDNLF1 LIKE EKPO-IDNLF,

*

*IHREZ1 LIKE EKKO-IHREZ,

*

*LOEKZ1 LIKE EKPO-LOEKZ,

*

*NETPR1 LIKE EINE-NETPR.

*

*DATA:

*

*Begin of I_EKKO occurs 0,

*

*EBELN LIKE EKKO-EBELN,

*

*IHREZ1 LIKE EKKO-IHREZ,

*

*INCO11 LIKE EKKO-INCO1,

*

*END OF I_EKKO.

*

******NEW BEGIN******

*

*data: Begin of i_EKPO occurs 0,

*

*EBELN LIKE EKPO-EBELN,

*

*LOEKZ1 LIKE EKPO-LOEKZ,

*

*IDNLF1 LIKE EKPO-IDNLF,

*

*END OF I_EKPO.

*

*data: Begin of i_EINE occurs 0,

*

*NETPR1 LIKE EINE-NETPR,

*

*END OF I_EINE.

*

*data: Begin of i_budat occurs 0,

*budat1 like ekbe-budat,

*end of i_budat.

*

*******NEW END********

*

*DATA W_MC02M_0ITM LIKE MC02M_0ITM.

*

*WHEN '2LIS_02_ITM'.

*

*LOOP AT C_T_DATA.

*

*CLEAR W_MC02M_0ITM.

*

*W_MC02M_0ITM = C_T_DATA.

*

*CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

*

*******NEW BEGIN******

*

*CLEAR: LOEKZ1, IDNLF1, NETPR1, I_BUDAT, EBELN1.

*

*******NEW END********

*

*SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

*

*W_MC02M_0ITM-ZZDATVR = DATVR1.

*

*SELECT BUDAT INTO table i_BUDAT FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

*

*

*

**************************************

*

*AND BWART = '101' AND EBELP = W_MC02M_0ITM-EBELP.

*

*sort i_budat descending.

*

*read table i_budat index 1.

*

*if sy-subrc eq 0.

*

*W_MC02M_0ITM-ZZBUDAT = i_budat-BUDAT1.

*

*endif.

*

*

*

*

*

******NEW BEGIN******

*

*

*SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

*

*read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

*

*IF SY-SUBRC EQ 0.

*

*

*W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

*

*W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

*

*ENDIF.

*

*

*SELECT SINGLE LOEKZ IDNLF INTO (LOEKZ1, IDNLF1) FROM EKPO

*

  • WHERE EBELN = W_MC02M_0ITM-EBELN

*

  • AND EBELP = W_MC02M_0ITM-EBELP.

*

*

*W_MC02M_0ITM-ZZLOEKZ = LOEKZ1.

*

*W_MC02M_0ITM-ZZIDNLF = IDNLF1.

*

*

*SELECT SINGLE NETPR INTO NETPR1 FROM EINE

*

  • where EBELN = W_MC02M_0ITM-EBELN

*

  • AND EKORG = W_MC02M_0ITM-EKORG

*

  • AND EBELP = W_MC02M_0ITM-EBELP.

*

*

*W_MC02M_0ITM-ZZNETPR = NETPR1.

*

*

*

    • to delete purchase order documents with movement type ne 101

*

*

*select single ebeln into ebeln1 from ekbe where bwart ne '101' and EBELN = W_MC02M_0ITM-EBELN

*.

*

*if sy-subrc eq 0.

*

*

  • CLEAR W_MC02M_0ITM.

*

    • DELETE C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

*

*endif.

*

*

********NEW END*******

*

*MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

*

*

*

*ENDLOOP.

  • END AUG 22

********************************************

*

*AND BWART = '101'.

*

*W_MC02M_0ITM-ZZBUDAT = BUDAT1.

*

******NEW BEGIN******

*

*SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

*

*read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

*IF SY-SUBRC EQ 0.

*

*W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

*

*W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

*

*ENDIF.

*

*

*SELECT SINGLE LOEKZ INTO LOEKZ1 FROM EKPO WHERE EBELN = W_MC02M_0ITM-EBELN.

*

*W_MC02M_0ITM-ZZLOEKZ = LOEKZ1.

*

*

*SELECT SINGLE IDNLF INTO IDNLF1 FROM EKPO where EBELN = W_MC02M_0ITM-EBELN.

*W_MC02M_0ITM-ZZIDNLF = IDNLF1.

*

*

*

*SELECT SINGLE NETPR INTO NETPR1 FROM EINE where EBELN = W_MC02M_0ITM-EBELN.

*

  • W_MC02M_0ITM-ZZNETPR = NETPR1.

*

*

********NEW END*******

*

*

*MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

*

*

*ENDLOOP.

****************************************************************************

*

***************************************************************************

*

    • Enhancement to the Purchasing Data (Item Level)

*

*

*DATA DATVR1 LIKE NAST-DATVR.

*

*DATA: BUDAT1 LIKE EKBE-BUDAT,

*

*IHREZ1 LIKE EKKO-IHREZ,

*

*INCO11 LIKE EKKO-INCO1,

*

*EBELN1 LIKE EKKO-EBELN,

*

*LOEKZ1 LIKE EKPO-LOEKZ,

*

*IDNLF1 LIKE EKPO-IDNLF,

*

*NETPR1 LIKE EINE-NETPR.

*

*data: Begin of i_EKKO occurs 0,

*

*EBELN LIKE EKKO-EBELN,

*

*IHREZ1 LIKE EKKO-IHREZ,

*

*INCO11 LIKE EKKO-INCO1,

*

*END OF I_EKKO.

*

*data: Begin of i_EKPO occurs 0,

*

*EBELN LIKE EKPO-EBELN,

*

*LOEKZ1 LIKE EKPO-LOEKZ,

*

*IDNLF1 LIKE EKPO-IDNLF,

*

*END OF I_EKPO.

*

*data: Begin of i_EINE occurs 0,

*

*NETPR1 LIKE EINE-NETPR,

*

*END OF I_EINE.

*

*data: Begin of i_budat occurs 0,

*budat1 like ekbe-budat,

*end of i_budat.

*

*

*DATA: BEGIN OF I_DATA OCCURS 0,

*

*EBELN LIKE EKKO-EBELN,

*

  • EBELP LIKE EKPO-EBELP,

*

  • MATNR LIKE EKPO-MATNR,

*

  • WERKS LIKE EKPO-WERKS,

*

  • IDNLF LIKE EKPO-IDNLF,

*

  • LGORT LIKE EKPO-LGORT,

*

  • LOEKZ LIKE EKPO-LOEKZ,

*

  • MENGE LIKE EKPO-MENGE,

*

*END OF I_DATA.

*

*DATA : WC_T_DATA LIKE MC02M_0ITM OCCURS 0.

*

*DATA W_MC02M_0ITM LIKE MC02M_0ITM.

*

*DATA W_DATA LIKE MC02M_0ITM.

*

*DATA: ZC_T_DATA LIKE STANDARD TABLE OF W_DATA WITH HEADER LINE..

*

*WHEN '2LIS_02_ITM'.

*

*LOOP AT C_T_DATA.

*

*CLEAR W_MC02M_0ITM.

*

*W_MC02M_0ITM = C_T_DATA.

*

*

*

  • SELECT EBELN

  • EBELP

  • MATNR

  • WERKS

  • IDNLF

  • LGORT

  • LOEKZ

  • MENGE

*

  • FROM EKPO

*

  • INTO TABLE I_DATA

*

  • WHERE EBELN EQ W_MC02M_0ITM-EBELN.

*

*APPEND W_MC02M_0ITM TO ZC_T_DATA.

*

*ENDLOOP.

*

*

*LOOP AT ZC_T_DATA.

*

*

*

              • BEGIN*****

  • ELIKZ is the “Delivery Completed” Indicator

*

*We have to include both Completed and

*

*Non-Complete Line Items (EKPO-EBELP).

*

*Eg., IF we have multiple occurrences of

*

*EKPO-EBELN with various movement types, consider

*

*But, # of Line Items completed in the

*past 6 months / 12 months field in our Report

*

*needs information where we pick the Line Items

*(EKPO-EBELP)

*

*for which, “Delivery Completed” Indicator

*(EKPO-ELIKZ) is not blank.

*

*We need to get the records from EKPO-EBELP.

*

*PO Transmit Date = NAST-DATVR where NAST-OBJKY = EKBE-EBELN

*

*PO Receipt Date = EKBE-BUDAT where MSEG-BWART = ‘101’.

*

*So, this one grabs the date from the latest date

*

*in the "Purchase Order Delivery" tab in the ITEM

*

*on the Purchasing DOcument

*

*

*

****END****

*

  • LOOP AT I_DATA WHERE EBELN EQ ZC_T_DATA-EBELN.

*

*

*

  • CLEAR W_DATA.

*

  • IF I_DATA-EBELP NE ZC_T_DATA-EBELP.

*

  • MOVE:

*

  • I_DATA-EBELN TO W_DATA-EBELN,

*

  • I_DATA-EBELP TO W_DATA-EBELP,

*

  • I_DATA-MATNR TO W_DATA-MATNR,

*

*I_DATA-WERKS TO W_DATA-WERKS,

*

*I_DATA-IDNLF TO W_DATA-ZZIDNLF,

*

*I_DATA-LOEKZ TO W_DATA-ZZLOEKZ,

*

*I_DATA-LGORT TO W_DATA-LGORT,

*

*I_DATA-MENGE TO W_DATA-MENGE.

*

*

  • APPEND W_DATA TO ZC_T_DATA.

*

  • ELSEIF I_DATA-EBELP EQ W_DATA-EBELP.

*

  • MOVE:

*

  • I_DATA-EBELN TO W_DATA-EBELN,

*

  • I_DATA-EBELP TO W_DATA-EBELP,

*

  • I_DATA-MATNR TO W_DATA-MATNR,

*

*I_DATA-WERKS TO W_DATA-WERKS,

*

*I_DATA-IDNLF TO W_DATA-ZZIDNLF,

*

*I_DATA-LOEKZ TO W_DATA-ZZLOEKZ,

*

*I_DATA-LGORT TO W_DATA-LGORT,

*

*I_DATA-MENGE TO W_DATA-MENGE.

*

*

  • MODIFY ZC_T_DATA FROM W_DATA INDEX SY-TABIX. .

*

  • ENDIF.

*

  • ENDLOOP.

*

*ENDLOOP.

*

  • CLEAR C_T_DATA.

*

*

  • C_T_DATA[] = ZC_T_DATA[].

*

*

  • LOOP AT C_T_DATA.

*

  • CLEAR W_MC02M_0ITM.

*

  • W_MC02M_0ITM = C_T_DATA.

*

  • CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

*

  • CLEAR: LOEKZ1, IDNLF1, NETPR1, I_BUDAT, EBELN1.

*

  • SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

*

  • W_MC02M_0ITM-ZZDATVR = DATVR1.

*

  • SELECT BUDAT INTO table i_BUDAT FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

*

  • AND BWART = '101' AND EBELP = W_MC02M_0ITM-EBELP.

*

  • sort i_budat descending.

*

  • read table i_budat index 1.

*

  • if sy-subrc eq 0.

*

  • W_MC02M_0ITM-ZZBUDAT = i_budat-BUDAT1.

*

  • endif.

*

*

  • SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

*

  • read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

*

  • IF SY-SUBRC EQ 0.

*

*

  • W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

*

  • W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

*

  • ENDIF.

*

*

  • SELECT SINGLE LOEKZ IDNLF INTO (LOEKZ1, IDNLF1) FROM EKPO

*

  • WHERE EBELN = W_MC02M_0ITM-EBELN

*

  • AND EBELP = W_MC02M_0ITM-EBELP.

*

*

  • W_MC02M_0ITM-ZZLOEKZ = LOEKZ1.

*

  • W_MC02M_0ITM-ZZIDNLF = IDNLF1.

*

*

  • SELECT SINGLE NETPR INTO NETPR1 FROM EINE

*

  • where EBELN = W_MC02M_0ITM-EBELN

*

  • AND EKORG = W_MC02M_0ITM-EKORG

*

  • AND EBELP = W_MC02M_0ITM-EBELP.

*

*

  • W_MC02M_0ITM-ZZNETPR = NETPR1.

*

*

*

    • to delete purchase order documents with movement type ne 101

*

*

  • select single ebeln into ebeln1 from ekbe where bwart ne '101' and EBELN = W_MC02M_0ITM-EBELN

  • .

*

  • if sy-subrc eq 0.

*

*

  • CLEAR W_MC02M_0ITM.

*

    • DELETE C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

*

  • endif.

*

*

  • MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

*

*

*

  • ENDLOOP.

*

**********************************************

*.

*

*

      • END AUG 23

*

***************************************************************************

*

      • Enhancement to the Purchasing Data (Item Level)

**

**

**DATA DATVR1 LIKE NAST-DATVR.

**

**DATA: BUDAT1 LIKE EKBE-BUDAT,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1,

**

**EBELN1 LIKE EKKO-EBELN,

**

********new BEGIN*******

**

**LOEKZ1 LIKE EKPO-LOEKZ,

**

**IDNLF1 LIKE EKPO-IDNLF,

**

**NETPR1 LIKE EINE-NETPR.

**

*********NEW END *******

**

**data: Begin of i_EKKO occurs 0,

**

**EBELN LIKE EKKO-EBELN,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1,

**

**END OF I_EKKO.

**

*******NEW BEGIN******

**

**data: Begin of i_EKPO occurs 0,

**

**EBELN LIKE EKPO-EBELN,

**

**LOEKZ1 LIKE EKPO-LOEKZ,

**

**IDNLF1 LIKE EKPO-IDNLF,

**

**END OF I_EKPO.

**

**data: Begin of i_EINE occurs 0,

**

**NETPR1 LIKE EINE-NETPR,

**

**END OF I_EINE.

**

**data: Begin of i_budat occurs 0,

**budat1 like ekbe-budat,

**end of i_budat.

**

********NEW END********

**

**DATA W_MC02M_0ITM LIKE MC02M_0ITM.

**

**WHEN '2LIS_02_ITM'.

**

**LOOP AT C_T_DATA.

**

**CLEAR W_MC02M_0ITM.

**

**W_MC02M_0ITM = C_T_DATA.

**

**CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

**

********NEW BEGIN******

**

**CLEAR: LOEKZ1, IDNLF1, NETPR1, I_BUDAT, EBELN1.

**

********NEW END********

**

**SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

**

**W_MC02M_0ITM-ZZDATVR = DATVR1.

**

**SELECT BUDAT INTO table i_BUDAT FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

**

**

**

***************************************

**

**AND BWART = '101' AND EBELP = W_MC02M_0ITM-EBELP.

**

**sort i_budat descending.

**

**read table i_budat index 1.

**

**if sy-subrc eq 0.

**

**W_MC02M_0ITM-ZZBUDAT = i_budat-BUDAT1.

**

**endif.

**

**

**

**

**

*******NEW BEGIN******

**

**

**SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

**

**read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

**

**IF SY-SUBRC EQ 0.

**

**

**W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

**

**W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

**

**ENDIF.

**

**

**SELECT SINGLE LOEKZ IDNLF INTO (LOEKZ1, IDNLF1) FROM EKPO

**

    • WHERE EBELN = W_MC02M_0ITM-EBELN

**

    • AND EBELP = W_MC02M_0ITM-EBELP.

**

**

**W_MC02M_0ITM-ZZLOEKZ = LOEKZ1.

**

**W_MC02M_0ITM-ZZIDNLF = IDNLF1.

**

**

**SELECT SINGLE NETPR INTO NETPR1 FROM EINE

**

    • where EBELN = W_MC02M_0ITM-EBELN

**

    • AND EKORG = W_MC02M_0ITM-EKORG

**

    • AND EBELP = W_MC02M_0ITM-EBELP.

**

**

**W_MC02M_0ITM-ZZNETPR = NETPR1.

**

**

**

      • to delete purchase order documents with movement type ne 101

**

**

**select single ebeln into ebeln1 from ekbe where bwart ne '101' and EBELN = W_MC02M_0ITM-EBELN

**.

**

**if sy-subrc eq 0.

**

**

    • CLEAR W_MC02M_0ITM.

**

      • DELETE C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

**

**endif.

**

**

*********NEW END*******

**

**MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

**

**

**

**ENDLOOP.

*

*

*

**END AUG 22

**********************************************

*

**AND BWART = '101'.

**

**W_MC02M_0ITM-ZZBUDAT = BUDAT1.

**

*******NEW BEGIN******

**

**SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

**

**read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

**IF SY-SUBRC EQ 0.

**

**W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

**

**W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

**

**ENDIF.

**

**

**SELECT SINGLE LOEKZ INTO LOEKZ1 FROM EKPO WHERE EBELN = W_MC02M_0ITM-EBELN.

**

**W_MC02M_0ITM-ZZLOEKZ = LOEKZ1.

**

**

**SELECT SINGLE IDNLF INTO IDNLF1 FROM EKPO where EBELN = W_MC02M_0ITM-EBELN.

**W_MC02M_0ITM-ZZIDNLF = IDNLF1.

**

**

**

**SELECT SINGLE NETPR INTO NETPR1 FROM EINE where EBELN = W_MC02M_0ITM-EBELN.

**

    • W_MC02M_0ITM-ZZNETPR = NETPR1.

**

**

*********NEW END*******

**

**

**MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

**

**

**ENDLOOP.

*

*

******************************************************************************

*

*

*

*

*

*

*

****************************************************************************

      • Enhancement to the Purchasing Data (Item Level)

**

**DATA DATVR1 LIKE NAST-DATVR.

**

**DATA: BUDAT1 LIKE EKBE-BUDAT,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1,

**

********new BEGIN*******

**

**LOEKZ1 LIKE EKPO-LOEKZ,

**

**IDNLF1 LIKE EKPO-IDNLF,

**

**NETPR1 LIKE EINE-NETPR.

**

*********NEW END *******

**

**data: Begin of i_EKKO occurs 0,

**

**EBELN LIKE EKKO-EBELN,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1,

**

**END OF I_EKKO.

**

*******NEW BEGIN******

**

**data: Begin of i_EKPO occurs 0,

**

**EBELN LIKE EKPO-EBELN,

**

**LOEKZ1 LIKE EKPO-LOEKZ,

**

**IDNLF1 LIKE EKPO-IDNLF,

**

**END OF I_EKPO.

**

**data: Begin of i_EINE occurs 0,

**

**EKORG LIKE EINE-EKORG,

**

**NETPR1 LIKE EINE-NETPR,

**

**END OF I_EINE.

**

********NEW END********

**

**DATA W_MC02M_0ITM LIKE MC02M_0ITM.

**

**WHEN '2LIS_02_ITM'.

**

**LOOP AT C_T_DATA.

**

**CLEAR W_MC02M_0ITM.

**

**W_MC02M_0ITM = C_T_DATA.

**

**CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

**

********NEW BEGIN******

**

**CLEAR: LOEKZ1, IDNLF1, NETPR1.

**

********NEW END********

**

**SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

**

**W_MC02M_0ITM-ZZDATVR = DATVR1.

**

**SELECT SINGLE BUDAT INTO BUDAT1 FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

**

**AND BWART = '101'.

**

**W_MC02M_0ITM-ZZBUDAT = BUDAT1.

**

**SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

**

**read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

**

*******NEW BEGIN******

**

**SELECT SINGLE LOEKZ INTO LOEKZ1 FROM EKPO WHERE EBELN = W_MC02M_0ITM-EBELN.

**

**SELECT SINGLE IDNLF INTO IDNLF1 FROM EKPO where EBELN = W_MC02M_0ITM-EBELN.

**

**read table i_EKPO with key EBELN = W_MC02M_0ITM-EBELN.

**

**SELECT SINGLE NETPR INTO NETPR1 FROM EINE where WERKS = W_MC02M_0ITM-WERKS.

**

**read table i_EINE with key EKORG = W_MC02M_0ITM-EKORG.

**

**

*********NEW END*******

**

**IF SY-SUBRC EQ 0.

**

**W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

**

**W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

**

********NEW BEGIN******

**

**W_MC02M_0ITM-ZZLOEKZ = I_EKPO-LOEKZ1.

**

**W_MC02M_0ITM-ZZIDNLF = I_EKPO-IDNLF1.

**

**W_MC02M_0ITM-ZZNETPR = I_EINE-NETPR1.

**

*********NEW END*******

**

**ENDIF.

**

**MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

**

**

**ENDLOOP.

*

*

*

******************************************************************************

*

*

*

*

****************************************************************************

      • Enhancement to the Purchasing Data (Item Level)

**

**DATA DATVR1 LIKE NAST-DATVR.

**

**DATA: BUDAT1 LIKE EKBE-BUDAT,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1.

**

**data: Begin of i_EKKO occurs 0,

**

**EBELN LIKE EKKO-EBELN,

**

**IHREZ1 LIKE EKKO-IHREZ,

**

**INCO11 LIKE EKKO-INCO1,

**

**END OF I_EKKO.

**

**DATA W_MC02M_0ITM LIKE MC02M_0ITM.

**

**WHEN '2LIS_02_ITM'.

**

**LOOP AT C_T_DATA.

**

**CLEAR W_MC02M_0ITM.

**

**W_MC02M_0ITM = C_T_DATA.

**

**CLEAR: DATVR1,IHREZ1, INCO11, BUDAT1.

**

**SELECT SINGLE DATVR INTO DATVR1 FROM NAST WHERE OBJKY = W_MC02M_0ITM-EBELN.

**

**W_MC02M_0ITM-ZZDATVR = DATVR1.

**

**SELECT SINGLE BUDAT INTO BUDAT1 FROM EKBE WHERE EBELN = W_MC02M_0ITM-EBELN

**

**AND BWART = '101'.

**

**W_MC02M_0ITM-ZZBUDAT = BUDAT1.

**

**SELECT EBELN IHREZ INCO1 INTO TABLE I_EKKO FROM EKKO.

**

**read table i_EKKO with key EBELN = W_MC02M_0ITM-EBELN.

**

**IF SY-SUBRC EQ 0.

**

**W_MC02M_0ITM-ZZIHREZ = I_EKKO-IHREZ1.

**

**W_MC02M_0ITM-ZZINCO1 = I_EKKO-INCO11.

**

**ENDIF.

**

**MODIFY C_T_DATA FROM W_MC02M_0ITM INDEX SY-TABIX.

**

**

**

**ENDLOOP.

**

**

**

*******************************************************************************

**

**

*

*.

*

  • WHEN OTHERS.

  • DATA: L_PROG_NAME LIKE D010SINF-PROG,

  • L_SUBRC LIKE SY-SUBRC.

*

    • ==>> Added by Deolikarj on 2/9/7 .

  • DATA: L_APPLNM type RSAPPLNM ,

  • l_appl(2) ,

  • l_name like trdir-name .

*

    • Select Application Name from table

  • select single applnm

  • into l_applnm

  • from roosource

  • where oltpsource = i_datasource .

*

    • get Application area

  • if l_applnm(1) = '0' .

  • l_appl = l_applnm+1(2).

  • else.

  • l_appl = l_applnm(2).

  • endif .

*

    • <<== End Add

*

    • Changed by Deolikarj 2/9/7

    • CONCATENATE 'ZBW_'

    • I_DATASOURCE

    • INTO L_PROG_NAME.

*

  • CONCATENATE 'ZBWTR_' l_appl '_'

  • I_DATASOURCE

  • INTO L_PROG_NAME.

*

  • PERFORM TRANSFORM IN PROGRAM (L_PROG_NAME)

  • TABLES I_T_SELECT

  • I_T_FIELDS

  • C_T_DATA

  • C_T_MESSAGES

  • USING I_DATASOURCE

  • I_ISOURCE

  • I_UPDMODE

  • CHANGING L_SUBRC

  • IF FOUND.

  • IF L_SUBRC <> 0.

  • RAISE RSAP_CUSTOMER_EXIT_ERROR.

  • ENDIF.

*

*

*

*} INSERT

ENDCASE.