No07.使用API獲取SAP S/4 HANA Cloud中的憑證行專案(二)
使用API獲取SAP S/4 HANA Cloud中的憑證行專案(二)
上述介面測試完成以後,在整個系統整合上具備了技術的可行性,因為日常工作用的比較多的就是Excel,在此處我們用VBA展示一下呼叫ODATA API的部分程式碼。
一 設定滿足需求的URL字串
,例如我們要查詢2020-12-01到2020-12-31日會計科目為6001010000、6001020000、6001030000、6002010000、6002020000、6002030000的程式碼為1310公司,程式碼為1310F1001工廠的所有資料。因為欄位比較多,我們只顯示其中的部分欄位。
下面展示一些 內聯程式碼片
。
https://myXXXX.saps4hanacloud.cn/sap/opu/odata/sap/API_GLACCOUNTLINEITEM/GLAccountLineItem/?$filter= (GLAccount eq '6001010000' or GLAccount eq '6001020000' or GLAccount eq '6001030000'or GLAccount eq '6051010000' or GLAccount eq '6051020000' or GLAccount eq '6051030000') and Ledger eq '0L' and PostingDate ge datetime'2020-12-01T00:00:00' and PostingDate le datetime'2020-12-31T00:00:00' and ProfitCenter eq '1310F001' and CompanyCode eq '1310' &$orderby=PostingDate&$select=CompanyCode,GLAccount,ReferenceDocument,AccountingDocument,AccountingDocumentType,PostingDate,PostingKey,AmountInCompanyCodeCurrency,TaxCode,ClearingAccountingDocument,ProfitCenter,Segment,DocumentItemText,AccountingDocumentItem,OffsettingAccount,Product,AssignmentReference,SoldProductGroup,Customer
把上述URL複製到Postman中進行測試,測試通過成功,證明我們拼接的URL地址是正確的!注意其中過濾條件的寫法。
&$filter=後面顯示的是過濾條件,例如日期欄位描述採用 PostingDate ge datetime‘2020-12-01T00:00:00’
指的是建立日期大於2020-12-01日. PostingDate le datetime‘2020-12-31T00:00:00’指的是建立日期小於2020-12-01日.
&$select=後面顯示的是需要列示的欄位,因為欄位比較多,只選擇需要的。
二 VBA中建立http請求
看程式碼
下面展示一些 內聯程式碼片
。
Dim req As WinHttp.WinHttpRequest
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.SetTimeouts 60000, 60000, 60000, 60000
req.Open "GET", url, False
req.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.SetRequestHeader "Username", "ODATAUSER"
req.SetRequestHeader "Password", "XXXXXXXXXX"
req.SetRequestHeader "Authorization", "Basic T0RBXXXXXXXXXXXXXXXXXXX="
req.SetRequestHeader "Accept", "application/json"
req.Send
getDataOfficial = req.ResponseText
三 使用正規表示式處理返回結果
'定義正規表示式,並清除其中的無用字元
Dim regexp As New regexp
Dim brr
With regexp
.Global = True
str1 = Trim(strJSON)
pt = """" & "([\s\S]+?)" & """" & ":" & """" & "([\s\S]*?)" & """"
.Pattern = pt
Set Match = .Execute(str1)
End With
四 小結
在接下來就是針對每條資料進行處理,包括欄位的列表顯示、修改顯示的格式、把UNIX時間戳格式轉為字元時間等。在此處就不再展示。
總之,利用Excel表中的VBA開發對接的介面,對於資料量不大的報表或業務單據的開發,開發速度和優勢是明顯的。
相關文章
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- 如何在 SAP BTP 上使用 Integration Suite 消費 S/4HANA Cloud APIUICloudAPI
- 使用函式BAPISDORDER_GETDETAILEDLIST讀取S/4HANA中Sales Order行專案資料函式APIAI
- SAP HANA,S/4HANA 和 SAP BTP 的辨析
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- 如何獲取 jenkins 中的憑證Jenkins
- SAP S/4HANA使用ABAP獲得生產訂單的狀態
- 如何在SAP S4HANA Cloud系統裡建立employeeCloud
- SAP S/4HANA中的採購簡化
- 哲訊分享:你不知道的SAP S/4HANA Cloud功能!Cloud
- SAP S/4 HANA 1809簡介
- SAP S4HANA BP初探
- SAP S/4HANA Cloud 系統整合的一些場景介紹Cloud
- SAP ECC,SAP HANA和SAP S/4HANA之間有什麼區別?
- SAP S4HANA LTMC Practice - the first shot!
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana
- 下一代智慧雲端ERP系統:SAP S/4HANA CloudCloud
- OData服務在SAP CRM,Cloud for Customer和S/4HANA上的實現比較Cloud
- SAP S/4HANA key user tool extensibility原理
- SAP S4HANA精華帖集錦
- SAP S4/HANA FICO都有哪些改變
- SAP S4HANA TR傳輸之操作
- SAP S/4HANA 2020安裝實錄
- SAP S/4HANA OData Mock Service 介紹Mock
- 深入瞭解SAP S4 HANA Business Partner
- 給某個 SAP S/4HANA 使用者分配 Business Role
- SAP S/4 HANA 與R3(ECC) 的區別
- SAP R/3,SAP ECC 和 SAP S/4HANA 的聯絡和區別
- SAP HANA Cloud 學習教程之二: 如何往SAP BTP 上 HANA Cloud 資料庫表裡插入資料Cloud資料庫
- SAP S/4HANA Cross Selling機制介紹ROS
- 如何使用Key User Tool擴充套件SAP S/4HANA Fiori UI套件UI
- SAP S4/HANA系統裡的客供件管理
- SAP HANA Cloud 學習教程之一: 如何在 SAP BTP 上建立 SAP HANA Cloud 例項Cloud
- 使用 csv 匯入的方式在 SAP S/4HANA 裡建立 employee 資料
- 後滲透:遠端憑證獲取
- 【Azure 雲服務】如何從Azure Cloud Service中獲取專案的部署檔案Cloud
- S/4 HANA 中的資料庫鎖策略資料庫
- SAP S/4HANA extensibility擴充套件原理介紹套件