‎2008 Dec 24 9:46 AM
Hi friends,
I used the BAPI_Requirements_create for uploading the data in MD61. Data is getting uploaded but when i go into the transaction MD62(Change Mode) and extra column is displayed for each month.
For e.g.
Months 01/2008 01/2008 02/2008 02/2008
Quantities 10 20
If anybody has come across such an issue i would request you to suggest me where am i going wrong.
Awaiting u r replies.
RASHMI POTDAR
‎2008 Dec 24 9:59 AM
‎2008 Dec 24 10:00 AM
&----
*& Report ZCSPP_PIR
*&
&----
*&
*&
&----
REPORT ZCSPP_PIR.
TABLES:PBIM,PBHI.
DATA:REQ_ITEM LIKE BAPISITEMR OCCURS 0 WITH HEADER LINE.
DATA:REQ_PARAM LIKE CM60R OCCURS 0 WITH HEADER LINE,
DO_COMT LIKE BAPISPARAM-DO_COMMIT VALUE 'X',
UP_MODE LIKE BAPISPARAM-UPDATE_MODE VALUE 'X',
MAT LIKE BAPISITEMR-MATERIAL,
PLT LIKE BAPISITEMR-PLANT,
REQTYPE LIKE BAPISITEMR-REQU_TYPE,
VERS LIKE BAPISITEMR-VERSION,
REQPLANNUM LIKE BAPISITEMR-REQ_NUMBER,
VERS_ACT LIKE BAPISITEMR-VERS_ACTIV,
MRP_AREA LIKE BAPISITEMR-MRP_AREA.
DATA: REQ_OUT LIKE BAPISITMEO OCCURS 0 WITH HEADER LINE.
DATA: REQ_ITEM_OUT LIKE BAPISITEMR OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET1.
DATA: END OF RETURN.
DATA: BEGIN OF GREQ_SHD OCCURS 0.
INCLUDE STRUCTURE BAPISSHDIN.
DATA: END OF GREQ_SHD.
DATA: BEGIN OF GREQ_CHR OCCURS 0.
INCLUDE STRUCTURE BAPISCHARR.
DATA: END OF GREQ_CHR.
DATA : BEGIN OF T_DATA OCCURS 0,
MATNR TYPE AM60X-MATNR,
WERKS TYPE AM60X-WERKS,
VERSB TYPE RM60X-VERSB,
END OF T_DATA.
DATA: BEGIN OF T_DATA1 OCCURS 0,
ENTLU TYPE RM60E-ENTLU,
EDATU TYPE RM60E-EDATU,
PLMNG TYPE RM60E-PLNMG,
END OF T_DATA1.
DATA: BEGIN OF I_BDZEI OCCURS 0,
BDZEI TYPE PBIM-BDZEI,
END OF I_BDZEI.
DATA: BDZEI1 TYPE PBHI-BDZEI.
DATA : BEGIN OF T_WEEK OCCURS 0,
MATNR TYPE AM60X-MATNR,
WERKS TYPE AM60X-WERKS,
VERSB TYPE RM60X-VERSB,
PLMNG1(15) TYPE C,
PLMNG2(15) TYPE C,
PLMNG3(15) TYPE C,
PLMNG4(15) TYPE C,
PLMNG5(15) TYPE C,
PLMNG6(15) TYPE C,
PLMNG7(15) TYPE C,
PLMNG8(15) TYPE C,
PLMNG9(15) TYPE C,
PLMNG10(15) TYPE C,
PLMNG11(15) TYPE C,
PLMNG12(15) TYPE C,
PLMNG13(15) TYPE C,
PLMNG14(15) TYPE C,
PLMNG15(15) TYPE C,
PLMNG16(15) TYPE C,
PLMNG17(15) TYPE C,
PLMNG18(15) TYPE C,
PLMNG19(15) TYPE C,
PLMNG20(15) TYPE C,
PLMNG21(15) TYPE C,
PLMNG22(15) TYPE C,
PLMNG23(15) TYPE C,
PLMNG24(15) TYPE C,
PLMNG25(15) TYPE C,
PLMNG26(15) TYPE C,
PLMNG27(15) TYPE C,
PLMNG28(15) TYPE C,
PLMNG29(15) TYPE C,
PLMNG30(15) TYPE C,
END OF T_WEEK.
data: begin of t_success occurs 0.
include structure t_week.
data: end of t_success.
data: begin of t_errors occurs 0.
include structure t_week.
data: end of t_errors.
DATA: VAR(2) TYPE C.
FIELD-SYMBOLS: <FS> TYPE ANY.
DATA : W_COUNT TYPE C LENGTH 2,
W_RECNO TYPE C LENGTH 2,
W_SRNUM TYPE C LENGTH 2,
W_ITEM TYPE C LENGTH 3.
W_COUNT = '1'.
W_SRNUM = '1'.
W_RECNO = '2'.
W_ITEM = '3'.
DATA : PLMNG(15) TYPE C.
DATA : BDZEI TYPE PBIM-BDZEI.
DATA : PLNMG TYPE PBED-PLNMG.
data : index(4) type c.
index = 1.
PARAMETERS: FILENAME LIKE RLGRAP-FILENAME.
constants : c_a(1) type c value '2',
c_b(1) type c value '3',
c_c(1) type c value '1'.
&----
& AT SELECTION SCREEN Validation &
&----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = FILENAME.
&----
& START-OF-SELECTION &
&----
START-OF-SELECTION.
PERFORM WEEK_GET_DATA.
CLEAR T_WEEK.
LOOP AT T_WEEK FROM W_ITEM.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = T_WEEK-MATNR
IMPORTING
OUTPUT = T_WEEK-MATNR.
REQ_ITEM-MATERIAL = T_WEEK-MATNR.
REQ_ITEM-PLANT = T_WEEK-WERKS.
REQ_ITEM-REQU_TYPE = 'BSF'.
REQ_ITEM-VERSION = T_WEEK-VERSB.
REQ_ITEM-REQ_NUMBER = ' '.
REQ_ITEM-VERS_ACTIV = 'X'.
req_item-mrp_area = ' '.
APPEND REQ_ITEM.
if t_week-plmng29 is initial.
IF T_WEEK-PLMNG28 IS INITIAL.
perform greq_shd.
ELSE.
perform greq_shd1.
ENDIF.
else.
perform greq_shd2.
endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = T_WEEK-MATNR
IMPORTING
OUTPUT = T_WEEK-MATNR.
SELECT SINGLE BDZEI FROM PBIM INTO BDZEI WHERE MATNR = T_WEEK-MATNR
AND BEDAE = 'BSF'
AND VERSB = '00'.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_REQUIREMENTS_CREATE'
EXPORTING
REQUIREMENTS_ITEM = REQ_ITEM
DO_COMMIT = 'X'
UPDATE_MODE = 'X'
IMPORTING
MATERIAL = MAT
PLANT = PLT
REQUIREMENTSTYPE = REQTYPE
VERSION = VERS
REQMTSPLANNUMBER = REQPLANNUM
MRP_AREA = MRP_AREA
TABLES
REQUIREMENTS_SCHEDULE_IN = GREQ_SHD
RETURN = RETURN.
.
if return is not initial.
move t_week to t_errors.
append t_errors.
format color COL_NEGATIVE intensified off.
WRITE:/01 sy-vline,
02 index,
06 sy-vline,
07 RETURN-MESSAGE_V1,
27 sy-vline,
28 'Not Created',
69 sy-vline.
write:/ sy-uline(69).
else.
format color COL_HEADING intensified off.
WRITE:/01 sy-vline,
02 index,
06 sy-vline,
07 req_item-material,
27 sy-vline,
28 'Created',
69 sy-vline.
write:/ sy-uline(69).
endif.
clear req_item_out.
clear greq_shd.
refresh greq_shd.
else.
CALL FUNCTION 'BAPI_REQUIREMENTS_CHANGE'
EXPORTING
MATERIAL = REQ_ITEM-MATERIAL
PLANT = REQ_ITEM-PLANT
REQUIREMENTSTYPE = REQ_ITEM-REQU_TYPE
VERSION = REQ_ITEM-VERSION
REQMTSPLANNUMBER = REQ_ITEM-REQ_NUMBER
VERS_ACTIV = 'X'
MRP_AREA = REQ_ITEM-MRP_AREA
DO_COMMIT = 'X'
UPDATE_MODE = 'X'
DELETE_OLD = 'X'
NO_WITHDR = ' '
IMPORTING
REQUIREMENT_ITEM_OUT = REQ_ITEM_OUT
TABLES
REQUIREMENTS_SCHEDULE_IN = GREQ_SHD
RETURN = RETURN
.
if return is not initial.
move t_week to t_errors.
append t_errors.
format color COL_NEGATIVE intensified off.
WRITE:/01 sy-vline,
02 index,
06 sy-vline,
07 RETURN-MESSAGE_V1,
27 sy-vline,
28 'Not Created',
69 sy-vline.
write:/ sy-uline(69).
else.
format color COL_HEADING intensified off.
WRITE:/01 sy-vline,
02 index,
06 sy-vline,
07 req_item-material,
27 sy-vline,
28 'Created',
69 sy-vline.
write:/ sy-uline(69).
endif.
clear req_item_out.
clear greq_shd.
refresh greq_shd.
ENDIF.
W_ITEM = W_ITEM + 1.
index = index + 1.
ENDLOOP.
perform errors_download.
&----
*& Form week_get_data
&----
text
----
FORM WEEK_GET_DATA.
DATA: FILENAME1 TYPE STRING.
MOVE: FILENAME TO FILENAME1.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILENAME1
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = T_WEEK.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "week_get_data
&----
*& Form greq_shd
&----
text
----
--> p1 text
<-- p2 text
----
FORM greq_shd .
DO 27 TIMES.
VAR = SY-INDEX.
CONCATENATE 't_week-plmng' VAR INTO PLMNG.
ASSIGN (PLMNG) TO <FS>.
READ TABLE T_WEEK INDEX W_SRNUM.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = <FS>
IMPORTING
OUTPUT = <FS>.
IF <FS> = 'W'.
<FS> = c_a.
ELSEIF <FS> = 'M'.
<FS> = c_b.
elseif <fs> = 'D'.
<FS> = C_C.
ENDIF.
GREQ_SHD-DATE_TYPE = <FS>.
READ TABLE T_WEEK INDEX W_RECNO.
GREQ_SHD-REQ_DATE = <FS>.
READ TABLE T_WEEK INDEX W_ITEM.
GREQ_SHD-REQ_QTY = <FS>.
GREQ_SHD-UNIT = 'CS'.
APPEND GREQ_SHD.
ENDDO.
ENDFORM. " greq_shd
&----
*& Form greq_shd1
&----
text
----
--> p1 text
<-- p2 text
----
FORM greq_shd1 .
DO 28 TIMES.
VAR = SY-INDEX.
CONCATENATE 't_week-plmng' VAR INTO PLMNG.
ASSIGN (PLMNG) TO <FS>.
READ TABLE T_WEEK INDEX W_SRNUM.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = <FS>
IMPORTING
OUTPUT = <FS>.
IF <FS> = 'W'.
<FS> = c_a.
ELSEIF <FS> = 'M'.
<FS> = c_b.
elseif <fs> = 'D'.
<FS> = C_C.
ENDIF.
GREQ_SHD-DATE_TYPE = <FS>.
READ TABLE T_WEEK INDEX W_RECNO.
GREQ_SHD-REQ_DATE = <FS>.
READ TABLE T_WEEK INDEX W_ITEM.
GREQ_SHD-REQ_QTY = <FS>.
GREQ_SHD-UNIT = 'CS'.
APPEND GREQ_SHD.
ENDDO.
ENDFORM. " greq_shd1
&----
*& Form greq_shd2
&----
text
----
--> p1 text
<-- p2 text
----
FORM greq_shd2 .
DO 29 TIMES.
VAR = SY-INDEX.
CONCATENATE 't_week-plmng' VAR INTO PLMNG.
ASSIGN (PLMNG) TO <FS>.
READ TABLE T_WEEK INDEX W_SRNUM.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = <FS>
IMPORTING
OUTPUT = <FS>.
IF <FS> = 'W'.
<FS> = c_a.
ELSEIF <FS> = 'M'.
<FS> = c_b.
elseif <fs> = 'D'.
<FS> = C_C.
ENDIF.
GREQ_SHD-DATE_TYPE = <FS>.
READ TABLE T_WEEK INDEX W_RECNO.
GREQ_SHD-REQ_DATE = <FS>.
READ TABLE T_WEEK INDEX W_ITEM.
GREQ_SHD-REQ_QTY = <FS>.
GREQ_SHD-UNIT = 'CS'.
APPEND GREQ_SHD.
ENDDO.
ENDFORM. " greq_shd2
top-of-page.
format color COL_HEADING intensified on.
write:/01 sy-vline,
02 'SNo.',
06 sy-vline,
07 'Material' ,
27 sy-vline,
28 'Status',
69 sy-vline.
write:/ sy-uline(69).
&----
*& Form errors_download
&----
text
----
--> p1 text
<-- p2 text
----
FORM errors_download .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'c:\bapipir.xls'
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = T_ERRORS
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF T_ERRORS IS NOT INITIAL.
MESSAGE 'ERROR FILE IS DOWNLOADED IN C DRIVE WITH NAME BAPIPIR.XLS' TYPE 'I'.
ENDIF.
ENDFORM. " errors_download