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="ky@123" 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(, true);
function.Invoke(_rfcDestination);//执行服务器调用的函数
IRfcTable myrfcTable = function.GetTable("IT_ZM005B");//rfc server function 返回值table结构名称 int liElement = ;
for (liElement = ; liElement <= myrfcTable.ElementCount - ; liElement++)
{
RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
dtr.Columns.Add(metadata.Name);//循环创建列
}
foreach (IRfcStructure dr in myrfcTable)//循环table结构表
{
DataRow row = dtr.NewRow();//创建新行
for (liElement = ; liElement <= myrfcTable.ElementCount - ; 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("", "");
C# 使用 SAP NCO3.0 调用SAP RFC函数接口的更多相关文章
- .NET连接SAP系统专题:SAP中新建可远程调用的RFC(二)
何谓RFC,就是一个Function,可以被非SAP系统调用,比如VB,C#,Java等.如果我们在RFC中INCLUDE了相关的业务逻辑,那么我们就可以完全操控SAP中的业务数据了.就像在TTE里, ...
- Java(JCo3)与SAP系统相互调用
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SAP RFC函数
RFC 接口 RFC是对一个函数模块的调用,但是调用者的系统与被调函数所在的系统是不一样的. RFC也可以在系统内被调用,但是通常调用和被调用是在不同的系统中的. 在sap系统中,远程调用的能力是有R ...
- 新浪微博 使用OAuth2.0调用API
# -*- coding: cp936 -*- #python 2.7.10 #xiaodeng #新浪微博 使用OAuth2.0调用API #微博开放接口的调用,都需要获取用户的身份认证.目前微博开 ...
- RFC函数的初步使用-同步
1.由于没有外围系统,采用不同SAP不同client之间进行测试. 首先在A-client搭建需要被调用的RFC函数.在A-client里运行SE37创建函数 在属性页签选择“远程启用的模块” 设定i ...
- C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnc ...
- .net 调用SAP RFC函数获取数据的两种方式
方式1:使用客户端自带的组件 安装客户端以后,添加引用:SAPFunctionsOCX(.net 的Com列表里一般找不到,需要引用DLL[一般位于以下路径:Program Files\SAP\Fro ...
- C#通过RFC调用SAP
using System;using System.Collections.Generic;using SAP.Middleware.Connector;using System.Data;using ...
- 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠
相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...
随机推荐
- 通过git rebase修改commit message
今天发现一个项目的git commit message中的单词拼错了,需要修改一下.但这样简单的修改,需要通过git rebase才能完成. 首先要git rebase到需要修改message的那个c ...
- Getting the first day in a week with T-SQL
A colleague just asked me if I knew a way to get the first day in a week in SQL Server. While I'm su ...
- 深入理解java虚拟机【Java虚拟机垃圾收集器】
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK ...
- 用dom操作替代正则表达式
在B/S结构客户端越来越“胖”的今天,作为一名全端程序员,您很可能会在前端操作html字符串,注意,是操作html字符串,不是操作当前页面的html. 举个例子,百度推出的在线HTML富文本编辑器Ue ...
- java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
这个错误错了几次,必须做个标记 解决方法非常的简单: 最新的19版本会在你的项目下建立一个依赖包 Android Dependencies,在eclipse中右键这个文件夹,在Build Path选项 ...
- [iOS]The app icon set named "AppIcon" did not have any applicable content.
Develop Tools: xCode 5.1 I write a demo for app settings feature. The tutorial url is here. When I a ...
- Nodejs学习笔记(十一)--- 数据采集器示例(request和cheerio)
目录 写在之前 示例 示例要求 采集器 加入代理 请求https 写在之后... 写在之前 很多人都有做数据采集的需求,用不同的语言,不同的方式都能实现,我以前也用C#写过,主要还是发送各类请求和正则 ...
- prepareStatement与Statement的区别
prepareStatement与Statement的区别 1.区别: 转 http://blog.csdn.net/zsm653983/article/details/7296609 stmt=co ...
- 在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10 ...
- 大家一起写mvc(一)
关于java的mvc框架层出不穷,可能大家都会用,但是具体的原理知道不知道呢.所以我想写一个写一个简单mvc的系列博客,主要面向想了解这些原理的. 其实所谓的mvc框架,基本都是一个原理,就是配置一个 ...