検証済み!PDII-JPN問題集と解答でPDII-JPNテストエンジン正確解答付き
あなたを必ず合格させるPDII-JPN問題集PDF2026年最新のに更新された163問あります
質問 # 27
ユニバーサル コンテナは、複数の外部システムと統合する必要があります。このプロセスは、Salesforce でレコードが作成されるときに開始されます。リモートシステムでは、続行する前に Salesforce が応答を待つ必要はありません。
これを達成するために推奨される最適なソリューションは何ですか?
- A. PushTopic イベント
- B. HTTP コールアウトによるトリガー
- C. Qutbound メッセージ
- D. プラットフォームイベント
正解:C
解説:
The recommended best solution to accomplish the requirement is to use Outbound Messaging. Outbound Messaging is a way of sending notifications from Salesforce to an external system, using SOAP messages over HTTP or HTTPS. Outbound Messaging is triggered by a workflow rule, and can include up to 100 notifications per message. Outbound Messaging does not require Salesforce to wait for a response before continuing, as it uses the fire-and-forget pattern, which means that the message is sent and no acknowledgment is expected. Outbound Messaging also supports the guaranteed delivery of messages, as it uses a queue and a retry mechanism to resend the messages that are not delivered successfully. To use Outbound Messaging, the developer should create an outbound message action in the workflow rule, and specify the endpoint URL of the external system, the fields to include in the message, and the user to send as. The developer should also create a workflow rule that evaluates the criteria for sending the notification, and add the outbound message action to the rule. The external system should expose a SOAP web service that can receive and acknowledge the outbound messages. Using a PushTopic event would not be the best solution, as a PushTopic event is a type of Platform Event that represents a change in Salesforce data, such as a record creation, update, delete, or undelete. A PushTopic event can be subscribed by Apex triggers, flows, processes, Lightning web components, or external systems. However, a PushTopic event requires the external system to use the CometD protocol and the Streaming API to subscribe to the event channel, which may not be compatible with the external system's technology. A PushTopic event also does not guarantee the delivery of messages, as it uses the publish-and-subscribe pattern, which means that the message is sent and no acknowledgment is required. Using a trigger with HTTP callout would not be the best solution, as a trigger with HTTP callout is a way of invoking an external web service or API from Apex code, using HTTP or HTTPS requests. A trigger with HTTP callout requires Salesforce to wait for a response before continuing, as it uses the request-and-response pattern, which means that the request is sent and a response is expected. A trigger with HTTP callout also does not support the guaranteed delivery of messages, as it does not use a queue or a retry mechanism to resend the requests that are not delivered successfully. Using a Platform event would not be the best solution, as a Platform event is a type of Platform Event that represents a business event that occurs in the system, such as a change in data, a system error, or a user action. A Platform event can be published by Apex code, flows, processes, or APIs, and can be subscribed by Apex triggers, flows, processes, Lightning web components, or external systems. However, a Platform event requires the external system to use the CometD protocol and the Streaming API to subscribe to the event channel, which may not be compatible with the external system's technology. A Platform event also does not guarantee the delivery of messages, as it uses the publish-and-subscribe pattern, which means that the message is sent and no acknowledgment is required. Reference: [Outbound Messaging], [PushTopic Event], [Invoking Callouts Using Apex], [Platform Events Basics]
質問 # 28
組織には、アカウントにプライマリとしてリストされる連絡先が常に 1 つだけ存在する必要があるという要件があります。したがって、1 つの連絡先を選択すると、他の連絡先の選択が解除されます。クライアントは、この機能を制御するために、連絡先に「Is Primary」というチェックボックスを追加したいと考えています。
また、クライアントは、すべての連絡先の姓が完全に大文字で保存されていることを確認したいと考えています。
これらの要件を実装する最適な方法は何でしょうか?
- A. 更新後と更新前の両方に対して単一のトリガーを Contact に書き込み、各ロジック セットを処理するヘルパー クラスへのコールアウトを作成します。
- B. Is Primary ロジックの Account に更新後トリガーを書き込み、姓ロジックの Contact に before update トリガーを書き込みます。
- C. Is Primary ロジックの場合は Contact に更新後トリガーを記述し、姓ロジックの場合は Contact に別の更新前トリガーを記述します。
- D. Is Primary ロジックの場合は Contact に検証ルールを記述し、姓ロジックの場合は Contact に更新前トリガーを記述します。
正解:A
解説:
A single trigger on Contact that handles both after update and before update events, utilizing helper classes for each logic set, is the most optimal implementation. It centralizes the logic for maintaining primary contacts and normalizing last names while allowing for clear separation of concerns through helper classes.References:
Apex Developer Guide - Triggers
質問 # 29
開発者は、アカウントでトリガーを正常にアサートするテスト クラスを作成しました。これは、サンドボックス環境で正しく起動され、データが更新されます。
カスタムプロファイルを持つ Salesforce 管理者は、変更セットを介して本番環境にこのトリガーをデプロイしようとしますが、テストクラスで「権限が不十分です」エラーが発生します。
問題を解決するには開発者は何をすべきでしょうか?
- A. テストを検証します。startTest() がテスト クラスの For ループ内にない、
- B. 実稼働環境を有効にするように構成します。
「すべてのテストを管理者ユーザーとして実行します。」 - C. System.runAs() をテスト クラスに追加して、正しいオブジェクト権限を持つユーザーとしてトリガーを実行します。
- D. 運用環境の共有モデル内で動作するように、テスト クラスに seeallData=true を追加します。
正解:C
解説:
The developer should add System.runAs() to the test class to execute the trigger as a user with the correct object permissions. The System.runAs() method allows the developer to run the test as a specific user, and enforce the user's permissions, record sharing, and field-level security. The developer should create a user with the custom profile that has access to the Account object and its fields, and then use the System.runAs() method to run the test as that user. This way, the developer can avoid the insufficient privileges error, and test the trigger functionality. Configuring the production environment to enable "Run All Tests as Admin User" will not help, as it will only run the tests as the default admin user, but it will not test the trigger as the user with the custom profile. Adding seeAllData=true to the test class will not help, as it will only allow the test to access the org data, but it will not grant the user the object permissions. Verifying that Test.startTest() is not inside a For loop in the test class will not help, as it will only ensure that the test is properly structured, but it will not affect the user's permissions. Reference: [System.runAs Method], [Testing Apex], [Apex Developer Guide]
質問 # 30
salesforce のインスタンスはいくつのテリトリーを持つことができますか?
- A. 0
- B. 1
- C. 2
- D. 3
- E. 4
正解:A
質問 # 31
実行されるプロセスの規模や種類によっては、Salesforce のイベントを外部システムで処理する必要がある場合があります。顧客との電話中に、Salesforce で作成中の注文の価格を取得する必要がある Salesforce のユーザーの使用例を考えてみましょう。価格設定ロジックは、サードパーティ システムに既に存在します。このロジックを Salesforce で再作成する代わりに、サードパーティ システムの要求を行うことで活用されます。応答 (この場合は価格) が返され、Salesforce に保存されます。最適なソリューションは何ですか?
- A. 保存時に価格を取得し、Salesforce に価格を保存するためのプロセス ビルダー プロセスとアウトバウンド メッセージ
- B. 注文を保存するとリアルタイムの Apex コールアウトが行われ、価格が Salesforce に保存される Apex トリガー
- C. 新しく保存された注文のバッチを数分ごとに処理して価格を Salesforce に保存する ETL ツール
- D. リアルタイムの Apex コールアウトを作成して価格を表示し、Salesforce に保存できる Visualforce ページ
正解:B
質問 # 32
開発者がアウトバウンドメッセージングの代わりに Apex コールアウトを使用する必要があるシナリオはどれですか?
- A. ターゲット システムは SOAP API を使用します。
- B. コールアウトは非同期である必要があります。
- C. コールアウトは、ワークフロー ルールから呼び出す必要があります。
- D. ターゲット システムは REST API を使用します。
正解:D
質問 # 33
ある会社にはカスタム オブジェクト Order__c があり、そのオブジェクトにはカスタム選択リスト フィールド Status__c があり、その値は「New」です。
「進行中」または「完了」と検索フィールド、
Contact__c、連絡先へ。
「履行された」注文がないすべての取引先責任者レコードの一意のリストを返す SOQL クエリはどれですか?
- A. SELECT Contact__c FROM Order__c WHERE Id NOT IN (SELECT Id FROM Order__c Where Status__c = 'Fulfilled')
- B. ID が入っていない連絡先から ID を選択 (Order__c WHERE Status__c から ID を選択 =
「満たされました」) - C. SELECT Id FROM Contact WHERE Id NOT IN (SELECT Contact__c FROM Order__c WHERE Status__c = 'Fulfilled')
- D. SELECT Contact__c FROM Order__c WHERE Status__c <> '完了'
正解:C
解説:
The correct SOQL query to return a unique list of Contact records that have no 'Fulfilled' Orders is one that selects Ids from the Contact object where the Contact Id is not in the set of Contact Ids related to 'Fulfilled' Orders. This is done by a subquery that selects the Contact__c field from the Order__c records where the Status__c is 'Fulfilled'.
References: SOQL and SOSL Reference Guide - Subqueries
質問 # 34
開発チームは、カスタムインターフェースの一部として、様々な新しいLightning Webコンポーネントを作成しました。各コンポーネントは、トーストメッセージを使用してエラーを処理します。受け入れテスト中に、コンポーネントの読み込み中にエラーが発生した際に表示されるトーストメッセージの長い連鎖について、ユーザーから苦情が寄せられました。ユーザーエクスペリエンスを向上させるために、開発者はどの2つの手法を実装すべきでしょうか?
- A. <template>タグを使用して、インプレースエラーメッセージを表示します。24
- B. 各コンポーネントのパブリックプロパティを使用してエラーメッセージを表示します。25
- C. Lightning Web コンポーネントを使用して、すべてのエラーを集約して表示します。
- D. エラーメッセージを表示するには、window.alert() メソッドを使用します。23
正解:A、C
解説:
When multiple components on a single page all fail simultaneously (for example, due to a shared service failure), individual toast messages stack up, creating a poor user experience. To resolve this, developers should shift away from "ephemeral" notifications like toasts toward more structured error handling.
Option A involves creating a dedicated error-handling component. This component can act as a listener or a central repository for errors across the page. Instead of each component firing its own toast, they can communicate their error state to this central component, which aggregates the messages into a single, clean display. This reduces visual clutter and allows the user to read all errors in one place.
Option C refers to "in-place" error handling. Using conditional rendering (the lwc:if or template if:true directives), a component can hide its normal UI and display an error message exactly where the component would have been. This provides immediate context to the user about which specific part of the page failed without interrupting the overall flow with pop-ups.
Option B (window.alert) is considered a legacy practice that blocks the browser thread and is generally avoided in modern web development. Option D (public properties) is a mechanism for component communication but doesn't solve the display problem itself. Combining A and C provides a modern, professional, and less intrusive error-handling strategy.
質問 # 35
Universal Containers は、Customer Community Plus ライセンスを持つ Customer Community を使用して、顧客がレンタルしたコンテナの数と返却期限を追跡できるようにしたいと考えています。Universal Containers は、外部ユーザー向けにプライベート共有モデルを使用しています。顧客の多くは、複雑なアカウント階層を持つ多国籍企業です。階層上の各取引先は、同じビジネス内の部門を表します。要件の 1 つは、取引先担当者をさまざまな取引先レコードに関連付けるカスタム ジャンクション オブジェクトに基づいて、同じ取引先階層内の特定のコミュニティ ユーザーが複数の部門のコンテナを表示できるようにすることです。部門を代表するものです。
これらの要件を解決するソリューションはどれですか?
- A. Lightning Data Services を使用するコミュニティホームページ上の Lightning Web コンポーネント。
- B. 所有者に基づいて適切なレコードを表示するフィルターを備えたジャンクション オブジェクトのカスタム リスト ビュー
- C. ジャンクションオブジェクトの関係に基づいて Apex 管理共有レコードを作成する Apex トリガ
- D. 共有せずに指定するカスタムコントローラを使用する Visualforce ページ [0 レコードを公開する]
正解:C
解説:
For community users within the same Account hierarchy to see records based on a custom junction object, Apex managed sharing can be used. An Apex trigger can create sharing records based on the junction object relationships, allowing users to see records from different departments as required.
References: Apex Developer Guide - Sharing a Record Using Apex
質問 # 36
以下のコードを参照してください。
コードを実行すると、システム制限例外が発生し、次のエラー メッセージが表示されます: Apex ヒープ サイズが大きすぎます。
このエラーを修正するにはどうすればよいですか」
- A. try/catch ブロックを使用してエラーをキャッチします。
- B. Limits.getLimitHeapSize() を使用します。
- C. Lis: を 5tc に変換します。
- D. SOQL for ループを使用してデータを処理します。
正解:B
質問 # 37
<apex:page> の「action」属性は、どのタイプのリクエストでのみ評価されますか?
- A. 取得リクエスト
- B. ポストバック リクエスト
正解:A
質問 # 38
企業には、データ設定の一部として取引先レコードを作成するさまざまな単体テスト方法があります。新しい必須フィールドがアカウントに追加され、すべての単体テストが失敗するようになりました。
開発者にとって問題を解決する最適な方法は何ですか?
- A. すべての単体テストのデータ設定に必須フィールドを追加します。
- B. アカウントに挿入前トリガーを追加して、必須フィールドの値を設定します。
- C. 必須フィールドを、システム管理者プロファイルを除外する検証ルールに変更します。
- D. 単体テスト用のアカウントを作成する単一の場所として機能する TestDataFactory クラスを作成し、そこに必要なフィールドを設定します。
正解:D
解説:
The optimal way to fix the failing unit tests after adding a new required field to the Account object is to create a TestDataFactory class that serves as a centralized place to create Accounts for unit tests. This class would include the new required field, ensuring that all unit tests have the necessary data setup.References: Apex Developer Guide - Using a Test Data Factory
質問 # 39
Salesforce 組織の主任開発者は、ユーザーが連絡先に関連する複数のオブジェクトを操作できるようにするページ中心のアプリケーションを開発する必要があります。アプリケーションは、Angular などのサードパーティの JavaScript フレームワークを実装する必要があり、両方で使用できるようにする必要があります。 Classic と Lightning Experience。
これらの要件を考慮して、アプリケーションを開発するための推奨されるソリューションは何ですか?
- A. Lightning Web コンポーネント
- B. ビジュアルフォース
- C. オーラ コンポーネント
- D. Lightning Experience ビルダー
正解:B
質問 # 40
CreateOneAccount クラスが 1 つのアカウントを作成し、Queuetable インターフェースを実装すると仮定すると、どの構文が Apex コードをテストしますか?
- A.

