第1回 問題集(全般)
全120問 / すべての問題の解答・解説を無料で閲覧できます
PL-400 問題集 おすすめの使い方
目次
PL-400の受験者として、新しいソリューションコンポーネントの実装方法を検討する際、まず確認すべきこととして最も適切なものはどれですか?
解答・解説を見る
正解: A. A. 要件が標準機能(Out-of-the-box)で実現できないかを確認する
正解の根拠・詳細解説
技術設計の第一歩は、カスタム開発の前に標準機能で要件を満たせないかを評価することです。不要なカスタム開発はメンテナンスコストを増大させます。
ビジネスロジックをサーバー側でリアルタイムに実行し、データベーストランザクションと同期させたい場合に最も適した実装方法はどれですか?
解答・解説を見る
正解: A. A. プラグイン(Plug-in)
正解の根拠・詳細解説
プラグインはDataverseのトランザクション内で同期的に実行されるため、データの整合性を保ちながらリアルタイムにビジネスロジックを適用できます。
非同期で時間のかかる処理を、トランザクションをブロックせずに実行したい場合に適した選択肢はどれですか?
解答・解説を見る
正解: A. A. Power Automateクラウドフローまたは非同期プラグイン
正解の根拠・詳細解説
非同期処理が必要な場合は、Power Automateのクラウドフローや非同期モードのプラグインを使うことで、メインのトランザクションをブロックせずに処理を実行できます。
頻繁に変更される大量データを格納するが、Dataverseの標準的なストレージ容量制限の影響を抑えたい場合に検討すべきテーブル種別はどれですか?
解答・解説を見る
正解: A. A. エラスティックテーブル(Elastic tables)
正解の根拠・詳細解説
エラスティックテーブルはNoSQLベースで大量データや高頻度の書き込みに適しており、ストレージコストを抑えながらスケールできます。
外部システムのデータをDataverse内のテーブルのように見せたいが、実データはDataverseに複製したくない場合に使うべき機能はどれですか?
解答・解説を見る
正解: A. A. 仮想テーブル(Virtual tables)
正解の根拠・詳細解説
仮想テーブルは外部データソースのデータをDataverse内のテーブルとして透過的に扱える機能で、データの複製が不要です。
特定ユーザーグループに対してDataverseレコードへのアクセスを一時的に共有したい場合に使う機能はどれですか?
解答・解説を見る
正解: A. A. 行共有(Row sharing)
正解の根拠・詳細解説
行共有を使うと、通常のセキュリティロールでは権限のない特定レコードへの一時的なアクセスを、個別のユーザーやチームに付与できます。
データ損失防止(DLP)ポリシーがソリューションコンポーネントに与える影響を評価する際、最も重要な確認ポイントはどれですか?
解答・解説を見る
正解: A. A. 使用するコネクタがビジネスデータグループと非ビジネスデータグループのどちらに分類されているか
正解の根拠・詳細解説
DLPポリシーはコネクタを「ビジネス」「非ビジネス」等のグループに分類し、グループ間でのデータ混在を制限するため、使用するコネクタの分類確認が設計上重要です。
キャンバスアプリで複数のアプリ間で再利用可能なUIパーツを作成したい場合に使う機能はどれですか?
解答・解説を見る
正解: A. A. コードコンポーネント(PCF)またはキャンバスコンポーネント
正解の根拠・詳細解説
Power Apps component framework(PCF)のコードコンポーネントやキャンバスコンポーネントライブラリを使うことで、複数アプリ間で再利用可能なUIパーツを構築できます。
REST APIを呼び出す独自のロジックをPower Platform全体で再利用可能にしたい場合に設計すべきものはどれですか?
解答・解説を見る
正解: A. A. カスタムコネクタ(Custom Connector)
正解の根拠・詳細解説
カスタムコネクタを作成することで、独自APIへの呼び出しロジックをPower Automate・Power Apps・Copilot Studioなど複数のサービスで再利用できます。
Power Fx関数を使ってDataverse上でカスタムのビジネスロジックを実行したい場合に検討する設計要素はどれですか?
解答・解説を見る
正解: A. A. Dataverseのコードコンポーネント(カスタムAPIやプラグイン内のPower Fx関数)
正解の根拠・詳細解説
DataverseはPower Fx関数を使ったロジックの実行をサポートしており、プラグインやカスタムAPIの一部として組み込むことで再利用可能なロジックを設計できます。
業務プロセスの一部を、ユーザーの操作なしで定期的に自動実行したい場合に設計すべき自動化はどれですか?
解答・解説を見る
正解: A. A. スケジュールトリガーのPower Automateクラウドフロー
正解の根拠・詳細解説
スケジュールトリガーを使ったクラウドフローにより、人手を介さず定期的に処理を自動実行できます。
オンプレミスのSQL ServerとDataverseの間で双方向にデータを連携する統合を設計する場合、検討すべき選択肢はどれですか?
解答・解説を見る
正解: A. A. オンプレミスデータゲートウェイ経由のコネクタまたはAzure統合
正解の根拠・詳細解説
オンプレミスのデータソースと連携する場合は、オンプレミスデータゲートウェイを使ったコネクタ接続や、Azure Data FactoryなどのAzureサービスを介した統合を設計します。
複数の開発者が同時にDataverseのソリューションを開発する際、コンポーネントの競合を避けるために設計すべき体制はどれですか?
解答・解説を見る
正解: A. A. ソリューション層とALM(アプリケーションライフサイクル管理)戦略の整備
正解の根拠・詳細解説
複数開発者が関わる場合、ソリューション層を適切に分離し、ALM戦略(開発・テスト・本番環境の分離やパイプライン活用)を整備することが競合回避の鍵です。
クライアント側で複雑な検証ロジックを実装し、サーバーへの往復を減らしたい場合に適した実装場所はどれですか?
解答・解説を見る
正解: A. A. クライアントサイド処理(JavaScript/クライアントAPI)
正解の根拠・詳細解説
クライアントサイドでの処理は、サーバーへの往復(ラウンドトリップ)を減らし、ユーザー体験を向上させるために適しています。
複数のDataverse環境(開発・テスト・本番)間でソリューションを安全に移行する仕組みを設計する際に活用すべき機能はどれですか?
解答・解説を見る
正解: A. A. Power Platform Pipelines
正解の根拠・詳細解説
Power Platform Pipelinesを使うことで、環境間のソリューション移行を標準化・自動化し、安全なALMプロセスを実現できます。
Dataverseとの認証において、サービス間(アプリ間)通信で推奨される認証方式はどれですか?
解答・解説を見る
正解: A. A. マネージドID(Managed Identity)またはMicrosoft Entra IDのサービスプリンシパル
正解の根拠・詳細解説
Dataverseに対するサービス間(アプリ間)通信では、対話的にサインインするユーザーが存在しないため、アプリケーション自身のIDでアクセストークンを取得する必要があります。Microsoft Entra IDにアプリケーションを登録してサービスプリンシパルを作成し、Dataverse側ではそのアプリケーションIDに対応する「アプリケーションユーザー」を作成してセキュリティロールを割り当てることで、最小権限に基づいたアクセスが実現できます。Azure FunctionsやApp Serviceなどのホストから接続する場合はマネージドIDを利用すれば、クライアントシークレットや証明書そのものを管理する必要がなくなり、資格情報の漏えいリスクと定期的な更新(ローテーション)の手間を同時に減らせます。一方、ユーザー名とパスワードをコードに埋め込む方式は、多要素認証や条件付きアクセスと両立せず、資格情報がソース管理に混入する危険も高いため推奨されません。やむを得ず秘密情報を使う場合も、Azure Key Vaultなどに退避してコードに直接書かない設計が原則です。
開発者がカスタムコードコンポーネントをテストする際、運用上のセキュリティ問題(権限不足エラー等)が発生した場合、最初に確認すべきことはどれですか?
解答・解説を見る
正解: A. A. 対象ユーザーに割り当てられているセキュリティロールの権限設定
正解の根拠・詳細解説
運用上のセキュリティ問題は多くの場合、セキュリティロールの権限不足が原因です。エンティティレベル・フィールドレベルの権限設定を確認します。
カスタムコードコンポーネント(PCF等)が必要とする最小限の権限のみをセキュリティロールに付与する考え方を何と呼びますか?
解答・解説を見る
正解: A. A. 最小権限の原則(Principle of Least Privilege)
正解の根拠・詳細解説
最小権限の原則に従い、コードコンポーネントが正常に動作するために必要な最小限の権限のみをセキュリティロールに設定することがベストプラクティスです。
開発用のDataverse環境を本番環境から分離して管理する主な目的はどれですか?
解答・解説を見る
正解: A. A. 開発中の変更が本番データやユーザーに影響を与えないようにするため
正解の根拠・詳細解説
開発環境を本番環境から分離することで、開発中の不具合や未完成の機能が本番業務に影響を与えるリスクを排除できます。
ソリューション内のあるコンポーネントが別のコンポーネントに依存している状態を何と呼び、削除時にどのような問題が起こりますか?
解答・解説を見る
正解: A. A. ソリューション依存関係(Dependency)。依存元が存在する場合は依存先を削除できない
正解の根拠・詳細解説
ソリューション依存関係があるコンポーネントは、依存元のコンポーネントが存在する限り削除できません。依存関係はソリューションのエクスポート前に確認すべき重要な要素です。
環境ごとに異なる接続文字列やURLなどの値を、ソリューション内にハードコーディングせずに管理する仕組みはどれですか?
解答・解説を見る
正解: A. A. 環境変数(Environment Variables)
正解の根拠・詳細解説
環境変数を使うことで、開発・テスト・本番環境ごとに異なる設定値(URL、接続文字列等)をソリューション内にハードコーディングせずに管理できます。
複数のソリューションを管理する際、ベースソリューションへの変更をパッチとして管理する仕組みは何ですか?
解答・解説を見る
正解: A. A. ソリューション層(Solution Layers)
正解の根拠・詳細解説
ソリューション層により、ベースソリューションに対する変更が積み重なる順序を管理し、どの層がどのコンポーネント設定を上書きしているかを把握できます。
複数の環境間でソリューションを移行する際、各ステージ(開発→テスト→本番)でのチェックや承認プロセスを標準化する機能はどれですか?
解答・解説を見る
正解: A. A. Power Platform Pipelines
正解の根拠・詳細解説
Power Platform Pipelinesは、ソリューションのステージング(開発→テスト→本番)を標準化し、承認プロセスやデプロイの自動化を実現する機能です。
Power Platform Pipelinesをさらに拡張し、独自のデプロイステップ(カスタムの検証処理等)を追加したい場合に使う仕組みはどれですか?
解答・解説を見る
正解: A. A. Pipelinesの拡張機能(カスタムデプロイ通知/ステップ)
正解の根拠・詳細解説
Power Platform Pipelinesは拡張可能な設計になっており、カスタムのデプロイ前後処理や通知ステップを追加して、組織独自のガバナンス要件に対応できます。
GitやAzure DevOpsと連携し、コード変更時に自動的にソリューションのビルド・デプロイを行う仕組みを構築するために使うツールはどれですか?
解答・解説を見る
正解: A. A. Power Platform Build Tools
正解の根拠・詳細解説
Power Platform Build Toolsは、Azure DevOpsやGitHub Actionsと統合し、CI/CD(継続的インテグレーション/継続的デプロイ)パイプラインを構築するためのタスク集です。
CI/CDパイプラインにおいて、ソリューションのエクスポート→インポートのプロセスを自動化する主な利点は何ですか?
解答・解説を見る
正解: A. A. 手動操作によるヒューマンエラーを減らし、デプロイの再現性を高めること
正解の根拠・詳細解説
CI/CDによる自動化は、手動でのエクスポート・インポート作業に伴うミスを減らし、毎回同じ手順で確実にデプロイできる再現性を実現します。
管理対象ソリューション(Managed Solution)と非管理対象ソリューション(Unmanaged Solution)の主な違いは何ですか?
解答・解説を見る
正解: A. A. 管理対象ソリューションは本番環境への配布用で編集がロックされる、非管理対象は開発用で自由に編集できる
正解の根拠・詳細解説
管理対象ソリューションは本番環境にデプロイする完成品として扱われ直接編集できません。非管理対象ソリューションは開発環境で自由に編集可能な状態です。
ソリューションのエクスポート時に「管理対象」を選ぶべきタイミングはどれですか?
解答・解説を見る
正解: A. A. テスト環境・本番環境にデプロイする場合
正解の根拠・詳細解説
テスト環境や本番環境への配布を目的とする場合は、管理対象ソリューションとしてエクスポートするのが標準的なALMプラクティスです。
あるカスタムコードコンポーネントが、別のコンポーネントの変更によって意図せず動作しなくなった場合、根本原因を調査する際に最初に確認すべきものはどれですか?
解答・解説を見る
正解: A. A. ソリューション依存関係とコンポーネントの変更履歴
正解の根拠・詳細解説
予期しない動作不良の多くは依存関係のあるコンポーネントの変更に起因するため、依存関係マップと変更履歴の確認が最初の調査ステップです。
複数の開発者チームが同時に同じソリューションを編集する際のコンフリクトを最小化するための推奨アプローチはどれですか?
解答・解説を見る
正解: A. A. ソリューションを機能単位で分割し、各チームが独立したソリューションを担当する
正解の根拠・詳細解説
ソリューションを機能単位(モジュール単位)に分割することで、チーム間の同時編集によるコンフリクトを最小化できます。
開発環境でのデバッグ作業を効率化するために、Power Platform CLIが提供する主な機能はどれですか?
解答・解説を見る
正解: A. A. ソリューションのパッケージ化・解凍やコードコンポーネントのビルド・プッシュ
正解の根拠・詳細解説
Power Platform CLI(pac CLI)は、ソリューションのパッケージング、PCFコンポーネントのビルドとプッシュなど、開発者ワークフローを支援するコマンドラインツールです。
自動テストをCI/CDパイプラインに組み込み、デプロイ前にソリューションの品質を検証する目的は何ですか?
解答・解説を見る
正解: A. A. 不具合のある変更が本番環境に到達する前に検出すること
正解の根拠・詳細解説
CI/CDパイプラインに自動テストを組み込む目的は、不具合を含む変更が本番環境に到達する前の段階で検出し、フィードバックを開発者へ素早く返すことにあります。Power Platformでは、キャンバスアプリのTest Studioで作成したテスト、プラグインやカスタムワークフローアクティビティに対する単体テスト、Power Apps Test Engineによる自動実行などをビルドやリリースの工程に組み込めます。ソリューションのエクスポートからテスト環境への展開、テスト実行までを自動化しておけば、既存機能が壊れるリグレッションを早い段階で発見でき、修正コストは本番障害として顕在化してから対応する場合よりも大幅に小さくなります。一見するとテスト工程の分だけデプロイが遅くなるように思えますが、手戻りや障害対応にかかる時間が減るため、全体のリードタイムはむしろ短縮されます。テストはライセンス費用やユーザー数を左右するものではなく、リリース可否を判断する品質ゲートとして機能する点を押さえておきましょう。
キャンバスアプリで複雑な条件分岐ロジックを実装する際、Power Fxで使用する代表的な関数はどれですか?
解答・解説を見る
正解: A. A. Switch関数やIf関数のネスト
正解の根拠・詳細解説
複雑な条件分岐には、Switch関数や入れ子になったIf関数を使用します。ロジックの可読性を保つため、Switch関数が推奨される場合が多いです。
複数のキャンバスアプリで同じUIコンポーネントとロジックを再利用したい場合に作成すべきものはどれですか?
解答・解説を見る
正解: A. A. コンポーネントライブラリ(Component Library)
正解の根拠・詳細解説
コンポーネントライブラリを作成することで、複数のキャンバスアプリ間で同じUIコンポーネントやロジックを再利用でき、保守性が向上します。
キャンバスアプリのロジックの一部をPower Automateクラウドフローに任せる利点は何ですか?
解答・解説を見る
正解: A. A. 長時間処理や外部システム連携をアプリのパフォーマンスに影響を与えずに実行できる
正解の根拠・詳細解説
Power Automateクラウドフローにロジックを委ねることで、長時間かかる処理や複雑な外部連携をアプリ本体から分離し、UIの応答性を保てます。
キャンバスアプリのパフォーマンスが低下している原因を特定するために使用するツールはどれですか?
解答・解説を見る
正解: A. A. Monitor(モニターツール)
正解の根拠・詳細解説
Power AppsのMonitorツールは、アプリの実行中に発生する関数呼び出しやAPI呼び出しの詳細なトレースを記録し、パフォーマンス問題の原因特定に役立ちます。
キャンバスアプリの起動時間を短縮するために、アプリ起動前にデータを取得しておく手法は何ですか?
解答・解説を見る
正解: A. A. 事前読み込み(Pre-loading)
正解の根拠・詳細解説
事前読み込み(Pre-loading)により、アプリ起動時に必要なデータをあらかじめ取得しておくことで、ユーザーが操作を始めるまでの待ち時間を短縮できます。
大量データに対するキャンバスアプリのFilter関数の実行を、サーバー側で行わせる仕組みは何ですか?
解答・解説を見る
正解: A. A. クエリの委任(Delegation)
正解の根拠・詳細解説
クエリの委任(Delegation)により、Filter・Sort等の処理をクライアント側ではなくデータソース側(サーバー側)で実行させ、大量データでも高速に処理できます。
モデル駆動型アプリのフォーム読み込みが遅い場合、最初に確認すべき最適化ポイントはどれですか?
解答・解説を見る
正解: A. A. フォームに表示されるフィールド数やサブグリッドの数
正解の根拠・詳細解説
モデル駆動型アプリのフォームパフォーマンスは、表示するフィールド数・サブグリッド・関連付けられたビジネスルールの数に大きく影響されるため、不要な要素を削減することが最適化の鍵です。
モデル駆動型アプリのビューの読み込みが遅い場合に確認すべき最適化ポイントはどれですか?
解答・解説を見る
正解: A. A. ビューの列数とフィルター条件のインデックス利用状況
正解の根拠・詳細解説
ビューのパフォーマンスは表示列数やフィルター条件がインデックスを活用できているかに影響されます。不要な列やインデックスのない複雑なフィルターは遅延の原因になります。
キャンバスアプリのデバッグ中に、特定の数式の実行結果がエラーになる原因を調査する効果的な方法はどれですか?
解答・解説を見る
正解: A. A. Monitorツールでの実行トレース確認とブラウザの開発者ツールの併用
正解の根拠・詳細解説
Monitorツールとブラウザの開発者ツール(コンソールログ等)を併用することで、数式実行時のエラーや不具合の原因を効率的に特定できます。
再利用可能なPower Fxロジックをコンポーネントライブラリとして配布する際、考慮すべきバージョン管理の観点はどれですか?
解答・解説を見る
正解: A. A. ライブラリの更新が既存アプリの動作に影響しないよう、バージョニング戦略を設計する
正解の根拠・詳細解説
コンポーネントライブラリの変更は依存する全アプリに影響するため、後方互換性を考慮したバージョニング戦略の設計が重要です。
キャンバスアプリでユーザーごとに異なるデータを表示する際、パフォーマンスを保ちながら実装する推奨方法はどれですか?
解答・解説を見る
正解: A. A. 委任可能なフィルター条件を使い、必要なデータのみをサーバー側で絞り込む
正解の根拠・詳細解説
委任可能なフィルター条件を使うことで、サーバー側で必要なデータのみに絞り込んでから取得でき、大量データでもパフォーマンスを維持できます。
モデル駆動型アプリで、特定の条件下でのみ表示されるべき情報を制御する際に使う仕組みとして適切なものはどれですか?
解答・解説を見る
正解: A. A. フォームのビジネスルールまたはクライアントスクリプトによる条件制御
正解の根拠・詳細解説
ビジネスルールやクライアントスクリプトを使うことで、特定の条件(フィールドの値等)に応じてフォーム上の表示・非表示を動的に制御できます。
キャンバスアプリのパフォーマンス最適化において、画面遷移時の読み込み時間を減らすための一般的な手法はどれですか?
解答・解説を見る
正解: A. A. 画面ごとに必要なデータのみを取得し、不要な数式の再評価を減らす
正解の根拠・詳細解説
各画面で必要最小限のデータ取得・数式評価に留めることで、画面遷移時の読み込み時間を短縮できます。OnStartへの過度な集約はアプリ起動を遅延させる原因になります。
モデル駆動型アプリでサブグリッドの表示件数が多い場合に推奨される対策はどれですか?
解答・解説を見る
正解: A. A. ページングやビューのフィルター条件を活用して表示件数を制限する
正解の根拠・詳細解説
サブグリッドのページング設定やビューのフィルター条件を適切に活用することで、表示件数を制限し、フォームの読み込みパフォーマンスを改善できます。
キャンバスアプリでOnStartプロパティに大量の処理を記述した場合に起こりうる問題はどれですか?
解答・解説を見る
正解: A. A. アプリの起動時間が大幅に遅くなる
正解の根拠・詳細解説
OnStartプロパティに大量の処理(特に委任不可能なクエリ等)を記述すると、アプリ起動時にすべての処理が完了するまで待つ必要があり、起動時間が大幅に遅延します。
モデル駆動型アプリのパフォーマンス問題を診断する際に活用できるブラウザベースのデバッグツールはどれですか?
解答・解説を見る
正解: A. A. ブラウザの開発者ツール(ネットワークタブ等)とMonitorツール
正解の根拠・詳細解説
モデル駆動型アプリのパフォーマンス問題は、サーバー側の処理時間とクライアント側の描画やスクリプト実行のどちらに原因があるのかを切り分けることが第一歩です。ブラウザーの開発者ツールのネットワークタブでは、Web APIへのリクエストごとの所要時間や応答サイズ、リクエストの件数を確認でき、フォームの読み込み時に不要なデータまで取得していないかを判断できます。さらにPower PlatformのMonitorツールを使うと、フォームのイベント、クライアントスクリプトの実行、ビジネスルール、ネットワーク呼び出しなどが時系列のトレースとして記録され、どの処理が遅延の原因になっているかを具体的に特定できます。実務ではこの情報をもとに、タブやサブグリッドの読み込みを遅延させる、OnLoadで同期実行しているスクリプトを減らす、取得する列を必要最小限に絞るといった改善につなげます。Power BI DesktopやSharePoint Designerは、こうしたランタイムの診断を行うためのツールではありません。
モデル駆動型アプリのフォームでフィールドの値が変更された際に動作するJavaScriptを呼び出す仕組みはどれですか?
解答・解説を見る
正解: A. A. イベントハンドラーの登録(OnChangeイベント)
正解の根拠・詳細解説
Client APIのイベントハンドラー登録機能を使い、フィールドのOnChangeイベントにJavaScript関数を紐づけることで、値変更時にカスタムロジックを実行できます。
フォーム上のJavaScriptからDataverseのデータを直接操作したい場合に使用するAPIはどれですか?
解答・解説を見る
正解: A. A. Dataverse Web API(Xrm.WebApi)
正解の根拠・詳細解説
クライアントスクリプトからDataverseのデータを操作する際は、Client APIのXrm.WebApiオブジェクトを通じてDataverse Web APIを呼び出します。
モデル駆動型アプリのリボンに新しいカスタムボタンを追加し、特定の条件下でのみ表示したい場合に設定するものはどれですか?
解答・解説を見る
正解: A. A. コマンドとボタンの表示ルール(Power FxまたはJavaScriptによる条件指定)
正解の根拠・詳細解説
リボンのカスタムボタンの表示・非表示は、Power FxやJavaScriptの表示ルール(Enable/Display Rule)で条件を指定して制御します。
モデル駆動型アプリでカスタムページへの遷移をクライアントスクリプトから実行する場合に使うAPIはどれですか?
解答・解説を見る
正解: A. A. Xrm.Navigation.navigateTo
正解の根拠・詳細解説
Xrm.Navigation.navigateToを使うことで、クライアントスクリプトからカスタムページへの遷移を実行できます。
PCFコードコンポーネントのライフサイクルにおいて、コンポーネントが最初に初期化される際に呼ばれるメソッドはどれですか?
解答・解説を見る
正解: A. A. init
正解の根拠・詳細解説
PCFコンポーネントのライフサイクルでは、init メソッドがコンポーネントの初期化時に最初に呼び出され、コンテキストやコンテナの設定を行います。
PCFコードコンポーネントでデータの値が変化した際に呼ばれ、UIを再描画するメソッドはどれですか?
解答・解説を見る
正解: A. A. updateView
正解の根拠・詳細解説
updateView メソッドは、バインドされたプロパティの値が変化した際に呼び出され、コンポーネントのUIを最新の値で再描画します。
PCFコードコンポーネントが破棄される際にリソースを解放するために呼ばれるメソッドはどれですか?
解答・解説を見る
正解: A. A. destroy
正解の根拠・詳細解説
destroy メソッドは、コンポーネントが破棄される際に呼び出され、イベントリスナーの解除などのクリーンアップ処理を行います。
PCFコードコンポーネントのプロパティやイベントの定義を記述するXMLファイルは何と呼ばれますか?
解答・解説を見る
正解: A. A. コンポーネントマニフェスト(ControlManifest.Input.xml)
正解の根拠・詳細解説
ControlManifest.Input.xmlは、PCFコードコンポーネントが使用するプロパティ・リソース・機能を定義するマニフェストファイルです。
開発したPCFコードコンポーネントをDataverse環境にデプロイするために使用するツールはどれですか?
解答・解説を見る
正解: A. A. Power Platform CLI(pac pcf push)
正解の根拠・詳細解説
Power Platform CLIのpac pcf pushコマンドを使うことで、開発したPCFコードコンポーネントを開発環境にデプロイ・テストできます。
PCFコードコンポーネントの中でデバイスのカメラやGPSなどの機能を利用したい場合に使うAPIカテゴリはどれですか?
解答・解説を見る
正解: A. A. Device API
正解の根拠・詳細解説
PCFのDevice APIを使うことで、コンポーネント内からデバイスのカメラ・GPS位置情報・バーコードスキャナーなどの機能にアクセスできます。
PCFコードコンポーネント内で確認ダイアログやエラーメッセージを表示したい場合に使うAPIカテゴリはどれですか?
解答・解説を見る
正解: A. A. Utility API
正解の根拠・詳細解説
Utility APIには、確認ダイアログやエラーメッセージの表示、進行状況インジケーターの制御などのユーティリティ機能が含まれます。
PCFコードコンポーネントからDataverseのデータを取得・更新したい場合に使うAPIカテゴリはどれですか?
解答・解説を見る
正解: A. A. WebAPI
正解の根拠・詳細解説
PCFのWebAPIを使うことで、コンポーネント内から直接Dataverseのレコードを取得・作成・更新・削除できます。
クライアントスクリプトでフォームのイベントハンドラーを登録する際、ライブラリの読み込み順序が重要になる理由は何ですか?
解答・解説を見る
正解: A. A. 依存するライブラリが先に読み込まれていないと関数が未定義エラーになるため
正解の根拠・詳細解説
JavaScriptライブラリ間に依存関係がある場合、依存元が先に読み込まれていないと、関数呼び出し時に「未定義」エラーが発生するため、読み込み順序の設定は重要です。
モデル駆動型アプリでフォームの保存前にバリデーションを実行し、条件を満たさない場合は保存をキャンセルしたい場合に使うイベントはどれですか?
解答・解説を見る
正解: A. A. OnSaveイベントでのexecutionContext.getEventArgs().preventDefault()
正解の根拠・詳細解説
OnSaveイベントハンドラー内でpreventDefault()を呼び出すことで、特定の条件下でフォームの保存処理自体をキャンセルできます。
PCFコードコンポーネントでgetOutputsメソッドが使用される目的は何ですか?
解答・解説を見る
正解: A. A. コンポーネントからホストアプリケーションへ出力値(バインドされたプロパティの更新値)を返すこと
正解の根拠・詳細解説
PCF(Power Apps Component Framework)のコードコンポーネントは、init、updateView、getOutputs、destroyというライフサイクルメソッドで構成されます。getOutputsは、コンポーネント内部でユーザー操作などにより変化した値を、マニフェストで出力可能と定義したプロパティの形でホスト(フォームやビュー)へ返すためのメソッドです。コンポーネント側で値が変わったときにnotifyOutputChangedを呼び出すと、フレームワークがgetOutputsを呼び出し、その戻り値のオブジェクトがバインドされた列に反映されます。つまり、notifyOutputChangedが「変更が起きたことを知らせる合図」、getOutputsが「実際の値を渡す口」という役割分担になっています。初期化やコンテナーの準備はinit、イベントハンドラーの解除などの後片付けはdestroyが担当し、ネットワーク接続の確認はいずれのメソッドの責務でもありません。この流れを理解しておくと、入力した値がフォームに反映されない不具合の切り分けが容易になります。
Dataverseプラグインの実行パイプラインにおいて、データベーストランザクションの前に実行されるステージはどれですか?
解答・解説を見る
正解: A. A. Pre-operation(ステージ20)
正解の根拠・詳細解説
Pre-operationステージ(20)はメインのデータベース操作(トランザクション)の直前に実行され、操作対象データの最終調整に使われます。
プラグインの実行パイプラインで、権限チェックの前に実行される最も早いステージはどれですか?
解答・解説を見る
正解: A. A. Pre-validation(ステージ10)
正解の根拠・詳細解説
Pre-validationステージ(10)は、セキュリティチェック(権限確認)よりも前に実行される最も早いステージで、トランザクション外で動作します。
レコード更新後に関連レコードへ通知を送るなど、メイン処理完了後に実行すべきロジックを実装するステージはどれですか?
解答・解説を見る
正解: A. A. Post-operation(ステージ40)
正解の根拠・詳細解説
Post-operationステージ(40)はメインのデータベース操作が完了した後に実行され、関連レコードへの通知や後続処理に適しています。
プラグインの実行コンテキスト(IPluginExecutionContext)から取得できる情報として正しいものはどれですか?
解答・解説を見る
正解: A. A. 対象レコードのデータ、実行ユーザーID、メッセージ名などの実行時情報
正解の根拠・詳細解説
実行コンテキストには、対象エンティティのデータ(Target)、実行ユーザー、メッセージ名(Create/Update等)、深さ(Depth)などのプラグイン実行時情報が含まれます。
プラグインでビジネスロジックを実装する際、Targetパラメータに含まれる情報は何ですか?
解答・解説を見る
正解: A. A. 操作対象のレコードのデータ(変更されたフィールドの値)
正解の根拠・詳細解説
Targetパラメータには、Create・Update操作で渡された変更後のレコードデータ(変更フィールドの値)が含まれます。
プラグインで「更新前」のレコードの値を参照する必要がある場合に使用する機能はどれですか?
解答・解説を見る
正解: A. A. Pre Image(事前イメージ)
正解の根拠・詳細解説
Pre Imageを登録することで、プラグイン実行時に更新前(変更前)のレコードの値を取得し、変更前後の値を比較するロジックを実装できます。
プラグインで「更新後」の完全なレコードの値(変更されていないフィールドも含む)を参照する必要がある場合に使用する機能はどれですか?
解答・解説を見る
正解: A. A. Post Image(事後イメージ)
正解の根拠・詳細解説
Post Imageを登録することで、操作完了後の完全なレコードの値(Targetに含まれない未変更フィールドも含む)を取得できます。
プラグイン内でDataverseのレコードに対してCRUD操作を実行するために使用するサービスはどれですか?
解答・解説を見る
正解: A. A. Organization Service(IOrganizationServiceインターフェース)
正解の根拠・詳細解説
プラグイン内では、IOrganizationServiceインターフェース(Organization Service)を使ってDataverseのレコードに対するCRUD操作を実行します。
プラグインのパフォーマンスを最適化するための推奨プラクティスとして正しいものはどれですか?
解答・解説を見る
正解: A. A. 不要なクエリの実行を避け、必要なフィールドのみを取得する(列セットの絞り込み)
正解の根拠・詳細解説
ColumnSet(取得する列の指定)を絞り込み、不要なデータ取得を避けることで、プラグインの実行パフォーマンスを最適化できます。
複数の関連エンティティに対して共通のカスタム操作を提供したい場合に作成すべきものはどれですか?
解答・解説を見る
正解: A. A. カスタムAPI(Custom API)
正解の根拠・詳細解説
カスタムAPIを作成することで、標準のCRUD操作にとらわれない独自のメッセージ(操作)をDataverse上で定義し、複数の場所から呼び出せます。
開発したプラグインのアセンブリ(DLL)をDataverse環境に登録するために使用するツールはどれですか?
解答・解説を見る
正解: A. A. Plug-in Registration Tool
正解の根拠・詳細解説
Plug-in Registration Toolを使うことで、コンパイルしたプラグインアセンブリをDataverse環境にアップロードし、ステップ(実行タイミング)を登録できます。
カスタムAPIを実装したプラグインを開発する際、カスタムAPIのリクエスト・レスポンスパラメータを定義する場所はどれですか?
解答・解説を見る
正解: A. A. カスタムAPIのメタデータ設定(リクエスト・レスポンスパラメータ定義)
正解の根拠・詳細解説
カスタムAPIのリクエスト・レスポンスパラメータは、DataverseのカスタムAPIメタデータとして事前に定義し、それに対応する処理をプラグインコードで実装します。
Dataverseのビジネスイベント(Business Events)の主な用途は何ですか?
解答・解説を見る
正解: A. A. 業務上の重要なイベント発生時に、外部システムへ通知を送信すること
正解の根拠・詳細解説
Dataverseのビジネスイベントは、特定の業務上のイベント(例:注文確定)が発生した際に、Azure Service Bus等を通じて外部システムへ通知するための仕組みです。
既存のREST APIをPower Platformで利用可能にするために最初に作成すべきものはどれですか?
解答・解説を見る
正解: A. A. Open API定義(OpenAPI/Swagger仕様)
正解の根拠・詳細解説
既存のREST APIをカスタムコネクタとして利用するには、まずそのAPIのOpen API定義(Swagger/OpenAPI仕様)を作成または取得する必要があります。
カスタムコネクタでOAuth 2.0認証を実装する場合に設定する項目はどれですか?
解答・解説を見る
正解: A. A. クライアントID・クライアントシークレット・認証URL・トークンURL
正解の根拠・詳細解説
OAuth 2.0認証を実装する際は、クライアントID、クライアントシークレット、認証エンドポイントURL、トークンエンドポイントURLなどをカスタムコネクタの認証設定で指定します。
カスタムコネクタの実行時の挙動(リクエスト・レスポンスの変換等)を動的に変更する仕組みはどれですか?
解答・解説を見る
正解: A. A. ポリシーテンプレート(Policy Templates)
正解の根拠・詳細解説
ポリシーテンプレートを使うことで、ヘッダーの追加・レスポンスの変換・リトライロジックなど、コネクタの実行時の挙動を柔軟に変更できます。
Azureサービス(Azure Functions等)と連携するカスタムコネクタを作成する際の典型的な流れはどれですか?
解答・解説を見る
正解: A. A. Azure Functionをデプロイし、そのOpenAPI定義からカスタムコネクタを作成する
正解の根拠・詳細解説
AzureサービスをPower Platformと連携する場合、まずAzure Functionsなどをデプロイし、そのAPI定義(OpenAPI)をもとにカスタムコネクタを作成するのが典型的な流れです。
既存のAPI定義をインポートしてカスタムコネクタを素早く作成できるソースとして正しいものはどれですか?
解答・解説を見る
正解: A. A. GitHub・Azure・既存のOpenAPI定義
正解の根拠・詳細解説
カスタムコネクタの作成時には、GitHubで公開されているOpenAPI定義、Azureサービスの定義、既存のOpenAPI/Swaggerファイルなどからインポートできます。
カスタムコネクタでデータの形式変換(XML→JSON等)が必要な場合に実装すべきものはどれですか?
解答・解説を見る
正解: A. A. コネクタ内のコード(C#によるリクエスト/レスポンス変換ロジック)
正解の根拠・詳細解説
カスタムコネクタでは、C#で記述したコードを使ってリクエスト・レスポンスのデータ形式を変換するロジックを実装できます。
Dataverse Web APIを使ってレコードを一括作成する際、パフォーマンスを向上させるために使うべき機能はどれですか?
解答・解説を見る
正解: A. A. バッチ処理($batchリクエスト)
正解の根拠・詳細解説
複数のレコードを作成・更新する場合、$batchリクエストを使うことで複数の操作を1つのHTTPリクエストにまとめ、パフォーマンスを向上できます。
Dataverse Web APIで楽観的同時実行制御(同時更新の競合検出)を行うために使用するヘッダーはどれですか?
解答・解説を見る
正解: A. A. If-Match(ETag)
正解の根拠・詳細解説
If-MatchヘッダーにレコードのETag値を指定することで、他のユーザーによる更新と競合していないかを検出する楽観的同時実行制御を実装できます。
Dataverse Web APIの呼び出し回数がAPI制限(スロットリング)に達した場合に返されるHTTPステータスコードはどれですか?
解答・解説を見る
正解: A. A. 429(Too Many Requests)
正解の根拠・詳細解説
API制限に達した場合、Dataverse Web APIは429(Too Many Requests)を返し、Retry-Afterヘッダーで再試行までの推奨待機時間を示します。
API制限により429エラーが返された場合の推奨される対処方法はどれですか?
解答・解説を見る
正解: A. A. Retry-Afterヘッダーの値に従って待機し、リトライポリシーを実装する
正解の根拠・詳細解説
429エラーを受け取った場合は、レスポンスのRetry-Afterヘッダーが示す時間だけ待機してからリトライするポリシーを実装するのがベストプラクティスです。
Organization ServiceとWeb APIの主な違いとして正しいものはどれですか?
解答・解説を見る
正解: A. A. Organization Serviceは.NET向けのSDKベースAPI、Web APIはRESTベースで言語を問わず利用可能
正解の根拠・詳細解説
Organization Serviceは.NET SDKを使ったAPIで、Web APIはOData準拠のRESTful APIとして言語やプラットフォームを問わず利用できます。
Dataverse Web APIで複数の関連エンティティのデータを1回のリクエストで取得したい場合に使う機能はどれですか?
解答・解説を見る
正解: A. A. $expandクエリオプション
正解の根拠・詳細解説
$expandクエリオプションを使うことで、関連エンティティのデータを1回のリクエストで一緒に取得でき、リクエスト数を削減できます。
Dataverseへの認証においてOAuth 2.0の認可コードフローが適しているシナリオはどれですか?
解答・解説を見る
正解: A. A. ユーザーが対話的にログインするアプリケーション
正解の根拠・詳細解説
認可コードフローは、ユーザーが対話的にログインしてアクセスを許可するシナリオ(Webアプリ等)に適しています。バックグラウンドサービスにはクライアントクレデンシャルフローが適しています。
バックグラウンドで動作するサービスがユーザーの介在なしにDataverseへ認証する場合に適したOAuthフローはどれですか?
解答・解説を見る
正解: A. A. クライアントクレデンシャルフロー(サービスプリンシパル認証)
正解の根拠・詳細解説
クライアントクレデンシャルフローは、ユーザーの介在なしにアプリケーション自体の資格情報(クライアントID・シークレット)で認証するため、バックグラウンドサービスに適しています。
長時間実行される処理をPower Platformから呼び出してオフロードしたい場合に検討するAzureサービスはどれですか?
解答・解説を見る
正解: A. A. Azure Functions
正解の根拠・詳細解説
Azure Functionsを使うことで、Power Platformから呼び出される長時間実行処理をサーバーレスでオフロードし、メインのトランザクションをブロックしません。
Azure Functionsを定期的(例:毎日午前2時)に実行したい場合に設定するトリガーはどれですか?
解答・解説を見る
正解: A. A. タイマートリガー(Timer Trigger)
正解の根拠・詳細解説
タイマートリガーを使うことで、Azure Functionsをcron式で指定したスケジュールに従って定期実行できます。
Azure Functionsがメッセージキューにデータが追加された際に自動実行されるようにするトリガーはどれですか?
解答・解説を見る
正解: A. A. Queueトリガー(Azure Storage Queue/Service Busトリガー)
正解の根拠・詳細解説
Queueトリガーを設定することで、Azure Storage QueueやAzure Service Busにメッセージが追加されたタイミングでAzure Functionsを自動実行できます。
Azure FunctionsがPower Platformへ認証する際、パスワード管理の手間を削減するために推奨される方法はどれですか?
解答・解説を見る
正解: A. A. マネージドID(Managed Identity)の利用
正解の根拠・詳細解説
マネージドIDを利用することで、Azure Functionsは資格情報を管理せずに、Azure ADを通じて安全にPower Platformへ認証できます。
Power Automateクラウドフローの中でDataverseのレコード作成・更新を行う際に使用するコネクタアクションはどれですか?
解答・解説を見る
正解: A. A. Dataverseコネクタの「行の追加」「行の更新」アクション
正解の根拠・詳細解説
Dataverseコネクタが提供する「行の追加」「行の更新」などのアクションを使うことで、フロー内でDataverseのレコードを直接操作できます。
Power Automateのフロー内で複雑な文字列操作や数値計算を行いたい場合に使う機能はどれですか?
解答・解説を見る
正解: A. A. 式(Expressions)
正解の根拠・詳細解説
Power Automateの式(Expression)機能を使うことで、文字列操作・数値計算・日付処理などの複雑なロジックをフローのステップ内に実装できます。
フロー内でAPIキーなどの機密情報を安全に管理するために利用すべきAzureサービスはどれですか?
解答・解説を見る
正解: A. A. Azure Key Vault
正解の根拠・詳細解説
Azure Key Vaultを利用することで、フロー内で使用するAPIキーやパスワードなどの機密情報を安全に保管し、フローからセキュアに参照できます。
フロー内のあるアクションが失敗した場合に、後続の代替処理を実行したい場合に設定する機能はどれですか?
解答・解説を見る
正解: A. A. 実行後(Run After)の設定によるエラーハンドリング
正解の根拠・詳細解説
各アクションの「実行後(Configure run after)」設定を使うことで、前のアクションが失敗した場合の代替処理(エラーハンドリング)を構成できます。
一時的なネットワークエラーなどでフローのアクションが失敗した場合に自動的に再試行させる設定はどれですか?
解答・解説を見る
正解: A. A. リトライポリシー(Retry Policy)
正解の根拠・詳細解説
各アクションにはリトライポリシーを設定でき、一時的なエラー発生時に指定した間隔・回数で自動的に再試行させることができます。
トリガーの実行条件をフィルタリングし、不要なフロー実行を回避するために設定する機能はどれですか?
解答・解説を見る
正解: A. A. トリガー条件(Trigger Conditions)
正解の根拠・詳細解説
トリガー条件を設定することで、特定の条件を満たさないイベントでのフロー実行をトリガーの段階でフィルタリングし、不要な実行を削減できます。
複数のフローから呼び出される共通ロジックを1つの場所にまとめて再利用したい場合に作成すべきものはどれですか?
解答・解説を見る
正解: A. A. 子フロー(Child Flow)
正解の根拠・詳細解説
子フロー(再利用可能なコンポーネントとしてのフロー)を作成することで、共通ロジックを複数の親フローから呼び出して再利用できます。
フローからMicrosoft Entra IDのサービスプリンシパルを使って外部APIへ認証する目的は何ですか?
解答・解説を見る
正解: A. A. ユーザーの資格情報に依存せず、アプリケーション自体の権限で安全に認証するため
正解の根拠・詳細解説
サービスプリンシパル認証を使うことで、特定ユーザーのアカウントに依存せず、アプリケーション専用の権限设定で安全に外部APIへアクセスできます。
Dataverseのカスタムテーブルに対してWeb APIで複雑な絞り込みクエリを実行する際に使うクエリオプションはどれですか?
解答・解説を見る
正解: A. A. $filter
正解の根拠・詳細解説
$filterクエリオプションを使うことで、条件に基づいたレコードの絞り込みをWeb API呼び出し時に指定できます。
プラグインのパフォーマンスを測定し、ボトルネックとなっている処理を特定するために確認すべき情報はどれですか?
解答・解説を見る
正解: A. A. プラグイントレースログ(Plug-in Trace Log)の実行時間
正解の根拠・詳細解説
プラグイントレースログには各プラグイン実行の処理時間が記録されており、これを確認することでボトルネックとなっている処理を特定できます。
カスタムAPIをバルク操作(複数レコードへの一括適用)に対応させる設計上のポイントは何ですか?
解答・解説を見る
正解: A. A. バインドの種類(Entity/EntityCollection/Global)を適切に選択する
正解の根拠・詳細解説
カスタムAPIを定義する際は、バインドの種類(Global、Entity、EntityCollection)を要件に合わせて選択します。Globalは特定のテーブルに紐づかない汎用的な処理、Entityは単一レコードを対象とする処理、EntityCollectionはテーブル単位で複数のレコードを一括して扱う処理に適しています。一括適用のような操作を想定する場合はEntityCollectionバインドを選ぶと、呼び出し側はテーブル単位でAPIを実行でき、対象となるレコードの集合をパラメーターとして受け渡す設計がしやすくなります。逆に、単一レコード用のEntityバインドで一括処理を実現しようとすると、レコードごとに呼び出しが発生してラウンドトリップが増え、パフォーマンスとトランザクション制御の両面で不利になります。バインドの種類は呼び出し方法そのものを規定するため、公開後に変更すれば既存の呼び出し元へ影響が及びます。設計段階で想定する呼び出しパターンを整理したうえで決定することが重要です。
Dataverseのレコード変更イベントを外部システムにリアルタイムで通知したい場合に使用するサービスはどれですか?
解答・解説を見る
正解: A. A. IServiceEndpointNotificationServiceを使ったサービスエンドポイント通知
正解の根拠・詳細解説
IServiceEndpointNotificationServiceを使うことで、Dataverseのイベント発生時にAzure Service BusやEvent Hub等の外部サービスエンドポイントへ通知を送信できます。
Plug-in Registration Toolを使ってDataverseイベントをAzure Service Busに登録する際、最初に作成すべきものはどれですか?
解答・解説を見る
正解: A. A. サービスエンドポイント(Service Endpoint)の登録
正解の根拠・詳細解説
Plug-in Registration Toolで、まずAzure Service BusへのサービスエンドポイントをDataverse環境に登録し、その後ステップ(どのイベントで通知するか)を構成します。
DataverseイベントをAzure Event Hubへ送信する際の主な用途として適切なものはどれですか?
解答・解説を見る
正解: A. A. 大量のイベントデータをリアルタイムでストリーミング処理する分析シナリオ
正解の根拠・詳細解説
Azure Event Hubは大量のイベントデータをリアルタイムでストリーミング処理するのに適しており、データ分析やリアルタイム監視のシナリオでDataverseイベントの送信先として使われます。
Webhookを使ってDataverseイベントを外部HTTPエンドポイントに通知する場合の特徴として正しいものはどれですか?
解答・解説を見る
正解: A. A. 軽量で単純なHTTP POST通知に適しているが、大量・高頻度イベントには不向き
正解の根拠・詳細解説
Webhookは軽量なHTTP POST通知の仕組みで、シンプルな連携には適していますが、Azure Service BusやEvent Hubと比較すると大量・高頻度のイベント処理にはあまり向いていません。
Dataverseイベントをリスニングする方法として、Webhook・Service Bus・Event Hub以外に存在する選択肢はどれですか?
解答・解説を見る
正解: A. A. Power AutomateのDataverseトリガー(クラウドフロー)
正解の根拠・詳細解説
Power Automateのクラウドフローに用意されているDataverseトリガー(行が作成された時等)も、Dataverseイベントをリスニングする方法の1つです。
Dataverseと外部システム間でデータを定期的に同期する際、変更されたレコードのみを効率的に検出する仕組みはどれですか?
解答・解説を見る
正解: A. A. 変更の追跡(Change Tracking)
正解の根拠・詳細解説
変更の追跡(Change Tracking)機能を使うことで、前回の同期以降に変更・作成・削除されたレコードのみを効率的に検出し、差分同期を実現できます。
変更の追跡機能を有効化したテーブルに対してWeb APIで差分取得を行う際に使うリクエストパラメータはどれですか?
解答・解説を見る
正解: A. A. 変更トークン(deltaリンクまたはDataverseの変更追跡トークン)
正解の根拠・詳細解説
変更の追跡では、前回取得時に返された変更トークン(deltaリンク)を次回のリクエストに渡すことで、その時点以降の変更のみを取得できます。
レコードが既に存在する場合は更新し、存在しない場合は新規作成する操作を1回のリクエストで実行する方法はどれですか?
解答・解説を見る
正解: A. A. UpsertRequestメッセージ
正解の根拠・詳細解説
UpsertRequestメッセージを使うことで、対象レコードの存在有無を判定し、存在すれば更新・存在しなければ新規作成する処理を1回のリクエストで実行できます。
外部システムの一意キー(業務キー)を使ってDataverseのレコードを特定したい場合に使用する機能はどれですか?
解答・解説を見る
正解: A. A. 代替キー(Alternate Keys)
正解の根拠・詳細解説
代替キー(Alternate Key)を定義することで、Dataverseの内部GUIDではなく、外部システムの一意な業務キー(例:従業員番号)を使ってレコードを特定・操作できます。
代替キーを使ってUpsertRequestを実行する利点は何ですか?
解答・解説を見る
正解: A. A. 事前にDataverseのGUIDを取得せずに外部システムのキーで直接レコードを特定・更新できる
正解の根拠・詳細解説
代替キーを使うことで、外部システムの業務キーをそのまま使ってUpsertRequestを実行でき、事前にGUIDを取得する追加クエリが不要になります。
双方向データ同期を実装する際、無限ループ(自分が書き込んだ変更を自分が再度処理してしまう)を防ぐための設計上の工夫はどれですか?
解答・解説を見る
正解: A. A. 変更元を識別するフラグやタイムスタンプ比較によるループ検出
正解の根拠・詳細解説
双方向同期では、変更元(システムAからの変更かシステムB自身の変更か)を識別するフラグやタイムスタンプの比較により、無限ループを防ぐ設計が必要です。
大量データを外部システムからDataverseへ一括インポートする際にAPI制限を回避するための工夫はどれですか?
解答・解説を見る
正解: A. A. バッチ処理とリトライポリシーを組み合わせた段階的なインポート
正解の根拠・詳細解説
バッチ処理で複数操作をまとめつつ、リトライポリシーで一時的なエラーに対応することで、API制限(スロットリング)の影響を抑えながら大量データを安全にインポートできます。
Dataverseイベントの通知先としてAzure Service Busのキューとトピックのどちらかを選ぶ際、トピックが適しているシナリオはどれですか?
解答・解説を見る
正解: A. A. 複数の異なるサブスクライバーが同じイベントを受け取る必要がある場合
正解の根拠・詳細解説
Azure Service Busのトピックはパブリッシュ/サブスクライブモデルをサポートし、複数の異なるサブスクライバーが同じイベントを受け取る必要があるシナリオに適しています。
外部システムとのデータ同期で発生したエラーを追跡し、再処理を可能にする設計のベストプラクティスはどれですか?
解答・解説を見る
正解: A. A. エラーログとデッドレターキューの活用
正解の根拠・詳細解説
エラーログを記録し、処理失敗したメッセージをデッドレターキューに退避させることで、後から原因調査や再処理を行える設計が推奨されます。
Dataverseと複数の外部システムを統合する大規模なソリューションにおいて、保守性を高めるための設計原則はどれですか?
解答・解説を見る
正解: A. A. 統合ロジックを疎結合に設計し、各システムの変更が他に影響しにくい構成にする
正解の根拠・詳細解説
Dataverseと複数の外部システムを連携する大規模ソリューションでは、統合部分をいかに疎結合に保つかが保守性を左右する。接続先のURLやパラメータは環境変数として外部化し、開発・検証・本番の各環境でソリューションを作り直さずに切り替えられるようにする。認証情報はAzure Key Vaultなどの安全な場所で管理し、プラグインのコードに直接埋め込まないことが前提となる。処理は連携先ごとにカスタムコネクタやAzure Functionsといった単位で分割し、Service Bus経由の非同期連携を活用すれば、外部システムの障害や遅延がDataverse側のトランザクションに波及しにくくなる。すべてのロジックを1つの巨大なプラグインに集約すると、1か所の変更で広範囲の再テストが必要になるうえ、同期プラグインの実行時間制限にも抵触しやすい。接続情報のハードコーディングは環境移行や接続先変更のたびに改修を強いることになる。例外を握りつぶさず適切に記録し、再試行できる設計にしておくことも運用上不可欠である。