Vous êtes sur la page 1sur 7

DATA:OK_CODE LIKE SY-UCOMM.

DATA: BEGIN OF WA,


MATNR TYPE MARA-MATNR,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
* MAKTX TYPE MARA-MAKTX,
MEINS TYPE MARA-MEINS,
MATKL TYPE MARA-MATKL,
END OF WA.
DATA : IT LIKE TABLE OF WA.
*---tables used
TABLES:BAPIMATHEAD,"BAPI MATERIAL HEADER..
BAPI_MAKT, "BAPI MATERIAL DESCRIPTION..
BAPI_MARA, "BAPI MARA TABLE..
BAPI_MARAX. "BAPI MARA INPUT..
*--DECLARATION FOR INTERNAL TABLE
DATA:BEGIN OF ITAB OCCURS 0,
MN1 TYPE BAPIMATHEAD-MATERIAL, "MATERIAL NUMBER..
IND_SECTOR TYPE BAPIMATDOA-IND_SECTOR, "INDUSTRY SECTOR..
TYPE TYPE BAPIMATHEAD-MATL_TYPE,"MATERIAL TYPE..
DES TYPE BAPI_MAKT-MATL_DESC,"MATERIAL DESCRIPTION..
BOM TYPE BAPI_MARA-BASE_UOM,"BASIC UNIT OF MEASURE..
GROUP TYPE BAPI_MARA-MATL_GROUP,"MATERIAL GROUP..
END OF ITAB,
IT_RETURN LIKE BAPIRET1,"BAPI RETURN..
IT_RETURN1 LIKE BAPIRET2,"BAPIRETURN..
IT_BAPI LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE.
DATA:MN1 TYPE BAPIMATHEAD-MATERIAL,
IND_SECTOR LIKE BAPIMATDOA-IND_SECTOR,
TYPE TYPE BAPIMATHEAD-MATL_TYPE,
DES TYPE BAPI_MAKT-MATL_DESC,
BOM TYPE BAPI_MARA-BASE_UOM,
GROUP TYPE BAPI_MARA-MATL_GROUP.
DATA :CREATE,CHANGE,DISPLAY,DELETE.
DATA :WA_MATHEAD TYPE BAPIMATHEAD,
IT_MATHEAD TYPE TABLE OF BAPIMATHEAD.
DATA : WA_MARA TYPE BAPI_MARA,
IT_MARA TYPE TABLE OF BAPI_MARA.
DATA : WA_MARAX TYPE BAPI_MARAX,
IT_MARAX TYPE TABLE OF BAPI_MARAX.
DATA :WA_MAKT TYPE BAPI_MAKT,
IT_MAKT TYPE TABLE OF BAPI_MAKT.
DATA :WA_FINAL TYPE ZBAPIFINAL,
IT_FINAL TYPE TABLE OF ZBAPIFINAL.

*&--------------------------------------------------------------------*
*& Include
Z1085_STATUS3
*&--------------------------------------------------------------------*
*&--------------------------------------------------------------------*
*&
Module STATUS_9000 OUTPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
"STATUS DETAILS..
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'Z9000'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
" STATUS_9000 OUTPUT
*&--------------------------------------------------------------------*
*&
Module STATUS_9001 OUTPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'Z9001'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
" STATUS_9001 OUTPUT
*&--------------------------------------------------------------------*
*&
Module STATUS_9002 OUTPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
SELECT SINGLE MBRSH MTART INTO "CORRESPONDING FIELDS OF TABLE
WA_MATHEAD FROM MARA WHERE MATNR = MN1.
IND_SECTOR = WA_MATHEAD-IND_SECTOR.
TYPE = WA_MATHEAD-MATL_TYPE.
SET PF-STATUS 'Z9002'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
" STATUS_9002 OUTPUT
*&--------------------------------------------------------------------*
*&
Module STATUS_9003 OUTPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*

MODULE STATUS_9003 OUTPUT.


SET PF-STATUS 'Z9003'.
* SET TITLEBAR 'xxx'.
ENDMODULE.

" STATUS_9003

OUTPUT

