試験の準備方法-100%合格率のCRT-450日本語解説集試験-便利なCRT-450模擬トレーリングCRT-450認定試験の難しさで近年、資格認定試験に合格した受験生はますます少なくなっていたと良く知られます。だから、我々社のIT専門家は長年にわたりSalesforce CRT-450認定資格試験問題集作成に取り組んで、有効なCRT-450試験問題集を書きました。実際の試験に表示される質問と正確な解答はあなたのSalesforce CRT-450認定資格試験合格を手伝ってあげます。素晴らしい試験参考書です。 Salesforce Certified Platform Developer I 認定 CRT-450 試験問題 (Q120-Q125):質問 # 120
A developer creates a custom exception as shown below:
public class ParityException extends Exception { }
What are two ways the developer can fire the exception in Apex?
A. new ParityException ();
B. throw new parityException ('parity does not match');
C. new ParityException('parity does not match');
D. throw new ParityException ();
正解:B、D
解説:
Throwing Exceptions in Apex:
throw new ExceptionType();creates a new instance and throws it.
A: No argument constructor.
B: Constructor with a custom error message.
Why Not Other Options?
C and D: These create exception instances but do not throw them, which is not valid syntax for firing an exception.
References:Apex Exception Handling:https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta
/apexcode/apex_classes_exception_methods.htm
質問 # 121
How should a developer create a new custom exception class?
A. CustomException ex = new (CustomException)Exception();
B. public class CustomException extends Exception{}
C. (Exception)CustomException ex = new Exception();
D. public class CustomException implements Exception{}
正解:B
解説:
Explanation/Reference:
質問 # 122
A Next Best Action strategy uses an Enhance Element that invokes an Apex method to determine a discount level for a Contact, based on a number of factors.
What is the correct definition of the Apex method?
A. apex
Copy
@InvocableMethod
global static List<Recommendation> getLevel(List<ContactWrapper> input){ /*implementation*/ }
B. apex
Copy
@InvocableMethod
global List<List<Recommendation>> getLevel(List<ContactWrapper> input){ /*implementation*/ }
C. apex
Copy
@InvocableMethod
global Recommendation getLevel(ContactWrapper input){ /*implementation*/ }
D. apex
Copy
@InvocableMethod
global static List<List<Recommendation>> getLevel(List<ContactWrapper> input){ /*implementation*/ }
正解:A
解説:
Comprehensive and Detailed Explanation From Exact Extract:
To determine the correct definition of the Apex method for a Next Best Action strategy's Enhance Element, we need to evaluate the syntax and requirements for an @InvocableMethod used in this context, focusing on its accessibility, input/output types, and compatibility with Next Best Action. Let's analyze the problem and each option systematically, referencing Salesforce's official documentation.
Understanding Next Best Action and Enhance Elements:
* Next Best Action (NBA): NBA is a Salesforce feature that provides personalized recommendations to users, often used in process automation (e.g., via Flow or Einstein Next Best Action). It evaluates strategies to suggest actions, such as offering a discount to a Contact.
* Enhance Element: In NBA, an Enhance Element allows developers to invoke custom logic (e.g., an Apex method) to modify or generate recommendations. The Salesforce Next Best Action documentation states: "An Enhance Element in a Next Best Action strategy can invoke an Apex method to dynamically generate or modify recommendations" (Salesforce Help, Next Best Action).
* Apex Method Requirements:
* The method must be annotated with @InvocableMethod to be callable from NBA or Flow.
* It must be global and static to be accessible outside the class.
* For NBA, the method typically returns recommendations as a List<Recommendation> or List<List<Recommendation>> (for bulk processing).
* The input can be a List of a custom wrapper class (e.g., ContactWrapper) to pass data like Contact details.
* The Apex Developer Guide specifies: "An @InvocableMethod must be global, static, and can take a List of inputs and return a List of outputs" (Salesforce Apex Developer Guide, InvocableMethod Annotation).
Requirement Analysis:
* Purpose: The method determines a discount level for a Contact, which suggests it generates or modifies a recommendation (e.g., a discount offer).
* Input: The method likely takes a List<ContactWrapper> as input, where ContactWrapper is a custom class containing Contact data and other factors.
* Output: Since this is for NBA, the method should return a List<Recommendation>, where Recommendation is a standard Salesforce sObject used by NBA to represent suggested actions (e.g., a discount offer). The Salesforce Object Reference Guide confirms: "The Recommendation object represents a suggested action in Next Best Action, with fields like Name, Description, and ActionReference" (Salesforce Object Reference Guide, Recommendation Object).
* Enhance Element Specifics: An Enhance Element typically expects a List<Recommendation> as output for each input, not a nested List<List<Recommendation>>, unless bulkified in a specific way.
However, the method must support bulkification (taking a List as input and returning a List).
Evaluating the Options:
* A.
apex
Copy
@InvocableMethod
global static List<List<Recommendation>> getLevel(List<ContactWrapper> input){ /*implementation*/ }
* Accessibility: global static and @InvocableMethod are correct for an invocable method.
* Input: List<ContactWrapper> is appropriate, assuming ContactWrapper is a custom class with
@InvocableVariable properties to pass Contact data.
* Output: Returns List<List<Recommendation>>, which is a nested list. The Apex Developer Guide notes: "An @InvocableMethod can return a nested List, but for Flow or NBA, the expected output is typically List<t> for direct mapping" (Salesforce Apex Developer Guide, InvocableMethod Annotation). In NBA, an Enhance Element generally expects a
<code>List<Recommendation></code> to map directly to recommendations, not a nested list. A nested list (<code>List<List<Recommendation>></code>) is more common in Flows when processing multiple outputs for multiple inputs, but for NBA, this is not the standard pattern for an Enhance Element.</t>
* Conclusion: Incorrect, as the nested List<List<Recommendation>> return type does not align with the typical expectation of an Enhance Element in NBA, which expects List<Recommendation>.
* B.
apex
Copy
@InvocableMethod
global Recommendation getLevel(ContactWrapper input){ /*implementation*/ }
* Accessibility: Uses @InvocableMethod and global, but the method is not static. The Apex Developer Guide states: "An @InvocableMethod must be static to be callable from Flow or Next Best Action" (Salesforce Apex Developer Guide, InvocableMethod Annotation). This results in a compilation error.
* Input: Takes a single ContactWrapper, not a List<ContactWrapper>. Invocable methods must support bulkification by taking a List as input, even if only one record is passed. The Apex Developer Guide specifies: "Invocable methods must take a List as input to support bulkification" (Salesforce Apex Developer Guide, InvocableMethod Annotation).
* Output: Returns a single Recommendation, not a List<Recommendation>. Similarly, the output must be a List to support bulkification.
* Conclusion: Incorrect due to missing static keyword, and both input and output violate the bulkification requirement (must use List).
* C.
apex
Copy
@InvocableMethod
global List<List<Recommendation>> getLevel(List<ContactWrapper> input){ /*implementation*/ }
* Accessibility: Uses @InvocableMethod and global, but the method is not static, resulting in a compilation error (same issue as option B).
* Input: List<ContactWrapper> is correct for bulkification.
* Output: Returns List<List<Recommendation>>, which, as noted in option A, is not the typical return type for an NBA Enhance Element. It expects List<Recommendation> to directly map to recommendations.
* Conclusion: Incorrect due to missing static keyword and the nested
List<List<Recommendation>> return type, which is not ideal for NBA Enhance Elements.
* D.
apex
Copy
@InvocableMethod
global static List<Recommendation> getLevel(List<ContactWrapper> input){ /*implementation*/ }
* Accessibility: global static and @InvocableMethod are correct, making the method accessible to NBA.
* Input: List<ContactWrapper> supports bulkification and is appropriate for passing Contact data and factors.
* Output: Returns List<Recommendation>, which aligns with the expectation of an NBA Enhance Element. The Enhance Element can use the returned recommendations (e.g., discount offers) directly in the NBA strategy. The Salesforce Help documentation for Next Best Action confirms:
"An Apex method invoked by an Enhance Element typically returns a List<recommendation> to provide or modify recommendations" (Salesforce Help, Next Best Action Enhance Element).<
/recommendation>
* Conclusion: Correct, as it meets all requirements: proper accessibility, bulkified input/output, and the expected return type for NBA.
Why Option D is Correct:
Option D is correct because:
* It uses @InvocableMethod, global, and static, making the method callable from a Next Best Action Enhance Element.
* The input List<ContactWrapper> supports bulkification and allows passing Contact data and other factors.
* The output List<Recommendation> matches the expected return type for an NBA Enhance Element, allowing the strategy to use the returned recommendations (e.g., discount offers) directly.
* This aligns with Salesforce best practices for invocable methods in process automation, as outlined in the Apex Developer Guide and Next Best Action documentation.
Example for Clarity:
Here's how option D might be implemented:
apex
Copy
global class DiscountCalculator {
@InvocableMethod(label='Get Discount Level' description='Determines discount level for a Contact') global static List<Recommendation> getLevel(List<ContactWrapper> input) { List<Recommendation> recommendations = new List<Recommendation>(); for (ContactWrapper wrapper : input) {
// Example logic to determine discount level
Decimal discountLevel = 0.1; // 10% discount based on factors
Recommendation rec = new Recommendation();
rec.Name = 'Discount Offer';
rec.Description = 'Offer a ' + (discountLevel * 100) + '% discount to ' + wrapper.contactName; rec.ActionReference = 'ApplyDiscount'; // Reference to a Flow or action recommendations.add(rec);
}
return recommendations;
}
}
global class ContactWrapper {
@InvocableVariable
global String contactName;
@InvocableVariable
global Id contactId;
// Add other factors as InvocableVariables
}
* Usage in NBA: The Enhance Element in the Next Best Action strategy calls getLevel, passing a List<ContactWrapper> with Contact data. The method returns a List<Recommendation>, each representing a discount offer, which NBA can then present to the user.
Handling Typos:
* The options are syntactically correct in the provided image, with no typos to address.
* The question assumes ContactWrapper is a properly defined class with @InvocableVariable properties, which is a reasonable assumption for the context.
* Option D's ListRecommendation in the original question appears to be a typo (missing < and >). The correct syntax is List<Recommendation>, as assumed in the analysis and corrected in the formatted options.
References:
Salesforce Apex Developer Guide:
"InvocableMethod Annotation" section: Details requirements for @InvocableMethod, including global, static, and bulkified input/output.(Available at: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta
/apexcode/)
Salesforce Help:
"Next Best Action" section: Explains Enhance Elements and their use of Apex methods to generate recommendations.(Available at: https://help.salesforce.com/) Salesforce Object Reference Guide:
"Recommendation Object": Describes the Recommendation sObject used in NBA for suggested actions.
(Available at: https://developer.salesforce.com ... a/object_reference/) Platform Developer I Study Guide:
Section on "Process Automation and Logic": Covers using Apex in process automation tools like Next Best Action and Flow.(Available at: https://trailhead.salesforce.com ... platform-developer- i-certification-study-guide)
質問 # 123
A Salesforce administrator used Flow Builder to create a flow named "accountOnboarding". The flow must be used inside an Aura component.
Which tag should a developer use to display the flow in the component?
A. aura-flow
B. lightning:flow
C. aura:flow
D. lightning-flow
正解:B
解説:
To embed a Flow into an Aura component, you use the lightning:flow component.
Option A: lightning
Correct Answer.
The lightning:flow component allows you to embed a Flow in an Aura component.
Example Usage:
<aura:component>
<lightning:flow aura:id="flowData" />
</aura:component>
Reference:
Aura Component
Options Not Applicable:
Option B: aura-flow
Invalid Component.
Option C: aura
Invalid Component.
Option D: lightning-flow
Invalid Component Name in Aura.
Conclusion:
To display the Flow in an Aura component, the developer should use the lightning:flow tag, which is Option A.
質問 # 124
What is a benefit of developing applications
A. Unlimited processing power and memory
B. Enforced unit testing and code coverage best practices
C. Access to predefined computing resources
D. Preconfigured storage for big data
正解:C
解説:
Salesforce's multi-tenant architecture provides shared computing resources that are predefined and managed by Salesforce. This ensures scalability, security, and reliability while eliminating the need for customers to manage infrastructure.
Reference:
Salesforce Multi-Tenant Architecture