ABAP BDC录屏需要的相关代码

在SAP report 开发中,DBC是会经常用到的一个功能,能实现批量的数据导入、操作等作业。
录制DBC代码直接在t-code SHDB 或者SM35上去录制就可以,录制完之后把代码copy下来,把变量加上去。本文着重讲那些还欠缺的代码.
首先,需要定义一个内表,用户储存BDC的数据,如下:

data:bdcdata like bdcdata occurs 0 with header line.
data:tab_mess like bdcmsgcoll occurs 0 with header line. "tab_mess用于储存call transaction 返回的信息

然后定义两个form方法用于调用DBC自动录制的代码,如下:

form bdc_dynpro using program dynpro.
	clear bdcdata.
	bdcdata-program = program.
	bdcdata-dynpro = dynpro.
	bdcdata-dynbegin = 'X'.
	append bdcdata.
endform.

form bdc_field using fnam fval.
	clear bdcdata.
	bdcdata-fnam = fnam.
	bdcdata-fval = fval.
	append bdcdata.
endform.

然后就可以把SHDB录下来的代码直接copy下来,并调用相应的 T-CODE 即可,如下为代码片段:

data : l_text(200) type c.
clear:bdcdata[].
perform bdc_dynpro	using 'SAPLMGMM' '4000'.
perform bdc_field	using 'BDC_OKCODE'
						  'BU'.
perform bdc_field	using 'BDC_CURSOR'
						  'MARA-MPROF'.	
perform bdc_field	using 'MARA-MPROF'
						  'MANU'.				
call transaction 'MM02' using bdcdata
		mode 'N'
		update 'S'
		messages into tab_mess.		
read table tab_mess index 1.
select single * from t100 where sprsl = tab_mess-msgspra
						  and arbgb = tab_mess-msgid
						  and msgnr = tab_mess-msgnr.
if sy-subrc = 0.
	l_text = t100-text.
	if l_text cs '&1'.
		replace '&1' with tab_mess-msgv1 into l_text.
		replace '&2' with tab_mess-msgv2 into l_text.
		replace '&3' with tab_mess-msgv3 into l_text.
		replace '&4' with tab_mess-msgv4 into l_text.
	else.
		replace '&' with tab_mess-msgv1 into l_text.
		replace '&' with tab_mess-msgv2 into l_text.
		replace '&' with tab_mess-msgv3 into l_text.
		replace '&' with tab_mess-msgv4 into l_text.
	endif.
	condense l_text. "至此得到BDC返回的系统message
endif.						  					  		  					  

以上.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值