SAP調用api

之前是把SAP程序封裝成api,然后又接到了需求是sap調用其他api,直接上代碼吧
?

FUNCTION ZRFC_PP_016.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(CHARG) TYPE  CHARG_D
*"  EXPORTING
*"     VALUE(STATUS) TYPE  STRING
*"     VALUE(CODE) TYPE  STRING
*"     VALUE(MESSAGE) TYPE  STRING
*"     VALUE(DATA) TYPE  STRING
*"     VALUE(LOCATION) TYPE  STRING
*"----------------------------------------------------------------------DATA:lo_http_client TYPE REF TO if_http_client,lv_json_out    TYPE string,lv_json_in     TYPE string,lv_url         TYPE string,lv_len         TYPE i,lv_json        TYPE string,lv_json1       TYPE string,lv_json_list   TYPE string.TYPES:tt_string_list TYPE TABLE OF string WITH DEFAULT KEY,BEGIN OF ty_charg,systemlot TYPE tt_string_list,END OF ty_charg.DATA:ls_charg TYPE ty_charg." 1. 定義 list 的行結構TYPES: BEGIN OF ty_list,systemLot TYPE string,  " 批次號location  TYPE string,  " 位置END OF ty_list." 2. 定義 list 內表類型(兼容舊版本)TYPES: tt_list TYPE STANDARD TABLE OF ty_list WITH DEFAULT KEY." 3. 定義 data 子結構TYPES: BEGIN OF ty_data,count TYPE i,        " 數量list  TYPE tt_list,  " 列表數據END OF ty_data." 4. 定義主結構TYPES: BEGIN OF ty_json,status  TYPE abap_bool,  " 狀態 (true/false)code    TYPE string,     " 狀態碼message TYPE string,     " 消息文本data    TYPE ty_data,    " 數據內容END OF ty_json." 5. 聲明數據結構DATA: ls_json TYPE ty_json.DATA: ls_item TYPE ty_list.  " 使用之前定義的 list 行類型*填入URL:lv_url = '這里填寫api'.*1)創建客戶端請求CALL METHOD cl_http_client=>create_by_urlEXPORTINGurl                = lv_urlIMPORTINGclient             = lo_http_clientEXCEPTIONSargument_not_found = 1plugin_not_active  = 2internal_error     = 3OTHERS             = 4.IF sy-subrc NE 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITHsy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.*2)轉換成JSON格式APPEND charg TO ls_charg-systemlot.CALL METHOD zcl_json=>serializeEXPORTINGdata   = ls_chargRECEIVINGr_json = lv_json.*3)設定傳輸請求內容格式以及編碼格式CALL METHOD lo_http_client->request->set_header_fieldEXPORTINGname  = 'content-Type'value = 'application/json; charset=utf-8'.*4)設定調用方式CALL METHOD lo_http_client->request->set_method( 'POST' ).*5)設置傳入字符串lv_json_out = lv_json.lv_len = STRLEN( lv_json_out ).CALL METHOD lo_http_client->request->set_cdataEXPORTINGdata   = lv_json_outoffset = 0length = lv_len.*6)發送數據lo_http_client->send(EXCEPTIONShttp_communication_failure = 1http_invalid_state = 2 ).*7)接收數據CALL METHOD lo_http_client->receiveEXCEPTIONShttp_communication_failure = 1http_invalid_state         = 2http_processing_failed     = 3.*8)讀取數據lv_json = lo_http_client->response->get_cdata( ).*9)解析數據CALL METHOD zcl_json=>deserializeEXPORTINGjson = lv_jsonCHANGINGdata = ls_json.IF ls_json-status IS NOT INITIAL.status = ls_json-status.ENDIF.IF ls_json-code IS NOT INITIAL.code = ls_json-code.ENDIF.IF ls_json-message IS NOT INITIAL.message = ls_json-message.ENDIF.IF ls_json-data IS NOT INITIAL.
*   data = ls_json-data.
*取值
*    location = ls_json-data-list-location.LOOP AT ls_json-data-list INTO ls_item.location = ls_item-location.ENDLOOP.ENDIF.ENDFUNCTION.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84726.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Idea/Pycharm用法總結

在目錄里展開當前文件

Python打卡訓練營Day56

DAY 56 時序數據的檢驗 知識點回顧: 假設檢驗基礎知識 原假設與備擇假設P值、統計量、顯著水平、置信區間 白噪聲 白噪聲的定義自相關性檢驗:ACF檢驗和Ljung-Box 檢驗偏自相關性檢驗:PACF檢驗 平穩性 平穩性的定義單位根檢驗 季節性檢驗 ACF檢…

[GESP202312 五級] 烹飪問題

題目描述 有 N N N 種食材,編號從 0 0 0 至 N ? 1 N-1 N?1,其中第 i i i 種食材的美味度為 a i a_i ai?。 不同食材之間的組合可能產生奇妙的化學反應。具體來說,如果兩種食材的美味度分別為 x x x 和 y y y ,那么它們…

JSON Mock 工具:從接口模擬到前端聯調(二)

JSON Mock 工具:模擬JSON API 接口(一)-CSDN博客 上一篇學習到,JSON Mock 工具,是用于模擬返回 JSON 數據的 API 接口,解決后端接口未就緒時前端無法開發測試的問題,實現 “無后端依賴” 的前端…

質量小議55 - 搜索引擎與AI

先有搜索引擎(谷歌、百度),后有AI(chatGPT,deepSeek,文心一主,CSDN助手) 慢慢的百度用的少了,更多的是直接向AI工具提問 雖然搜索引擎也有了AI版的結果,而且是置頂的,但更多的時間在用A…

Life:Internship in OnSea Day 0

