ABAP接口部分-Web Service提供者与消费者

2024-03-12 09:28

本文主要是介绍ABAP接口部分-Web Service提供者与消费者,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ABAP接口部分-Web Service提供者与消费者

文章目录

  • ABAP接口部分-Web Service提供者与消费者
  • Web Service提供者
    • Web Service
      • 测试
      • 配置
      • [SOA网址](https://mysap.goodsap.cn:44300/sap/bc/webdynpro/sap/appl_soap_management )
      • 测试
  • Web Service消费者
    • 创建Services Consumer消费者
    • 创建RFC连接
    • 创建逻辑端口-IP地址
          • 现在不使用LPCONFIG创建逻辑接口,而是在SOA网址上创建
      • 使用URL
    • 输入用户名和密码
    • 报错
    • 创建逻辑端口-WebServices URL
          • 现在使用这个创建逻辑端口
      • 进入SOA网址
      • 填写端口信息
      • 重新测试执行
    • 用自己创建的WebService
      • 创建服务消费者
        • 注意
      • 创建RFC
      • 登录SOA网址
      • 测试服务消费者
      • 代码调用
        • 创建程序
      • 调用Web Service API
    • 后面这个本地文件不行
      • 创建逻辑端口
      • 测试服务消费者
      • 报错
        • 调用 SOAP 运行时函数时出错:SRT:Processing error in Internet Communication Framework: ("Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)")
    • Postman测试接口
        • Headers设置
      • Body设置
      • Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)

Web Service提供者

Web Service

1、 创建Web Service:SE80

在这里插入图片描述
在这里插入图片描述

在包上,右击,点击“创建”—“企业服务”:

在这里插入图片描述

选择Service Provider,点击继续:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

填写模块的名称:

在这里插入图片描述

如果没有函数模块,则创建一个:

事务代码:SE37

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

填写导入参数:
在这里插入图片描述

导出参数:

在这里插入图片描述

之后是:
在这里插入图片描述

在这里插入图片描述

点击完成:

在这里插入图片描述

点击保存:

在这里插入图片描述
在这里插入图片描述

点击确定:
在这里插入图片描述

点击激活按钮进行激活:

在这里插入图片描述

参数文件可以修改:

在这里插入图片描述

这个可以给外部第三方的开发人员调用:

在这里插入图片描述

测试

点击测试按钮进行测试:
在这里插入图片描述

点击“执行”:
在这里插入图片描述

执行结果:

在这里插入图片描述

修改成:
在这里插入图片描述

修改完成之后,点击这里:

在这里插入图片描述

点击"执行"按钮执行:
在这里插入图片描述

执行之后:

在这里插入图片描述

原本执行不成功,后面重新生成服务Z_WS002。
在这里插入图片描述

除了这种办法,还可以直接将函数发布成WebServices。

对Z_WS002同样进行SOA设置:
在这里插入图片描述
在这里插入图片描述

WSDL地址:http://mysap.goodsap.cn:50400/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/z_ws002/400/z_ws002/z_ws002?sap-client=400

配置

1、 配置:t-code:soamanager(由于服务器问题,这个方法暂时配置不了;)
在这里插入图片描述

在点击“配置”按钮进行配置:
在这里插入图片描述

发现进去报错了:
在这里插入图片描述

后面在自购的账号群公告中看到这个SOA登录网址:

在这里插入图片描述

SOA网址

https://mysap.goodsap.cn:44300/sap/bc/webdynpro/sap/appl_soap_management

输入集团、用户和密码,点击登录:

在这里插入图片描述

点击“Web服务配置”:
在这里插入图片描述

这里填写我们刚刚创建的服务:

在这里插入图片描述

双击服务名称:

在这里插入图片描述

点击“创建服务”:

在这里插入图片描述

填写信息,点击“下一个”:
在这里插入图片描述

设置用户名和密码:
在这里插入图片描述

直接下一步->-下一步。

用户标识/密码如果无法选择,请把Web Service级别改为 NONE:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

点击“打开WSDL生成”:
在这里插入图片描述

复制URL:

在这里插入图片描述

http://mysap.goodsap.cn:50400/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/z_ws001/400/z_ws001/z_ws001?sap-client=400

