转自:http://www.cherpservice.com/pub/newsdetail.asp?Newsid=3613

第一种方式采用SAP.net Connector:
最新版本是3.,不开源,不知道有没有官方的技术支持。
从3.0版本开始,使用方法上开始跟2.0相差很大,不再需要生成代理类,
好处是一旦SAP RFC接口做了更改,不需要重新生成代理类。
凡是都有两面性,这个好处也可以看做一个缺点:如果对RFC信息比较少,你不能用代理类的方式取得参数或者返回值的数据结构。
RfcConfigParameters parms = new RfcConfigParameters();
parms.Add(RfcConfigParameters.MessageServerHost, SAP Server IP);
parms.Add(RfcConfigParameters.GatewayHost, SAP Server IP);
//parms.Add(RfcConfigParameters.GatewayService, SAP Server IP);
parms.Add(RfcConfigParameters.SystemID, "SB6"); // Set actual System ID
parms.Add(RfcConfigParameters.SystemNumber, ""); //// Set actual System Number
parms.Add(RfcConfigParameters.User, "test");
parms.Add(RfcConfigParameters.Password, "test");
parms.Add(RfcConfigParameters.Client, ""); // Set actual client ID
parms.Add(RfcConfigParameters.Language, "EN");
parms.Add(RfcConfigParameters.PoolSize, "");
parms.Add(RfcConfigParameters.MaxPoolSize, "");
parms.Add(RfcConfigParameters.IdleTimeout, "");
RfcRepository repo = prd.Repository;
IRfcFunction companyBapi = repo.CreateFunction(RFC Name);
companyBapi.SetValue(Parameter name, value);
companyBapi.Invoke(prd);
object o = companyBapi.GetValue(return parameter name);
Console.WriteLine(o);
第二种方式采用纯粹的Biztalk Adapter.,不用Biztalk Server:
新建一个Console Application, 添加“add adapter service reference...”, 弹出下面的窗口         点击Configuration配置好SAP Server的基本信息,包括服务器地址, System Number, Client, 访问SAP的用户名和密码。
配置完后,测试连接是否OK, 如果没有问题可以列出RFC,IDOC之类的SAP世界里的东东,过滤出需要的RFC 填入一个合适的文件名前缀,默认是SAPBinging,点击OK生成一个WCF代理类,命名方式是 文件名前缀+Client.cs,
这里是SAPBindingClient.cs。然后你肯定就知道该怎么用它了:)
第三种方式是用Biztalk Server
        
具体步骤参考Biztalk Adapter的帮助文档,需要注意的是,如上图SendToLOBPort这个双向Port包含的方法名称"Operation_1"需要更改成RFC的名字或者修改Schema文件(参考 Troubleshooting Operational Issues):
Change the operation name in the logical port in BizTalk orchestration from Operation_1, etc. to the operation for which you generate metadata, for example RFC_CUSTOMER_GET.
Change the operation name in the action on the physical port to the operation name in the logical port.
计划下一步加上这三种方法的性能,并发,容错测试分析。