*&--------------------------------------------------------------------*
*& Include
Z1085_USER3
*&--------------------------------------------------------------------*
*&--------------------------------------------------------------------*
*&
Module USER_COMMAND_9000 INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
"USER COMMAND FOR SCREEN 9000.
MODULE USER_COMMAND_9000 INPUT.
CLEAR:IND_SECTOR,
TYPE,
DES,
BOM,
GROUP.
OK_CODE = SY-UCOMM."OK_CODE LIKE SYSTEM USER COMMAND..
CASE OK_CODE.
WHEN 'RB'. "RADIO BUTTON CLICK..
IF CREATE = 'X'. "USER CLICK CREATE BUTTON..
IF MN1 IS INITIAL.
MESSAGE I009(ZMESSAGE).
ELSE.
CALL SCREEN 9001.
ENDIF.
ELSEIF CHANGE = 'X'. "USER CLICK CHANGE BUTTON..
CALL SCREEN 9002.
ELSEIF DISPLAY = 'X'. "USER CLICK DISPLAY BUTTON..
CALL SCREEN 9003.
ENDIF.
WHEN 'BACK'. "USER CLICK BACK BUTTON..
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9000 INPUT
*&--------------------------------------------------------------------*
*&
Module USER_COMMAND_9001 INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*

MODULE USER_COMMAND_9001 INPUT.


OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'CREATE'. "USER CLICK CREATE BUTTON..
IF IND_SECTOR IS INITIAL AND
TYPE IS INITIAL AND DES IS INITIAL AND
BOM IS INITIAL AND
GROUP IS INITIAL.
MESSAGE I010.
ELSE.
PERFORM CREATE.
ENDIF.
WHEN 'BACK'. "USER CLICK BACK BUTTON..
LEAVE TO SCREEN 9000.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9001 INPUT
*&--------------------------------------------------------------------*
*&
Module USER_COMMAND_9002 INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'CHANGE'. "USER CLICK CHANGE BUTTON..
PERFORM CHANGE.
WHEN 'BACK'. "USER CLICK BACK BUTTON..
LEAVE TO SCREEN 9000.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9002 INPUT
*&--------------------------------------------------------------------*
*&
Module USER_COMMAND_9003 INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE USER_COMMAND_9003 INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'DISPLAY'.
PERFORM DISPLAY.
WHEN 'BACK'. "USER CLICK BACK BUTTON..
LEAVE TO SCREEN 9002.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9003 INPUT
*&--------------------------------------------------------------------*
*&
Form CREATE
*&--------------------------------------------------------------------*
*
text

*---------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*---------------------------------------------------------------------*
FORM CREATE.
DATA : MSG(100) TYPE C . "MESSAGES..
WA_MATHEAD-MATERIAL = MN1. "MATERIAL NUMBER..
WA_MATHEAD-IND_SECTOR = IND_SECTOR."INDUSTRY SECTOR..
WA_MATHEAD-MATL_TYPE = TYPE."MATERIAL TYPE..
WA_MARA-MATL_GROUP = GROUP."MATERIAL GROUP..
WA_MARA-BASE_UOM = BOM."BASIC UNIT OF MEASURE..
WA_MARAX-MATL_GROUP = 'X'.
WA_MARAX-BASE_UOM = 'X'.
WA_MAKT-MATL_DESC = DES."MATERIAL DESCRIPTION..
WA_MAKT-LANGU = 'EN'.
WA_MAKT-LANGU_ISO = 'EN'.
APPEND WA_MAKT TO IT_MAKT.
BAPI_MARAX-BASE_UOM
= 'X'.
BAPI_MARAX-MATL_GROUP = 'X'.
"FUNCTION CALL TO SAVE OR CREATE DATAS ...
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA
= WA_MATHEAD
CLIENTDATA
= WA_MARA
CLIENTDATAX
= WA_MARAX
IMPORTING
RETURN
= IT_RETURN1
TABLES
MATERIALDESCRIPTION
= IT_MAKT .
IF IT_RETURN1-TYPE NE 'E'.
"FUNCTION CALL TO GET ERROR MESSAGES OR
" INFORMATION FROM BAPI...
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT
= 'X'.
*this is the message type which indicates whether it is failed or succe
ded
MESSAGE I011.
ELSE.
CONCATENATE IT_RETURN1-TYPE
IT_RETURN1-MESSAGE INTO MSG.
MESSAGE MSG TYPE 'E'.
ENDIF.
CLEAR:IND_SECTOR, TYPE,DES, BOM, GROUP.
ENDFORM.
" CREATE
*&--------------------------------------------------------------------*
*&
Form CHANGE
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*

