Q1.ある企業が Dynamics 365 Supply Chain Management で新しいソリューションを開発しています。
顧客は独自の実装でこのソリューションを使用できるようになります。
ソリューション内のいくつかのクラスは、独自の要件に対応するために、他の実装で顧客が拡張できるように設計されています。
特定のメソッドは、ビルド プロセス中に出力ウィンドウに表示され、他の開発者にメソッドの意図を知らせる必要があります。
メソッドのステートメントを実装する必要があります。
何を実装すべきでしょうか。
A. グローバル変数
B. 属性
C. コメント
D. プロパティ
E. info() 関数
回答
- B. 属性
-
X++ の属性はクラスやメソッドに付与するメタデータで、コンパイラやリフレクションが処理できます。
特定メソッドについてビルド時に通知や警告を出し、他の開発者へ意図を伝える要件には、コメントや info() 関数ではなく 属性による宣言 が適しています。
Dynamics 365 Supply Chain Management の開発は Finance & Operations アプリ共通の X++ 開発機能を使うため、メソッド単位のメタデータ として実装します。
X++ 属性クラス – Finance & Operations | Dynamics 365
Q2.あなたは Dynamics 365 Finance and Operations の開発者です。
既存のモデルに、次のオブジェクトに接続するレポートがあります。
メモリ内テーブル、データ プロバイダー クラス、コントローラー クラス、契約クラス。
レポートは変更できないようにロックされています。
モデル内にメモリ内テーブルの拡張機能を作成し、その拡張機能に新しいフィールドを追加する必要があります。
どの 3 つのアクションを順番に実行する必要がありますか。
アクションのリストから適切なアクションを、正しい順序で並べます。

回答
- (下記画像参照)
-

ロックされた標準レポートは直接変更せず、拡張モデルで対応します。
まず レポート デザインを複製 して追加フィールドを配置し、次に コントローラー拡張でリダイレクト して新しいレポートを実行させます。
最後に、拡張ポイントやイベント ハンドラーを使って データ プロバイダー側で値を設定 します。
Microsoft Learn では現在、Dynamics 365 Finance and Operations は Finance & Operations アプリとして説明されています。
アプリケーション スイート レポート データ セットを展開する – Finance & Operations | Dynamics 365
Q3.Dynamics 365 Finance のフォームを開発しています。
ユーザーがレポートを実行できるようにするボタンを追加する必要があります。
解決策: 出力メニュー項目を作成します。
出力メニュー項目をフォーム ボタンに追加し、レポートを出力メニュー項目にリンクします。
解決策は目標を達成できますか。
A. はい
B. いいえ
回答
- A. はい
-
Dynamics 365 Finance のフォームからレポートを実行させる場合、フォーム ボタンにはメニュー項目を関連付けます。
レポートを起動する用途では 出力メニュー項目 を使用し、その出力メニュー項目で対象レポートやレポート デザインを指定します。
したがって、出力メニュー項目を作成してフォーム ボタンに追加し、レポートへリンクする構成は 目標を満たす正しい方法 です。
Microsoft Learn では Finance & Operations アプリの Application Explorer プロパティとして説明されています。
アプリケーション エクスプローラーのプロパティ – Finance & Operations | Dynamics 365
Q4.次のクラウドベースの Dynamics 365 Finance 環境を作成します。
開発者は開発環境でコード拡張機能を作成します。
開発者は、コードの変更を Azure DevOps ブランチにチェックします。
コードの変更を標準受け入れテスト環境にデプロイする必要があります。
あなたは何をすべきか。


回答
- (下記画像参照)
-

開発者が Azure DevOps ブランチへチェックインした変更は、開発環境から手動エクスポートするのではなく ビルド パイプライン で配置可能パッケージとして作成します。
作成したパッケージは Lifecycle Services の アセット ライブラリ に保存します。
標準受け入れテストはサンドボックス環境なので、環境詳細から 管理 > 更新プログラムの適用 を使ってパッケージを適用します。
配置可能なモデル パッケージの作成 – Finance & Operations | Dynamics 365
Q5.Dynamics 365 Supply Chain Management のカスタマイズを開発します。
このカスタマイズのパフォーマンスを最適化する必要があります。
どの同時実行制御オプションを実装する必要がありますか。

回答
- (下記画像参照)
-

取得時点ですぐにレコードをロックする動作は、他ユーザーの更新を先に防ぐ ペシミスティック コンカレンシー制御 に該当します。
一方、更新までロックをできるだけ保持せず、ロック競合やリソース消費を抑える目的には オプティミスティック コンカレンシー制御 を使用します。
パフォーマンス最適化では、不要なロックを避ける OCC の特性 を理解することが重要です。
明細書を選択 – Finance & Operations | Dynamics 365
Q6.あなたは Dynamics 365 Finance and Operations の開発者です。
次のコードがあります:(行番号は参考のためにのみ含まれています)。
コードを評価する必要があります。
このメソッドの正しい出力は何ですか。


回答
- (下記画像参照)
-

