RFC访问SAP(C#)

31 篇文章 0 订阅
23 篇文章 1 订阅

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SAPFunctionsOCX;
using SAPLogonCtrl;
using SAPTableFactoryCtrl;

 

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void BtnConn_Click(object sender, EventArgs e)
        {
            //设置登录连接的类
            DataSet dset = new DataSet();
            SAPLogonCtrl.SAPLogonControlClass logon = new SAPLogonCtrl.SAPLogonControlClass();
            //连接参数设置
            logon.ApplicationServer = "10.113.4.164";
            logon.Client = "120";
            logon.Language = "EN";
            logon.User = "";
            logon.Password = "";
            logon.SystemNumber = 0;

            //实例化连接对象
            SAPLogonCtrl.Connection Conn;

            Conn = (SAPLogonCtrl.Connection)logon.NewConnection();
            //Conn.CodePage = "8400";
            //调用登录方法
            if (Conn.Logon(0, true))
            {
                label1.Text = "登录成功!";
            }

            //实例SAPFunction对象

            SAPFunctionsOCX.SAPFunctionsClass func = new SAPFunctionsClass();

            //设置连接
            func.Connection = Conn;

            SAPFunctionsOCX.IFunction ifunc = (SAPFunctionsOCX.IFunction)func.Add("ZCSMS_GET_HRINFO");
            //设置输入参数
            SAPFunctionsOCX.IParameter BEGDAFROM = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("BEGDAFROM");
            BEGDAFROM.Value = "";
            SAPFunctionsOCX.IParameter BEGDATO = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("BEGDATO");
            BEGDATO.Value = "";
            SAPFunctionsOCX.IParameter MILL = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("MILL");
            MILL.Value = "7960";
            SAPFunctionsOCX.IParameter NUMBERFROM = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("NUMBERFROM");
            NUMBERFROM.Value = "0061500001";
            SAPFunctionsOCX.IParameter NUMBERTO = (SAPFunctionsOCX.IParameter)ifunc.get_Exports("NUMBERTO");
            NUMBERTO.Value = "0061500020";
            //调用RFC方法
            ifunc.Call();
            SAPTableFactoryCtrl.Tables ENQs = (SAPTableFactoryCtrl.Tables)ifunc.Tables;
            SAPTableFactoryCtrl.Table ENQ = (SAPTableFactoryCtrl.Table)ENQs.get_Item("THR");

            int j = ENQ.RowCount;
            DataTable dt = new DataTable();
            for (int i = 1; i <= ENQ.RowCount; i++)
            {
                DataRow dr = dt.NewRow();
                if (i == 1)
                {
                    dt.Columns.Add("MILL");
                    dt.Columns.Add("PERNR");
                    dt.Columns.Add("NAME1");
                    dt.Columns.Add("STEXT");
                }

                dr["MILL"] = (String)ENQ.get_Value(i, "MILL");
                dr["PERNR"] = (String)ENQ.get_Value(i, "PERNR");
                dr["NAME1"] = (String)ENQ.get_Value(i, "NAME1");
                dr["STEXT"] = (String)ENQ.get_Value(i, "STEXT");
                dt.Rows.Add(dr);
            }
            dataGridView1.DataSource = dt.DefaultView;
        }


    }
}

当然, RFC连接SAP只是其中的方法之一, BAPI等多种方式.

/*
安装SAP客户端就有了, 在安装的目录下:SAP/FrontEnd/SAPgui/
选择对应的: wdtlog.ocx, wdtfuncs.ocx, wdtaocx.ocx三个组件就可以了。 加入后就变为三个DLL文件。
*/
'[IT18掌www.it18zhang.com]001.Hadoop基础篇.pptx' '[IT18掌www.it18zhang.com]014.Hadoop Win7开启网络访问.pptx' '[IT18掌www.it18zhang.com]Kafka.pptx' '[IT18掌www.it18zhang.com]002.VMware下载与安装.pptx' '[IT18掌www.it18zhang.com]015.Hadoop 架构分析.pptx' '[IT18掌www.it18zhang.com]KVM.pptx' '[IT18掌www.it18zhang.com]003.Ubuntu下载与虚拟机下安装.pptx' '[IT18掌www.it18zhang.com]016.Hadoop 架构分析之启动脚本分析.pptx' '[IT18掌www.it18zhang.com]Scala.pptx' '[IT18掌www.it18zhang.com]004.Ubuntu常用命令.pptx' '[IT18掌www.it18zhang.com]017.Hadoop 架构分析之启动脚本总结.pptx' '[IT18掌www.it18zhang.com]Spark Graph编程指南.pptx' '[IT18掌www.it18zhang.com]005.Ubuntu目录与权限.pptx' '[IT18掌www.it18zhang.com]018.Hadoop MapReduce初识.pptx' '[IT18掌www.it18zhang.com]Spark SQL DataFrame Dataset编程指南.pptx' '[IT18掌www.it18zhang.com]006.Ubuntu软件包桌面与增强工具.pptx' '[IT18掌www.it18zhang.com]019.Hadoop MapReduce原理.pptx' '[IT18掌www.it18zhang.com]Spark Streaming编程指南.pptx' '[IT18掌www.it18zhang.com]007.Ubuntu本地软件源与iso制作.pptx' '[IT18掌www.it18zhang.com]019.Hadoop YARN事件分发原理.pptx' '[IT18掌www.it18zhang.com]Spark编程指南.pptx' '[IT18掌www.it18zhang.com]008.Ubuntu虚拟机克隆与Mac地址生成与网络连接方式.pptx' '[IT18掌www.it18zhang.com]020.Hadoop HDFS.pptx' '[IT18掌www.it18zhang.com]Spark编译运行处理.pptx' '[IT18掌www.it18zhang.com]009.Hadoop-Ubuntu下JDK与Hadoop安装配置.pptx' '[IT18掌www.it18zhang.com]021.Hadoop HDFS CLI.pptx' '[IT18掌www.it18zhang.com]Spark基础.pptx' '[IT18掌www.it18zhang.com]010.Hadoop配置-独立与伪分布式模式.pptx' '[IT18掌www.it18zhang.com]Ambari Hadoop集群管理工具.pptx' '[IT18掌www.it18zhang.com]Spark调优.pptx' '[IT18掌www.it18zhang.com]011.Hadoop配置-完全分布式模式.pptx' '[IT18掌www.it18zhang.com]Avro.pptx' '[IT18掌www.it18zhang.com]ZooKeeper.pptx' '[IT18掌www.it18zhang.com]012.Hadoop Windows下免Cygwin伪分布安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值