另一篇:C# 连接SAP,并调用RFC函数 (基于Com组件)

来源:互联网 发布:linux到底有什么用 编辑:程序博客网 时间:2024/05/21 07:48
1) 新建工程后,首先添加3个Com组建的引用,分别为 SAPFunctionsOCX,SAPLogonCtrl,SAPTableFactoryCtrl;
2) 项目添加引用
using SAPFunctionsOCX;
using SAPLogonCtrl;
using SAPTableFactoryCtrl;
3) 连接并调用RFC
            SAPLogonControlClass connctl = new SAPLogonControlClass();
            //下面的参数值根据实际情况赋值
            connctl.Client = "200";
            connctl.Language = "EN";
            connctl.ApplicationServer = "xxx.xxx.xxx.xxx";//Application server IP
            connctl.SystemNumber = 00;
            connctl.User = "XXXX";
            connctl.Password = "XXXXXXX";

            Connection conn = (Connection)connctl.NewConnection();
            //登陆
            if (conn.Logon(null,true))
            {
                MessageBox.Show("Successful");
            }
            
            SAPFunctionsClass functions = new SAPFunctionsClass();
            functions.Connection = conn;
            //这里就可以传入Function Name
            Function fucntion = (Function)functions.Add("RFC_READ_TABLE");。
            //这里是传入值参数
            Parameter parameter1 = (Parameter)fucntion.get_Exports("QUERY_TABLE");
            parameter1.Value = "VEKP";
            Parameter parameter2 = (Parameter)fucntion.get_Exports("DELIMITER");
            parameter2.Value = ";";
            //这里是传入表的参数,这里有两个表OPTIONS和FIELDS
            Tables Tables1 = (Tables)fucntion.Tables;
            Table table0 = (Table)Tables1.get_Item("OPTIONS");
            table0.AppendGridData(1, 1, 1, "EXIDV = '00000000001000000022'");
            Table talble1 = (Table)Tables1.get_Item("FIELDS");
            talble1.AppendGridData(1, 1, 1, "VENUM");
            talble1.AppendGridData(2, 1, 1, "VPOBJKEY");
            talble1.AppendGridData(3, 1, 1, "VSTEL");
            //调用函数,并读取数据
            if (fucntion.Call())
            {
                Tables1 = (Tables)fucntion.Tables;
                Table talbe2 = (Table)Tables1.get_Item("DATA");
                MessageBox.Show(talbe2.get_Cell(1, 1).ToString());
            }
            //退出登陆
            conn.Logoff();
原创粉丝点击