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

128 篇文章 89 订阅 ¥19.90 ¥99.00
55 篇文章 30 订阅 ¥19.90 ¥99.00
 
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();
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值