问题描述
各位大侠、隐士高手帮帮忙啊小弟感激不尽。公司最近叫我callSAP,还要能UPDATA里面的数据(也就是能发送数据到SAPService和从SAPService传出数据)最好有C#的例子。谁能告诉我,RFC中的function.add()不同参数调用不同的方法的详细解释。还有".get_Exports()",".get_import()",".table()"的作用详细解释。还有填入他们里面的参数,分别代什么?传入参数和传出参数又是什么?
解决方案
解决方案二:
function.add()是传入一个SAP里面的函数名称。".get_Exports()",".get_import()",".table()"分别是传入参数,接受返回的参数,和表。//New一个连接对象去连接SAPSAPLogonCtrl.ConnectionConn=(SAPLogonCtrl.Connection)Login.NewConnection();//执行Logon方法检测是否能够登录到SAP,返回类型为Bool.if(Conn.Logon(null,true)){//New一个SAPFunctionsClass的实例。SAPFunctionsOCX.SAPFunctionsClassrfc=newSAPFunctionsOCX.SAPFunctionsClass();rfc.Connection=Conn;//通过Function接口指定需要调用的函数名称。SAPFunctionsOCX.IFunctionifc=(SAPFunctionsOCX.IFunction)rfc.Add("ZAGETSAPDATATEST");//////这里是传入值参数////Parameterparameter1=(Parameter)ifc.get_Exports("I_DATA1");////parameter1.Value="12";////Parameterparameter2=(Parameter)ifc.get_Exports("I_DATA2");////parameter2.Value="15";//////传出参数////Parameterparameter3=(Parameter)ifc.get_Imports("E_RESULT");//调用Function接口的Call方法检测是否可以Call到SAP的函数,返回Bool类型的结果。if(ifc.Call()){SAPTableFactoryCtrl.Tablestables=(SAPTableFactoryCtrl.Tables)ifc.Tables;//指定SAP函数里面定义的内表名称。SAPTableFactoryCtrl.Tabletable=(SAPTableFactoryCtrl.Table)tables.get_Item("IT_MARA");
解决方案三:
楼上讲的很清楚
解决方案四:
看一楼详解。。。。。
解决方案五:
好吧,一楼赢了。。。
解决方案六:
SAP的数据查询和展示不好用,所以很多公司都用RFC把一些报表取出来,存到另外一个数据库中展示,不光好用,站点也省了