業務場景:
有些時候,我們會需要批量的將SAP B1系統中的幾千條的數據刪除或者取消單據,這個時候,一條條去操作,指定是到猴年馬月了。SAP Business One本身提供了DTW這個工具,但是這個更新,可以操作新增、更新數據,不能刪除和取消數據,所以當想要刪除和取消數據的時候,就沒辦法了。
解決方案:
SAP Business One在10.0之后,SqlServer版本也提供了Service Layer接口,我們可以通過postman批量進行操作了。
1、打開postman,從官網自己下載postman即可。
2、在postman當中,新建一個的Blank?collection,然后可以將其進行重命名。記得新建一個變量,我這里給命名了Code,所有的操作一定要記得save保存一下。
3、然后添加接口信息,選擇剛剛新添加的Blank collection后面的三個點,選擇Add request。
PS:最起碼需要有倆接口,一個是SAP的登錄接口,一個是要需要或者刪除的接口。具體接口信息可以從SAP網站里面查詢(Service Layer API Reference);也可以從自己的服務器里查詢,只要安裝了Service Layer服務(https:IP//:50000/Service%20Layer%20API%20Reference.html)
4、將對應的登錄接口加進去,登錄接口地址,使用POST方法,在Body里加進去對應的登錄信息。
CompanyDB | SAP的賬套 |
Password | SAP的賬套的登錄密碼 |
UserName | SAP的賬套的登錄用戶 |
Language | 語言中文是15,加了之后后續的一些報錯可以以中文展示 |
5、然后試著登錄一下,將登錄成功的狀態記錄一下,然后放到Scripts里,比如這個登錄是200OK,那就200放到status(200)里,這里做為后面判定接口是否執行成功的依據。操作完成了一定記得save一下。
6、從接口文檔里查詢對應的刪除接口,比如我要刪除物料主數據,這里顯示需要使用delete,然后加主鍵。
7、我們在postman里將這個方法放進去。這個地方需要輸入對應的變量,用{{}}大括號給括起來,SAP接口文檔里顯示需要用單引號,所以我們也記得要用單引號。這個Scripts里的內容我已經測試了是204,所以我就直接填寫了,別的接口,需要自己先用一條數據測試下,看看成功的狀態是多少。
8、這個時候需要用Excel整理一份待刪除的數據,只需要整理主鍵就可以了。Excel中的列名,要和變量名一致。比如有以下幾條數據需要刪除,然后另存為CSV的格式。
Code |
Z00003 |
Z00004 |
Z00005 |
Z00006 |
9、然后在postman當中,run一下。
10、選擇對應的文件,然后運行。
11、然后就會顯示對應的結果,這個結果的判定,就是咱們上面每個接口里錄入的Scripts的status。
備注:操作每一步,一定要Save一下。