Studioバージョン(2021.10.6)
今回はタイトルのとおりジョブ実行を実装しますが、ポイントはプロセスに渡す引数です。フォーラムでも質問している人がいましたが、引数の記述はエスケープシーケンスなど含め複雑で解決していないようでした。このあと回答しておきます。
・APIリファレンス(ジョブを実行する)
https://docs.uipath.com/orchestrator/reference/jobs-requests
【Studioでの実装イメージ】
1.メール本文から「プロセスID」とプロセスに渡す「引数①:employeeNo」「引数②:arg」を取得する。
2.API odata/Releases({key})で1.で取得したプロセスIDを使用してプロセスキーを取得する。
3.API odata/Jobs/UiPath.Server.Configuration.OData.StartJobsでジョブを実行する。実行時には引数①②を渡す。
【Orchestrator上のプロセスの引数】
Name | Argument | Type |
---|---|---|
employeeNo | Input | String |
arg | Input | String |
【メール本文の例】
メール本文の例
【プロセスID:45960】
【従業員番号:98765】
【arg:TestArgument0】
Studio
'メール本文から各文字列を切り出す
ProcessID = System.Text.RegularExpressions.Regex.Match(CurrentMail.Body, "【プロセスID:[0-9]+】").Value.Replace("【プロセスID:","").Replace("】","")
employeeNo = System.Text.RegularExpressions.Regex.Match(CurrentMail.Body, "【従業員番号:[0-9]+】").Value.Replace("【従業員番号:","").Replace("】","")
arg = System.Text.RegularExpressions.Regex.Match(CurrentMail.Body, "【arg:.+】").Value.Replace("【arg:","").Replace("】","")
'プロセスキーを取得する
「Orchestrator への HTTP 要求」アクティビティ - 「エンドポイントの相対パス」プロパティ
"odata/Releases(" & ProcessID & ")"
'引数付きでジョブを実行する
「Orchestrator への HTTP 要求」アクティビティ - 「エンドポイントの相対パス」プロパティ
"odata/Jobs/UiPath.Server.Configuration.OData.StartJobs"
「Orchestrator への HTTP 要求」アクティビティ - 「JSONペイロード」プロパティ
"{ ""startInfo"": { ""ReleaseKey"": """ & jsonBody("Key").ToString & """, ""Strategy"": ""Specific"", ""RobotIds"": [29254], ""InputArguments"": ""{\""employeeNo\"":\""" & employeeNo & "\"",\""arg\"":\""" & arg & "\""}"" }}"
【今回のコメント】
・引数は色々チャレンジしてやっと解決しました。
・次回はStudioXでも同じような実装の記事を書こうと思います。