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的 ...
随机推荐
- jQuery之编写插件
一.学习插件编写背景 作为一名前端人员,应该注重前端复用性及组件化,更应该考虑前端的性能优化,做到代码简洁有序,不冗余.特别是在大型团队中,如果一个团队中存在多个功能相似的组件,举个栗子,拿分页组件举 ...
- java模拟post进行文件提交 采用httpClient方法
package com.jd.vd.manage.util.filemultipart; import java.io.BufferedReader;import java.io.File;impor ...
- [webpack]手写一个mvp版本的webpack
let fs = require('fs'); let path = require('path'); let babylon = require('babylon'); // Babylon 把源码 ...
- 【集成模型】Bootstrap Aggregating(Bagging)
0 - 思想 如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练 ...
- linux下使用SVN上传项目
linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppe ...
- Linux -- Proactor(及其与Reactor的比较)
高并发服务器常由多线程+IO复用服务器(one event loop per thread) 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分 ...
- nmap探测大网络空间中的存活主机
前言 扫描大网络空间中的存活主机 实现 nmap -v -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 -oX nmap_output.x ...
- rabbitMQ tipic 模式
RabbitMQ消息队列(八)-通过Topic主题模式分发消息(.Net Core版) 前两章我们讲了RabbitMQ的direct模式和fanout模式,本章介绍topic主题模式的应用.如果对di ...
- 金仓Kingbase数据库网页数据维护分析工具
金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...
- python爬取网页数据方法
"""#最基本,请求地址无参数# response=urllib.request.urlopen("https://www.scetc.edu.cn" ...


