zoukankan      html  css  js  c++  java
  • 纯干货 C# 通过 RFC_READ_TABLE 读取 SAP TABLE

    SAP系统又称企业管理解决方案,是全球企业管理软件与解决方案的技术领袖,同时也是市场领导者。通过其应用软件、服务与支持,SAP持续不断向全球各行业企业提供全面的企业级管理软件解决方案。 在实际开发过程中,通常会遇见其他自主开发的软件系统需要与SAP进行对接,进行数据交互,本文介绍如何通过 C# 语言编写程式访问SAP并查询我们需要的数据。

     rfcTable与DataTable

    用C#开发的程序,一般采用NCO的方式进行访问数据库,里面涉及到一个rfcTable的类型,这也是一个表,但是跟我们平常工的System.Data里面的DataTable不一样,rfcTable是 SAP 里面返回的一种类型,它也支持循环遍历,我们可以根据实际需要将其转换成DataTable来使用。

    SAP为我们提供一个名为【RFC_READ_TABLE】的RFC,我们可以通过这个 RFC 查询表数据,具体使用方法如下:

    第一步:定义链接参数

    string path="D:\config.xml"; // 这里是一个配置文件
    
    string SapServer = Common.XmlHelper.GetXmlReader(path, "Config", "SapServer");
    string SapClient = Common.XmlHelper.GetXmlReader(path, "Config", "SapClient");
    string SapSysNumber = Common.XmlHelper.GetXmlReader(path, "Config", "SapSysNumber");
    string SapUser = Common.XmlHelper.GetXmlReader(path, "Config", "SapUser");
    string SapPwd = Common.XmlHelper.GetXmlReader(path, "Config", "SapPwd");
    string CurrPlant = Common.XmlHelper.GetXmlReader(path, "Config", "Plant");

    第二步:实例化参数对象

    RfcConfigParameters rfcPar = new RfcConfigParameters();
    rfcPar.Add(RfcConfigParameters.Name, "CON");
    rfcPar.Add(RfcConfigParameters.AppServerHost, SapServer);
    rfcPar.Add(RfcConfigParameters.Client, SapClient);
    rfcPar.Add(RfcConfigParameters.User, SapUser);
    rfcPar.Add(RfcConfigParameters.Password, SapPwd);
    rfcPar.Add(RfcConfigParameters.SystemNumber, SapSysNumber);
    rfcPar.Add(RfcConfigParameters.Language, "EN");
    dest = RfcDestinationManager.GetDestination(rfcPar);
    RfcRepository rfcrep = dest.Repository;

    第三步:执行查询

    myfun = rfcrep.CreateFunction("RFC_READ_TABLE");
    IRfcTable IrfTable = myfun.GetTable("DATA");
    myfun.SetValue("QUERY_TABLE", "ZP092"); //ZP092表示需要查询的表名
    myfun.SetValue("DELIMITER", "#");//#表示返回数据的分割符号
    myfun.SetValue("ROWCOUNT", "0");//0表示返回所有的数据
    
    IRfcTable IrfTable2 = myfun.GetTable("OPTIONS");  //OPTIONS为表名,也就是我们需要取数据的表
    myfun.Invoke(dest);

    此时,IrfTable 里已经有我们需要的数据了,我们可以根据实际需求进行处理。

    如果对您有帮助,请帮忙给个推荐,谢谢!

  • 相关阅读:
    Android APN开关原理
    HTC Wildfire 闪光灯手电筒的实现方式
    Android Stagefright MPEG4Extractor分析
    Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1
    开始IMS学习相关名词和术语(持续更新)
    Ubuntu 下安装代码格式化程序 astyle
    Ubuntu 10.10 x64 安装 ffmpeg tutorial 相关支持库
    关于GradientDrawable的angle属性
    判断SIM卡所属的运营商
    最小生成树算法
  • 原文地址:https://www.cnblogs.com/allen0118/p/12622787.html
Copyright © 2011-2022 走看看