转自: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. 为Zepto添加Slide动画效果

    一.缘由 公司的移动端项目,采用zepto为主要框架,但是zepto毕竟是精简版的jquery,体积小了,功能自然没有这么强大,特别是动画和选择器这两块,需要我们自己去拓展. 在项目开发过程中,很多页 ...

  2. iOS5可能会删除本地文件储存

    文/ Nick (iphoneincubator) 关于iOS 5的本地文件储存Marco(Instapaper 的开发者)写过一篇很好的帖子阐述过相关问题,有兴趣的同学可以先阅读下他的文章然后再看下 ...

  3. ubuntu 添加用户

    sudo useradd 用户名 创建用户 sudo passwd 用户名 修改用户密码 添加sudo权限 sudo usermod -aG sudo(要添加的用户组,也可以是root) 用户名 su ...

  4. SourceTree的基本使用-git on mac

    SourceTree的基本使用 学习了:https://www.cnblogs.com/tian-xie/p/6264104.html

  5. SSO 单点登录简单流程(cas)

    配置服务端(链接数据库) 第一步: 下载cas-server端,解压开, 将中的解压开,将该包中的内容放入cas文件夹(新建文件夹)中 然后将这个文件夹放入到服务端的服务器(tomcat)中 将解压开 ...

  6. 使用Python+Selenium过程中中常见的问题汇总

    1.提示:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 542: ordinal not in range( ...

  7. 设计模式之Protocol实现代理模式

    使用场合 使用步骤 不使用protocol实现代理 使用protocol实现代理 一.使用场合 A想让B帮忙,就让B代理 A想通知B发生了一些事情,或者传一些数据给B 观察者模式 二.使用步骤 定义一 ...

  8. BCG菜单button的简单使用

    一,新建一个BCGprojectCBCGPMenuButton,基于对话框. 二.添加一个button,并关联一个CButton类型的变量m_btn1.然后手动将类型改CBCGPMenuButton成 ...

  9. 从英语单词shell想到的

    shell当初听到以为很高级 后来才知道只是壳而已 百度百科中解释为 shell 在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的c ...

  10. ASP.NET页面间传值的几种方式

    ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...