- B.

- C.

- D.

正解:C
質問 # 41
エンドユーザーが情報にアクセスして更新できるアプリケーション中心の機能を作成する任務を負った開発者 15。この機能は、デスクトップ、電話、タブレットなどの複数のデバイス フォーム ファクタでシームレスに動作しながら、lightning Experience で使用できる必要があります。さらに、機能はアドレス指定可能な URL タブをサポートし、Salesforce コンソール API と対話する必要があります。
アプリケーションを構築し、ビジネス要件をサポートするために、開発者が取ることができるアーム 2 アプローチはどれですか?
2つの答えを選択してください
- A. Aura コンポーネントにラップされた Lightning Web コンポーネントを使用してアプリケーションを作成します。
- B. Lightning Web コンポーネントにラップされた Aura コンポーネントを使用してアプリケーションを作成します。
- C. Lightning Experience Builder を使用してアプリケーションを作成します。
- D. Aura コンポーネントを使用してアプリケーションを作成します。
正解:A、D
質問 # 42
企業は、ユーザーの以前の回答に基づいて一連の異なる質問をナビゲートする動的な調査を作成したいと考えています。
この要件を満たすために推奨されるソリューションは何ですか?
- A. Lightning プロセスビルダー
- B. Visualforce と Apex
- C. ダイナミック レコードの選択
- D. カスタム Lightning アプリケーション
正解:C
質問 # 43
開発者は、注文品目の数量、単価、および合計を表示する Lightning Web コンポーネントを構築しています。合計は、数量に単価を掛けて動的に計算されます。
合計を表示するには何を追加する必要がありますか?
- A. テンプレートに Total: {quantity * UnitPrice} を追加します。
- B. 合計を追加します。{複数の数量、y 単価)} テンプレートで。
- C. calculate Total() {return quantity * unitPrice;} を javaScript に追加し、Total : {calculate Total()} をテンプレートに追加します。
- D. get total() { return quantity * unitPrice;} を JavaScript に追加し、Total: {total} をテンプレートに追加します。
正解:D
質問 # 44
非同期 Apex を使用することでのみ実行できるユースケースはどれですか?
- A. ApexトリガーからWebサービスを呼び出す
- B. 挿入完了後のレコードの更新1
- C. 数万件のレコードをクエリする
- D. バッチプロセスを将来完了するようにスケジュールするための呼び出しを行う
正解:A
解説:
Salesforce enforces a strict architectural boundary regarding database transactions and external communications. When an Apex trigger executes, it is part of a synchronous database transaction. If the platform allowed a synchronous callout (a web service call) directly from a trigger, the database transaction- including all active record locks-would have to remain open while waiting for the external system to respond. This could lead to severe performance degradation and hit the "Concurrent Request" limit.
Consequently, calling a web service from an Apex trigger (Option C) must be handled asynchronously. A developer must hand off the callout logic to an @future(callout=true) method, a Queueable class, or a Platform Event. This allows the trigger to finish its work and commit the database transaction immediately, while the callout runs in its own separate background process with its own set of governor limits.
Option A is incorrect because a standard synchronous query can retrieve up to 50,000 records. Option B is incorrect because System.scheduleBatch is a synchronous call to initiate a process, even if the process itself runs later. Option D is incorrect because record updates can be handled synchronously in an after insert trigger context.
質問 # 45
以下のコード スニペットを参照してください。
Credit_Memo__c というカスタム オブジェクトが Salesforce 環境に存在します。このタイプのレコードを取得して操作する新機能開発の一環として、開発者は、Apex トランザクション内でレコードのセットが変更されるときに競合状態が確実に防止されるようにする必要があります。
前述の Apex コードで、開発者はクエリステートメントを変更して SOQL 機能を使用し、トランザクション内の競合状態を防ぐにはどうすればよいでしょうか?
- A.

