admin 管理员组文章数量: 887007
No07.使用API获取SAP S/4 HANA Cloud中的凭证行项目(二)
使用API获取SAP S/4 HANA Cloud中的凭证行项目(二)
- 一 设置满足需求的URL字符串
- 二 VBA中创建http请求
- 三 使用正则表达式处理返回结果
- 四 小结
上述接口测试完成以后,在整个系统集成上具备了技术的可行性,因为日常工作用的比较多的就是Excel,在此处我们用VBA展示一下调用ODATA API的部分代码。
一 设置满足需求的URL字符串
,例如我们要查询2020-12-01到2020-12-31日会计科目为6001010000、6001020000、6001030000、6002010000、6002020000、6002030000的代码为1310公司,代码为1310F1001工厂的所有数据。因为字段比较多,我们只显示其中的部分字段。
下面展示一些 内联代码片
。
/?$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.WinHttpRequestSet req = CreateObject("WinHttp.WinHttpRequest.5.1")req.SetTimeouts 60000, 60000, 60000, 60000req.Open "GET", url, Falsereq.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.SendgetDataOfficial = req.ResponseText
三 使用正则表达式处理返回结果
'定义正则表达式,并清除其中的无用字符Dim regexp As New regexpDim brrWith regexp.Global = Truestr1 = Trim(strJSON)pt = """" & "([\s\S]+?)" & """" & ":" & """" & "([\s\S]*?)" & """".Pattern = ptSet Match = .Execute(str1)End With
四 小结
在接下来就是针对每条数据进行处理,包括字段的列表显示、修改显示的格式、把UNIX时间戳格式转为字符时间等。在此处就不再展示。
总之,利用Excel表中的VBA开发对接的接口,对于数据量不大的报表或业务单据的开发,开发速度和优势是明显的。
本文标签: No07使用API获取SAP S4 HANA Cloud中的凭证行项目(二)
版权声明:本文标题:No07.使用API获取SAP S4 HANA Cloud中的凭证行项目(二) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732352215h1533413.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论