RFC函数同步更新:

注意: 如果RFC 函数更新了,也需要到Web Service服务做“一致性检查”更新同步;

在服务上右击,点击“一致性检查”:

在这里插入图片描述

保存并激活:
在这里插入图片描述

测试

点击测试运行按钮进行测试:
在这里插入图片描述
在这里插入图片描述

结果:
在这里插入图片描述

Web Service消费者

事务代码:SE80

创建Services Consumer消费者

选择:Service Consumer,点击“继续”:
在这里插入图片描述

选择“External WSDL/Schema”,点击“继续”:
在这里插入图片描述

选择“URL”:

在这里插入图片描述

输入URL地址:
在这里插入图片描述

输入用户名和密码:

在这里插入图片描述

点击,新建请求号,输入描述,点击确定:

在这里插入图片描述

选择好请求号:

在这里插入图片描述

输入请求号,输入前缀:

在这里插入图片描述

点击“完成”:
在这里插入图片描述
点击“保存”按钮进行保存:

在这里插入图片描述

保存并激活:

在这里插入图片描述

在这里插入图片描述

创建RFC连接

用事务代码 SM59 进入 RFC 连接配置:

事务代码:SM59

点击创建:
在这里插入图片描述

输入要创建的目标名称,选择连接类型:
在这里插入图片描述

输入描述,服务器提供者的域名和端口号,点击保存:

在这里插入图片描述

在这里插入图片描述

创建逻辑端口-IP地址

现在不使用LPCONFIG创建逻辑接口,而是在SOA网址上创建

使用在是外部ip地址和端口的情况,例如这种:

在这里插入图片描述

T-CODE: LPCONFIG

事务代码: LPCONFIG

输入事务代码之后,点击确定:

在这里插入图片描述

复制这个类的名称:

在这里插入图片描述

填写到这里:

在这里插入图片描述

如果是外部的ip地址端口,就可以使用下面的:

在这里插入图片描述

在这里插入图片描述

使用URL

如果是SAP WebSerivices创建的URL ,就填这个:
在这里插入图片描述

这里改了之后,还是报错。

这里要选中,否则激活会失败:
在这里插入图片描述

在这里插入图片描述

点击激活按钮进行激活:
在这里插入图片描述

返回接受者服务器运行测试:
在这里插入图片描述

输入逻辑接口:

在这里插入图片描述

可以点击这里,修改参数的名称:

在这里插入图片描述

可以这里返回执行界面:

在这里插入图片描述

点击“执行”按钮执行:

在这里插入图片描述

输入用户名和密码

在这里插入图片描述

报错

在这里插入图片描述
在这里插入图片描述

无法访问,是因为前面选择的是HTTP对象,RFC里面的WebServices_Test2,后面改成URL地址。
在这里插入图片描述

这个不是很清楚是怎么回事,后面查阅资料,重新再SOA中为WebServices消费者创建逻辑接口

在这里插入图片描述

创建逻辑端口-WebServices URL

现在使用这个创建逻辑端口

之前的逻辑端口没有什么效果,在这里重新创建逻辑端口,这个是基于之前在SAP系统中创建WebServices提供者时,暴露给外面的那个URL地址的。

进入SOA网址

进入SOA网址:
在这里插入图片描述

填写端口信息

填写逻辑端口的名称为ZWS_CO_Z_WS002_LHY,填写描述等信息:
在这里插入图片描述

填写WebServicesURL、用户名和密码:
在这里插入图片描述

点击“下一个”:
在这里插入图片描述

输入用户名和密码:
在这里插入图片描述

点击“完成”按钮:

在这里插入图片描述

填写好参数的值之后:

重新测试执行

点击执行:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击执行之后,返回结果是3:

在这里插入图片描述

用自己创建的WebService

将在C#中创建的WebService服务弄到本机的IIS上

创建服务消费者

事务代码:SE80

1、点击创建企业服务

在这里插入图片描述

选择“Service Customer”,点击“继续”:
在这里插入图片描述

选择“External WSDL/Schma",点击”继续“:
在这里插入图片描述

选择URL:
在这里插入图片描述

输入URL,要在文件的后面加上?wsdl:

