はじめに
- 本記事では、モダンフォルダのURロボットのパスワード更新ロボの作り方を説明します。
- クラシックフォルダからモダンフォルダに移行するにあたって、各フォルダのロボット画面でユーザーに任せていたパスワード更新作業がテナントレベルでしかできなくなります。テナント機能へのアクセス権付与が認められない場合、本記事を参考にパスワード更新ロボなど作成するのをお勧めします。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は System.Activities 22.4.5 / WebAPI.Activities 1.11.1 のもので構成しています。
UR のパスワード更新ロボの作り方
最初にパスワードを指定するために入力ダイアログを配置・設定します。
「Orchestrator へのHTTP要求」アクティビティを配置し、次のエンドポイントを値に指定します。こちらはOCに接続中のユーザー情報を取得できるエンドポイントです。
"/odata/Users/UiPath.Server.Configuration.OData.GetCurrentUser?%24select=Id%2CMayHaveUnattendedSession"
OC接続中のものに限らず、任意のユーザー情報を取得したい場合は次の様にフィルタなどして取得します。
メソッド:GET エンドポイント:“/odata/Users?%24filter=contains(UserName%2C’★アカウント名’)”
Id は応答コンテンツを逆シリアル化し、できたJSONオブジェクトから簡単に取得できます。
(例)
URobotId = 応答コンテンツのJオブジェクト.item("Id").ToString
次に、Id を指定して、更新対象のユーザー情報をフルで抜きます。
更新対象となる Unattended Robot のフィールドを値操作したいので
応答コンテンツを逆シリアル化 → 応答コンテンツのJオブジェクト
応答コンテンツのJオブジェクト.item("UnattendedRobot").ToString を逆シリアル化 → URのJオブジェクト
をつくっておきます。
あとは、「URのJオブジェクト.item("Password")」(左辺)に入力ダイアログで値指定した「新しいパスワード」(右辺)を代入し、応答コンテンツのURフィールドを上書きすれば準備完了!
いよいよパスワード更新です。次の情報を指定して処理を実行します。
JSONペイロード:パスワード情報を上書きした応答コンテンツ
エンドポイント:/odata/Users(Id)
メソッド:PUT
PATCH メソッドをもちいる場合、JSONペイロードは以下のみで更新できますが、ロボットアカウントに対しては利用できません。(PUT メソッドはユーザーアカウントとロボットアカウントともに更新可能です。)
"{""UnattendedRobot"":{""Password"":"""+新しいパスワード+ """}}"
さいごに
ユーザーが入力したパスワードが意図せずログ出力されるのを避けるために、パスワードの入力ダイアログや代入、OC へのHTTP要求アクティビティの 「プライベート」オプションのチェックは忘れずにONにしましょう!
以上 最後までお読みいただきありがとうございますm(_ _)m