次の方法で共有


SAP GUI からデータを抽出するPower Automate

SAP でレコードを作成または更新すると、新しく生成されたレコード ID を含むステータス情報が生成されます。 SAP は、このステータス情報を SAP UI の下部に表示します。

SAP PM 通知を作成した後に SAP が表示するステータスメッセージの例を次に示します。

新しいレコードの保存後に生成された SAP 通知 ID のスクリーンショット。

このステータス情報は、後の自動化プロセスの手順に役立つ場合があります。 したがって、このステータス データを抽出して、ダウンストリーム データ処理用の変数に割り当てる必要があります。

開発アプローチに応じて、これを実現する方法は複数あります。 2 つのアプローチは、ローコード または プロコード のテクニックです。

プロ コード アプローチ

プロ コード アプローチでは、VBScript コマンドを使用して SAP UI 要素から情報を抽出します。

新しく作成された購買依頼やプラント保全通知番号などの SAP ステータスデータを抽出するには、ステータス バー UI エレメントにアクセスする必要があります。

ステータス バーの UI 要素にアクセスする方法は次のとおりです。

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

エンド ツー エンドのエクスペリエンスを見ていきましょう。 SAP PM 通知を作成する方法を記録し、生成されたコードを変更して、新しく作成された ID を Power Automate Desktop に返す方法を記録します。

SAP の PM 通知について聞いたことがなかったり、SAP 通知にアクセスできない場合でも、独自のシナリオに対してそのようなデータを抽出するために必要な手順は理解できますので心配は要りません。

ステップは次のようになります。

  1. すべての SAP GUI スクリプト構成 が完了したことを確認してください。

  2. SAP ログオン を開き、次に、ログインする SAP システムを選択します。

    SAP ログイン 760 のスクリーンショット。

  3. ローカル レイアウトのカスタマイズ (Alt+F12) を選択して、次に スクリプトの記録と再生 を選択します。

    SAP Easy Access システムのスクリーンショット。

  4. その他 を選択します。

  5. 保存先 で、キャプチャされたユーザー インタラクションを保存するファイル パスとファイル名を提供します。

    [記録と再生] ダイアログで記録ファイルを保存するスクリーンショット。

  6. スクリプトを記録する ボタンを選択して、画面キャプチャ プロセスを開始します。 ここで SAP で行うすべての対話は、繰り返し可能な VBScript コマンドとしてキャプチャされます。

    Note

    以前に歩数を記録してこのファイルに保存したことがある場合は、ファイルを上書きするかどうかを確認する必要があります。

  7. トランザクション コード IW21 を入力し、入力 を選択します。

  8. 通知タイプ を提供して、次に 入力 を選択します。

  9. ショート テキストプランナー グループメイン WorkCtr、およびその他の必要なフィールドを入力します。

    保存する準備ができている完成した SAP 通知レコードのスクリーンショット。

  10. ツールバーで、保存 (Ctrl+S) を選択します。

  11. PM 通知 を作成する イニシャル フォームに戻ると、UI の左下隅にあるステータス バーに新しいステータス メッセージが表示されます。

    新しいレコードの保存後に生成された SAP 通知 ID のスクリーンショット。

  12. ツールバーで 終了 (シフト+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.

ここで、生成されたコードを調整して、新しい通知 ID を抽出、トリミング、および VBScript を実行する アクションに返すステップを含めます。

変数を介して SAP 通知を Power Automate デスクトップに返す調整済み VBScript のスクリーンショット。

変数を介して SAP 通知を Power Automate デスクトップに返す調整済みの 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 変数を新しく作成された通知 ID へ設定します。

SAP ステータス バーのテキスト抽出を有効にするスクリプトが強調表示された [VBScript を実行] アクション ダイアログを示すスクリーンショット。

VBScriptOutput の内容を確認する場合は、次の画像の出力のように、メッセージの表示アクションを使用できます。

VBScriptOutput の内容を含むデバッグ表示メッセージを示すスクリーンショット。

メッセージ表示アクションとそのパラメーターを示すスクリーンショット。

ロー コード アプローチ

ローコードアプローチでは、アクションとカスタム セレクターを使用して、ダウンストリーム フロー処理に重要な新しく生成されたレコード ID またはその他のステータス メッセージを抽出します。

次の手順では、手動アクション設計を記録または使用して新しい SAP PM 通知レコードを作成する方法については詳しくは説明しません。 それを行う方法について復習が必要な場合は、ローコード または Power Automate デスクトップで SAP GUI を使用したノーコード RPA を参照してください。

ロー コード アプローチの場合は、次の手順に従います。

  1. デスクトップ レコーダーまたは手動アクション デザインを使用して、SAP PM 通知プロセスに必要なすべてのコントロールをキャプチャします。

  2. 通知レコードを作成し、PM 通知を作成する 画面のツールバーに 保存 を選択した後に表示されるステータス テキストをキャプチャします。

    [保存] ボタンが強調表示された、完了した通知レコードを示すスクリーンショット。

    アイテムが保存されると、前の画面にリダイレクトされ、ステータス バーのテキストに新しい通知番号が表示されます。

  3. さて、Power Automate Desktop に戻って、ウィンドウ内の UI 要素の詳細を取得する という名前のアクションを検索して、それをオーサリング キャンバスに追加します。

  4. UI 要素のドロップダウンメニューを選択してから、新規 UI 要素を追加する ボタンを選択します。

    ウィンドウ アクション ダイアログでの UI 要素の詳細の取得を示すスクリーンショット。ダイアログでは、UI 要素のドロップダウン メニューが展開され、入力を待機しています。

  5. SAP Easy Access ウィンドウを選択し、赤い境界線の GUI ステータスバー が表示されるまでステータス バーにカーソルを合わせます。 境界線がアクティブな間、Ctrl を長押しし、クリックしてステータス バーを選択します。

    コントロールを選択した通知 ID と Power Automate Desktop 追跡セッションをリストしたステータス メッセージがある SAP 画面を示したスクリーンショット。

  6. 保存を選択します。

    UI 要素を選択したウィンドウ アクション ダイアログで UI 要素の詳細を取得することを示すスクリーンショット。

  7. アクション ペインで テキストを置き換え を検索して、それをデザイン キャンバスにドラッグします。

  8. 見つけるテキスト で、通知 を入力します。 置換先 で、%''% の文字を入力して空白の文字列を入力します。

    パラメータが指定された [テキストの置換] アクション ダイアログを示すスクリーンショット。

  9. 別の テキストの置き換え アクションを追加して、生成された変数%NotificationId% に名前を変更します。 見つけるテキスト で、保存 を入力して、置換先 で、空白の文字列 (%''%) を入力します。

    パラメータが指定された他の [テキストの置換] アクション ダイアログを示すスクリーンショット。

  10. アクション ペインで テキストをトリミングする を検索して、それをデザイン キャンバスにドラッグし、%NotificationId%トリミングするテキスト 値として選択して、生成された変数%TrimmedNotificationID% に名前を変更します。

    パラメータが指定された [テキストのトリミング] アクション ダイアログを示すスクリーンショット。

  11. アクション ペインで メッセージの表示 を検索して、それをデザイン キャンバスにドラッグします。 メッセージ ボックスのタイトル表示するメッセージ を自分のニーズに合うように設定します。

    パラメータが指定された [メッセージの表示] アクション ダイアログを示すスクリーンショット。

  12. 新しい SAP PM 通知を作成し、次の図に示すように表示できる、新しく生成された通知 ID を抽出するオートメーションを実行します。

    新しく作成された通知 ID を表示メッセージで出力する、実行中の Power Automate Desktop スクリプトを表示するスクリーンショット。