5.SAPシステムを動かす2
SAP関連コードの作り方
4章で説明したように座標、アクション(テキスト入力、読み取りやチェックボックスのチェック等)の調べ方を説明します。
実はSAPにはエクセルマクロ記録のように行った操作を記録してくれる機能が付いています!この機能が付いているということは、SAP自体も自動化を推奨していると言えます。
●SAP自動化の手順↓
1
23
45
67
89
エクセルで変換ファイルを作成しましたが、馴れてくると手動で編集する方が楽です。
VBScriptを実行する前にSAP上の設定でスクリプト利用の解除を行います
解除は以下の手順です。
オプションから
アクセシビリティ&スクリプト→スクリプト→赤枠チェックを図のようにする
このVBScriptを実行すると(ダブルクリック)、先ほど行った操作がものすごい速度で再現されます。
VBScriptを編集するとエクセルや様々なソフトと連携出来ますが、現時点ではpowershellの出現、ie11ではデフォルトで無効となっていたりと、マイナーな言語になって言っております。VBScriptにはVBScriptの利点があるので無くなることは無いですが、せっかくなのでVBScriptをpowershellに変換して、作成していきます。
4章で話したように、座標指定、アクションを繰り返していきます。
例
★テキスト入力:CO01で品目コード入力
●VBScript記載
session.findById("wnd[0]/usr/ctxtCAUFVD-MATNR").text = "999999"
$ID = Invoke-Method $session "findById" @("wnd[0]/usr/ctxtCAUFVD-MATNR") Set-Property $ID "Text" @("999999")
★テキスト読み取り
○powershell
$ID = Invoke-Method $session "findById" @("wnd[0]/usr/ctxtCAUFVD-MATNR") $GET = Get-Property $ID "text"
$GETにテキストが収納されます
★ボタンクリック:CO01で構成品目概要をクリック
●VBScript記載
session.findById("wnd[0]/tbar[1]/btn[6]").press
$ID = Invoke-Method $session "findById" @("wnd[0]/tbar[1]/btn[6]") Invoke-Method $ID "press"
★ショートカットキー
●VBScript記載:CO01で構成品目概要をクリックせず、ショートカットキーF6(構成品目概要)を押した場合
session.findById("wnd[0]").sendVKey 6
$ID = Invoke-Method $session "findById" @("wnd[0]") Invoke-Method $ID "sendVKey" @(6)
ちなみにエンターキーはsendVKey 0です。作成しているとよくでて来ます。
なるべくショートカットキーを使用した方がコンピュータ側になります。マウス操作はより人間的な操作となり、今後RPAを作成していく上でコンピュータ側に変換するのに苦労することになります。また、有名なショートカットのctl +Cのように、普段からショートカットを使っている方が業務効率が上がります。
★無視しても動く記載事項
setFocus
caretPosition