LoginSignup
1
1

More than 1 year has passed since last update.

Power Automate: Office Scripts から直接 JSON 取得出来るようになってますね。

Last updated at Posted at 2022-01-07

背景

以前は、以下のように文字列化する必要があったんですが、return については不要になってるみたいだったので調査記録

JSON.stringify(retreiveData)

結論

  • 引数を渡さずに、取得するだけなら、JSON 取得は可能
  • 引数については未対応どころか、Return に JSON 指定すると使えなくなります 😅
  • 故に、引数を利用したい場合は、従来通り string で利用する必要あり

さて・・そのうちまた対応されることを期待して待つだけですかね。

2022/1/9 追記 object 型で JSON の受け渡しは出来るようになってるけれど、今回の記事同様に Return に object 指定すると引数が使えなくなりますね。

実装例

OfficeScripts
function main(
  workbook: ExcelScript.Workbook
): JSON {

  const retreiveData: JSON = <JSON><unknown>{
    "response": "取得",
    "value": ""
  };
  return retreiveData;
}

image.png

こんな感じで、使いやすくなってますよね。

Automateでの取得結果
{
  "result": {
    "response": "取得",
    "value": "値"
  },
  "logs": []
}
stringでの取得結果
{
  "result": "{\"response\":\"取得\",\"value\":\"\"}",
  "logs": []
}

返り値の説明

Document によると、JSON の対応は特に明記されてるようには見えない
image.png

Argument/Return を各種型で試してみた結果

Argument type return type Automate での Argument
動的コンテンツでの表示
Automate での Return
Nothing JSON - JSON
今回の記事
object JSON 表示されない 動作エラー status 429 後に Retry で成功
object Nothing OK as object -
string JSON 表示されない 動作エラー status 429 後に Retry で成功
string string OK as string OK as string
JSON JSON 表示されない 動作エラー status 429 後に Retry で成功
JSON Nothing 表示されない -

status 429 ってことで、恐らくArgument がない為の無限ループかな・・。
ただ、何故か Retry 後には正常取得は可能。
とはいえ、5分ほど必要になるので、正直使えないと思った方がよさそう

参考資料

keyword

retruning as JSON in office scripts is comming?

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1