1.SHDB进行录屏
除了要输入的东西,不要进行其他操作
2.屏幕参数录入
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
* bdcdata-program:程序名
* bdcdata-dynpro:屏幕号
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
* bdcdata-fnam:字段名
* bdcdata-fval:字段值
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.
3.执行BDC
PERFORM bdc_transaction USING 'ME11'.
FORM bdc_transaction USING tcode .
DATA: l_mstring(480).
DATA: l_subrc LIKE sy-subrc.
DATA: lx_auth_check TYPE REF TO cx_root.
DATA: l_auth_check_text TYPE string.
* batch input session
REFRESH messtab.
TRY.
CALL TRANSACTION tcode WITH AUTHORITY-CHECK USING bdcdata
MODE 'N'
UPDATE 'A'
MESSAGES INTO messtab.
CATCH cx_sy_authorization_error INTO lx_auth_check.
* Authorization missing for user when executing transaction
l_auth_check_text = lx_auth_check->get_text( ).
sy-subrc = 99.
ENDTRY.
l_subrc = sy-subrc.
* WRITE: / 'CALL_TRANSACTION',
* tcode,
* 'returncode:'(i05),
* l_subrc,
* 'RECORD:',
* sy-index.
COMMIT WORK AND WAIT .
* WAIT UP TO 2 SECONDS.
DELETE messtab WHERE msgid = '06' AND msgnr = '657'.
LOOP AT messtab WHERE msgtyp = 'S'.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = messtab-msgid
msgnr = messtab-msgnr
msgv1 = messtab-msgv1
msgv2 = messtab-msgv2
msgv3 = messtab-msgv3
msgv4 = messtab-msgv4
IMPORTING
message_text_output = gs_result-msg.
.
IF messtab-msgnr = '310'
OR messtab-msgnr = '312'
OR messtab-msgnr = '331'
OR messtab-msgnr = '335'
OR messtab-msgnr = '336'
OR messtab-msgnr = '718'
.
gs_result-infnr = messtab-msgv1.
ENDIF.
gs_result-iconid = icon_green_light.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT messtab WHERE msgtyp = 'E' .
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = messtab-msgid
msgnr = messtab-msgnr
msgv1 = messtab-msgv1
msgv2 = messtab-msgv2
msgv3 = messtab-msgv3
msgv4 = messtab-msgv4
IMPORTING
message_text_output = gs_result-msg.
.
IF messtab-msgnr = '310'
OR messtab-msgnr = '312'
OR messtab-msgnr = '331'
OR messtab-msgnr = '335'
OR messtab-msgnr = '336'
OR messtab-msgnr = '718'
.
gs_result-infnr = messtab-msgv1.
ENDIF.
gs_result-iconid = icon_red_light.
ENDLOOP.
ENDIF.
REFRESH bdcdata.
ENDFORM.