点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我使用VBA程序连接到SAP系统并执行FM。 功能模块具有以下接口:
*" ------------------------------------------------- ------------------------- *" *"本地接口: *"正在导入 *" VALUE(I_RNG_ZSNR)TYPE/GKV/BP01_TAB_RNG_ZSNR *"汇出 *" VALUE(E_TAB_FKZS)TYPE/GKV/BP01_TAB_D_FKZS *" ------------------------------------------------ ----------------------
导入参数是一个结构表:
设置导出参数I_RNG_ZSNR的正确方法是什么?
这是我的VBA代码:
显式选项
子测试() 昏暗的功能作为SAPFunctions Dim Conn作为SAPLogonCtrl.Connection 暗淡为SAPFunctionsOCX.Function 暗淡X作为对象 暗行作为对象 暗淡如久 设置Func = CreateObject(" SAP.Functions.Unicode") 如果IsObject(Func)然后 设置Conn =函数连接 Conn.Client =" 001" Conn.User =" BCUSER" Conn.Language =" EN" Conn.HostName =" NSP" Conn.SystemNumber = 0 如果没有Conn.Logon(0,False)然后 Debug.Print"连接不成功" 其他 Debug.Print"连接成功" 设置f = Func.Add("/img/GKV/BP01_K_FKZS_MASS_READ") 如果IsObject(f)然后 设置X = f.Exports(" I_RNG_ZSNR") 设置行= X.AppendRow '错误:对象不支持此属性或方法 ``这似乎不是桌子 row.Cell(1," SIGN")=" I" row.Cell(1," OPTION")=" EQ" row.Cell(1," LOW")=" 10600035" Ret = f.Call 万一 退出连接 万一 设置功能=无 万一 结束子
使用COMConnector(CCo),它可以完美运行:
显式选项 子CCoTest() '-变量----------------------------------------------- ------------ 昏暗的SAP作为CCo.COMNWRFC 尽可能昏暗的hRFC Dim rc作为整数 昏暗的hFunc 昏暗的hFuncDesc长 尽可能长的Dim hTable 昏暗的行 昏暗的hExpTable只要长 昏暗的我,RowCount长 Dim charBuffer作为字符串 设置SAP = CreateObject(" COMNWRFC") 如果IsObject(SAP)然后 hRFC = SAP.RFCOPENCONNECTION(" ASHOST = NSP,SYSNR = 00,"&_ " CLIENT = 001,USER = BCUSER") 如果hRFC然后 hFuncDesc = SAP.RFCGETFUNCTIONDESC(hRFC,"/img/GKV/BP01_K_FKZS_MASS_READ") 如果hFuncDesc然后 hFunc = SAP.RFCCREATEFUNCTION(hFuncDesc) 如果hFunc然后 SAP.RFCGETTABLE hFunc," I_RNG_ZSNR",hTable 如果hTable然后 hRow = SAP.RFCAPPENDNEWROW(hTable) SAP.RFCSETCHARS hRow,"符号"," I" SAP.RFCSETCHARS hRow," OPTION"," EQ" SAP.RFCSETCHARS hRow,"低"," 10600035" 如果SAP.RFCINVOKE(hRFC,hFunc)= RFC_OK然后 SAP.RFCGETTABLE hFunc," E_TAB_FKZS",hExpTable 如果hExpTable然后 SAP.RFCGETROWCOUNT hExpTable,RowCount SAP.RFCMOVETOFIRSTROW hExpTable 对于i = 1到RowCount hRow = SAP.RFCGETCURRENTROW(hExpTable) charBuffer =空间(512) SAP.RFCGETCHARS hRow," NAME1",charBuffer,512 Debug.Print charBuffer 如果我如何使用SAP ActiveX控件设置导出参数?
感谢提示和提示。
952672-unbenannt1.jpg (39.7 kB)
史蒂芬,你好
我遇到了同样的问题,您解决了吗?如果可以,我们可以分享吗
致谢
tangjing
唐ello,
非常感谢您的答复和测试结果。
所以我看到的唯一方法似乎是
干杯
斯特凡
嗨斯特凡,
您应该将导出参数结构的value属性与适当的索引一起使用-列位置。 所以应该像这样:
设置X = f.Exports(" I_RNG_ZSNR")
X.Value(1)=" I"'签名
X.Value(2)=" EQ"'选项
X.Value(3)=" 10600035"'低
Ret = f.Call
也可以用相同的方法读取导入的结构。 我不确定是否可以使用X.Value(" SIGN")之类的命名引用。 您可以尝试一下,让我们知道。
此致
Seby
您好Stefan,
我先前的建议可能对返回的导入参数起作用。 我认为在您的情况下,由于导出的参数是一个结构,因此在使用它之前,我们需要使用连接对象方法使用正确的结构创建它。
将X视作对象
设置X = Conn.CreateStructure("/img/GKV/BP01_TAB_RNG_ZSNR")
X(" SIGN")=" I"
X(" OPTION")=" EQ"
X(" LOW")=" 10600035"
X(" HIGH")=""
...
选中此选项一次,让我知道。
此致
塞比
一周热门 更多>