C# 使用 SAP NCO3.0 调用SAP RFC函数接口

C# 使用 SAP NCO3.0 调用SAP RFC函数接口

最近使用C#调用SAP RFC函数,SAP提供了NCO3.0组件。

下载组件安装,之后引用“sapnco.dll”和“sapnco_utils.dll”两个文件。

在程序中 using SAP.Middleware.Connector;

具体看下面代码

使用app.config文件配置注册客户端连接

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="SAP.Middleware.Connector">
      <sectionGroup name="ClientSettings">
        <section name="DestinationConfiguration" type="SAP.Middleware.Connector.RfcDestinationConfiguration,sapnco"/>
      </sectionGroup>
    </sectionGroup>
  </configSections>
  <SAP.Middleware.Connector>
    <ClientSettings>
      <DestinationConfiguration>
        <destinations>
          <add NAME="Conn" USER="KY_PG01" PASSWD="[email protected]" CLIENT="002" SYSNR="10" ASHOST="192.168.0.22" LANG="ZH" GROUP="PUBLIC" MAX_POOL_SIZE="5"></add>
        </destinations>
      </DestinationConfiguration>
    </ClientSettings>
  </SAP.Middleware.Connector>
</configuration>
private RfcDestination _rfcDestination = null;
public DataTable dtr = new DataTable();

public void RegisterDestination()  //注册客户端
        {
            try
            {
                if (_rfcDestination == null)
                {
                    _rfcDestination = RfcDestinationManager.GetDestination("Conn");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

 public string InvokeRFCFunctionGetCompanyID(string dateBegin, string dateEnd)
        {
            IRfcFunction function = null;
            string str = string.Empty;
            try
            {
                function = _rfcDestination.Repository.CreateFunction("ZKY_FM_ZM005B");//调用服务器函数
                function.SetValue("SO_FKDAT_B", dateBegin);//传入参数
                function.SetValue("SO_FKDAT_E", dateEnd);//传入参数
                function.SetParameterActive(0, true);
                function.Invoke(_rfcDestination);//执行服务器调用的函数
                IRfcTable myrfcTable = function.GetTable("IT_ZM005B");//rfc server function 返回值table结构名称

                int liElement = 0;
                for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
                {
                    RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
                    dtr.Columns.Add(metadata.Name);//循环创建列
                }
                foreach (IRfcStructure dr in myrfcTable)//循环table结构表
                {
                    DataRow row = dtr.NewRow();//创建新行
                    for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
                    {
                        RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
                        row[metadata.Name] = dr.GetString(metadata.Name).Trim();
                    }
                    dtr.Rows.Add(row);
                }
                this.dataGridView1.DataSource = dtr;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return str;
        }

//在事件或方法中调用

 this.RegisterDestination();
 this.InvokeRFCFunctionGetCompanyID("20120401", "20120901");
时间: 2024-08-26 02:03:01

C# 使用 SAP NCO3.0 调用SAP RFC函数接口的相关文章

SAP接口编程之 NCo3.0之RfcDestination(转)

转载地址:http://www.jianshu.com/p/5a5b4de5e1f1 http://www.jianshu.com/u/fd37d4449963 进入新的系列:.net connector 3.0,简称Nco3.0.Nco3.0是SAP针对.net平台提供的编程接口,由nco1.0/nco2.0演变而来.如果使用.net平台编程,推荐使用nco3.0,3.0和之前1.0/2.0比较,不管是API还是架构,都重新设计过,也借鉴了Jco3.0的设计,所以相对来说比较成熟,给程序员提供

SAP RFC 函数创建 Java程序调用 学习总结 一步一步图文并茂

前言 公司即将接到一个项目与SAP有接口.老大让我们搞SAP,首先SAP接触过,但是没玩过开发,本周就专心的在研究这一块. 各种碰壁,SAP的系统让我怎么说呢? 算了,说多了都是泪,下面附上本周学习成果,大家一起探讨一下,ABAP 还得多学学. Package (tcode:se80) 输入需要创建的 Package ,例:ZTP (之前用T打头测试,貌似不行,大家可以试试) 点  Yes 创建. 输入创建Package的信息. Table (tcode:se11) 点击Create. 点击保存

Java(JCo3)与SAP系统相互调用

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291479.html 外部系统(Java)调用BAPI函数... 78 安装JCo3. 78 创建JCo3连接... 79 直连... 79 连接池... 81 DestinationDataProvider接口(不需连接属性配置文件)..

新浪微博 使用OAuth2.0调用API

# -*- coding: cp936 -*- #python 2.7.10 #xiaodeng #新浪微博 使用OAuth2.0调用API #微博开放接口的调用,都需要获取用户的身份认证.目前微博开放平台用户认证鉴权主要采用OAuth2.0. #使用OAuth2.0调用API接口有2个方式: 1.直接使用参数,传递参数名为access_token URL='https://api.weibo.com/2/statuses/public_timeline.json?access_token=ab

PO配置调用SAP RFC

直接调用SAP中的RFC 1. 导入RFC 2 在对应命名空间下面创建SI 选择出入站,同步或异步,并设置参数类型,选择对应的RFC. 3创建OM 选择两边的SI或者RFC,一定要点击保存(等待下面出现MT) 填写MM名称,选择命名空间,(同步有两个MM) 创建MM 配置MM字段对应 激活 SI  OM MM 在对应的BC下面创建CC 选择通信类型 填写地址 激活CC 创建ID  (选择系统,选择接口,选择命名空间) 选择入站CC 选择SAP 选择OM 选择出站 ERP CC 激活ID 总建立文

C#调用sap接口及返回数据到sap

public class SapClass { /// <summary> /// /// </summary> /// <param name="fphm">发票号码</param> /// <param name="fprq">发票开票日期</param> /// <param name="fkf">付款方</param> /// <para

SAP RFC函数远程调试跟踪管理软件

最近在搞OA系统与sap的接口开发,接口太多老是和.net的开发人员打嘴仗,为了避免不必要的纠结,自己做了一个rfc的调试工具,有些问题调试起来也比较容易了.程序是delphi开发的,为了保证程序可以与sap顺利连接,需要安装sap gui客户端,执行程序不需要安装,只需要将Saptools.exe和rfctoolsdb.mdb两个文件拷贝到同一目录中,就可以执行了. 执行后正常的界面是这样的: 如果首次运行没有配置文件,会有这样的错误 这时候就需要我们配置参数文件,执行“配置”按钮,出现如下画

C#调用SAP S4/HANA Gateway Service

公司使用SAP,并且实施公司做了一些提供报表数据的接口供调用,首先说明一下我对SAP不熟悉 但SAP用到的接口信息提供大家参考一下,这些Gateway Service使用的是DCP方式写的,SAP提供数据的协议叫:OData 相关资料大家自行百度.Google.bing 进入T-Code:SEGW 点击Open Project按钮打开对应的接口 双击DPC_EXT之后就进入类构建器,类似于WebService的东西吧 这里要注意的是有HeaderSet.ItemSet的区别,但我不知道有什么区别

SAP ECC6.0迁移升级到EHP6 on HANA过程

# ./STARTUP confighostagent QAS **** HOST detected as SAPQAS **** The root directory to SUM is /usr/sap/QAS/SUM **** Checking SID parameter[QAS] and parsed one: QAS **** The SUM directory is under SID /usr/sap/$[SID:#required]/SUM **** The saphostage