python驅動SAP完成數據導出(一)

寫在前面

  我們使用Python驅動SAP時,經常會需要導出一些SAP報表數據至本地Excel文件。這個看似簡單的問題背後,其實暗藏玄機,今天小爬就帶各位同學好好捋捋。

以事務代碼FB03(憑證清單)爲例,進入清單界面後,SAP會爲我們加載默認佈局,佈局決定了我們報表中顯示哪些字段,以什麼樣式來顯示,最後我們導出的表格樣式也大抵如此。

問題一:

  倘若默認佈局不是我們當前想要的(每個用戶的SAP界面針對特定事務代碼,默認佈局不盡相同,如果我們導出數據前不統一佈局,後續導出的excel文件模板就沒法統一,給後續的數據批量處理帶來諸多不便),我們又不想修改默認佈局,該怎麼做呢?

回答一:

  我們可以先預設一個統一的全局佈局,每次數據加載完後,我們的自動化腳本先設置佈局至我們想要的,然後再執行數據的導出;

 

 

 

問題二:

  爲啥SAP的佈局在不同賬號下呈現兩種界面樣式,該如何處理(示例界面:FAGLB03)?

 

 

 

回答二:

  我們可以點擊【選擇佈局】後,判斷彈窗的窗口標題,因爲兩種佈局界面下的標題不一樣。我們可以判斷當前佈局所屬的樣式,再決定是否自動點擊SAP菜單欄的【設置】-【切換清單】。將佈局樣式一調整爲樣式二之後,再來進行後續的自動化操作。

 

 

問題三:

  爲啥佈局要先自動切換到【界面樣式二】模式,該模式方便在哪兒?

回答三:

  我們通過之前系列【python驅動SAP完成自動化】文章中提到的Tracker工具,利用其Analyser功能,得到兩者的佈局界面(ID:/app/con[0]/ses[2]/wnd[1])的分佈:

 

 

 

 

 由於佈局樣式二的界面主體是GridView,它可以通過GetCellValue方法快速得到某個Cell(類似於單元格)的值,從而方便我們快速基於佈局名稱,定位並切換到想要的佈局;與之對應,佈局樣式一的主體是GuiLabel對象,遍歷每行佈局相對沒有那麼方便。

 

 

 

 不難看出,SAP的GUI自動化並不是一招鮮,喫遍天,真正實踐時有太多的細節需要我們關注,希望看了這篇文章,你們可以少踩坑,快速積累實戰經驗!

快來掃碼關注我的公衆號 獲取更多爬蟲、數據分析的知識!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章