Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TYPE-POOLS : SLIS.
TABLES : MARC.
TYPES: BEGIN OF TY_MARC,
MATNR TYPE MARC-MATNR,
WERKS TYPE MARC-WERKS,
END OF TY_MARC.
TYPES: BEGIN OF TY_MBEW,
MATNR TYPE MBEW-MATNR,
ZPLP1 TYPE MBEW-ZPLP1, "FUTURE PLANNED PRICE 1
ZPLD1 TYPE MBEWZPLD1, "DATE FROM WHICH FUTURE PLANNED PRICE 1 IS VALID
STPRS TYPE MBEW-STPRS,
END OF TY_MBEW.
TYPES: BEGIN OF TY_FINAL,
MATNR TYPE MARC-MATNR,
WERKS TYPE MARC-WERKS,
ZPLP1 TYPE MBEW-ZPLP1,
ZPLD1 TYPE MBEW-ZPLD1,
STPRS TYPE MBEW-STPRS,
TYPE TYPE CHAR1,
MESSAGE TYPE CHAR30,
END OF TY_FINAL.
DATA :I_MBEW TYPE TABLE OF TY_MBEW,
WA_MBEW TYPE TY_MBEW,
I_MARC TYPE TABLE OF TY_MARC,
WA_MARC TYPE TY_MARC,
I_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL,
I_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT LIKE LINE OF I_FCAT,
I_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS LIKE LINE OF I_EVENTS.
DATA : V_MATNR TYPE MARC-MATNR.
DATA : V_WERKS TYPE MARC-WERKS.
DATA : LV_MSG TYPE STRING,
BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE,
MESSTAB TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*
*
CLEAR WA_FINAL.
ENDIF.
ENDLOOP.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
WA_FCAT-COL_POS = '1' .
WA_FCAT-FIELDNAME = 'MATNR' .
WA_FCAT-TABNAME = 'I_FINAL' .
*WA_FCAT-REF_FIELDNAME = 'MATNR' .
*WA_FCAT-REF_TABNAME = 'MARC' .
WA_FCAT-SELTEXT_M = 'MATERIAL.NO' .
* WA_FCAT-KEY = 'X' .
*WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'2' .
= 'WERKS' .
'I_FINAL' .
= 'PLANT' .
I_FCAT .
WA_FCAT-COL_POS = '3' .
WA_FCAT-FIELDNAME = 'ZPLP1' .
WA_FCAT-TABNAME = 'I_FINAL' .
WA_FCAT-SELTEXT_M = 'PRICE' .
WA_FCAT-EDIT = 'X'.
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'ZPLD1' .
WA_FCAT-TABNAME = 'I_FINAL' .
WA_FCAT-SELTEXT_M = 'DATE' .
WA_FCAT-EDIT = 'X'.
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS = '5' .
WA_FCAT-FIELDNAME = 'STPRS' .
WA_FCAT-TABNAME = 'I_FINAL' .
WA_FCAT-SELTEXT_M = 'STDPRICE' .
* WA_FCAT-EDIT = 'X'.
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'6' .
= 'TYPE' .
'I_FINAL' .
= 'TYPE' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'7' .
= 'MESSAGE' .
'I_FINAL' .
= 'MESSAGE' .
I_FCAT .
ENDFORM.
" CREATE_FCAT
*&---------------------------------------------------------------------*
*&
Form CREATE_EVENT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_EVENT .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
*
EXPORTING
*
I_LIST_TYPE
= 0
IMPORTING
ET_EVENTS
= I_EVENTS.
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'PF_STATUS_SET'.
WA_EVENTS-FORM = 'FORM_PF_STATUS_SET'.
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'USER_COMMAND'.
WA_EVENTS-FORM = 'FORM_USER_COMMAND'.
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDFORM.
" CREATE_EVENT
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
* I_STRUCTURE_NAME = 'MARA'
IT_FIELDCAT = I_FCAT
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = I_FINAL .
ENDFORM.
" DISPLAY_DATA
*&---------------------------------------------------------------------*
*&
Form FORM_PF_STATUS_SET
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM FORM_PF_STATUS_SET USING F_VAR.
SET PF-STATUS 'MY MENU'.
ENDFORM.
"FORM_PF_STATUS_SET
*&---------------------------------------------------------------------*
*&
Form FORM_USER_COMMAND
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->UCOMM
text
*
-->SELFIELD
text
*----------------------------------------------------------------------*
FORM FORM_USER_COMMAND USING UCOMM TYPE SYUCOMM SELFIELD TYPE SLIS_SELFIELD .
IF UCOMM = 'UPDATE'.
LOOP AT I_FINAL INTO WA_FINAL.
perform bdc_dynpro
using 'SAPLMGMM' '0060'.
perform bdc_field
using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field
using 'BDC_OKCODE'
'/00'.
perform bdc_field
using 'RMMG1-MATNR'
WA_FINAL-MATNR.
perform bdc_dynpro
using 'SAPLMGMM' '0070'.
perform bdc_field
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field
using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro
using 'SAPLMGMM' '0070'.
perform bdc_field
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field
using 'BDC_OKCODE'
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'/00'.
using 'SAPLMGMM' '0070'.
using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
using 'BDC_OKCODE'
'=ENTR'.
using 'MSICHTAUSW-KZSEL(01)'
'X'.
using 'SAPLMGMM' '0080'.
using 'BDC_CURSOR'
'RMMG1-WERKS'.
using 'BDC_OKCODE'
'=ENTR'.
using 'RMMG1-WERKS'
P_WERKS.
using 'SAPLMGMM' '4000'.
using 'BDC_OKCODE'
'=BU'.
using 'MAKT-MAKTX'
ENDLOOP.
ENDIF.
ENDFORM.
"FORM_USER_COMMAND
*&---------------------------------------------------------------------*
*&
Form BDC_DYNPRO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->PROGRAM
text
*
-->DYNPRO
text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO
= DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
"BDC_DYNPRO
*&---------------------------------------------------------------------*
*&
Form BDC_FIELD
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->FNAM
text
*
-->FVAL
text
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM.
"BDC_FIELD
*&---------------------------------------------------------------------*
*&
Form ZVALIDATE_WERKS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM ZVALIDATE_WERKS .
SELECT WERKS FROM MARC INTO V_WERKS UP TO 1 ROWS WHERE WERKS = P_WERKS.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE 'PLEASE ENTER THE VALID PLANT NUMBER' TYPE 'E'.
ENDIF.
ENDFORM.
" ZVALIDATE_WERKS