Power Automateでフローを作成していると、null値が原因で思わぬエラーに遭遇することがあります。特に、データソースから取得した値が空だったり、APIの応答にnullが含まれていたりする場合、条件分岐やループ処理が正常に動作しなくなります。このような問題の背景には、データポリシーの設定やライセンスの制限が隠れているケースも少なくありません。本記事では、null値のトラブルを解決するために、DLPポリシーとライセンスの観点から具体的な見直し方法を解説します。
【要点】この記事で確認すること
- 最初に見る場所: フローの実行履歴でエラー詳細を確認し、null値がどのアクションで発生しているか特定します。
- 切り分けの軸: コネクタの種類とデータ型、テナントのDLPポリシー設定、ユーザーのライセンスの3軸で原因を切り分けます。
- 注意点: DLPポリシーの変更は管理者権限が必要です。また、ライセンスの変更はコストが発生するため、事前にビジネス要件を確認してください。
ADVERTISEMENT
目次
1. null値がフローに与える影響とよくあるシナリオ
Power Automateでは、null値は「値が存在しない」ことを示します。しかし、フロー内でnullが発生すると、条件式が期待通りに動作しなかったり、「Apply to each」ループが空の配列に対して実行されてエラーになったりします。また、後続のアクションでnullを参照すると、ランタイムエラーが発生することもあります。以下に、よくあるシナリオをいくつか挙げます。
null値が発生する主な原因
null値は、主に以下のような状況で発生します。
- データソース(SharePointリスト、SQLデータベースなど)に空のフィールドが存在する場合
- HTTPアクションやコネクタの応答にnullが含まれる場合
- 変数を初期化せずに使用した場合
- 「条件」アクションで比較演算子を誤って使用した場合(例: 「等しい」と「null」の比較)
null値によるエラーの実例
例えば、SharePointリストから取得した「承認者」フィールドが空の場合、その値をメールで送信しようとすると、フローがエラーで停止します。また、配列を返すAPIが空の配列ではなくnullを返した場合、「Apply to each」がエラーになります。これらの問題は、適切なnullチェックを行うことで防げますが、根本的にDLPポリシーやライセンスが原因で特定のコネクタや機能が利用できないケースもあります。
2. DLPポリシーがnull値に与える影響
DLP(データ損失防止)ポリシーは、Power Platform内で使用できるコネクタやデータの流れを制御するものです。DLPポリシーによって「ビジネスデータのみ」と分類されたコネクタと、「非ビジネス」と分類されたコネクタを混在させることができなくなります。null値の問題にも間接的に影響を与えることがあります。
DLPポリシーの基本とnull値との関係
DLPポリシーは、コネクタをグループに分類します。デフォルトでは「ビジネスデータのみ」グループと「非ビジネス」グループがあります。フロー内で異なるグループのコネクタを組み合わせると、実行時にエラーが発生します。null値が原因でエラーが起きているように見えても、実際にはDLPポリシー違反が隠れていることがあります。特に、カスタムコネクタやプレミアムコネクタを使っている場合、ポリシーの制限に気づかないことがあります。
DLPポリシーの確認手順
DLPポリシーを確認するには、以下の手順をPower Platform管理者が行います。なお、一般ユーザーは表示のみ可能な場合があります。
- Power Platform管理センター(https://admin.powerplatform.microsoft.com)にアクセスします。
- 左メニューから「データポリシー」を選択します。
- 対象のポリシー名をクリックして編集画面を開きます。
- 「コネクタ」タブで、フローで使用しているコネクタが「ビジネスデータのみ」グループに属しているか確認します。
- 必要に応じて、コネクタを適切なグループに移動します。変更を保存するには、管理者の承認が必要です。
この確認により、null値のエラーがDLPポリシーによるものかどうかを切り分けられます。特に、カスタムコネクタやプレミアムコネクタが「非ビジネス」グループに制限されている場合、そのコネクタの応答にnullが含まれていても、適切に処理できなくなる可能性があります。
3. ライセンスの違いによるnull値の扱いの変化
Power Automateのライセンスによって、使用できるコネクタや機能が異なります。null値の処理にも影響が出る場合があります。以下の表でライセンスごとの主な違いをまとめました。
| ライセンス | 使用可能なコネクタ | null値に関する制限やサポート |
|---|---|---|
| Office 365(無料) | 標準コネクタのみ(SharePoint, Outlook, Teamsなど) | 標準コネクタではnull値が返されることがありますが、多くの場合、組み込み関数で対処可能です。 |
| Power Automate per user(有料) | 標準 + プレミアムコネクタ(SQL, Salesforce, HTTPなど) | プレミアムコネクタではnull値が頻繁に発生しやすくなります。カスタムコネクタの使用も可能です。 |
| Power Automate per flow(有料) | すべてのコネクタが利用可能 | フロー単位の課金で、大規模なnull処理も含む高度なシナリオに適しています。 |
ライセンスが原因でnull値を適切に処理できないケースとしては、例えば、無料ライセンスではHTTPコネクタが使えないため、APIからのnull応答を直接扱うことができません。また、プレミアムコネクタを使うと、より複雑なnull値のハンドリングが必要になることがあります。ライセンスの見直しは、業務要件と照らし合わせて検討してください。
4. null値を適切に処理するための実装テクニック
DLPポリシーとライセンスを見直しても、null値を完全になくすことはできません。フロー内でnullを適切に処理するテクニックを身につけることが重要です。ここでは、具体的な方法を紹介します。
条件式でのnullチェック
Power Automateの「条件」アクションでは、null値を直接比較することができます。例えば、「@equals(variables(‘myVar’), null)」という式を使用します。ただし、空の文字列とnullは異なるため、注意が必要です。
関数(coalesce, if, emptyなど)の活用
null値をデフォルト値に置き換えるには、coalesce関数が便利です。例えば、「@coalesce(triggerOutputs()?[‘body/value’], ‘デフォルト’)」とすると、nullの場合に「デフォルト」という文字列が使用されます。また、empty関数で配列や文字列が空かどうかをチェックすることもできます。これらの関数を組み合わせることで、nullによるエラーを防止できます。
5. 失敗パターンと管理者への確認ポイント
実際に現場で発生した失敗パターンをいくつか紹介します。これらを参考に、自分の環境で同様の問題が起きていないか確認してみてください。
失敗パターン1: DLPポリシー違反を見落とす
フローが「Access to this connector is denied due to data loss prevention policy」というエラーを出す場合、DLPポリシーが原因です。このエラーはnull値と関係なく発生しますが、エラーメッセージが「null値が原因」と誤解されることがあります。管理者にDLPポリシーの設定を確認してもらいましょう。
失敗パターン2: プレミアムコネクタのnull応答を無料ライセンスで扱おうとする
無料ライセンスではプレミアムコネクタが使用できないため、HTTPコネクタなどからのnull値を含む応答を処理できません。その場合は、ライセンスをアップグレードするか、標準コネクタで代替する必要があります。
管理者への確認ポイント
- DLPポリシーの適用範囲: テナント全体か、特定の環境のみか。自分が使っている環境が対象か確認します。
- 使用コネクタの分類: フローで使用しているコネクタがどのグループに属しているか。
- ライセンス割り当て: 自分のユーザーアカウントに適切なライセンスが割り当てられているか。
- 環境の地域設定: null値の扱いが地域によって異なることはありませんが、コネクタの制限に影響することがあります。
6. よくある質問(FAQ)
ここでは、null値とDLPポリシー・ライセンスに関する疑問をQ&A形式でまとめます。
Q1. null値のエラーがDLPポリシーが原因かどうか、どうやって見分けますか?
A. フローの実行履歴でエラーメッセージを確認してください。「Access to this connector is denied due to DLP policy」と表示されていれば、DLPポリシーが原因です。null値そのもののエラーは、通常「InvalidTemplate」や「BadRequest」など別のメッセージになります。
Q2. DLPポリシーを変更してもらえない場合、どうすればいいですか?
A. 管理者に代替案を提案しましょう。例えば、同じ機能を提供する別のコネクタ(標準コネクタ)を使用する、またはnull値が発生しないようにデータソース側で前処理を行う方法があります。
Q3. 無料ライセンスでnull値を扱うには、どんな方法がありますか?
A. 標準コネクタ内で完結するようにフローを設計します。例えば、Microsoft Formsから取得したデータはnullになりにくいため、代替データソースとして検討できます。また、Power Automateの組み込み関数(coalesce, empty, if)を駆使してnullを処理します。
7. まとめ
Power Automateにおけるnull値のトラブルは、単純な実装ミスだけでなく、DLPポリシーやライセンスの制限が背景にある場合があります。まずは実行履歴でエラーの詳細を確認し、原因を特定しましょう。その上で、DLPポリシーの設定や自身のライセンスを見直すことで、解決の糸口が見つかります。また、フロー内でnull値を適切に処理するテクニックを習得しておくと、問題の再発を防げます。管理者と連携しながら、安定したフロー運用を目指してください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
