Wednesday, December 30, 2020

Platform Developer I Certification Maintenance (Winter '21)





Platform Developer I Certification Maintenance (Winter '21)




→ Learn What’s New in Apex for Platform Developers

1. How can a suspended event be resumed where it left off, to avoid missing any events that were published during the suspension?
A. Refresh the event.
B. Resume the event.
C. Resume the event from New.
D. Resume the event from Tip.

2. Which statement is true regarding events configured with the Publish Immediately behavior?
A. Publish Immediately events count toward the Apex DML statement limit.
B. EventBus.publish() returns how many platform events are configured to Publish Immediately.
C. The events are published and do not depend on the successful completion of the transaction.
D. Events published immediately prevent Apex callouts from being performed after publishing.

3. What is the minimum code coverage requirement in order to promote and release an unlocked package?
A. 70%
B. 75%
C. 85%
D. 90%

4. When using WITH SECURITY_ENFORCED in a SELECT clause, what happens if a field referenced in the clause is inaccessible to the user?
A. The query succeeds, but no data is returned.
B. The query succeeds, and a null data set is returned.
C. The query fails with an error indicating no access allowed.
D. The query throws an exception indicating insufficient permissions and no data is returned.

5. A developer wants to send a custom notification when an important event occurs. What can the developer use?
A. Messaging.CustomNotification class
B. Messaging.PushNotification class
C. Messaging.NotificationAction class
D. Messaging.SendNotification class

→ Learn What’s New in Lightning Web Components and Visualforce

1. A developer wants to check whether a user has a standard permission. Where should the developer import Salesforce permissions from in order to check this?
A. @salesforce/hasPermission
B. @salesforce/customPermission
C. @salesforce/userPermission
D. @salesforce/customPermission/namespace

2. When does Salesforce plan to enforce the removal of instance names from all Visualforce URLs?
A. Spring ’18
B. Summer ’21
C. Spring ’22
D. Summer ’22

3. What is a current use case for incorporating the @track decorator in a field of a Lightning web component?
A. To make a field reactive
B. To display the updated field value if it changes
C. To observe changes when the field contains an array
D. To re-render a component when a field’s value changes

4. What is the default behavior of the Lightning message service scope parameter?
A. Active area only
B. Entire application
C. Publisher message channel
D. Active area and all hidden tabs

→ Get Hands-on With Field- and Object-Level Security and Safe Navigation Operator


Launch the org you’ll use for the hands-on challenge, then do the following.

• Create a new custom field on the Contact object to establish a field that contains sensitive and confidential data.
  ○ Field Label: Top Secret
  ○ Type: Text
  ○ Field Name: Top_Secret
  ○ Length: 255

• Uncheck the Visible box for the Standard User profile when defining field-level security.

That’s it for setup. You’ll use the code block below for an Apex class to complete the hands-on challenge.

ApexSecurityRest code block:
@RestResource(urlMapping='/apexSecurityRest')
global with sharing class ApexSecurityRest {
    @HttpGet
    global static Contact doGet(){
        Id recordId = RestContext.request.params.get('id');
        Contact result;
        if (recordId == null){
            throw new FunctionalException('Id parameter is required');
        }
        List<Contact> results = [SELECT id, Name, Title, Top_Secret__c, Account.Name FROM Contact WHERE Id = :recordId];
       SObjectAccessDecision securityDecision = Security.stripInaccessible(AccessType.READABLE ,results);             
       if (!results.isEmpty()) {
       result = results[0];
            if(Schema.sObjectType.Contact.fields.Description.isUpdateable()){
                 result.Description = result.Account?.Name;
            }
	}
    return result;
    }
    public class FunctionalException extends Exception{}
    public class SecurityException extends Exception{}
}