こんにちは、アンダーソンです。
今回も引き続きSalesforce認定上級デベロッパーの資格取得に向けての試験問題集を
掲載していきます。
今回は151問目からです。
問151
企業では、アカウントが更新されるたびに外部システムに通知する必要があります。
次のコードはどのExceptionが発生する可能性がありますか。
trigger AccountTrigger on Account (after update){
for (Account updatedAccount:Trigger.new){
AccountTriggerHelper.notinyxternalSystem(updatedAccount.id);
}
}
public class AccountTriggerHelper{
@future(callout=true)
public static void notinyxternalSystem(Id accountId){
Account acc = [Select id, name from Account where accountId = :accountId];
http objectHttp h = new Http();
HttpRequest req = new HttpRequest();
req.setEndpoint('http://example.org/restService');
req.setMethod('POST');
req.setBody(JSON.serialize(acc));
HttpResponse res = h.send(req);
}
}
A. System.LimitException: Too many future calls
B. System.LimitException: Too many callouts
C. System.LimitException: Too many SOQL queries
D. System.CalloutException: Callout from triggers are currently not supported
A. System.LimitException: Too many future calls
問152
開発者は、HTMLテーブルを表示するカスタムコンポーネントを作成しました。 開発者は、異なるVisualforceページでコンポーネントを使用し、テーブルに異なるヘッダーテキストを指定できるようにしたいと考えています。 開発者はコンポーネント内でどのタグを使用する必要がありますか?
A. [apex:variable]
B. [apex:define]
C. [apex:param]
D. [apex:attribute]
D. [apex:attribute]
問153
開発者は次のコードを記述します。
public with sharing class OrderController(){
public PaqeReference sendOrder(){
Order__c order = new Order__c
insert order;
ExternalOrder externalOrder = new ExternalOrder(order);
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setEndpoint('https://www.example.org/v1/orders');
req.setMethod('POST');
req.setBody(JSON.serialize(externalOrder));
HttpResponse res = h.send(req);
order = (ExternalOrder)JSON.deserialize(res.getBody(),ExternalOrder.class);
}
}
コードのテスト中に、開発者は次のエラーメッセージを受け取ります。
System.CalloutException:You have uncommitted work pending
開発者は何をすべきですか?
A. HTTPクラスのasyncSend()メソッドを使用して、非同期コンテキストでリクエストを送信します
B. DMLステートメントを実行する前に、すべてのコールアウトが完了していることを確認します
C. Webサービスコールアウトを@futureメソッドに移動する
D. Database.insert(order、true)を使用して、データベースの変更をすぐにコミットする
B. DMLステートメントを実行する前に、すべてのコールアウトが完了していることを確認します
C. Webサービスコールアウトを@futureメソッドに移動する
問154
Employee_cはCompany_cの子オブジェクトです。 Company_cオブジェクトには、外部IDフィールドCompany_Id_cがあります。 開発者がCompany_Id_cが「999」のCompany_cにリンクされたEmployee_cレコードを挿入するにはどうすればよいですか?
A. Employee_c emp = new Employee_c(Name='Developer');
emp.Company_r = '999'
insert emp;
B. Employee_c emp = new Employee_c(Name='Developer');
emp.Company_c = '999'
insert emp;
C. Employee_c emp = new Employee_c(Name='Developer');
emp.Company_c = new Company_c(Company_Id_c='999')
insert emp;
D. Employee_c emp = new Employee_c(Name='Developer');
emp.Company_r = new Company_r(Company_Id_c='999')
insert emp;
D. Employee_c emp = new Employee_c(Name=’Developer’);
emp.Company_r = new Company_r(Company_Id_c=’999′)
insert emp;
問155
コントローラーを単体テストするときのベストプラクティスは何ですか?
2つの答えを選んでください
A. Test.setMock()を活用してユーザーインタラクションをシミュレートする
B. getURL()を使用して正しいページ参照を確認する
C. seeAllData = trueを使用してテストデータにアクセスする
D. getParameters()。putを使用してクエリパラメーターを設定する
B. getURL()を使用して正しいページ参照を確認する
D. getParameters().putを使用してクエリパラメーターを設定する
問156
開発者は、外部サービスとやり取りするVisualforceページを構築しています。 この機能をテストするために、開発者はどのインターフェイスを実装する必要がありますか?
2つの答えを選んでください
A. HTTPCalloutMock
B. HTTPRequestMock
C. HTTPResponseMock
D. StaticResourceCalloutMock
A. HTTPCalloutMock
D. StaticResourceCalloutMock
問157
開発者は次のApexトリガーを記述して、ケースが閉じられると、そのケースに対して単一の調査レコードが作成されるようにします。 問題は、ケースごとに複数のSurvey_cレコードが作成されていることです。
trigger CaseTrigger on Case (after insert, after update){
List<Survey__c> createSurveys = new List<Survey__c>();
for (Case c : trigger.new){
if (c.IsClosed && (trigger.isInsert ll trigger.isUpdate && trigger.oldMap.get(c.Id).IsClosed == false)){
createSurveys.add(new Survey__c(Case__c = c.Id));
}
}
insert createSurveys;
}
この問題の原因は何ですか?
A.ユーザーがClosedとしてレコードを作成しています
B.タスクの作成アクションでワークフロールールが実行されている
C.ワークフロールールは、フィールド更新アクションで起動されます
D.ユーザーがレコードを複数回編集している
D.ユーザーがレコードを複数回編集している
問158
開発者は、バッチから外部Webサービスへの呼び出しを必要とするコードに取り組んでいます。
開発者はこの機能をどのように有効にする必要がありますか?
A.カスタムSystem.CalloutExceptionクラスを実装する
B.クラス定義にDatabase.AllowCallout()を含める
C.コールアウトの@futureメソッドを実装し、バッチから呼び出す
D.バッチ実装で「callout = true」を指定する
B.クラス定義にDatabase.AllowCallout()を含める
問159
@future非同期Apexメソッドに適したユースケースはどれですか?
2つの答えを選んでください
A.開発者には、通常のトランザクションが許可するよりも大きなクエリ結果が必要なジョブがあります
B.開発者は、DML操作を分離し、混合保存DMLエラーをバイパスする必要があります。
C.開発者は、バッチで実行する必要がある大量のデータを含む長期実行ジョブを持っています
D.開発者には長時間実行されるメソッドがあり、Apexトランザクションの遅延を防ぐ必要がある
B.開発者は、DML操作を分離し、混合保存DMLエラーをバイパスする必要があります。
D.開発者には長時間実行されるメソッドがあり、Apexトランザクションの遅延を防ぐ必要がある
問160
開発者は、Lightningコンポーネント用のJavaScriptを簡単にデバッグできるように、ユーザーのデバッグモードを有効にする必要があります。 セットアップでデバッグモードを有効にするための有効な考慮事項は次のうちどれですか?
A.デバッグモードが有効になっているユーザーの場合、Salesforceは低速です
B.デバッグモードを有効にすると、JavaScriptコードが縮小されます
C.デバッグモードは組織全体でのみ有効にできます
D.セットアップにアクセスできるSalesforceユーザーは、自分でデバッグモードを有効にできます。
A.デバッグモードが有効になっているユーザーの場合、Salesforceは低速です
D.セットアップにアクセスできるSalesforceユーザーは、自分でデバッグモードを有効にできます
初めからはこちらです。