共用方式為


使用 Power Automate 從 SAP GUI UI 擷取資料

當您在 SAP 中建立或更新記錄時,會產生狀態資訊,其中包含新產生的記錄識別碼。 SAP 會在 SAP UI 的下半部顯示此狀態資訊。

以下是在您建立 SAP PM 通知後,SAP 會顯示的狀態訊息範例。

在儲存新記錄後產生 SAP 通知識別碼的螢幕擷取畫面。

此狀態資訊對後續自動化處理步驟可能會很實用。 因此,您應該擷取此狀態資料,並將其指派給變數以進行下游資料處理。

根據您的開發方式,我們可使用多種方法來達成此目標。 有低程式碼專業程式碼技術等兩種方法。

專業程式碼方法

專業程式碼方法使用 VBScript 命令,從 SAP UI 元素中擷取資訊。

若要擷取 SAP 狀態資料 (如新建立的採購申請或植物維護通知編號),您需要存取狀態列 UI 元素。

以下是您存取狀態列 UI 元素的方式。

session.findById("wnd\[0\]/sbar/pane\[0\]").Text

讓我們逐步說明端對端體驗。 我們將記錄如何建立 SAP PM 通知,以及修改已產生的程式碼,並將新建立的識別碼傳回至 Power Automate Desktop。

如果您從沒聽說 SAP 的 PM 通知或您無法存取它,請不要擔心,您仍然可以瞭解為自己的案例擷取這類資料所需的步驟。

以下是步驟:

  1. 確認所有 SAP GUI 指令碼設定均已完成。

  2. 開啟 SAP 登入,並選取您要登入的 SAP 系統。

    SAP Login 760 的螢幕擷取畫面。

  3. 選取自訂本機配置 (Alt+F12),然後選取指令碼錄製和播放...

    SAP 輕鬆存取系統的螢幕擷取畫面。

  4. 選取其他

  5. 儲存至下,提供您要儲存已擷取使用者互動的檔案路徑和檔案名稱。

    在 [錄製並播放] 對話方塊中儲存錄製檔案的螢幕擷取畫面。

  6. 選取錄製指令碼按鈕開始畫面擷取程序。 現在,您在 SAP 中執行的每個互動都會當作可重複的 VBScript 命令進行擷取。

    注意

    若之前已錄製步驟並儲存到此檔案,則需要確認是否要複寫該檔案。

  7. 輸入交易程式碼 IW21,然後選取輸入

  8. 提供通知類型,然後選取輸入

  9. 輸入簡短文字Planner 群組主要 WorkCtr,和您需要的任何其他欄位。

    已完成且已準備儲存之 SAP 通知記錄的螢幕擷取畫面。

  10. 在工具列上選取儲存 (Ctrl+S)。

  11. 返回建立 PM 通知初始表單,您會在 UI 左下角的狀態列中發現新的狀態訊息。

    在儲存新記錄後產生 SAP 通知識別碼的螢幕擷取畫面。

  12. 在工具列上選取退出 (Shift+F3),然後停止錄製

  13. 或者,從 SAP 登出並關閉所有 SAP 視窗。

讓我們檢查產生的 VBScript 程式碼:

在 SAP 通知建立期間產生的 VBScript 螢幕擷取畫面。

SAP 通知建立期間所產生 VBScript 的螢幕擷取畫面 If Not IsObject application Then Set SapGuiAuto GetObject quot SAPGUI quot Set application SapGuiAuto GetScriptingEngine End If If Not IsObject connection Then Set connection application Children 0 End If If Not IsObject session Then Set session connection Children 0 End If If IsObject WScript Then WScript ConnectObject session quot on quot WScript ConnectObject application quot on quot End If session findById quot wnd 0 quot maximize session findById quot wnd 0 tbar 0 okcd quot text quot IW21 quot session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr ctxtRIWO00 QMART quot text quot M2 quot session findById quot wnd 0 usr ctxtRIWO00 QMART quot caretPosition 2 session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr subSCREE shortened command quot text quot My Notification Short Text quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 010 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 0001 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot MAIN quot session findById quot wnd 0 usr tabsTAB_ shortened command quot setFocus session findById quot wnd 0 usr tabsTAB_ shortened command quot caretPosition 4 session findById quot wnd 0 tbar 0 btn 11 quot press session findById quot wnd 0 tbar 0 btn 15 quot press。

現在,讓我們調整產生的程式碼,以包括擷取、修剪並將新的通知識別碼傳回執行 VBScript 動作的步驟。

透過變數將 SAP 通知傳回至 Power Automate Desktop 之調整後 VBScript 的螢幕擷取畫面。