Prolog This will be a new serial Blog to record my internship life in OnSea(I like this straightly translation of hell divers). As usual,這些 Blogs 主要還是給 自分自身 看的,以便日后考古自己的 career。 既然已經這個系列歸類到了 Life 類…

ChangeNotifierProvider 本質上也是 Widget

場景 void main() {runApp(MyApp()); }class MyApp extends StatelessWidget {const MyApp({super.key});overrideWidget build(BuildContext context) {return ChangeNotifierProvider(create: (context) > MyAppState(),child: MaterialApp(title: Namer App,theme: Them…

【軟考高級系統架構論文】論負載均衡技術在Web系統中的應用

論文真題 負載均衡技術是提升Web系統性能的重要方法。利用負載均衡技術,可將負載(工作任務)進行平衡、分攤到多個操作單元上執行,從而協同完成工作任務,達到提升Web系統性能的目的。 請圍繞“負載均衡技術在Web系統中的應用”論題&#xff…

pyqt5工具-串口調試工具

目錄 功能界面代碼功能 串口設置:支持選擇串口、波特率、數據位、停止位和校驗位 串口操作:掃描串口、打開 / 關閉串口連接 數據收發: 支持文本和 Hex 模式顯示與發送 可設置自動添加換行符 接收區自動滾動 支持中文顯示 輔助功能:清空接收區、狀態欄顯示連接狀態 多串口管…

Mybatis-Plus支持多種數據庫

使用Mybatis-Plus進行數據庫的訪問,但是由于不同的數據庫有不同的方言,所以需要進行適配。 有2種實現方式: databaseId方式Mapper Location方式 指定databaseId方式 通過databaseId指定所使用的數據庫,選擇同步的SQL。 Mappe…

【系統分析師】2018年真題:綜合知識-答案及詳解

【第1題】 面向對象分析中,對象是類的實例。對象的構成成分包含了(1),屬性和方法(或操作)。 (1)A.標識 B.消息 C.規則 D.結構 【解析】本題考查的是面向對象的基本概念 對象的三要素為:屬性…

從Git歷史中刪除大文件的完整解決方案

從Git歷史中刪除大文件的完整解決方案 當你意外提交了一個大文件導致無法推送到遠程倉庫時,可以按照以下步驟徹底從Git歷史中刪除這個大文件。 情況分析 首先確認你的問題屬于以下哪種情況: 大文件在最近一次提交中:相對容易處理大文件在…

[xiaozhi-esp32] 應用層(9種state) | 音頻編解碼層 | 雙循環架構

第三章:應用層 在第一章:開發板抽象層中,我們實現了硬件交互標準化;在第二章:通信協議層中,我們構建了云端通信橋梁。 現在需要將這些能力有機整合——這便是應用層的使命 應用層的本質 應用層是設備的…

Java 鎖升級的過程詳解

Java 鎖升級的過程詳解 Java 虛擬機(JVM)為了提高多線程并發的效率,對內置鎖(synchronized 關鍵字)的實現進行了一系列優化。這些優化體現在鎖的升級過程中,即當競爭程度從低到高變化時,鎖的狀態會從偏向鎖逐漸升級為輕量級鎖,最終升級為重量級鎖。這個過程是不可逆的…

使用vitis tcl腳本構建vitis app工程

一:最近重新學習了zynq系列開發,想著使用tcl創建工程,因此分享一下腳本例子 #!/bin/bashsource /tools/Xilinx/Vitis/2022.2/settings64.sh cd ../../ . ./script/project.sh cd app/script #tcl腳本只能在虛擬機桌面執行 xsct build_vitis…

電腦商城--購物車

加入購物車 1 購物車-創建數據表 1.使用use命令先選中store數據庫。 USE store; 2.在store數據庫中創建t_cart用戶數據表。 CREATE TABLE t_cart (cid INT AUTO_INCREMENT COMMENT 購物車數據id,uid INT NOT NULL COMMENT 用戶id,pid INT NOT NULL COMMENT 商品id,price BIG…

2024-2025學年度下期《網頁設計》期末模擬測試

一、 單選題 1. HTML文檔的根標簽是( ) A. <html> B. <head> C. <body> D. <!DOCTYPE> 2. 用于定義段落內容的標簽是&#xff1a;( ) A. <div> B. <p> C. <span> D. <br> 3. 網以下哪個屬性用于定義CSS內聯樣式…

搭建加解密網站遇到的問

本機向云服務器傳輸文件 用winscp 服務器在安裝 SSH 服務時自動生成密鑰對&#xff08;公鑰私鑰&#xff09; 為什么要有指紋驗證&#xff1f; 防止中間人攻擊&#xff08;Man-in-the-Middle&#xff09; 指紋驗證打破這個攻擊鏈&#xff1a; 小問題 安裝python時 ./confi…

CSS 制作學成在線網頁

1 項目結構 1.1 總結 2 網頁制作思路 3 header 區域 - 布局 3.1 通欄 3.2 logo 3.3 導航 3.4 搜索區域 3.5 用戶區域 4 banner 區域 4.1 左側側導航 4.2 右側課程表 5 精品推薦 6 推薦課程區域 參考鏈接&#xff1a; 82-準備工作-項目目錄與版心_嗶哩嗶哩_bilibili

圖靈完備之路(數電學習三分鐘)----門的多路化

上一章中我們學習了如何用與非門實現其他邏輯門&#xff0c;但上節中的輸入信號始終為2&#xff0c;但在現實中&#xff0c;輸入的信號數量是不確定的&#xff0c;所以我們需要設計多輸入的門&#xff1a; 1.三路與非門&#xff08;卡諾圖法&#xff09; 我們還是從與非門開始…