大侠们~关于帮帮忙连接SAP及其RFC函数的调用

问题描述

各位大侠、隐士高手帮帮忙啊小弟感激不尽。公司最近叫我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把一些报表取出来,存到另外一个数据库中展示,不光好用,站点也省了

时间: 2024-10-02 04:45:00

大侠们~关于帮帮忙连接SAP及其RFC函数的调用的相关文章

VS2005中asp.net用C#怎么调用SAP的rfc函数,请高手指教!

问题描述 用SAPGUI里的COM连接成功了,但是调用时设定连接会出现Badvarianttype的错误,不知是何原因,请高手指教啊!SAPLogonCtrl.SAPLogonControlClasslogon=newSAPLogonCtrl.SAPLogonControlClass();logon.ApplicationServer="10.1.147.2";logon.Client="200";logon.Language="ZH";logo

.NET 2005 WEB程序怎么样直接获取SAP 的RFC函数,急!!!!

问题描述 如题,最好有实例!! 解决方案 解决方案二:PrivateSubCommand1_Click() '定义R/3用户名和密码变量(用户名应由SAP管理员开运行函数的权限) DimlognameAsString*22,passwordAsString*22 Calllogonr3(logname,password)'调用SAP登录界面程序 IflogflagThen'调用生产.开发系统开关 StatusBar1.Visible=True StatusBar1.SimpleText="正在登

大侠们请帮帮忙啊

问题描述 我是一个门外汉,我在打开notes邮箱是提示我"不能打开数据库,因为要对它进行一致性检查"我该怎么做啊,急啊!领导刀架我脖子上了,谢谢那个好心人给个具体见的操作,谢谢x100 解决方案 解决方案二:该回复于2009-06-01 14:26:51被版主删除解决方案三:这个数据库是不是出现了什么异常啊?你用administrator工具签一下名试试解决方案四:修复一下数据库试试,会做吗?解决方案五:1.把工作台上的图标删掉,用opendatabase的方式再打开一下2.Fixup

计算一个循环,小弟不懂,大侠们进来帮帮忙!

问题描述 6.有100个人围成一个圈(编号0-99),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩一个人为止,问此人原来的位置是多少号?(最好在有些重要的语句的时候附上点注释,谢啦!) 解决方案 解决方案二:小弟在线等!解决方案三:publicstaticvoidmain(String[]args){//初始化0-99个人List<Integer>personList=newLinkedList<Integer>();for(inti=0;i&l

this.COM1 = new AxMSCommLib.AxMSComm(); 请各位高手帮帮忙啊

问题描述 this.COM1=newAxMSCommLib.AxMSComm();有谁知道这是什么控件吗?请各位高手帮帮忙啊 解决方案 解决方案二:C#调用控件MSCOMM32.OCX,用于串口通信的,先注册在使用

sap-java调用SAP的RFC如何传递数组参数

问题描述 java调用SAP的RFC如何传递数组参数 SAP是服务端,使用JCO3的jia包,RFC服务端的函数有一个数组类型的参数. java代码这边用什么形式给它传值.新手请赐教 解决方案 Java中连接SAP进行RFC调用JAVA本地方法调用(2)数组参数传递java调用SAP RFC函数

mina 在发送长报文时,为什么被截成好几段呢。请大侠帮帮忙。

问题描述 mina在发送长报文时,为什么被截成好几段呢.请大侠帮帮忙. 解决方案 解决方案二:这个是必然的.物理限制,和mina无关.你使用的默认解码器或者自己写的解码器的一个功能,就是将可能的N个物理包,变成一个逻辑包.每个逻辑包,包头应当由标志位(这个逻辑包是什么数据)以及长度位(这个逻辑包长度是多少,个别固定长度的逻辑包,可以省略).每次,解码的时候,读取bytebuffer的头,看看当前解析的是什么包,然后长度是多少,再比较一下,当前的bytebuffer长度够不够,如果不够的话,则将b

!~~!画图程序出了问题了,大侠们帮帮忙!~~!

问题描述 //画笔参数Penpen=newPen(Color.Black,1);Colorcolor=Color.Black;floatwidth;//直线参数Pointstartpoint;Pointcurrentpoint;boolmousedown=false;//画图GraphicsPathgPath=newGraphicsPath();Graphicsgs;Bitmapbitmap;privatevoidForm1_Load(objectsender,EventArgse){bitma

正则表达式。在线等,各位大侠帮帮忙

问题描述 正则表达式.在线等,各位大侠帮帮忙 这个里面可以加个验证不能为0吗,怎么加? 解决方案 像这种就没必要跟正则再混一起判断,直接加一个0的if判断即简单,也不容易出错.不要为了正则而正则. 解决方案二: 把 d 换成[1-9] 解决方案三: d是[0-9]想要其他自己写[1-9] 解决方案四: 再建立一个为0的正则来匹配 var zero = /0/; if(zero.test(obj.currentTarget.value){ $.messager.alert("通知信息",