透過變數將 SAP 通知傳回至 Power Automate Desktop 之調整後 VBScript 的螢幕擷取畫面 39 This is the Save button session findById quot wnd 0 tbar 0 btn 11 quot press 39 This is the full Status Bar text that contain the data to be extracted statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Trimming and removing any text surrounding our new notification Id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 This is the Exit button session findById quot wnd 0 tbar 0 btn 15 quot press 39 This writes the newly created Id to the Run VBScript output variable in Power Automate Desktop WScript Echo notificationID.

這會將執行 VBScript 動作的 VBScriptOutput 變數設定為新建立的通知識別碼。

顯示 [執行 VBScript 動作] 對話方塊的螢幕擷取畫面,其中醒目提示已啟用 SAP 狀態列文字擷取的指令碼。

如果您想查看 VBScriptOutput 的內容,可以使用 [顯示訊息] 動作,類似下圖中的輸出。

顯示具有 VBScriptOutput 內容的偵錯顯示訊息螢幕擷取畫面。

顯示訊息動作及其參數的螢幕擷取畫面。

低程式碼方法

低代碼方法使用動作和自訂選擇器來擷取新產生的記錄識別碼,或其他對下游流程處理很重要的狀態訊息。

下列步驟將不會詳細描述如何記錄或使用手動動作設計來建立新的 SAP PM 通知記錄。 如果您需要進行複習,請檢閱低程式碼Power Automate Desktop 中具有 SAP GUI 的無程式碼 RPA

請遵循以下步驟來處理低程式碼方法:

  1. 使用桌面記錄器或手動動作設計,以擷取 SAP PM 通知程序所需的所有控制項。

  2. 建立通知記錄,並擷取在建立 PM 通知畫面的工具列上選取儲存後出現的狀態文字。

    顯示具有醒目提示 [儲存] 按鈕完整通知記錄的螢幕擷取畫面。

    儲存項目之後,您將會重新導向至先前的畫面,您應該會在狀態列文字中看到新的通知編號。

  3. 現在,返回 Power Automate Desktop,搜尋名為取得視窗中 UI 元素的詳細資料動作,並將它新增至您的製作畫布。

  4. 選取 [UI 元素] 下拉式功能表,然後選取新增UI 元素按鈕。

    顯示 [取得視窗中 UI 元素的詳細資料] 動作對話方塊的螢幕擷取畫面。該對話方塊的 [UI 元素] 下拉式功能表已展開,等待輸入。

  5. 選取 SAP 輕鬆存取視窗,並將滑鼠箭頭懸停在狀態列上,直到出現標示為 Gui 狀態列的紅色邊框。 當邊框為使用中時,請按住 Ctrl 鍵,然後點選以選取該狀態列。

    顯示 SAP 畫面的螢幕擷取畫面,包含列出通知識別碼和 Power Automate Desktop 追蹤工作階段以及所選控制項的狀態訊息。

  6. 選取儲存

    顯示 [取得視窗中 UI 元素的詳細資料] 動作對話方塊和所選 UI 元素的螢幕擷取畫面。

  7. 動作窗格中搜尋取代文字動作,並將它拖曳至設計畫布。

  8. 要尋找的文字中,輸入通知。 在取代為下,透過輸入以下字元來輸入空白字串:%''%

    顯示具有指定參數的 [取代文字] 動作對話方塊螢幕擷取畫面。

  9. 新增另一個取代文字動作,並將產生的變數重新命名為 %NotificationId%。 在要尋找的文字中,輸入儲存,然後在取代為下,輸入空白字串 (%''%)。

    顯示具有指定參數的其他 [取代文字] 動作對話方塊螢幕擷取畫面。

  10. 動作窗格上搜尋修剪文字動作,並將它拖曳至設計畫布,將 %NotificationId% 選為要修剪的文字值,並將產生的變數重新命名為 %TrimmedNotificationID%

    顯示具有指定參數的 [修剪文字] 動作對話方塊螢幕擷取畫面。

  11. 動作窗格中搜尋顯示訊息動作,並將它拖曳至設計畫布。 設定訊息方塊標題要顯示的訊息以滿足您的需求。

    顯示具有指定參數的 [顯示訊息] 動作對話方塊螢幕擷取畫面。

  12. 執行建立新 SAP PM 通知的自動化,並擷取其新產生的通知識別碼,其顯示內容如下圖所示。

    顯示正在執行 Power Automate Desktop 指令碼的螢幕擷取畫面,該指令碼透過顯示訊息輸出新建立通知識別碼。