Skip to main content

CRT-450 Salesforce Certification Preparation for Platform Developer I

  • Salesforce
  • 16 free sample questions

About this exam

CRT-450 is the Salesforce exam Salesforce Certification Preparation for Platform Developer I. Paid practice material for this exam is not available yet, but you can try its free sample questions.

Exam code
CRT-450
Vendor
Salesforce
Practice questions
Not available yet
Free sample questions
16
Question bank last updated
Not available yet

Try 2 sample questions

Taken from the free sample set for CRT-450.

Question 1

A developer has an integer variable called maxAttempts. The developer needs to ensure
that once maxAttempts is initialized, it preserves its value for the length of the Apex
transaction; while being able to share the variable's state between trigger executions.
How should the developer declare maxAttempts to meet these requirements?


  1. Option A:
    Declare maxattempts as a constant using the static and final keywords.
  2. Option B:
    Declare maxattempts as a member variable on the trigger definition.
  3. Option C:
    Declare maxattempts as a variable on a helper class.
  4. Option D:
    Declare maxAttempts as a private static variable on a helper class
Show answer and explanation

Correct answer: A

D. Declare maxAttempts as a private static variable on a helper class. A static variable in Apex is initialized only once per transaction and its value is shared across all trigger executions within that same transaction, making it ideal for preserving state and controlling behavior such as recursion or retry limits. By placing maxAttempts in a helper class as a private static variable, the developer ensures that the value remains available and unchanged throughout the transaction while being accessible to all trigger invocations. For example:
public class TriggerHelper {
    private static Integer maxAttempts = 5;
    public static Integer getMaxAttempts() {
        return maxAttempts;
    }
}
This approach satisfies both requirements: maintaining the value for the duration of the Apex transaction and sharing the variable's state between trigger executions.

Question 2 (choose 2)

niversal Containers recently transitioned from Classic to Lightning Experience.
One of its business processes requires certain values from the Opportunity object to be sent via an
HTTP REST callout to its external order management system when the user presses a custom button
on the Opportunity detail page. Example values are as follows:
* Name
*Amount
* Account
Which two methods should the developer implement to fulfill the business requirement?
Choose 2 answers

  1. Option A:
    Create a custom Visualforce quick action that performs the HTTP REST callout, and use a
    Visualforce quick action to expose the component on the Opportunity detail page.


  2. Option B:
    Create a Remote Action on the Opportunity object that executes an Apex immediate action to
    perform the HTTP REST callout whenever the Opportunity is updated.
  3. Option C:
    Create a Lightning component quick action that performs the HTTP REST callout, and use a
    Lightning Action to expose the component on the Opportunity detail page.
  4. Option D:
    Create an after update trigger on the Opportunity object that calls a helper method using @future
    (Callout=true) to perform the HTTP REST callout.
Show answer and explanation

Correct answer: A, C

Explanation: The requirement states that the HTTP REST callout should occur when the user presses a custom button on the Opportunity detail page. In Lightning Experience, this is typically implemented using a Quick Action. A Visualforce Quick Action (A) can execute Apex code that performs the callout and can be exposed on the Opportunity record page. Similarly, a Lightning Component Quick Action (C) can invoke Apex to perform the HTTP REST callout and is the preferred Lightning Experience solution. Both approaches are user-initiated and execute only when the button is clicked.
Why not B? A Remote Action is a Visualforce concept and an Apex Immediate Action is used in automation tools, not for a user-clicked custom button on an Opportunity page.
Why not D? An after-update trigger with @future(callout=true) executes whenever the Opportunity is updated, not specifically when the user clicks the custom button. This does not satisfy the requirement of triggering the callout directly from the button press.

See all 16 free sample questions