Вы находитесь на странице: 1из 3

*--------------------------------------------------------------------*

* Tabelas Internas
*--------------------------------------------------------------------*
DATA: BEGIN OF bdc_tab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdc_tab.

DATA: BEGIN OF messtab OCCURS 0.


INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.

*--------------------------------------------------------------------*
* Declaração
*--------------------------------------------------------------------*

DATA: ls_opcoes TYPE ctu_params.

DATA: lv_text TYPE string,


lv_text_2 TYPE string,
lv_erro TYPE c,
lv_msg_id LIKE t100-arbgb,
lv_msg_no LIKE t100-msgnr,
lv_msg_var1 LIKE balm-msgv1,
lv_msg_var2 LIKE balm-msgv2,
lv_msg_var3 LIKE balm-msgv3,
lv_msg_var4 LIKE balm-msgv4.

REFRESH: bdc_tab, messtab.

PERFORM dynpro USING 'X' 'SAPLCMFV' '1000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=ENTE'.
PERFORM dynpro USING '' 'MKAL-WERKS' i_versao-
werks.

PERFORM dynpro USING 'X' 'SAPLCMFV' '1000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=CREA'.
PERFORM dynpro USING '' 'MKAL-WERKS' i_versao-
werks.

PERFORM dynpro USING 'X' 'SAPLCMFV' '2000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=ENTE'.
PERFORM dynpro USING '' 'MKAL_EXPAND-MATNR' i_versao-
matnr.
PERFORM dynpro USING '' 'MKAL_EXPAND-VERID' i_versao-
verid.
PERFORM dynpro USING '' 'MKAL_EXPAND-TEXT1' i_versao-
text1.
PERFORM dynpro USING '' 'MKAL_EXPAND-MKSP' i_versao-
mksp.
PERFORM dynpro USING '' 'MKAL_EXPAND-BSTMI' '0'.
PERFORM dynpro USING '' 'MKAL_EXPAND-BSTMA' '999999999
'.
PERFORM dynpro USING '' 'MKAL_EXPAND-ADATU' '01.01.2014
'.
PERFORM dynpro USING '' 'MKAL_EXPAND-BDATU' '31.12.9999
'.
PERFORM dynpro USING '' 'MKAL_EXPAND-PLNTY' 'N'.
PERFORM dynpro USING '' 'MKAL_EXPAND-PLNNR' i_versao-
plnnr.
PERFORM dynpro USING '' 'MKAL_EXPAND-STLAL' i_versao-
stlal.
PERFORM dynpro USING '' 'MKAL_EXPAND-STLAN' i_versao-
stlan.
PERFORM dynpro USING '' 'MKAL_EXPAND-ALNAL' i_versao-
alnal.

PERFORM dynpro USING 'X' 'SAPLCMFV' '2000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=CLOS'.

PERFORM dynpro USING 'X' 'SAPLCMFV' '1000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=PRFG'.

PERFORM dynpro USING 'X' 'SAPMSSY0' '0120'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=BACK'.

PERFORM dynpro USING 'X' 'SAPLCMFV' '1000'.


PERFORM dynpro USING '' 'BDC_OKCODE' '=SAVE'.

*-- Opções do CALL TRANSACTION


CLEAR ls_opcoes.
ls_opcoes-dismode = 'N'.
ls_opcoes-updmode = 'A'.
ls_opcoes-defsize = ' '.
ls_opcoes-cattmode = ' '.
ls_opcoes-racommit = ' '.
ls_opcoes-nobinpt = ' '.
ls_opcoes-nobiend = 'X'.

*Chamada ao CALL TRANSACTION


CALL TRANSACTION 'C223' USING bdc_tab OPTIONS FROM ls_opcoes MESSAGE
S INTO messtab.

READ TABLE messtab WITH KEY msgtyp = 'E'.


IF sy-subrc EQ 0.
lv_erro = 'X'.
ENDIF.

READ TABLE messtab WITH KEY msgtyp = 'A'.


IF sy-subrc EQ 0.
lv_erro = 'X'.
ENDIF.

LOOP AT messtab WHERE msgtyp = 'E' OR msgtyp = 'A'.

lv_msg_id = messtab-msgid.
lv_msg_no = messtab-msgnr.
lv_msg_var1 = messtab-msgv1(50).
lv_msg_var2 = messtab-msgv2(50).
lv_msg_var3 = messtab-msgv3(50).
lv_msg_var4 = messtab-msgv4(50).

CALL FUNCTION 'MESSAGE_PREPARE'


EXPORTING
language = sy-langu
msg_id = lv_msg_id
msg_no = lv_msg_no
msg_var1 = lv_msg_var1
msg_var2 = lv_msg_var2
msg_var3 = lv_msg_var3
msg_var4 = lv_msg_var4
IMPORTING
msg_text = lv_text_2
EXCEPTIONS
function_not_completed = 1
message_not_found = 2
OTHERS = 3.

CONCATENATE lv_text lv_text_2 INTO lv_text SEPARATED BY space.


CLEAR lv_text_2.

ENDLOOP.

*--------------------------------------------------------------------*
* FORM Dynpro
*--------------------------------------------------------------------*

FORM dynpro USING dynbegin name value.


IF dynbegin = 'X'.
CLEAR bdc_tab.
MOVE: name TO bdc_tab-program,
value TO bdc_tab-dynpro,
'X' TO bdc_tab-dynbegin.
APPEND bdc_tab.
ELSE.
CLEAR bdc_tab.
MOVE: name TO bdc_tab-fnam,
value TO bdc_tab-fval.
APPEND bdc_tab.
ENDIF.
ENDFORM.

Вам также может понравиться