Sunday, January 6, 2019

Salesforce Trailhead : Platform App Builder Certification Maintenance (Winter '19)

Unit : Platform App Builder Certification Maintenance (Winter '19)


UNIT : Learn What’s New for App Builders

1. Which behavior is true when using the 'Deploy processes and flows as active' feature?
A. Apex tests must cover 75% of all active Processes and autolaunched Flows.
B. Pre-existing Processes and autolaunched Flows are marked as Inactive.
C. The Change Set must include a Permission Set that enables the 'deploy processes and flows as active' feature.
D. The Change Set must include a Permission Set that activates the Processes and Flows.
2. How should an App Builder ensure that Users are able to see Survey responses?
A. Subscribe Users to a Survey with Responses report.
B. Schedule a nightly Apex job to compile Survey statistics.
C. Grant Users See All Data on the Survey object.
D. Grant access to the Survey object then direct users to the Survey Invitations related list.

3. How can a user share the contents of a Salesforce Folder with customers in Lightning?
A. Create a Content Pack.
B. Create a public link to a Shared Folder.
C. Create a ZIP file containing multiple Files.
D. Create a Public Knowledge Base.

4. How can an App Builder configure a Guided Action to be mandatory on a record?
A. Mark the Guided Action Component as Required on the record page.
B. Create a Validation Rule for the record on which the Guided Action is run.
C. Set the Is Mandatory field in a Process that launches the Flow.
D. Set the Is Mandatory Flow public variable in the Flow.

UNIT : Get Hands-on with Lightning Pages

TASK : Create a Lightning app with a filtered standard component

You've been given a requirement to create a new app with a filtered display of leads on a standard list view component, based on user permissions.
To get started:
If needed, complete the Lightning App Builder module to learn more about creating Lightning pages.
๐Ÿ‘‰Create a new Lightning app page:
Page Type: App Page
Label: App Filtered View
Layout: One Column
๐Ÿ‘‰Add the following standard components to your page:
Chatter Feed
List View
๐Ÿ‘‰Configure the List View standard component as follows:
Object: Lead
Filter: All Open Leads
Number of Records to Display: 10
๐Ÿ‘‰Add a filter to set component visibility for the List View standard component to users with specific permissions:
Field: Permissions ↦Standard Permissions ↦Manage Leads
Operator: Equal
Value: True
๐Ÿ‘‰Activate the page for all users.
๐Ÿ‘‰Add the page to the Sales app.

Steps To Follow :-
Step 1 : Click on Setup, In Quick find box search for Lightning App Builder.
Step 2 : Click on NEW
Step 3 : Select APP Page, Click on Next
Label : App Filtered View, Click on Next ↦ select One Column Layout ↦ Finish.
Step 4 : ๐Ÿ‘‰Add the following standard components to your page:
Chatter Feed
List View
Step 5 : Configure the List View standard component as follows:
Object: Lead
Filter: All Open Leads
Number of Records to Display: 10
Step 6 : ๐Ÿ‘‰Add a filter to set component visibility for the List View standard component to users with specific permissions:

Field: Permissions ↦Standard Permissions ↦Manage Leads
Operator: Equal
Value: True

Step 7 : Save & Activate
Step 8 : ๐Ÿ‘‰Activate the page for all users.

Step 9 : ๐Ÿ‘‰Add the page to the Sales app.

Salesforce Trailhead : Platform Developer I Certification Maintenance (Winter '19)

Unit : Platform Developer I Certification Maintenance (Winter '19)

UNIT : Understand New and Updated Apex Methods, Exceptions, and Interfaces

1. Which method of the DescribeSObjectResult class allows you to access record types by their developer name?
A. getRecordTypeInfos()
B. getRecordTypeInfosById()
C. getRecordTypeInfosByName()
D. getRecordTypeInfosByDeveloperName()

2. Which Apex class includes new methods to verify digital and HMAC signatures?
A. System.Auth
B. System.Crypto
C. System.Approval
D. Schema.Signature 

UNIT : Learn What's New for Platform Developers

1. Your org has My Domain enabled. What is the most efficient method to obtain a valid session ID to make an HTTP callout from asynchronous Apex code to Salesforce APIs?
A. Use a Named Credential.
B. Use System.UserInfo.getSessionId().
C. Set the endpoint to URL.getOrgDomainUrl().
D. Session IDs are no longer required when My Domain is enabled.

2. Which annotation allows a developer to make the result of an Apex method storable for Lightning components?
A. @AuraStorable
B. @AuraCacheable
C. @AuraEnabled(storable=true)
D. @AuraEnabled(cacheable=true)

3. Which merge field allows you to isolate untrusted third-party content with tag in Visualforce?
A. $Resource
B. $SecureResource
C. $IFrameResource
D. $Page.IFrameResource

4. Prior to installing an unlocked package, which object should a developer query using the Tooling API to list the packages it depends on?
A. InstalledPackage
B. PackageDependency
C. UnlockedPackageInfo
D. SubscriberPackageVersion

UNIT : Work with the Lightning Map Component and Apex Inherited Sharing

TASK : Use the new Winter ’19 features, lightning:map component and Apex inherited sharing

Create a Lightning component that references the new lightning:map component and include it in a custom Account record page. The component will use an Apex controller that applies the Inherited Sharing keyword to ensure reusability across multiple applications.
Using the new information you created for Out and About Communications, implement the following to complete this challenge.
๐Ÿ‘‰Copy the helper class code block, TowerMapUtilClass, from above and modify it so the sharing rules are enforced based on the sharing setting of the calling class.
๐Ÿ‘‰Copy the controller code block, TowerMapControllerClass, from above and modify it so the sharing rules are enforced.
๐Ÿ‘‰Copy and modify the Lightning component code above to implement a lightning:map component named Towermap. Replace the with your code. Your code should pass the value of v.mapMarkers to the mapMarkers attribute, pass the value of v.markersTitle to the markersTitle attribute, and set the zoomLevel attribute to 5.
๐Ÿ‘‰Copy and paste the controller and helper code blocks above to create controller and helper functions to pull all Tower locations from the server.
๐Ÿ‘‰To view your map, you can use Lightning App Builder to create a standalone one-column app page named Towers and add it to the Lightning Experience App Launcher. More experienced developers can chose another method to expose the component, if desired.

Steps To Follow :-
Step 1 : Create Custom Object ie..., Tower
Label : Tower
Plural Label : Towers
Step 2 : Create a New Custom Field in Tower Object.
๐Ÿ‘‰1. Field Label: State
Type: Master-Detail
Related To : Account
Field Name: State
Child Relationship Name: Towers
๐Ÿ‘‰2. Field Label: Tower Location
Field Name: Tower_Location
Type: Geolocation
Latitude and Longitude Display Notation: Decimal
Decimal Places: 6
Step 3 : Create Sample Records as Follows :
๐Ÿ‘‰ Create two new Account records to represent the regions (only the Name field is required).
1. Utah
2. Idaho
๐Ÿ‘‰ Create four new Tower records
1. Name: Lightning Ridge
State: Utah
Latitude: 40.490684
Longitude: -110.908727
2. Name: Craters
State: Idaho
Latitude: 43.555375
Longitude: -113.70069
3. Name: Nuckols
State: Idaho
Latitude: 47.516694
Longitude: -115.939163
4. Name: Rainbow
State: Utah
Latitude: 37.060663
Longitude: -110.975708

Step 4 : Apex Class - TowerMapUtilClass
 public inherited sharing class TowerMapUtilClass {  
    public static List<sObject> queryObjects(String theObject, List<String> theFields, String theFilter, String sortField, String sortOrder) {  
      String theQuery = 'SELECT ' + string.join(theFields, ',');  
      theQuery += ' FROM ' + theObject;  
      if(!String.isEmpty(theFilter)) {  
         theQuery += ' WHERE ' + theFilter;  
      }  
      if(!String.isEmpty(sortField)) {  
         theQuery += ' ORDER BY ' + sortField;  
         if(!String.isEmpty(sortOrder)) {  
           theQuery += ' ' + sortOrder;  
         }  
      }  
      return database.query(theQuery);  
    }  
 }  
Step 5 : Apex Class - TowerMapControllerClass
 public inherited sharing class TowerMapControllerClass {  
    @AuraEnabled  
    public static List<Tower__c> getAllTowers() {  
      String theObject = 'Tower__c';  
      List<String> theFields = new List<String>{'Id', 'Name', 'State__r.Name', 'Tower_Location__Latitude__s', 'Tower_Location__Longitude__s'};  
      String theFilter = '';  
      String sortField = 'Name';  
      String sortOrder = 'ASC';  
      List<Tower__c> allTowers = TowerMapUtilClass.queryObjects(theObject, theFields, theFilter, sortField, sortOrder);  
      return allTowers;  
    }  
 }  
Step 6 : Lightning Component : Towermap.cmp
 <aura:component implements="flexipage:availableForAllPageTypes" controller="TowerMapControllerClass" access="global" >  
    <aura:attribute name="mapMarkers" type="Object" access="PRIVATE" />  
    <aura:attribute name="markersTitle" type="String" access="PRIVATE" />  
    <aura:handler name="init" value="{!this}" action="{!c.handleInit}"/>  
    <aura:if isTrue="{!!empty(v.mapMarkers)}" >  
      <lightning:map   
     mapMarkers="{! v.mapMarkers }"  
     markersTitle = "{!v.markersTitle}"  
     zoomLevel="5" />  
    </aura:if>  
 </aura:component>  
Step 7 : Controller : TowermapController.js
 ({  
    handleInit: function (component, event, helper) {  
      helper.initHelper(component, event, helper);  
    }  
 })  
Step 8 : Helper : TowermapHelper.js
 ({  
    initHelper : function(component, event, helper) {  
      helper.utilSetMarkers(component, event, helper);  
    },  
    utilSetMarkers : function(component, event, helper) {  
      let action = component.get("c.getAllTowers");  
      action.setCallback(this, function(response) {  
         const data = response.getReturnValue();  
         const dataSize = data.length;  
         let markers = [];  
         for(let i=0; i < dataSize; i += 1) {  
           const Tower = data[i];  
           markers.push({  
             'location': {  
                'Latitude' : Tower.Tower_Location__Latitude__s,  
                'Longitude' : Tower.Tower_Location__Longitude__s  
             },  
             'icon': 'utility:Tower',  
             'title' : Tower.Name,  
             'description' : Tower.Name + ' Tower Location at ' + Tower.State__r.Name  
           });  
         }  
         component.set('v.markersTitle', 'Out and About Communications Tower Locations');  
         component.set('v.mapMarkers', markers);  
      });  
      $A.enqueueAction(action);  
    }  
 })  

Salesforce Trailhead : Administrator Certification Maintenance (Winter '19)

Unit : Administrator Certification Maintenance (Winter '19)

UNIT : Learn What’s New in Winter ‘19


1. On which object can users assign a new owner to multiple records at one time from a Lightning Experience list view?
A. Leads
B. Accounts
C. Campaigns
D. KnowledgeAarticles
2. How can a user place the cursor in the list view search field without navigating to it with the tab button or the cursor?
A. Custom macro
B. Quick text button
C. Keyboard shortcut g+f
D. Visualforce component

3. Which Forecast Type should the System Administrator configure to make territory forecasts available to the sales team?
A. Opportunity Splits
B. Opportunity Quantity
C. Opportunity Revenue by Territory
D. Opportunity Revenue by a custom currency field on the Territory Object

4. How many decimal places can the user choose to display when creating a dashboard component?
A. 0 or 2
B. 0, 2 or 5
C. Up to 2
D. Up to 5

5. What will display in the search results when a user uses the quick search on the reports tab?
A. Only reports, dashboards, or folders that the user owns
B. All the reports and dashboards that the user has access to
C. All the reports and folders that the user has access to
D. The reports or folders displayed are based on what is selected on the side menu

6. The customer community manager wants to gamify the community by recognizing members' specific accomplishments. What can the System Administrator configure to accomplish this goal?
A. Recognition Badges
B. Reputation Levels
C. Koa community template
D. Create a Theme

7. What has to be enabled to allow users to save Chatter posts before they appear in the feed?
A. Allow actions in the publisher.
B. Allow post pinning.
C. Allow draft posts.
D. Allow users to compose rich text posts.

8. How can a standard user adjust the page layout to display more fields in the same amount of space?
A. Add fields to the compact layout.
B. Remove charts from the page layout.
C. Remove blank spaces from the layout.
D. Change the density from comfy to compact.

UNIT : Get Hands-on with Quick Text

TASK : Create a Quick Text message in a Task:-
Your company uses Tasks to ask the fulfillment team to send marketing material to an account. But fulfillment doesn’t always get the details they need about the material. You decide to configure Quick Text for this purpose
๐Ÿ‘‰Enable quick text.
๐Ÿ‘‰Create a quick text message in the Quick Text object.
Quick text name: Data sheet needed
Message: Please send a data sheet
Category: None (You may have to modify the Quick Text page layout and deselect Required for the Category field.)
Channel: Task
๐Ÿ‘‰Create a new case.
Status: New
Case Origin: Phone
Subject: Materials
๐Ÿ‘‰Create a Task associated with the case you just created (with the subject of Materials).
Subject: Info Needed
Priority: Normal
๐Ÿ‘‰Apply the Quick Text Please send a data sheet in the comments section of the Task.

Steps To Follow :-
Step 1 : Click on setup, In quick find box search for Quick Text Settings.
Step 2 : Click on Quick Text Settings, Enable Quick Text Checkbox to "TRUE"
NOTE : Once Quick Text is enabled, it cannot be turned off.
Step 3 : To Create Quick Text Message, Click on + (All Tabs) Button, Search for Quick Text, Click on Quick Text Tab.
Step 4 : Click on New
Step 5 : Create a Record as Mentioned below.๐Ÿ‘‡
Create a quick text message in the Quick Text object.
Quick text name: Data sheet needed
Message: Please send a data sheet
Category: None (You may have to modify the Quick Text page layout and deselect Required for the Category field.)

Channel: Task
Step 6 : Create New Case : Click on Cases Tab → New → Create New Case Record as Mentioned below.๐Ÿ‘‡
๐Ÿ‘‰Create a new case.
Status: New
Case Origin: Phone
Subject: Materials
Step 7 : After Creating the Case Record, Scroll Down to related records, Under Open Activities, click on New Task