通常終了した場合は try 内の One、Two の後に finally の Four、最後に Five が出力されます。
0 除算では catch に入り Three が出力され、return しても finally は実行 されます。
a が 3 の場合は catch で b を 3 にして retry で try を再実行 します。
X++ の retry は try に入ってからの Infolog メッセージを消去するため、最終的な出力は 再実行後の成功時の内容 になります。
X++ 例外処理 – Finance & Operations | Dynamics 365
Q7.あなたは Dynamics 365 Finance 開発者です。
ユーザーは顧客フォームですべての顧客グループの顧客を表示できます。
ユーザーが特定の顧客グループに属する顧客のみを表示できるようにする必要があります。
どの 4 つのアクションを順番に実行する必要がありますか。

回答
- (下記画像参照)
-

特定の顧客グループだけを表示させるには、レコード単位でアクセスを制限する 拡張可能なデータ セキュリティ を使います。
まず条件を定義するクエリを作成し、そのクエリを使う セキュリティ ポリシー にプライマリ テーブルとコンテキストを設定します。
次に対象フォームのデータを制限する制約付きテーブルを追加し、最後に ビルドとデータベース同期 を実行します。
拡張可能なデータ セキュリティ ポリシー – Finance & Operations | Dynamics 365
Q8.あなたは、新しい Dynamics 365 Finance 開発者をトレーニングしています。
同期統合の代わりに非同期統合を使用する必要がある場合は、推奨する必要があります。
どのシナリオに非同期統合を推奨する必要がありますか。
A. Finance and Operations で製品が更新されると、同じ製品情報を含むサードパーティ アプリケーションもほぼリアルタイムで更新される必要があります。
B. ある企業はオンプレミスの在庫管理システムを使用しており、1 日を通して 1 時間ごとに販売注文データを受信する必要があります。
C. 企業は購入の承認にワークフローを使用し、その後、ジャスト イン タイムの承認情報をサードパーティのアプリケーションに送信し、承認者が確認できるようにします。
D. 製造業者は、オンプレミス展開の Dynamics 365 Finance からほぼリアルタイムで運用データを移動したいと考えています。
回答
- B. ある企業はオンプレミスの在庫管理システムを使用しており、1 日を通して 1 時間ごとに販売注文データを受信する必要があります。
-
非同期統合は、呼び出し元が応答を待たず、バッチなどで後続処理できる統合に適しています。
B は販売注文データを 1 時間ごとに受信すればよく、即時応答やユーザー待機が不要なため バッチ型の非同期統合 が適切です。
A、C、D は「ほぼリアルタイム」や「ジャスト イン タイム」が要件で、即時性の高い統合 を検討します。
Microsoft Learn でも非同期統合は 大量データや遅延許容 に適すると説明されています。
非同期統合 – Training
Q9.チーム エクスプローラーを使用して開発環境を構成しています。
数人の開発者がカスタマイズに取り組んでいます。
すべてのコードがチェックインされてから、適切なブランチにマージされていることを確認する必要があります。
どの順序でアクションを実行する必要がありますか。
すべてのアクションをアクションのリストから正しい順序で並べます。

回答
- (下記画像参照)
-

Team Explorer で作業するには、まず Azure DevOps プロジェクトへ接続 し、次にローカル開発マシンへワークスペースをマップします。
その後、ブランチ階層を作成します。
共通の基準となる メイン ブランチ を作成し、テスト用ブランチ、開発用ブランチの順に分けることで、開発コードをテストへ昇格し、検証後に適切なブランチへマージできます。
分岐戦略 では、開発中、テスト対象、運用準備済みコードの分離が重要です。
分岐の概要 – Finance & Operations | Dynamics 365
Q10.Dynamics 365 Finance のカスタマイズを開発しています。
カスタマイズでは、Application Foundation パッケージのオブジェクトを拡張する必要があります。
カスタマイズするには新しいモデルを作成して構成する必要があります。
どの 2 つのアクションを実行する必要がありますか。
それぞれの正解は、解決策の一部を示しています。
A. 独自の別個のアセンブリに組み込まれる新しいモデルを作成します。
B. 拡張モデルを作成するときに、Application Foundation パッケージを参照します。
C. 既存のパッケージの一部である新しいモデルを作成します。
D. モデルを USR レイヤーに割り当てます。
E. Application Foundation を参照する拡張クラスを作成します。
回答
- A. 独自の別個のアセンブリに組み込まれる新しいモデルを作成します。
B. 拡張モデルを作成するときに、Application Foundation パッケージを参照します。 -
Finance and Operations アプリでは、標準オブジェクトを直接変更するのではなく、新しいモデルから拡張します。
Application Foundation のオブジェクトを拡張するには、アップグレードや配置を分離できる 独自パッケージのモデル を作成し、そのモデルの依存関係として Application Foundation を参照 します。
既存パッケージへの追加はレガシ機能向けで、USR レイヤー指定や拡張クラス作成だけでは モデル構成の要件 を満たせません。
モデルとパッケージ – Finance & Operations | Dynamics 365
