この記事の目的
この記事では、
Orchestrator API の [AddQueueItem]の呼び出しがうまくいかなかった現象と、その対応をまとめること
を目的としています。
せっかくなので、現象を再現する方法までメモしておこうと思います(=゚ω゚)ノ
本題
★利用する環境
この検証で利用するものは、以下の通りです。
-Orchestrator 環境:Orchestrator CE - https://platform.uipath.com
-API呼び出しツール:Insomunia
-対象API: Add Queue Item (Queueにデータを登録するためのAPI)
その他参考ページ
forum.uipath.com
platform.uipath.com
★Step1)Queueの作成
動作確認するために、Queueを作成します。Orchestrator CEにログインし、Queueを以下の要領で作成していきます。(Web API)



これでQueueが作成できました。念のため、作成したQueueの詳細情報も確認しておきます。
下図の赤矢印のボタンを押下し、サブメニューを開きます。サブメニューの中の「View Transactions」を押下すると、Queueの詳細情報(トランザクション)を確認することができます。

作ったばかりなので、何も入っていないことが確認できます。

★Step2)Login Tokenの取得
Add Queue item APIを実行するために、Queueを作成した「テナント」のOrchestratorへログインします。これには、Authenticate APIを利用します。
URL:https://platform.uipath.com/api/Account/Authenticate
Requset body:
{
"tenancyName": "string",
"usernameOrEmailAddress": "string",
"password": "string"
}上記情報を適切に設定し、リクエストを送信すると、以下のようなResponseが返ってきます。
{
"result": "ctnOT9s7DOGh6Tppf8Sn9GIo(省略)",
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}このresultの値が認証トークンとなるので、この長い文字列をコピーしておきます。
★Step2)AddQueueItem呼び出し準備
実際にAddQueueItemAPIを呼び出す準備をしていきます。
URL:https://platform.uipath.com/odata/Queues/UiPathODataSvc.AddQueueItem
Header:Authorization :bearer さっきの長い文字列
※Insomniaではこんな感じで設定します

{
"itemData": {
"Name": "Sample01",
"SpecificContent": {
"key01":"sample",
"キー02":"sample",
"key03":"サンプル",
"鍵04":"値です"
}
}
}
★Step3)実行結果確認
Step2で準備したリクエストを実行し、Orchestratorに登録されたQueueItemを確認した結果が、こちらになります。

Specific Contentにおいて、日本語の文字列として登録した情報が、Eclipseでよく見かける読みづらい文字列になってしまいました(;´Д`)
これこそが、Orchestrator API の [AddQueueItem]の呼び出しがうまくいかなかった現象です!正しく現象が再現できました!!
★Step4)回避方法
日本語が使えないといろいろ不便なので、回避策を検討しました。
結果として、以下の呪文をspecificContentに追加することで対応できることがわかりました。
"Parameter@odata.type": "#String"
具体的には、Step2で作成したRequestBodyをこのように変更します。
{
"itemData": {
"Name": "Sample01",
"SpecificContent": {
"key01@odata.type": "#String", ←ココ
"key01":"sample",
"キー02@odata.type": "#String",←ココ
"キー02":"sample",
"key03@odata.type": "#String",←ココ
"key03":"サンプル",
"鍵04@odata.type": "#String",←ココ
"鍵04":"値です"
}
}
} この呪文により、日本語もOchestratorに想定通りに登録できることが確認できます!

後日談
よくよく公式ドキュメントを調べると、以下のURLにQueueItemの追加方法が記載されていました。詳しくはこちらを参照ください(;´Д`)
orchestrator.uipath.com
…それにしても、Orchestrator 2017だか2016では、こんなことなかった気がするんだけどなぁ(´△`)