1. 接口背景

    1. Request 有传入参数
    2. Receive是返回一个jpgURL
  2. 数据定义

DATA: lo_client TYPE REF TO if_http_client,

lo_request TYPE REF TO if_http_request,

lv_parameter TYPE string,

lv_parameter2 TYPE string.

DATA: lv_result TYPE string,

lv_errocode TYPE sysubrc,

lv_message TYPE string.

DATA: ls_config TYPE zwzert_id_inf,

lv_username   TYPE string,

lv_psw    TYPE string,

lv_url    TYPE string.

  1. 处理参数

lv_parameter = ' { '

& '"id": "=ID=",'

& '"caption": =TMC=, '

& '"layout": 3,'

& '"keywords": [ =KEYWORD=],'

& '"qr_code_url": null,'

& ' "third_party_mark": null,'

& ' "annual_ring_range": null,'

& ' "annual_ring_text": null,'.

lv_parameter2 =

' "output_format": 1,'

& ' "output_quality": 1,'

*    & ' "generate_zip": true,'

& ' "generate_zip": false,'

& ' "use_small_font": =FONT=,'

& ' "langs": ['

&  ' "=LANG=",'

&  ' "=LANG=",'

&   '"=LANG="'

*    & ' ]'

& ' ],'

& '"generate_jpg_instead_png":true'

& '}'.

lv_length = strlen( lv_parameter ).

CALL FUNCTION 'CONVERT_STRING_TO_TABLE'

EXPORTING

i_string         = lv_parameter

i_tabline_length = 80

TABLES

et_table         = lt_table.

  1. 发送JSON request

CALL METHOD cl_http_client=>create_by_url

EXPORTING

url                = lv_url

IMPORTING

client             = lo_client

EXCEPTIONS

argument_not_found = 1

plugin_not_active  = 2

internal_error     = 3

OTHERS             = 4.

lo_client->request->set_header_field( EXPORTING name = '~request_method' value = 'POST' ).

lo_client->request->set_header_field( EXPORTING name = '~request_protocol' value = 'HTTP/1.0' ).

lo_client->request->set_header_field( EXPORTING name = 'Content-Type' value = 'text/xml' ).

CALL METHOD lo_client->request->set_header_field

EXPORTING

name  = '~request_uri'

value = '/generator/tdcgenerator.svc/generator'.

lo_client->request->set_cdata( EXPORTING data  = lv_parameter offset = 0  length = lv_length ).

CALL METHOD lo_client->authenticate

EXPORTING

*      proxy_authentication = 'X'

*     client               =

username             = lv_username

password             = lv_psw

*     language             =

.

CALL METHOD lo_client->send

EXCEPTIONS

http_communication_failure = 1

http_invalid_state         = 2

http_processing_failed     = 3

http_invalid_timeout       = 4

OTHERS                     = 5.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  1. 接受反馈信息

CALL METHOD lo_client->receive

EXCEPTIONS

http_communication_failure = 1

http_invalid_state         = 2

http_processing_failed     = 3

OTHERS                     = 4.

CALL METHOD lo_client->get_last_error

IMPORTING

code    = lv_errocode

message = lv_message.

lv_result = lo_client->response->get_cdata( ).

  1. 处理URL

*JPG

FIND REGEX 'http.*jpg' IN lv_result

MATCH OFFSET lv_moff

MATCH LENGTH lv_mlen.

TRY .

ev_url = substring( val = lv_result off = lv_moff len = lv_mlen ).

CATCH cx_sy_range_out_of_bounds.

MESSAGE e151(zw).

ENDTRY.

lo_client->close( ).