- B.

- C.

- D.

正解:C
解説:
To prevent race conditions during an Apex transaction, the SOQL query can be modified to include the "FOR UPDATE" keyword. This keyword locks the records that are returned by the query, preventing other transactions from modifying them until the current transaction is complete. This ensures that the retrieved records cannot be changed by another process before the current transaction is completed, thus preventing race conditions. The correct option to use in the code snippet provided is:
[SELECT Id, Name, Amount__c FROM Credit_Memo__c WHERE Customer_Id__c = :customerId LIMIT 50 FOR UPDATE] This will lock up to 50 records of Credit_Memo__c with the specified Customer_Id__c for the duration of the transaction.
References:
FOR UPDATE
Preventing Record Update Conflicts
質問 # 46
Universal Containers は、取引先に関連付けられた取引先責任者のリストを取得する Lightning Web コンポーネントとその Apex コントローラクラスを分析します。コードの抜粋は次のとおりです。
コードスニペットに基づいて、Lightning Web コンポーネントで取引先責任者のメールアドレスを表示するにはどのような変更を加える必要がありますか?
- A. Lightning Web コンポーネントの lightning-datatable コンポーネントを拡張して、MailingAddress 項目の列を含めます。
- B. getAccountContacts メソッドの SOQL クエリを変更して MailingAddress 項目を含め、JavaScript ファイルの columns 属性を更新して Mailing address 項目を追加します。
- C. getAccountContacts メソッドの SOQL クエリを変更して、MailingAddress 項目を含めます。
- D. Apex コントローラクラスに新しいメソッドを追加して、メールアドレスを個別に取得し、このメソッドを呼び出すように Lightning Web コンポーネントを変更します。
正解:B
解説:
To display the contacts' mailing addresses in the Lightning web component, both the SOQL query in the getAccountContacts method and the columns attribute in the JavaScript file of the component need to be updated. The query must include the MailingAddress field, and the JavaScript file must be modified to add this field to the columns shown in the lightning-datatable.References: Lightning Web Components Developer Guide - lightning-datatable
質問 # 47
......
合格できるSalesforce PDII-JPN試験情報フリー練習テスト:https://www.passtest.jp/Salesforce/PDII-JPN-shiken.html
Salesforce PDII-JPNリアル試験問題と解答は無料で試せる:https://drive.google.com/open?id=1_OmGBbog8wR4ZCdXDzE_SFQlpp9Sbp_X