SAP HTTP调用其他系统接口

摘要:
并关闭接口中定义的接收表。需要根据JSON结构定义特定接口。2.2成功获得TOKEN后,结束TY_ DATILDATA。“编辑发送数据data:”接口地址LO_ HTTP_ CLIENT TYPE REF TO IF_ HTTP_ CLIENT,“已发送JSON LV_REC_JSON TYPE STRING,”,
1业务说明

ABAP系统通过HTTP方式调用其他系统发布的接口

2代码实现

2.1认证接口

根据访问的URL创建HTTP客户端

SAP HTTP调用其他系统接口第1张

设置访问方式,并调用SEND和接收函数

SAP HTTP调用其他系统接口第2张

有时需要专门验证用户名密码

SAP HTTP调用其他系统接口第3张

获取返回的HTTP访问状态和状态描述,并关闭接口

SAP HTTP调用其他系统接口第4张

其中定义的接收内表需要按照JSON结构来定义

SAP HTTP调用其他系统接口第5张

SAP HTTP调用其他系统接口第6张

2.2具体接口

当获取TOKEN成功之后,就可以继续执行后续的某个业务功能接口了

仍然根据访问的接口URL创建HTTP客户端

SAP HTTP调用其他系统接口第7张

设置传输格式,校验权限,访问方式

SAP HTTP调用其他系统接口第8张

根据传入JSON,定义内表,并转换为JSON格式

SAP HTTP调用其他系统接口第9张

SAP HTTP调用其他系统接口第10张

SAP HTTP调用其他系统接口第11张

同理,调用发送和接收函数,之后用相同方式获取返回的JSON数据,并将其转换为内表,做后续操作,方法和认证接口处理一致,不再赘述。

2.3源代码

"TOKEN的结构
TYPES: BEGIN OF TY_TOKEN,
         ACCESS_TOKEN  TYPE STRING,
         TOKEN_TYPE    TYPE STRING,
         REFRESH_TOKEN TYPE STRING,
         EXPIRES_IN    TYPE STRING,
         SCOPE         TYPE STRING,
       END OF TY_TOKEN.

"发送数据时的结构
DATA:BEGIN OF TY_DATILDATA OCCURS 0,
       DATEFROM TYPE STRING,
       DATETO   TYPE STRING,
       PAGE     TYPE STRING,
       SIZE     TYPE STRING,
     END OF TY_DATILDATA.

"编辑发送数据
DATA: BEGIN OF TY_SENDDATA,
        PAYLOAD LIKE TY_DATILDATA,
      END OF TY_SENDDATA.

"编辑接收数据
DATA: BEGIN OF TY_RECEIVEDATA,
        PAYLOAD LIKE TY_DATILDATA,
        DATA    LIKE TABLE OF TY_DATILDATA,
      END OF TY_RECEIVEDATA.

DATA:LS_TOKEN    TYPE TY_TOKEN,
     LS_SENDDATA LIKE TY_SENDDATA,
     LS_RECDATA  LIKE TY_RECEIVEDATA.

DATA: LV_LEN           TYPE I, "发送报文长度
      LV_URL           TYPE STRING, "接口地址
      LO_HTTP_CLIENT   TYPE REF TO IF_HTTP_CLIENT, "http客户端
      LV_SEND_JSON     TYPE STRING, "发送的JSON
      LV_REC_JSON      TYPE STRING, "接收的JSON
      LV_AUTHORIZATION TYPE STRING,
      LV_CODE          TYPE I, "HTTP 返回状态
      LV_REASON        TYPE  STRING. " HTTP 状态描述

START-OF-SELECTION.

  CLEAR:LV_URL.
  LV_URL = 'https://hostname/oauth/oauth/token'.

  "创建http客户端
  CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
    EXPORTING
      URL                = LV_URL
    IMPORTING
      CLIENT             = LO_HTTP_CLIENT
    EXCEPTIONS
      ARGUMENT_NOT_FOUND = 1
      PLUGIN_NOT_ACTIVE  = 2
      INTERNAL_ERROR     = 3
      OTHERS             = 4.

  "不显示登录界面
  

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇从零搭建 ES 搜索服务(六)相关性排序优化kettle内存溢出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下Nodejs安装(完整详细)

node下载地址: http://nodejs.cn/download/ 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件。我就是按照网上源码的安装方式去操作编译后的文件,结果坑了好久好久。   (一) 编译好的文件     简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文...

Java 基础之详解 Java 反射机制

一、什么是 Java 的反射机制?   反射(Reflection)是Java的高级特性之一,是框架实现的基础,定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。  一般而言,当用户使用一个类的...

lua中table的遍历,以及删除

Lua 内table遍历 在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是: 1. ipairs for index, value in ipairs(table) do end 注:这种方式的遍历只会从key为1的地方开始,一直以key递增1的顺序来遍历,若找到一个递增不是1的key就结束遍历,无论后面...

根据IP查询所在城市接口(查询用户所在城市)

转自:https://blog.csdn.net/liona_koukou/article/details/75646313 最近项目有用到定位用户客户端打开页面时所在的城市的需求,找到如下接口,做个记录 文章为转载 设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php 腾讯IP地址查询接口:http:/...

设计模式之外观模式(门面模式)以及如何利用到接口设计中

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。  外观模式应用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。...

HTTP.SYS 远程执行代码漏洞分析(MS15-034 )

  在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows、Internet Explorer、Office、.NET Framework、Server软件、Office Services和Web Apps中存在的26个安全漏洞。其中就修复了HTTP.sys 中一处允许远程执行代码漏洞,编号为:CVE-2015...