SAP 与 JSON 接口实施案例二相关推荐

  1. SAP 与 JSON 接口实施案例一

    接口背景 Request 无参数 Receive是纯数据 变量定义 DATA: lo_client TYPE REF TO if_http_client, lo_request TYPE REF TO ...

  2. SAP 发布JSON接口

    SAP发布REST的JSON格式接口: 主要简单介绍一下SAP如何发布REST接口,并指定格式是JSON的. 创建服务处理类 服务处理类用于外部系统调用SAP服务(即sap接口)的时候,作为服务的处理 ...

  3. 《SAP CRM管理与实施指南》一一2.2 SAP CRM基础功能

    本节书摘来自华章计算机<SAP CRM管理与实施指南>一书中的第2章,第2.2节,作者:邹荫文 著,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 SA ...

  4. JAVA客户端调用SAP提供的接口(保姆级教程)

    目前接触到SAP提供了两种不同的接口,对应也有两种不同的调用方式:1.Restful接口,支持直接通过post请求调用:2.WSDL接口,需要使用SoapUI测试并生成代码调用.大家在对接前要先确认接 ...

  5. 【DevOps】DevOps如何落地实施(二)

    文章目录 参考资料 六.自动化测试 七.内建质量 八.技术债务 九.环境管理&部署管理 1.环境管理的挑战 2.低风险的发布手段 1)蓝绿部署 2)灰度发布 3)暗部署 十.混沌工程 十一.D ...

  6. java sap总账凭证接口_SAP系统接口自动生成会计凭证且无需记账码的方法与流程...

    本发明涉及sap系统接口自动生成会计凭证且无需记账码的方法,属于企业信息化管理技术领域. 背景技术: 在企业信息化管理领域,sap系统接口有着非常重要的意义,它担当着sap系统与其他信息系统的桥梁功能 ...

  7. 联想ERP项目实施案例分析(9) 工作方法总结

    联想ERP项目实施案例分析(9):工作方法总结 一.组织与授权 1.一把手工程 高层支持:集团总裁亲自点将"哪个平台没有按时上线,请区域总监主动将辞职报告放在我桌上"集团副总裁任项 ...

  8. 联想ERP项目实施案例分析(10):回到最初再反思IT价值

    联想ERP项目实施案例分析(10):回到最初再反思IT价值 投入上千万(未来每年的维护费也很高),投入一年实施时间,高级副总裁亲自挂帅,各级业务部门管理者亲自负责.骨干业务人员充当区域IT实施者/推进 ...

  9. 联想ERP项目实施案例分析(1):背景

    联想ERP项目实施案例分析(1):背景 一.需求触发 1.业务触发决心上线ERP: 1.1.曾经联想在信息系统不完善的情况下,出过上千万生产小料成本遗忘计算的事件.而更早一些的1996年,联想内部物料 ...

最新文章

  1. 创业之前,您应该好好听我说
  2. python unix时间戳格式化输出_python正常时间和unix时间戳相互转换的方法
  3. 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(一)
  4. 三个实例演示 Java Thread Dump 日志分析
  5. DNS视图及日志系统
  6. mysql keepalived双主双活_mysql高可用架构方案之中的一个(keepalived+主主双活)
  7. python中other_Python other
  8. 购物车单选全选,计算总价,出现个小问题,没找到.....
  9. 自动化学报-英文版-LaTeX模板
  10. 苏州计算机应用能力中级办公自动化,苏州市计算机应用能力考核(中级-办公自动化)新系统使用..doc_人人文库网...
  11. Excel,Word,PowerPoint2016通过命令行安装License过程
  12. 二进制加法器原理c语言,加法器电路原理_二进制加法器原理_与非门二进制加法器...
  13. 安卓游戏开发,vs win32到eclipse apk出现的跨平台问题
  14. Linux下查看SSD硬盘型号、大小等信息
  15. 14款S400升级20款S450外观套件
  16. 计算机图形学5--绘制基本图元
  17. 使用Python工具包Openpyxl进行Excel处理
  18. 最小二乘法直线拟合、圆拟合
  19. 群晖NAS下docker安装MySql
  20. 淘宝/天猫API:item_search_neighbors-邻家好货

热门文章

  1. 产品问答 | 3-5年的PM,如何提升竞争力?
  2. PMCAFF产品经理社区原创专栏,产品圈的干货看这儿就够了
  3. 【互联网今日大事儿记】春运抢票开始啦!
  4. 大连a货翡翠,东莞a货翡翠
  5. Swift 5将强制执行内存独占访问
  6. 【hadoop】20.MapReduce-InputFormat数据切片机制
  7. 人人商城v2获取头像出错多出132132
  8. CentOS6.5 gcc升级到4.8.2
  9. 移动端横屏返回后无法恢复原来大小解决方案
  10. generate random or regular test data in R