您的位置:首页 > 编程语言 > C#

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

2009-12-10 08:43 639 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息