2007 Jan 02 7:23 AM
Hello experts
i have developed the report for mm module
the report name is INBOUND DELIVERY AND GOODS RECEIPT STATUS
Input is plant,material code,material group,vendor code ,date,
output format is
1.Inbound Delivery Document Number
2.Inbound Delivery Document Date
3.Vendor Code
4.Vendor Name
5.Vendor Delivery Note Number
6.Material Code
7.Material Description
8.Inbound Delivery Quantity
9.UoM
10.Material Document Number
11.Material Document Date
12Quantityinunitofentry
13.Unitofentry
14Processing Time for Goods Receipt
i have tried the logic is
FORM SELECT_DATA.
SELECT AVBELN ABLDAT ALIFNR CNAME1 ALIFEX BMATNR BMATKL BLFIMG BMEINS BWERKS BARKTX BVGBEL B~VGPOS
INTO CORRESPONDING FIELDS OF TABLE IT_LIKP_IDEL
FROM LIKP AS A
INNER JOIN LIPS AS B ON AVBELN = BVBELN
INNER JOIN LFA1 AS C ON ALIFNR = CLIFNR
WHERE B~WERKS IN S_WERKS
AND B~MATNR IN S_MATNR
AND B~MATKL IN S_MATKL
AND A~LIFNR IN S_LIFNR
AND A~BLDAT IN S_BLDAT.
READ TABLE IT_LIKP_IDEL INDEX 1.
IF SY-SUBRC = 0.
SELECT MBLNR ERFMG ERFME EBELN EBELP FROM MSEG INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_IDEL
FOR ALL ENTRIES IN IT_LIKP_IDEL
WHERE EBELN = IT_LIKP_IDEL-VGBEL
AND EBELP = IT_LIKP_IDEL-VGPOS+1(5).
ENDIF.
READ TABLE IT_MSEG_IDEL INDEX 1.
IF SY-SUBRC = 0.
SELECT MBLNR BUDAT FROM MKPF INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_IDEL
FOR ALL ENTRIES IN IT_MSEG_IDEL
WHERE MBLNR = IT_MSEG_IDEL-MBLNR.
ENDIF.
ENDFORM. "SELECT_DATA
FORM MAIN_DATA.
LOOP AT IT_MSEG_IDEL.
IT_FINAL_IDEL-MBLNR = IT_MSEG_IDEL-MBLNR.
IT_FINAL_IDEL-ERFMG = IT_MSEG_IDEL-ERFMG.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
INPUT = IT_MSEG_IDEL-ERFME
LANGUAGE = SY-LANGU
IMPORTING
LONG_TEXT =
OUTPUT = IT_MSEG_IDEL-ERFME
SHORT_TEXT =
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IT_FINAL_IDEL-ERFME = IT_MSEG_IDEL-ERFME.
LOOP AT IT_LIKP_IDEL WHERE VGBEL = IT_MSEG_IDEL-EBELN AND VGPOS+1(5) = IT_MSEG_IDEL-EBELP.
IT_FINAL_IDEL-VBELN = IT_LIKP_IDEL-VBELN.
CONCATENATE IT_LIKP_IDEL-BLDAT6(2) IT_LIKP_IDEL-BLDAT4(2) IT_LIKP_IDEL-BLDAT+0(4)
INTO G_DATE SEPARATED BY '.'.
IT_FINAL_IDEL-BLDAT = G_DATE.
IT_FINAL_IDEL-LIFNR = IT_LIKP_IDEL-LIFNR.
IT_FINAL_IDEL-NAME1 = IT_LIKP_IDEL-NAME1.
IT_FINAL_IDEL-LIFEX = IT_LIKP_IDEL-LIFEX.
IT_FINAL_IDEL-MATNR = IT_LIKP_IDEL-MATNR.
IT_FINAL_IDEL-ARKTX = IT_LIKP_IDEL-ARKTX.
IT_FINAL_IDEL-LFIMG = IT_LIKP_IDEL-LFIMG.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
INPUT = IT_LIKP_IDEL-MEINS
LANGUAGE = SY-LANGU
IMPORTING
LONG_TEXT =
OUTPUT = IT_LIKP_IDEL-MEINS
SHORT_TEXT =
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IT_FINAL_IDEL-MEINS = IT_LIKP_IDEL-MEINS.
READ TABLE IT_MKPF_IDEL WITH KEY MBLNR = IT_MSEG_IDEL-MBLNR.
IF SY-SUBRC = 0.
CONCATENATE IT_MKPF_IDEL-BUDAT6(2) IT_MKPF_IDEL-BUDAT4(2) IT_MKPF_IDEL-BUDAT+0(4)
INTO G_DATE1 SEPARATED BY '.'.
IT_FINAL_IDEL-BUDAT = G_DATE1.
IT_FINAL_IDEL-PTGR = IT_MKPF_IDEL-BUDAT - IT_LIKP_IDEL-BLDAT.
ENDIF.
APPEND IT_FINAL_IDEL.
ENDLOOP.
IF SY-SUBRC NE 0.
APPEND IT_FINAL_IDEL.
ENDIF.
CLEAR: IT_FINAL_IDEL, IT_LIKP_IDEL, IT_MSEG_IDEL, IT_MKPF_IDEL.
ENDLOOP.
ENDFORM. "MAIN_DATA
i got the output ,but the only problem is records r getting repeated .
wher i have to rectify this problem
Regards
ds
Hello experts
i have developed the report for mm module
the report name is INBOUND DELIVERY AND GOODS RECEIPT STATUS
Input is plant,material code,material group,vendor code ,date,
output format is
1.Inbound Delivery Document Number
2.Inbound Delivery Document Date
3.Vendor Code
4.Vendor Name
5.Vendor Delivery Note Number
6.Material Code
7.Material Description
8.Inbound Delivery Quantity
9.UoM
10.Material Document Number
11.Material Document Date
12Quantityinunitofentry
13.Unitofentry
14Processing Time for Goods Receipt
i have tried the logic is
FORM SELECT_DATA.
SELECT AVBELN ABLDAT ALIFNR CNAME1 ALIFEX BMATNR BMATKL BLFIMG BMEINS BWERKS BARKTX BVGBEL B~VGPOS
INTO CORRESPONDING FIELDS OF TABLE IT_LIKP_IDEL
FROM LIKP AS A
INNER JOIN LIPS AS B ON AVBELN = BVBELN
INNER JOIN LFA1 AS C ON ALIFNR = CLIFNR
WHERE B~WERKS IN S_WERKS
AND B~MATNR IN S_MATNR
AND B~MATKL IN S_MATKL
AND A~LIFNR IN S_LIFNR
AND A~BLDAT IN S_BLDAT.
READ TABLE IT_LIKP_IDEL INDEX 1.
IF SY-SUBRC = 0.
SELECT MBLNR ERFMG ERFME EBELN EBELP FROM MSEG INTO CORRESPONDING FIELDS OF TABLE IT_MSEG_IDEL
FOR ALL ENTRIES IN IT_LIKP_IDEL
WHERE EBELN = IT_LIKP_IDEL-VGBEL
AND EBELP = IT_LIKP_IDEL-VGPOS+1(5).
ENDIF.
READ TABLE IT_MSEG_IDEL INDEX 1.
IF SY-SUBRC = 0.
SELECT MBLNR BUDAT FROM MKPF INTO CORRESPONDING FIELDS OF TABLE IT_MKPF_IDEL
FOR ALL ENTRIES IN IT_MSEG_IDEL
WHERE MBLNR = IT_MSEG_IDEL-MBLNR.
ENDIF.
ENDFORM. "SELECT_DATA
FORM MAIN_DATA.
LOOP AT IT_MSEG_IDEL.
IT_FINAL_IDEL-MBLNR = IT_MSEG_IDEL-MBLNR.
IT_FINAL_IDEL-ERFMG = IT_MSEG_IDEL-ERFMG.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
INPUT = IT_MSEG_IDEL-ERFME
LANGUAGE = SY-LANGU
IMPORTING
LONG_TEXT =
OUTPUT = IT_MSEG_IDEL-ERFME
SHORT_TEXT =
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IT_FINAL_IDEL-ERFME = IT_MSEG_IDEL-ERFME.
LOOP AT IT_LIKP_IDEL WHERE VGBEL = IT_MSEG_IDEL-EBELN AND VGPOS+1(5) = IT_MSEG_IDEL-EBELP.
IT_FINAL_IDEL-VBELN = IT_LIKP_IDEL-VBELN.
CONCATENATE IT_LIKP_IDEL-BLDAT6(2) IT_LIKP_IDEL-BLDAT4(2) IT_LIKP_IDEL-BLDAT+0(4)
INTO G_DATE SEPARATED BY '.'.
IT_FINAL_IDEL-BLDAT = G_DATE.
IT_FINAL_IDEL-LIFNR = IT_LIKP_IDEL-LIFNR.
IT_FINAL_IDEL-NAME1 = IT_LIKP_IDEL-NAME1.
IT_FINAL_IDEL-LIFEX = IT_LIKP_IDEL-LIFEX.
IT_FINAL_IDEL-MATNR = IT_LIKP_IDEL-MATNR.
IT_FINAL_IDEL-ARKTX = IT_LIKP_IDEL-ARKTX.
IT_FINAL_IDEL-LFIMG = IT_LIKP_IDEL-LFIMG.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
INPUT = IT_LIKP_IDEL-MEINS
LANGUAGE = SY-LANGU
IMPORTING
LONG_TEXT =
OUTPUT = IT_LIKP_IDEL-MEINS
SHORT_TEXT =
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IT_FINAL_IDEL-MEINS = IT_LIKP_IDEL-MEINS.
READ TABLE IT_MKPF_IDEL WITH KEY MBLNR = IT_MSEG_IDEL-MBLNR.
IF SY-SUBRC = 0.
CONCATENATE IT_MKPF_IDEL-BUDAT6(2) IT_MKPF_IDEL-BUDAT4(2) IT_MKPF_IDEL-BUDAT+0(4)
INTO G_DATE1 SEPARATED BY '.'.
IT_FINAL_IDEL-BUDAT = G_DATE1.
IT_FINAL_IDEL-PTGR = IT_MKPF_IDEL-BUDAT - IT_LIKP_IDEL-BLDAT.
ENDIF.
APPEND IT_FINAL_IDEL.
ENDLOOP.
IF SY-SUBRC NE 0.
APPEND IT_FINAL_IDEL.
ENDIF.
CLEAR: IT_FINAL_IDEL, IT_LIKP_IDEL, IT_MSEG_IDEL, IT_MKPF_IDEL.
ENDLOOP.
ENDFORM. "MAIN_DATA
i got the output ,but the only problem is records r getting repeated .
wher i have to rectify this problem
Regards
ds
2007 Jan 02 7:32 AM
hi
If the records are repeating, then you can sort the final table and delete adjacent duplicates from <internal table name> comparing all fields.
Regards,
Navneet
2007 Jan 02 7:54 AM
Hi,
Try making IT_LIKP_IDEL as outside loop and IT_MSEG_IDEL as inner loop.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |