关于BDC录屏

      PERFORM frm_set_default_value USING   'CK11N' .
      PERFORM frm_dynpro            USING   'SAPLCKDI' '4610'        'X'.
      PERFORM frm_dynpro            USING   ''         'BDC_OKCODE'  '/00'.
      PERFORM frm_dynpro            USING   ''          'CKI64A-WERKS' p_werks .
      PERFORM frm_dynpro            USING   ''          'CKI64A-MATNR' s_matnr-low .
      PERFORM frm_dynpro            USING   ''          'CKI64A-TVERS' '1' .
      PERFORM frm_dynpro            USING   ''          'CKI64A-KLVAR' 'ZPC1' .
      PERFORM frm_dynpro            USING   'SAPLCKDI' '4610'        'X'.
      PERFORM frm_dynpro            USING   ''         'BDC_OKCODE'  '=SAVE'.
      PERFORM frm_bdc CHANGING gw_mes-ztype gw_mes-msg .

FORM frm_set_default_value USING i_tcode TYPE any .
FREE : lt_bdcdata, lt_bdcmsg,ls_bdcparams ,ls_tcode.
MOVE i_tcode TO ls_tcode .
MOVE ‘N’ TO ls_bdcparams-dismode .
MOVE ‘S’ TO ls_bdcparams-updmode .

  • L_BDCPARAMS-DISMODE = ‘N’. " 处理方式(A:显示所有屏幕 E:显示错误 N:后台的处理 P:Background processing; debugging possible)
  • L_BDCPARAMS-UPDMODE = ‘L’. " 更新模式(L:本地的 S:同步 A:异步的)
  • L_BDCPARAMS-CATTMODE = ’ '. " CATT session(空:No CATT N:CATT without individual screen control A:CATT with individual screen control)
  • L_BDCPARAMS-DEFSIZE = ‘X’. " 缺省屏幕大小(空:NO X:YES)
  • L_BDCPARAMS-RACOMMIT = ‘X’. " COMMIT 是不完全的(空:NO X:YES)
  • L_BDCPARAMS-NOBINPT = ‘X’. " 非批输入(空:NO X:YES)

ENDFORM. " FRM_SET_DEFAULT_VALUE

FORM frm_dynpro USING parameters1 TYPE any
parameters2 TYPE any
parameters3 .
DATA ls_bdcdata TYPE bdcdata .

IF parameters1 IS NOT INITIAL .
MOVE : parameters1 TO ls_bdcdata-program ,
parameters2 TO ls_bdcdata-dynpro ,
parameters3 TO ls_bdcdata-dynbegin .
ELSE .
MOVE : parameters2 TO ls_bdcdata-fnam ,
parameters3 TO ls_bdcdata-fval .
CONDENSE ls_bdcdata-fnam NO-GAPS.
CONDENSE ls_bdcdata-fval NO-GAPS.
ENDIF .
APPEND ls_bdcdata TO lt_bdcdata .
CLEAR ls_bdcdata .
ENDFORM. " FRM_DYNPRO

FORM frm_bdc CHANGING i_type TYPE clike
i_message TYPE any .
DATA ls_bdcmsg TYPE bdcmsgcoll .
CALL TRANSACTION ls_tcode USING lt_bdcdata
OPTIONS FROM ls_bdcparams
MESSAGES INTO lt_bdcmsg .
DELETE lt_bdcmsg WHERE msgid EQ ‘00’ AND msgnr EQ ‘001’ .
LOOP AT lt_bdcmsg INTO ls_bdcmsg WHERE msgtyp CA ‘EA’.
MOVE ‘E’ TO i_type .
PERFORM frm_bdcmsg USING ls_bdcmsg CHANGING i_message .
ENDLOOP .
IF i_type IS INITIAL .
LOOP AT lt_bdcmsg INTO ls_bdcmsg WHERE msgtyp EQ ‘S’.
MOVE ‘S’ TO i_type .
PERFORM frm_bdcmsg USING ls_bdcmsg CHANGING i_message .
ENDLOOP .
ENDIF .
ENDFORM. " FRM_BDC

猜你喜欢

转载自blog.csdn.net/weixin_42921800/article/details/82774825
BDC