RPA初心者による無料でRPA

RPAやIOTに関するブログ …時々富士山

5.SAPシステムを動かす2

SAP関連コードの作り方

4章で説明したように座標、アクション(テキスト入力、読み取りやチェックボックスのチェック等)の調べ方を説明します。

実はSAPにはエクセルマクロ記録のように行った操作を記録してくれる機能が付いています!この機能が付いているということは、SAP自体も自動化を推奨していると言えます。

●SAP自動化の手順↓

1

23
f:id:hero32:20200225074824j:plain
45
f:id:hero32:20200225074906j:plain
67
f:id:hero32:20200225075624j:plain
89
f:id:hero32:20200225074950j:plain

エクセルで変換ファイルを作成しましたが、馴れてくると手動で編集する方が楽です。

VBScriptを実行する前にSAP上の設定でスクリプト利用の解除を行います
解除は以下の手順です。

オプションから
f:id:hero32:20200313073744j:plain
アクセシビリティ&スクリプトスクリプト→赤枠チェックを図のようにする
f:id:hero32:20200313073811j:plain

このVBScriptを実行すると(ダブルクリック)、先ほど行った操作がものすごい速度で再現されます。
VBScriptを編集するとエクセルや様々なソフトと連携出来ますが、現時点ではpowershellの出現、ie11ではデフォルトで無効となっていたりと、マイナーな言語になって言っております。VBScriptにはVBScriptの利点があるので無くなることは無いですが、せっかくなのでVBScriptpowershellに変換して、作成していきます。

4章で話したように、座標指定、アクションを繰り返していきます。


★テキスト入力:CO01で品目コード入力
VBScript記載

session.findById("wnd[0]/usr/ctxtCAUFVD-MATNR").text = "999999"

powershell

$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

powershell

    $ID = Invoke-Method $session "findById" @("wnd[0]/tbar[1]/btn[6]")
    Invoke-Method $ID "press"   

★ショートカットキー
VBScript記載:CO01で構成品目概要をクリックせず、ショートカットキーF6(構成品目概要)を押した場合

session.findById("wnd[0]").sendVKey 6

powershell

$ID = Invoke-Method $session "findById" @("wnd[0]")
Invoke-Method $ID "sendVKey" @(6) 

ちなみにエンターキーはsendVKey 0です。作成しているとよくでて来ます。


なるべくショートカットキーを使用した方がコンピュータ側になります。マウス操作はより人間的な操作となり、今後RPAを作成していく上でコンピュータ側に変換するのに苦労することになります。また、有名なショートカットのctl +Cのように、普段からショートカットを使っている方が業務効率が上がります。

★無視しても動く記載事項

setFocus
caretPosition