.net 调用SAP RFC的几种方法的更多相关文章

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

    最近使用C#调用SAP RFC函数,SAP提供了NCO3.0组件. 下载组件安装,之后引用“sapnco.dll”和“sapnco_utils.dll”两个文件. 在程序中 using SAP.Mid ...

  2. 请阐述调用Activity有哪几种方法,并写出相关的Java代码

    请阐述调用Activity有哪几种方法,并写出相关的Java代码. 答案:可以采用两种方式调用Activity:显示调用和隐式调用.显示调用直接指定了Activity,代码如下: Intent int ...

  3. K2 BPM项目 基于COM组件调用SAP RFC 问题

    K2 BPM项目 基于COM组件调用SAP RFC 问题 问题前景: 环境:Win 2008 R2 64bit 最近项目中有支流程需求中需要在会计入账环节回写SAP的会计凭证. SAP组给我们提供.N ...

  4. ASP.NET,C#后台调用前台javascript的五种方法

    C#后台调用前台javascript的五种方法 由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件.在网上 ...

  5. C/C++:Windows编程—调用DLL程序的2种方法(转载)

    文章为转载,原文出处https://blog.csdn.net/qq_29542611/article/details/86618902 前言先简单介绍下DLL.DLL:Dynamic Link Li ...

  6. .net 调用SAP RFC函数获取数据的两种方式

    方式1:使用客户端自带的组件 安装客户端以后,添加引用:SAPFunctionsOCX(.net 的Com列表里一般找不到,需要引用DLL[一般位于以下路径:Program Files\SAP\Fro ...

  7. 学习之路十四:客户端调用WCF服务的几种方法小议

    最近项目中接触了一点WCF的知识,也就是怎么调用WCF服务,上网查了一些资料,很快就搞出来,可是不符合头的要求,主要有以下几个方面: ①WCF的地址会变动,地址虽变,但是里面的逻辑不变! ②不要引用W ...

  8. (转)JAVA 调用Web Service的三种方法

    1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. ...

  9. go 调用windows dll 的三种方法

    参考:https://blog.csdn.net/qq_39584315/article/details/81287669 大部分代码参考:https://studygolang.com/articl ...

随机推荐

  1. 基于WPF系统框架设计(6)-整合MVVM框架(Prism)

    应用场景 我们基础的框架已经搭建起来了,现在整合MVVM框架Prism,在ViewModel做一些逻辑处理,真正把界面设计分离出来. 这样方便我们系统开发分工合作,同时提高系统可维护性和灵活性. 具体 ...

  2. delphi中如何将string类型的字符串数据转化成byte[]字节数组类型的数据

    var  S:String;  P:PChar;  B:array of Byte;begin  S:='Hello';  SetLength(B,Length(S)+1);  P:=PChar(S) ...

  3. Android 分享透明图片到微信变黑的问题

    /** * bitmap中的透明色用白色替换 * * @param bitmap * @return */ public static Bitmap changeColor(Bitmap bitmap ...

  4. 80端口被屏蔽解决方法,80端口穿透之NAT端口映射技术

    介绍一种NAT端口映射技术应用,达到80端口穿透目的,解决80端口被屏蔽的问题,也是80端口被屏蔽解决方法中经常用到的. 80端口穿透类似80端口转发,因为80端口被屏蔽,在数据层面来说是不能直接访问 ...

  5. linux中shell脚本中系统预先定义的变量

    $0:脚本名称: $*:所有参数: $$:当前进程或者脚本的PID号: $!:后台运行的最后一个进程的PID号: $?:用于返回上一个命令是否成功.成功0,否则为非零: $#:参数个数: $@:所有参 ...

  6. vuex 中关于 mapMutations 的作用

    mapMutations 工具函数会将 store 中的 commit 方法映射到组件的 methods 中.和 mapActions 的功能几乎一样,我们来直接看它的实现: export funct ...

  7. java个人感想

    java与c++相比,摒弃了c++的指针,把c++中的stl封装成一个库,而且改变了当中的某些方法,使用方法也产生了非常多不同,读者在编程过程中须要自己细细体会 个人觉得三大框架基于前端+领域逻辑+数 ...

  8. VueJS自定义过滤器:new Vue({filters:{filter1:function(){}....}})

    Vue.js 允许你自定义过滤器,被用作一些常见的文本格式化. 语法 <!-- 在两个大括号中 --> {{ message | capitalize }} <!-- 在 v-bin ...

  9. Javascript模式(一) 单例模式

    function A(){ // 存储实例对象 var instance; // 重写构造函数,只返回闭包内的局部变量instance A = function(){ return instance; ...

  10. win10+vs2017+asp.net MVC5+EF6+mysql 闪退问题,解决方法

    1.安装 mysql-for-visualstudio-2.0.5.msi 2.安装 mysql-connector-net-6.10.7.msi 3.在VS2017 右键选中项目,管理NuGet程序 ...