在这里插入图片描述

填写请求号,点击创建,输入描述:
在这里插入图片描述

填写请求号,和前缀:
在这里插入图片描述

点击“完成“按钮:
在这里插入图片描述

点击保存:

在这里插入图片描述

创建的企业服务如下:
在这里插入图片描述

保存并激活:
在这里插入图片描述

注意

在这里插入图片描述

创建RFC

用事务代码 SM59 进入 RFC 连接配置:
在这里插入图片描述

填写描述、主机和端口:

在这里插入图片描述

点击“连接测试”:
在这里插入图片描述

输入用户名和密码即可:

在这里插入图片描述

登录SOA网址

在这里插入图片描述

点击“Web服务配置”:
在这里插入图片描述

选择消费者代理,输入筛选条件,找到这个类名,双击:

在这里插入图片描述

点击创建,选择“基于WSDL的配置’':
在这里插入图片描述

填写信息,勾选缺省:

在这里插入图片描述

输入URL,输入用户名和密码,点击下一个:

在这里插入图片描述

点击下一个:

在这里插入图片描述

输入用户名和密码,点击下一个:
在这里插入图片描述

点击下一个:
在这里插入图片描述

一直点击下一个,直至完成:
在这里插入图片描述

逻辑端口创建成功:
在这里插入图片描述

测试服务消费者

返回接受者服务器运行测试:
在这里插入图片描述

输入逻辑端口名称和方法名称,点击执行:
在这里插入图片描述

可以点击这个按钮,修改xml的内容:

在这里插入图片描述

修改完毕之后,可以点击这个按钮返回:
在这里插入图片描述

点击执行:

在这里插入图片描述

返回结果,说明配置成功:

在这里插入图片描述

代码调用

创建程序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

输入下面的代码:

*&---------------------------------------------------------------------*
*& Report ZTEST_WEB_SERVICE_CONSUMER
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_web_service_consumer.
DATA: lo_clientproxy   TYPE REF TO zws_co_web_service1soap,      "参考生成的代理类lo_sys_exception TYPE REF TO cx_ai_system_fault.
DATA: ls_srm_input          TYPE zws_age_soap_in,ls_srm_input_response TYPE zws_age_soap_out.* 2、调用webserviceCREATE OBJECT lo_clientproxyEXPORTINGlogical_port_name = 'ZWS_CO_WEB_SERVICE1SOAP'.  "调用对应的逻辑端口ls_srm_input-a1 = '22'.ls_srm_input-a2 = '52'.TRY.CALL METHOD lo_clientproxy->ageEXPORTINGinput          = ls_srm_inputIMPORTINGoutput = ls_srm_input_response.CATCH cx_ai_system_fault INTO lo_sys_exception."捕获错误"CATCH zoa_cx_exception INTO lo_oa_exception.ENDTRY."o_type    = ls_srm_input_response-parameters-return-status."o_message = ls_srm_input_response-parameters-return-message."o_data    = ls_srm_input_response-parameters-return-data.WRITE: /,'WebService 测试:',ls_srm_input_response-age_result.

调用Web Service API

输入程序名,点击创建:

输入描述,选择可执行文件:

*&---------------------------------------------------------------------*
*& Report ZWEBSERVICE_TEST02
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZWEBSERVICE_TEST02.data: len         type        i,"发送报文长度len_string  type        string,url         type        string, "接口地址http_client type ref to if_http_client,"http客户端post_string type        string,result      type        string.DATA: LV_LEN         TYPE I.data: it_header type tihttpnvp.
data: gv_json_in TYPE string.gv_json_in = '{"ApiType":"SapInterfaceController","Parameters":[{"Value":[{"Factory":"1100",'&&'"FactoryName":"和胜","Center":"C001","CenterDesc":"工作中心001","Depart":"MES",'&&'"DepartName":"MES项目组","Flag":"0"}]}],"Method":"SaveWorkCenter","Context":{"InvOrgId":1}}'.START-OF-SELECTION.url = 'http://192.168.4.32:1028/api/dataportal/invoke'."创建http客户端call method cl_http_client=>create_by_urlexportingurl                = urlimportingclient             = http_clientexceptionsargument_not_found = 1plugin_not_active  = 2internal_error     = 3others             = 4."设定传输请求内容格式以及编码格式http_client->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' )."设置http method 为POSThttp_client->request->set_method( if_http_request=>co_request_method_post )."设置待传输内容长度LV_LEN = STRLEN( gv_json_in )."设置调用方法CALL METHOD http_client->REQUEST->SET_HEADER_FIELDEXPORTINGNAME  = '~request_method'VALUE = 'POST'."http_client->request->set_cdata( data = gv_json_in )."设置传入字符串CALL METHOD http_client->REQUEST->SET_CDATAEXPORTINGDATA   = gv_json_inOFFSET = 0LENGTH = LV_LEN."发送数据call method http_client->sendexceptionshttp_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3http_invalid_timeout       = 4others                     = 5."接收返回call method http_client->receiveexceptionshttp_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3."获取接口返回的字符串result = http_client->response->get_cdata( ).WRITE: /,'测试数据',result.

