Automation Anywhere A360 に、トリガーとは別にトリガーループがあったので、試してみた。(build 9664で検証)
トリガーは、一度動くと処理が終わってしまうが、トリガーループは待機してくれる。
短いサンプルを作成。フローだと縦に長いので一覧しにくいので、リスト表記だとこんな感じ。
上記の設定では、E:\work_trigger\ 及びその配下のフォルダにファイルがcreatedされた時に、その後の処理を実行し、再び待機するという処理。
変数trigger_valueはレコード型。(X)+ をクリックすると、勝手にレコード型で作成してくれる。
レコード型の変数は、インデックス0~4の配列になってるっぽい。
idx | 名前 | タイプ |
---|---|---|
0 | triggerType | 文字列 |
1 | eventType | 文字列 |
2 | timeStamp | 日時 |
3 | fromFolder | ファイル |
4 | folder | ファイル |
3行目。上記からfolderを取得して、一旦ファイル型の変数dirpathに保存。
以降、ファイル名を文字変数に取得。後はこれを基に、読み込む、移動するなど処理をすればよい。
なお、例では、ファイルができた途端にトリガーが動くので、例えば書き込みやコピーの完了までに時間がかかることを想定して、遅延を追加している。(5行目)
複数ファイルをほぼ同時に置いた時も、順番にひとつづつ(もれなく)処理された。
また、フォルダが多くても、遅延は見られなかった。(フォルダは以下の雑なvbsで作成した。6つの支社にそれぞれ100人の利用者がフォルダにファイルを保存する想定)
const root_dir = "E:\work_trigger\"
dim branch
dim person
dim obj
dim lpb
dim lpp
Set obj = CreateObject("Scripting.FileSystemObject")
for lpb = 1 to 6
branch = root_dir & "branch" & lpb
obj.CreateFolder(branch)
for lpp = 1 to 100
person = branch & "\person" & "-" & lpb & "-" & lpp
obj.CreateFolder(person)
next
next
どのフォルダにファイルを放り込んでも、トリガーが起動した。(全部のフォルダを試したわけではないけれど)