【Power Automate】「BadRequest. The variable ‘varLeads’ of type ‘Array’ cannot be initialized or updated with value of type ‘String’.」エラーの解決策

Power Automateでフローを構築している際、特に変数を扱うプロセスで以下のようなエラーメッセージに直面することがあります。

BadRequest. The variable 'varLeads' of type 'Array' cannot be initialized or updated with value of type 'String'. The variable 'varLeads' only supports values of types 'Array'.

この記事では、このエラーが発生する原因と、具体的な解決策について詳しく解説します。


目次

エラーの原因:「配列」に「文字列」を入れようとしている

このエラーメッセージを日本語に訳すと、「Array(配列)型の変数 ‘varLeads’ は、String(文字列)型の値で初期化または更新できません」となります。

つまり、Power Automate上で「配列(データをリスト形式で格納するもの)」として定義した変数に、Power Automateが「文字列(単なるテキストデータ)」と認識する値(データ)を代入しようとしたために、型の不一致(タイプミス)が発生している状態です。

よくある発生ケースと具体的な解決策

このエラーが発生する主なケースは、配列の初期化や設定時に「値」の指定方法を誤っていることです。

ケース1:配列の記述ミス(JSON構文エラー)

最も多く見られるのが、配列の値を直接入力する際に、JSON(ジャソン)の配列形式として正しくない記述をしているケースです。

例えば、以下のようにメールアドレスのリストを配列変数に設定しようとしたとします。

▼ エラーが発生する記述例

[
  "user1@example.com",
  "user2@example.com",
  "user3@example.com"  <-- 注目
  "user4@example.com"
]

一見すると配列に見えますが、3番目の要素 user3@example.com の末尾にカンマ , が欠落しています。

Power Automateはこれを「配列」として正しく解析できず、全体を一つの「文字列」として解釈しようと試みます。その結果、配列(Array)型の変数に文字列(String)を代入しようとしている、と判断され、エラーが発生します。

● 解決策:正しい配列リテラルで記述する

各要素の間をカンマ , で正しく区切り、全体を角括弧 [] で囲みます。

▼ 修正後の正しい記述例

[
  "user1@example.com",
  "user2@example.com",
  "user3@example.com",
  "user4@example.com"
]

ケース2:空の配列として初期化したい

後続のアクション(「Apply to each」ループなど)で「配列変数に追加」を使って動的に要素を追加していく場合、まずは変数を「空の配列」として初期化する必要があります。

● 解決策:「値」欄に [] と入力する

「変数の初期化」アクションで、型を「アレイ」に設定し、「値」フィールドに半角の角括弧のみ [] を入力します。これにより、中身が空の配列として正しく初期化されます。

ケース3:単一の値を配列の要素として初期化したい

配列として定義したものの、最初の値として1つだけの要素(例: 1つのメールアドレス)を入れたい場合も注意が必要です。

▼ 誤った設定 「値」フィールドに "user1@example.com" とだけ入力する。

これは単なる「文字列」とみなされるため、エラーになります。

● 解決策:「式」タブで createArray 関数を使用する

「値」の入力欄で「動的なコンテンツ」ではなく「」タブを選択し、以下のように関数を使って記述します。

createArray('user1@example.com')

または、array 関数も同様に使用できます。

array('user1@example.com')

これにより、単一の文字列が、配列の中の1要素目として正しく格納されます。

ケース4:JSON形式の「文字列」を配列に変換したい

他のシステムやアクションから、"[\"user1\", \"user2\"]" のような、「JSON配列の形をした文字列」が渡されることがあります。これをそのまま配列変数に代入しようとすると、エラーになります。

● 解決策:「式」タブで json 関数を使用する

「式」タブで json() 関数を使い、渡ってきた文字列をPower Automateが解釈できるネイティブな配列オブジェクトに変換します。

json(outputs('(直前のアクション名など)'))

まとめ

「The variable ‘varLeads’ of type ‘Array’ cannot be initialized or updated with value of type ‘String’.」エラーに遭遇した場合、まずは「変数の初期化」または「変数の設定」アクションで、配列(Array)型の変数に代入しようとしている「値」が、Power Automateにとって正しく「配列」として認識できる形になっているかを確認することが重要です。

特に手入力で配列を設定する場合は、カンマの抜けや括弧の閉じ忘れといった、わずかな構文ミスが原因であることが多いため、注意深く見直すことをお勧めします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次