Académique Documents
Professionnel Documents
Culture Documents
type-pools : slis.
tables : vbap.
TYPES : BEGIN OF T1,
VBELN TYPE VBAP-VBELN,
WERKS TYPE VBAP-WERKS,
END OF T1.
TYPES : BEGIN OF T2,
WERKS TYPE T001L-WERKS,
LGORT TYPE T001L-LGORT,
END OF T2.
types : BEGIN OF ty_popup,
CHECKBOX(1),
WERKS type T001L-werks,
LGORT type T001L-lgort,
END OF ty_popup.
DATA : IT_T1 TYPE TABLE OF T1,
WA_T1 LIKE LINE OF IT_T1.
DATA : IT_T2 TYPE TABLE OF T2,
WA_T2 LIKE LINE OF IT_T2.
DATA : IT_T3 TYPE TABLE OF mard,
WA_T3 LIKE LINE OF IT_T3.
data : it_pop type TABLE OF ty_popup,
wa_pop type ty_popup.
DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT LIKE LINE OF IT_FCAT.
DATA : IT_BOM TYPE TABLE OF YBOM1,
WA_BOM LIKE LINE OF IT_BOM.
DATA : IT_BOM1 TYPE TABLE OF YBOM1,
WA_BOM1 LIKE LINE OF IT_BOM.
data : it_VBAP type TABLE OF vbap,
wa_VBAP like line of it_VBAP.
*****************************declearation for bapi
DATA: v_vbeln LIKE vbak-vbeln.
DATA : HEADDATA LIKE BAPIMATHEAD,
CLIENTDATA LIKE BAPI_MARA,
CLIENTDATAX LIKE BAPI_MARAX,
PLANTDATA LIKE BAPI_MARC,
PLANTDATAX LIKE BAPI_MARCX,
STORAGELOCATIONDATA LIKE BAPI_MARD,
STORAGELOCATIONDATAX LIKE BAPI_MARDX.
DATA: WA_RETURN TYPE BAPIRET2,
IT_RETURN TYPE TABLE OF BAPIRET2.
DATA: WA_message TYPE BAPIRET2,
IT_message TYPE TABLE OF BAPIRET2,
ls_fieldcatlog TYPE slis_fieldcat_alv,
lt_fieldcatlog TYPE slis_t_fieldcat_alv.
*******************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS : p_vbeln type vbap-vbeln.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN OUTPUT.
set PF-STATUS 'ZSTATE'.
AT SELECTION-SCREEN .
PERFORM GET_DATA.
FORM GET_DATA .
CASE SY-UCOMM.
WHEN 'POPUP'.
SELECT VBELN WERKS FROM VBAP INTO CORRESPONDING FIELDS OF TABLE IT_T1
WHERE VBELN = P_VBELN.
IF IT_T1 IS NOT INITIAL.
SELECT WERKS LGORT FROM T001L INTO CORRESPONDING FIELDS OF TABLE IT_T2
FOR ALL ENTRIES IN IT_T1
WHERE WERKS = IT_T1-WERKS.
ENDIF.
SELECT matnr FROM YBOM1 INTO CORRESPONDING FIELDS OF TABLE
it_bom WHERE vbeln = p_vbeln.
if it_t2 is not INITIAL.
select * from mard into CORRESPONDING FIELDS OF table it_t3 FOR ALL ENTRIES IN it_t2 w
here lgort = it_t2-lgort and werks = it_t2-werks.
endif.
loop at it_t2 into wa_t2.
WA_POP-WERKS = WA_T2-WERKS.
WA_POP-LGORT = WA_T2-LGORT.
APPEND WA_POP TO IT_POP.
ENDLOOP.
perform display_popup.
PERFORM GET_BAPI.
ENDCASE.
ENDFORM. " GET_DATA
FORM DISPLAY_POPUP.
* CLEAR : WA_FCAT.
* WA_FCAT-COL_POS = '1'.
* WA_FCAT-FIELDNAME = 'CHECKBOX'.
**WA_FCAT-TABNAME = 'IT_POP'.
* WA_FCAT-SELTEXT_M = 'CHECKBOX'.
* APPEND WA_FCAT TO IT_FCAT.
CLEAR : WA_FCAT.
WA_FCAT-COL_POS = '2'.
WA_FCAT-FIELDNAME = 'WERKS'.
*WA_FCAT-TABNAME = 'IT_POP'.
WA_FCAT-SELTEXT_M = 'PLANT NO'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR : WA_FCAT.
WA_FCAT-COL_POS = '1'.
WA_FCAT-FIELDNAME = 'LGORT'.
*WA_FCAT-TABNAME = 'IT_POP'.
WA_FCAT-SELTEXT_M = 'STORAGE LOCATION'.
APPEND WA_FCAT TO IT_FCAT.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
* I_TITLE =
* I_SELECTION = 'X'
* I_ALLOW_NO_SELECTION =
I_ZEBRA = 'X'
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
I_CHECKBOX_FIELDNAME = 'CHECKBOX'
* I_LINEMARK_FIELDNAME =
* I_SCROLL_TO_SEL_LINE = 'X'
I_TABNAME = 'IT_POP'
IT_FIELDCAT = IT_FCAT
TABLES
T_OUTTAB = IT_POP.
REFRESH IT_FCAT.
ENDFORM. " DISPLAY_POPUP
* Sales document type
FORM GET_BAPI.
LOOP AT IT_POP INTO WA_POP WHERE CHECKBOX = 'X'.
PLANTDATA-PLANT = Wa_pop-werks.
PLANTDATAX-PLANT = wa_pop-werks.
Storagelocationdata-plant = Wa_pop-werks.
StoragelocationdataX-plant = Wa_pop-werks.
Storagelocationdata-STGE_LOC = WA_POP-LGORT.
STORAGELOCATIONDATAX-STGE_LOC = wa_pop-lgort.
ENDLOOP.
LOOP AT IT_T3 INTO WA_T3 where matnr is NOT INITIAL and werks = wa_pop-werks and lgort
= wa_pop-lgort.
READ TABLE IT_BOM INTO WA_BOM WITH KEY MATNR = WA_T3-MATNR.
if sy-subrc eq 0.
WA_BOM1-MATNR = WA_BOM-MATNR.
APPEND WA_BOM1 TO IT_BOM1.
clear wa_bom.
endif.
ENDLOOP.
loop at it_bom1 into wa_bom1 where matnr is NOT INITIAL.
clear wa_return.
Headdata-MATERIAL = wa_bom1-matnr.
CLEAR wa_bom1.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = HEADDATA
* CLIENTDATA = CLIENTDATA
* CLIENTDATAX = CLIENTDATAX
PLANTDATA = PLANTDATA
PLANTDATAX = PLANTDATAX
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
STORAGELOCATIONDATA = STORAGELOCATIONDATA
STORAGELOCATIONDATAX = STORAGELOCATIONDATAX
* VALUATIONDATA =
* VALUATIONDATAX =
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
* NO_DEQUEUE = ' '
* NO_ROLLBACK_WORK = ' '
* AFS_HEADDATA =
* AFS_CLIENTDATA =
* AFS_CLIENTDATAX =
* AFS_PLANTDATA =
* AFS_PLANTDATAX =
* AFS_SALESDATA =
* AFS_SALESDATAX =
IMPORTING
RETURN = WA_return
* TABLES
* MATERIALDESCRIPTION =
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
* SKU_UNITSOFMEASURE =
* SKU_INTERNATIONALARTNOS =
* SKU_PLANTDATA_MRP =
* SKU_PLANTDATA_VALUATION =
* SKU_PALLETIZATION_WM =
* SKU_STRATEGIES_WM =
* SKU_CAPUSAGE_WM =
* SKU_STORAGETYPEDATA =
* AFS_SEASONDATA =
* SKU_SALESDATA =
* AFS_QUOTACATEGORIES =
* SKU_COMM_CODES =
* AFS_RETAIL_DATA =
* SKU_GROUP_PROD_VERSIONS =
* SKU_PLANTDATA_VALUATIONX =
* SKU_PLANTDATA_MRPX =
* SKU_PALLETIZATION_WMX =
* SKU_STRATEGIES_WMX =
* SKU_CAPUSAGE_WMX =
* SKU_STORAGETYPEDATAX =
* SKU_SALESDATAX =
* SKU_COMM_CODESX =
* SKU_UNITSOFMEASUREX =
.
APPEND WA_RETURN TO IT_RETURN.
loop at it_return into wa_return WHERE type = 'E'.
move wa_return to wa_message..
CONCATENATE Headdata-MATERIAL wa_message-message into wa_message-message SEPAR
ATED BY '/'.
APPEND wa_message to it_message.
ENDLOOP.
ENDLOOP.
if it_message is INITIAL .
MESSAGE 'MATERIAL created' TYPE 'I'.
else.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '1'.
ls_fieldcatlog-fieldname = 'TYPE'.
ls_fieldcatlog-OUTPUTLEN = 15.
* ls_fieldcatlog-tabname = 'IT_DISPLAY'.
ls_fieldcatlog-seltext_m = 'Message Type'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
CLEAR ls_fieldcatlog.
ls_fieldcatlog-row_pos = '1'.
ls_fieldcatlog-col_pos = '2'.
ls_fieldcatlog-OUTPUTLEN = 80.
ls_fieldcatlog-fieldname = 'MESSAGE'.
* ls_fieldcatlog-tabname = 'IT_DISPLAY'.
ls_fieldcatlog-seltext_m = 'Message'.
APPEND ls_fieldcatlog TO lt_fieldcatlog.
CLEAR ls_fieldcatlog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Result'
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = lt_fieldcatlog
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
I_SCREEN_START_COLUMN = 10
I_SCREEN_START_LINE = 20
I_SCREEN_END_COLUMN = 100
I_SCREEN_END_LINE = 40
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = it_message
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
*ELSE.
* MESSAGE 'PLEASE SELECT ATLEAST ONE RECORD' TYPE 'I'.
*ENDIF.
* endif.
refresh it_fcat.
ENDFORM.