Core使用SAP Web Service
.Net Core在使用SAP的Web Service会遭遇到一些错误,貌似目前并不支持SAP中的Web Service,我们需要曲线实现下调用过程:
经测试,不再需要Framework项目中转,System.ServiceModel的几个Nuget升级到最新版即可。现在生成的代码已经有所差异了,简单的更改即可使用。

- 使用Framework的项目来“添加服务引用”,

- 找到生成目录下的Reference.cs文件并打开

- 因该命名空间已经是SAPInterface.FAChange3下了,所以移除掉该文件中所有的"SAPInterface.FAChange3."字样。
- 文件中我们看到有个接口与类的名称一样,这是错误的。我们给接口名称前面增加I,改为IZFAMS_AS02。

- 修改掉以下几处应该使用接口的内容:
- 将该文件保存并拷贝到Core项目中,修改命名空间为Core的命名空间
- 调用该文件,示例方法:
public class TransferWsR
{
private ZFAMS_ABT1NChannel callClient { get; set; }
public TransferWsR()
{
// 创建 HTTP 绑定对象
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
var appSection = IocManager.Instance.Resolve<IConfiguration>().GetSection("AppSettings");
// 根据 WebService 的 URL 构建终端点对象
var wsUrl = appSection["SAPWsTransferUrl"];
var endpoint = new EndpointAddress(wsUrl); // 创建调用接口的工厂,注意这里泛型只能传入接口
var factory = new ChannelFactory<ZFAMS_ABT1NChannel>(binding, endpoint);
factory.Credentials.UserName.UserName = appSection["SAPUserName"];
factory.Credentials.UserName.Password = appSection["SAPPassword"];
// 从工厂获取具体的调用实例
callClient = factory.CreateChannel();
callClient.OperationTimeout = new TimeSpan(, , );
} public TransferOutput DoTransfer(TransferInput input)
{
var rq = new ZFAMS_ABT1NRequest();
var data = new ZFAMS_ABT1NInput
{
IT_ABT1N = new ZST_ABT1N[]
{
AutoMapper.Mapper.Map<ZST_ABT1N>(input)
}
};
rq.ZFAMS_ABT1N = data;
try
{
var rp = callClient.ZFAMS_ABT1N(rq);
var result = rp.ZFAMS_ABT1NResponse.ET_RETURN.FirstOrDefault();
if (result == null)
{
throw new Exception("调用结果为Null!");
} return AutoMapper.Mapper.Map<TransferOutput>(result); }
catch (Exception ex)
{ throw ex;
} }
}
Core使用SAP Web Service的更多相关文章
- SAP Web Service简介与配置方法
[版权声明]本文为博主原创文章,转载请在明显位置注明出处. 一. SAP Web Service简介 二. SAP Web Service配置准备工作 1. 通过RZ10配置服务器名称和其他参数 2. ...
- [SAP] 外部系统调用SAP web service用户验证的简单方法
场景: 一个Java系统调用SAP系统提供的web service,除了根据WSDL生成的代理类,调用相应方法,传入相应参数外,还等需要使用SAP提供的用户信息进行身份验证,最简单的方法是在soap请 ...
- 工作笔记 | Visual Studio 调用 Web Service
引言 最近笔者负责ERP财务系统跟中粮集团财务公司的财务系统做对接,鉴于ERP系统中应付结算单结算量比较大,而且管理相对集中,ERP系统与中粮财务公司的支付平台系统对接,实现银企直联,将网银录入的环节 ...
- 如何在SAP CRM里创建和消费Web service
Created by Wang, Jerry, last modified on Dec 19, 2014 The following steps demonstrates how to expose ...
- 使用nodejs消费SAP Cloud for Customer上的Web service
Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice. 看一个具体例子:C4C里Individual Customers可以维护Social ...
- UI5-学习篇-8-本地SAP WEB IDE开发
1.本地SAP WEB IDE下载 UI5-学习篇-3-Local SAP WEB IDE下载 2.启动Orion服务 解压SAP WEB IDE文件后,双击Orion应用程序启动服务,如下图: 服务 ...
- Spring 4 集成Apache CXF开发JAX-RS Web Service
什么是JAX-RS 在JSR-311规范中定义,即Java API for RESTful Web Services,一套Java API,用于开发 RESTful风格的Webservice. 工程概 ...
- 翻译-使用Spring调用SOAP Web Service
原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...
- 翻译-使用Spring WebService生成SOAP Web Service
原文链接:http://spring.io/guides/gs/producing-web-service/ 生成SOAP web service 该指南将带领你使用Spring创建一个基于SOAP的 ...
随机推荐
- opencv VS C++ 配置
包含目录 $(OPENCV)\include\ $(OPENCV)\include\opencv\ $(OPENCV)\include\opencv2\ 即: D:\opencv\opencv\b ...
- Telegraf+Influxdb+Grafana(Windows下本机简易监控系统搭建)
1.文件名称 telegraf-1.5.0_windows_amd64.zip influxdb-1.4.2_windows_amd64.zip grafana-4.6.3.windows-x64.z ...
- AbstractRoutingDataSource动态数据源切换,AOP实现动态数据源切换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u012881904/article/de ...
- Oracle sql 复习题目总结
sql 题目一 表结构 1.表名:g_cardapply 字段(字段名/类型/长度): apply_no varchar8; //申请单号(关键字) apply_date date; //申请日期 s ...
- ngx.shared.DICT.get 详解
ngx.shared.DICT.get 原文: ngx.shared.DICT.get syntax: value, flags = ngx.shared.DICT:get(key) context: ...
- Linux内存使用情况以及内存泄露情况
1. 内存使用情况分析 http://www.360doc.com/content/15/1118/13/17283_514054063.shtml https://www.linuxidc.com/ ...
- [转][C#]Oracle 连接错误的解决
错误1: .NET连接oracle,提示错误OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 两个原因: 1. 权限,把 Oracle 所在目录权限设置成 authenticat ...
- PS 实用技巧
1. 调整大小 ctrl + T 2. 导出透明背景图片 选择 png格式
- json简单案例
1.Group类 import java.util.ArrayList; import java.util.List; class Group{ private int id; private Str ...
- Java-WebSocket调用报错:WebSocketClient objects are not reuseable
我的代码 import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteArrayDataOutput; ...


