马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册
×
通用在SAP创建相应的RFC功能模块,再使用PB进行相关调用。其它内容应该也可以根据例子进行调整。
本例子为根据SAP自带表的航班代码,查询航班计划(从别人获取的SAP虚拟机,自带相关测试数据)。
SAP产品版本为: EHP8 FOR SAP ERP 6.0,使用的SAP客户端为:740,理论上方法应该通用。
特别说明:
在操作时,有时候需要回车进行一些数据确认,如果左下角有黄色提示,可以回车跳过,一般不影响最终结果。
文档可能随时更新,以上网址下载最新版。
文档日期 修改者 修改记录
2022-04-17 郝晓宗 初始版本,完整测试
部分界面:
核心代码:
- SAP RFC:
- SELECT * FROM SPFLI
- INTO TABLE DATA
- WHERE CARRID = CARRID.
复制代码
PB :
- oleobject saprfc,connection2,funct,table_d //定义RFC对应对象
- long ll_status //状态 DEBUG测试可以用
- long ll_rows, ll_cols ,i,j //总行数,总列数 当前行,当前列
- string ls_carrid //查询条件参数
- string ls_data //为显示数据临时存储
- //long ll_ret_row //返回当前导出的数据行数
- saprfc = create oleobject
- ll_status = saprfc.connecttonewobject("sap.functions.unicode")
- connection2 = saprfc.connection
- connection2.applicationserver = "192.168.30.170" //服务器IP
- connection2.systemnumber = '00' //系统编号
- connection2.client = '000' //客户端
- connection2.user = 'zddic' //RFC用户
- connection2.password = 'c123456' //密码
- connection2.language = 'zh' //语言
- //connection2.Codepage = "8400"
- if connection2.logon(0,true) = false then //判断是否成功
- messagebox('connet sap','connect failed')
- return
- else
- // messagebox('connet sap','success')
- end if
- mle_1.text = '' //置空内容
- funct = saprfc.add("Z_RFC_SPFLI") //给接口函数输入参数赋值
- ls_carrid = sle_1.text //取窗口的参数输入
- funct.Exports('CARRID').value = ls_carrid //传入参数
- if funct.call then //调用SAP的RFC函数
- table_d = funct.tables //得到从RFC返回的表内容
- ll_rows = table_d.item(1).rowcount //取得行数
- ll_cols = table_d.item(1).Columncount //取列数
- // messagebox(string(ll_rows),string(ll_cols))
- if ll_rows <= 0 then return
- //循环取数据
- for i = 1 to ll_rows step 1
- ls_data = string(table_d.item(1).value(i,1)) //从RFC返回的内容里逐个取数据
- for j = 2 to ll_cols step 1
- ls_data = ls_data + ' ' + string(table_d.item(1).value(i,j))
- next
- mle_1.text += ls_data + '~r~n' //将数据在界面显示
- next
- messagebox('提示','行数:' + string(ll_rows) + '~r~n' + '列数:' + string(ll_cols) )
- else
- messagebox ('提示','导出数据失败! 出错信息: 调用SAP的RFC出错!' + string(funct.Exception) ) //
- end if
复制代码
完整文档及相关PB9代码下载地址:
|