后面这个本地文件不行

选择本地文件,因为本地的URL不成功:
在这里插入图片描述

选择文件:
在这里插入图片描述

在这里另存为下来的:
在这里插入图片描述

创建新的请求号,并填写描述:
在这里插入图片描述

填写内容之后,点击“继续”:
在这里插入图片描述

点击“完成”:
在这里插入图片描述

点击保存,并激活:
在这里插入图片描述

创建逻辑端口

为我们刚刚创建的消费者创建逻辑端口

登录SOA网址:https://mysap.goodsap.cn:44300/sap/bc/webdynpro/sap/appl_soap_management

在这里插入图片描述
在这里插入图片描述

选择“Web服务配置”:
在这里插入图片描述

选择“消费者代理”,输入ZSW_*筛选条件,点击搜索,找到我们刚刚创建的消费者代理:
在这里插入图片描述

双击刚刚创建的“消费者代理”:

在这里插入图片描述

点击“创建”,选择“基于WSDL的配置”:

在这里插入图片描述

输入逻辑端口名称和描述,点击下一个:
在这里插入图片描述

选择文件,选中文件,点击下一个:
在这里插入图片描述

输入用户名和密码,点击下一个:
在这里插入图片描述

点击“下一个”:
在这里插入图片描述

点击“完成”:
在这里插入图片描述

测试服务消费者

点击执行测试:

在这里插入图片描述

输入逻辑端口名称,点击执行
在这里插入图片描述

选择方法,再次点击执行:

在这里插入图片描述

可以点击这里修改XML内容,改变参数的值:

在这里插入图片描述

修改参数的值,点击返回:

在这里插入图片描述

点击“执行”:

在这里插入图片描述

报错

点击执行之后,报下面的错误:
在这里插入图片描述

在这里插入图片描述

调用 SOAP 运行时函数时出错:SRT:Processing error in Internet Communication Framework: (“Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)”)

出现上面这个问题是因为,我自己的SAP服务器在外网,但是我访问的地址是内网地址,所以是访问不到的,所以失败了。

SRT Framework exception: 服务 Ping 错误:调用 SOAP 运行时函数时出错:SRT: Processing errorin Internet Communication Framework: (“Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)”)类型消息SRT Framework exception: 服务 Ping 错误:调用 SOAP 运行时函数时出错:SRT: Processing errorin Internet Communication Framework: (“Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)”)服务 Ping 错误:调用 SOAP 运行时函数时出错:SRT: Processing error in Internet Communication Framework: (“Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)”)处理 Web 服务调用时出错调用 SOAP 运行时函数时出错:SRT: Processing error in Internet Communication Framework: (“Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)”

Postman测试接口

首先用Postman测试接口是否配通

Headers设置

在这里插入图片描述

报错如下:
在这里插入图片描述

Body设置

选择raw,XML:

在这里插入图片描述

这里填成在浏览器测试时显示的请求格式:

在这里插入图片描述

点击Send发送,得到相应结果:

在这里插入图片描述

Direct connect to 192.168.7.31:8080 failed: NIECONN_REFUSED(-10)

在这里插入图片描述

这个问题没有解决。

这篇关于ABAP接口部分-Web Service提供者与消费者的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800828

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern