ABAP开发整理-BDC应用

更新时间:2023-11-15 04:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

BDC应用

BDC 常用于批量导入,批量修改,定制触发某业务,例如符合某条件程序自动创建采购订单等.

TCODE : SHDB 操作流程:

进入SHDB 选择 New recording

内容填写完毕后点击 Start Recording 进入录制的TOCDE进行录屏,录屏期间注意不要有过多的重复操作,避免后退操作,尽可能的使用点击按钮进入,少使用回车。业务完毕以后保存进入到Change Recording 界面点保存,然后回退到Recording Overview 界面,选中刚刚创建的BDC (ZTEST01) 点击Programe(根据需求可以选择Programe、Function Module等).

选完以后点源代码进入代码界面(如果退出了代码编辑界面忘记.Program名字可以在SHDB界面选择goto- > ABAP Editor 进入ABAP编辑界面) 关键代码如下:

这段代码就是模拟操作的执行代码, BDC_DYNPRO 指系统在哪个屏幕, BDC_FIELD 指系统的光标在哪个字段, OK_CODE 指系统点哪个按钮.

此段代码可以摘出来单独放到其他Program中去执行,也可以在本Program中增加其他逻辑,单独摘出来的时候需要注意定义Include bdcrecx1.

若不想用Include 就要定义 DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. 且 BDC_DYNPRO 和 BDC_FIELD 也要自己实现 ( 标准里面COPY一个 ). 实例代码

这段代码只是执行BDC部分,前期数据整理未贴上

FORM process_group .

DATA: lv_temp(2) TYPE c.\累加变量 LOOP AT itab_main1. count2 = count2 + 1.

PERFORM bdc_dynpro USING 'SAPLKPP0' '1000'. PERFORM bdc_field USING 'BDC_OKCODE' '==CSPB'. PERFORM bdc_field USING 'KPP1B-ONLY' ''. PERFORM bdc_field USING 'KPP1B-FORPL' 'X'.

PERFORM bdc_field USING 'KPP0B-VALUE(01)' itab_main1-versn. PERFORM bdc_field USING 'KPP0B-VALUE(02)' s_perbl-low. PERFORM bdc_field USING 'KPP0B-VALUE(03)' s_perbl-high. PERFORM bdc_field USING 'KPP0B-VALUE(04)' itab_main1-gjahr. PERFORM bdc_field USING 'KPP0B-VALUE(06)' itab_main1-kostl. PERFORM bdc_field USING 'KPP0B-VALUE(07)' space. PERFORM bdc_field USING 'KPP0B-VALUE(08)' space.

PERFORM bdc_field USING 'KPP0B-VALUE(09)' itab_main1-kstar . PERFORM bdc_field USING 'KPP0B-VALUE(10)' space. PERFORM bdc_field USING 'KPP0B-VALUE(11)' space. PERFORM bdc_dynpro USING 'SAPLKPP2' '0110'. PERFORM bdc_field USING 'BDC_OKCODE' '==CBUC'. DATA : s TYPE string. DATA : n TYPE string.

DATA : temp(3) TYPE n. DATA : count4(2) TYPE n. FIELD-SYMBOLS . lv_temp = s_perbl-low+1(2). DO .

count4 = count4 + 1. s = 'Z-BDC03'. n = 'PERBL'. temp = lv_temp. lv_temp = temp+1(2).

CONCATENATE s '('count4')' INTO s. CONCATENATE n lv_temp INTO n.

ASSIGN COMPONENT n OF STRUCTURE itab_main1 to . PERFORM bdc_field USING s . CLEAR: n,s. lv_temp = lv_temp + 1. IF lv_temp > s_perbl-high. CLEAR count4. CLEAR: lv_temp, temp. EXIT. ENDIF. ENDDO.

CALL TRANSACTION 'KP06' USING itab_bdcdata MODE 'E'.

\根据什么模式执行批量处理(A-显示所有 E-显示错误 N-后台处理 P-后台处理;调试 )

REFRESH itab_bdcdata. ENDLOOP.

ENDFORM. \

CALL TRANSACTION 'KP06' USING itab_bdcdata MODE 'E'.

\根据什么模式执行批量处理(A-显示所有 E-显示错误 N-后台处理 P-后台处理;调试 )

REFRESH itab_bdcdata. ENDLOOP.

ENDFORM. \

本文来源:https://www.bwwdw.com/article/a9jv.html

Top