当心BDC录屏带有行项目输入的坑

首先基本步骤仍是简单介绍下ide

SHBD测试

图片

以MI09为例spa

图片

图片

回车进去后orm

先点新建blog



一直保证填写的数据在第一行图片

是为了防止一直日后填数据的时候丢掉数据,有时候仅仅是屏幕显示的问题,都有可能丢掉数据。一直点新建,能够保证数据永远在第一行录制it

录完后,再点新建io

而后再点保存form

完成录制class

至于后续跟进录屏生成或者本身写代码部分,不作赘述


附录:本身写bdc程序的时候用到的form代码

*------------------------------------------------------------------*
* 录入屏幕号
*      -->PV_PROGRAM 程序名
*      -->PV_DYNPRO  屏幕号
*------------------------------------------------------------------*
FORM FRM_BDC_DYNPRO USING  PV_PROGRAM
                            PV_DYNPRO.
  CLEAR GT_BDCDATA.
  GT_BDCDATA-PROGRAM  = PV_PROGRAM.
  GT_BDCDATA-DYNPRO   = PV_DYNPRO.
  GT_BDCDATA-DYNBEGIN = 'X'.
  APPEND GT_BDCDATA.
ENDFORM.                               " BDC_DYNPRO

*-------------------------------------------------------------------*
*录入字段
* PV_FNAM 字段名称 PV_FVAL 字段值
*-------------------------------------------------------------------*
FORM FRM_BDC_FIELD USING PV_FNAM
                     PV_FVAL.
  DATA: LV_VALUE TYPE CHAR20.
  LV_VALUE = PV_FVAL.
  CONDENSE: LV_VALUE.
  CLEAR GT_BDCDATA.
  GT_BDCDATA-FNAM = PV_FNAM.
  GT_BDCDATA-FVAL = LV_VALUE.
  APPEND GT_BDCDATA.

ENDFORM.                    "frm_bdc_field


* BDC
DATA: BEGIN OF GT_BDCDATA OCCURS 0.                                  
        INCLUDE STRUCTURE BDCDATA.                                    
DATA: END OF GT_BDCDATA.

DATA: GT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: LS_BDCOPT TYPE  CTU_PARAMS.

最后调用call transaction
  LS_BDCOPT-DISMODE = 'N'.  "N,A,E*  三种模式 测试使用A模式能够全屏跟踪
  LS_BDCOPT-UPDMODE = 'S'.  "S,L
  LS_BDCOPT-CATTMODE = SPACE.
  LS_BDCOPT-DEFSIZE = 'X'.
  LS_BDCOPT-RACOMMIT = 'X'.
  LS_BDCOPT-NOBINPT = 'X'.
  LS_BDCOPT-NOBIEND = 'X'.
  CALL TRANSACTION 'MI09' USING GT_BDCDATA[]
        OPTIONS FROM LS_BDCOPT
         MESSAGES INTO GT_MESSTAB [].

  CLEAR GT_BDCDATA[].    "每次处理完成一批必须清空录屏数据表
  CLEAR GT_MESSTAB [].


写在最后的话:如今ECC可能还用BDC,以后恐怕用BDC的时候会愈来愈少,毕竟这个灵活性不够,会有更多的其余解决方案。

相关文章
相关标签/搜索