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 BTP 上使用 Integration Suite 消費 S/4HANA Cloud APIUICloudAPI
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- 使用函式BAPISDORDER_GETDETAILEDLIST讀取S/4HANA中Sales Order行專案資料函式APIAI
- SAP S/4 HANA OverviewView
- 如何在SAP S4HANA Cloud系統裡建立employeeCloud
- 哲訊分享:你不知道的SAP S/4HANA Cloud功能!Cloud
- SAP S4HANA BP初探
- SAP S/4 HANA On-Premise implementationREM
- SAP S4 HANA - What is it all about?
- SAP S/4HANA Cloud 系統整合的一些場景介紹Cloud
- SAP ECC,SAP HANA和SAP S/4HANA之間有什麼區別?
- 下一代智慧雲端ERP系統:SAP S/4HANA CloudCloud
- SAP S4HANA TR傳輸之操作
- SAP S/4HANA OData Mock Service 介紹Mock
- SAP S/4 HANA 1809簡介
- SAP S/4 HANA FINANCE New Transaction CodesNaN
- SAP S/4 HANA - Simple, Scalable, Sustainable and Smart!AI
- Deliver projects in 100% of the time with SAP S/4 HANAProject
- 與基於 SAP HANA 的 SAP Business Suite 相比,SAP S/4HANA 的真正創新之處在哪裡?UI
- What to Expect When Moving From SAP Business Suite to SAP S/4 HANAUI
- SAP S/4 HANA 與R3(ECC) 的區別
- SAP HANA Cloud 學習教程之二: 如何往SAP BTP 上 HANA Cloud 資料庫表裡插入資料Cloud資料庫
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana
- SAP R/3,SAP ECC 和 SAP S/4HANA 的聯絡和區別
- SAP HANA Cloud 學習教程之一: 如何在 SAP BTP 上建立 SAP HANA Cloud 例項Cloud
- SAP S/4HANA key user tool extensibility原理
- How SAP S/4 HANA Finance improves your Profitability Management?NaN
- SAP S/4HANA FINANCE New Transaction CodesNaN
- 如何使用Key User Tool擴充套件SAP S/4HANA Fiori UI套件UI
- 後滲透:遠端憑證獲取
- SAP S4/HANA系統裡的客供件管理
- OData服務在SAP CRM,Cloud for Customer和S/4HANA上的實現比較Cloud
- SAP R/3 中會計憑證和物料憑證的對應關係
- 使用 csv 匯入的方式在 SAP S/4HANA 裡建立 employee 資料
- S/4 HANA 中的資料庫鎖策略資料庫
- The SAP Business Suite 4 SAP HANA FAQUI
- SAP S/4 HANA新變化-CO技術變化