* --> p1
text
* <-- p2
text
*---------------------------------------------------------------------*
FORM CHANGE.
DATA : MSG(100) TYPE C .
WA_MATHEAD-MATERIAL = MN1. "MATERIAL NUMBER..
WA_MATHEAD-IND_SECTOR = IND_SECTOR."INDUSTRY SECTOR..
WA_MATHEAD-MATL_TYPE = TYPE."MATERIAL TYPE..
WA_MARA-MATL_GROUP = GROUP."MATERIAL GROUP..
WA_MARA-BASE_UOM = BOM."BASIC UNIT OF MEASURE..
WA_MARAX-MATL_GROUP = 'X'.
WA_MARAX-BASE_UOM = 'X'.
WA_MAKT-MATL_DESC = DES."MATERIAL DESCRIPTION..
WA_MAKT-LANGU = 'EN'.
WA_MAKT-LANGU_ISO = 'EN'.
APPEND WA_MAKT TO IT_MAKT.
BAPI_MARAX-BASE_UOM
= 'X'.
BAPI_MARAX-MATL_GROUP = 'X'.
"FUNCTION CALL TO SAVE OR CREATE DATAS ...
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA
= WA_MATHEAD
CLIENTDATA
= WA_MARA
CLIENTDATAX
= WA_MARAX
IMPORTING
RETURN
= IT_RETURN1
TABLES
MATERIALDESCRIPTION
= IT_MAKT .
IF IT_RETURN1-TYPE NE 'E'.
"FUNCTION CALL TO GET ERROR MESSAGES OR
" INFORMATION FROM BAPI...
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT
= 'X'.
*this is the message type which indicates whether it is failed or succe
ded
MESSAGE I012.
ELSE.
CONCATENATE IT_RETURN1-TYPE
IT_RETURN1-MESSAGE INTO MSG.
MESSAGE MSG TYPE 'E'.
ENDIF.
CLEAR: DES, BOM,GROUP.
ENDFORM.
" CHANGE
*&--------------------------------------------------------------------*
*&
Form DISPLAY
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
* --> p1
text
* <-- p2
text

*---------------------------------------------------------------------*
FORM DISPLAY .
DATA: WA_DISP TYPE BAPIMATDOA.
"CONTAINS THE GENERAL DET
AIL
SELECT MATNR UP TO 20 ROWS FROM MARA
INTO TABLE IT_MATHEAD
WHERE ERNAM = SY-UNAME.
LOOP AT IT_MATHEAD INTO WA_MATHEAD.
CALL FUNCTION 'BAPI_MATERIAL_GET_DETAIL'
EXPORTING
MATERIAL
= WA_MATHEAD-MATERIAL
IMPORTING
MATERIAL_GENERAL_DATA = WA_DISP.
WA_FINAL-MATNR = WA_MATHEAD-MATERIAL.
WA_FINAL-MAKTX = WA_DISP-MATL_DESC.
WA_FINAL-MTART = WA_DISP-MATL_TYPE.
WA_FINAL-MBRSH = WA_DISP-IND_SECTOR.
WA_FINAL-MATKL = WA_DISP-MATL_GROUP.
WA_FINAL-MEINS = WA_DISP-BASE_UOM.
APPEND WA_FINAL TO IT_FINAL.
CLEAR: WA_FINAL,WA_DISP.
ENDLOOP.
SORT IT_FINAL ASCENDING BY MATNR.
INCLUDE ZFINAL.
ENDFORM.

" DISPLAY

Vous aimerez peut-être aussi