Salesforce Advanced Apex Specialist – Trailhead Superbadge

Salesforce Advanced Apex Specialist - Trailhead Superbadge
Continuing my quest with trailhead #SeizetheTrail , the last one in my list is the Advanced Apex Specialist Superbadge ..  I started working on this superbadge and this post is to document some of the findings / tips / gotchas as I progress thru this one.. Step 1
  • make sure you create the Custom metadata records with the exact same names given (that matches the product families)
  • in the constants apex class, declare all the properties as public static
Step 2
  • OrderTrigger needs to handle only after update event
  • OrderTrigger should use the Orderhelper internally for the rollup
  • Don't forget to remove the "with sharing" from the orderHelper class
Step 3
  • Override the Add and New button under Product object to use the visualforce page
  • Product2New visualforce page
    • in the pageblock table columns, use the field labels as headers using $ObjectType
    • update the column values to use the productRecord fields inside the productwrapper
    • use apex:chart to display the horizantal bar chart in a separate pageblock above the table
    • reRender the required components from the Save and Add buttons
  • Product2Extension apex class
    • Make the Controller class "Without Sharing"
    • add the inner class ProductWrapper
    • replace the list of products with list of productwrapper
    • use Savepoint in the Save method
    • iterate thru the productWrapper and extract the products and pricebookentries and insert them separately
    • use try catch block and do a rollback if there are any errors
  • ChartHelper apex class
    • Make the ContChartHelperroller class "Without Sharing"
    • move the chart data initialisation logic to Chart Helper class
    • make the GetInventory method @AuraEnabled
Step 4 This is probably the simplest of all the steps.. update theTestDataFactory class to handle the key requirements given..
  • Make sure all the methods in the TestDataFactory class are Public Static and the class is marked "with sharing"
  • all the construct methods should create the mentioned objects with the required fields and unique names and return the records without inserting them
  • use the Insert method to call all the construct methods and then insert the records returned from those methods.
Step 5
  • Update the VerifyQuantityOrdered method in TestDataFactory with a System.Assert to compare the Quantity Ordered between the Updated product and the original product plus the incoming quantity
  • run both OrderTests and Product2Extension_UnitTest and make sure both the test classes are passing  and the classes they are intended to cover has more than 75% coverage
Step 6
  • Don't forget to create the chatter group "Inventory Announcements" .. mark it public and tick the disable auto archive checkbox and use the description text given
  • update the product trigger to handle only after update and use the product helper class to handle the after update logic
  • update the product helper class AfterUpdate method to use the postAlerts method which in turn will be using the AnnouncementQueueable class to process the chatter group notification
  • AnnouncementQueueable is a Queueable class and uses ConnectApi to post the announcement
Step 7
  • Override the New and Edit buttons under the Order object to use the OrderEdit visualforce page
Step 8   This was my last superbadge and by completing this Advanced Apex Specialist Superbadge , I'm now eligible for Platform Developer II certificate provided I clear the multiple choice exam.. 🙂 Good luck to you all if you are working on this superbadge or preparing for the Salesforce Platform Developer II certification.  
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce Lightning Component Framework Specialist – Trailhead Superbadge

Salesforce Platform Developer II
I've successfully completed the Lightning Component Framework Specialist superbadge & this post documents some of the tips & tricks / gotchas that I noticed as I progressed thru this superbadge.. Overall it took me close to 7 hrs (split across 3 days) to complete this with the below breakdown of steps..
  • Day 1 - Step 1, Step 2, Step 3
  • Day 2 - Step 4, Step 5, Step 6
  • Day 3 - Step 7, Step 8, Step 9, Step 10
Note : This superbadge is both a direct part of the Salesforce Platform Developer II certification and also required to unlock the Advanced Apex specialist superbadge which is again part of the Salesforce Platform Developer II certification below is the list of points I noted down (categorised by Steps).. hope this helps you if you are working on the superbadge. Step 1 make sure you read the pre requisite steps and complete all of them..
  • use a New Trailhead Playground environment,
  • disable the component cache in the setup
  • install the unmanaged package, 
  • understand the naming conventions to be used in the javascript controller & helper methods
  • review the data model of the objects introduced by the unmanaged package and check if the data has been imported in those new objects.
Step 2 Read & Understand the use case and visualise the layout of the entire page and how the individual components are fitting in and communicating between them.
  • this step entirely focuses on the BoatSearchForm component so make sure the UI of this component is fully ready
  • make sure the "New" button visibility is controlled by checking the support for the createRecord event
  • create both the Lightning page and the Lightning app containing all the 3 components we created before.
Step 3
  • This step focuses on the BoatSearchResults component
  • you will be creating a component to handle the display of each boat tile
Step 4
  • This step focuses on the communication between the search form & the search results component and how the search results refresh based on the selected boat type
  • make sure the FormSubmit lightning event is of type Component and not Application
Step 5
  • The BoatSelectedEvent is of type Application
Step 6
  • make sure the BoatReviewAdded lightning event is of type Component and not Application
  • In the AddBoatReview component, create both the controller and helper methods and make sure from the helper method and set the response back to the boat review attribute or log the error back to the browser console
Step 7 Step 8 Step 9 Step 10 References Use the Salesforce Developer Forum and Stack Exchange discussions when you have exhausted all the options you can think of while solving a Step.. without trying your own attempts, referring these discussion threads will not help.. Good luck with the Super Badge and also with the Platform Developer II Certification.
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce Lightning Experience Rollout Trailhead Superbadge

I recently completed the Lightning Experience (LEX) Rollout superbadge. Being a trialhead addict/advocate and keeping  in mind the way it encourages us to learn the platform by practically solving the business use cases,I'm not going to give the complete solution here.. but I wanted to share some of the tricky ones I noticed.. hope this helps you to complete the superbadge Step 1
  • Run the Lightning Experience Readiness report and Salesforce Optimizer report
  • Act on the critical action from the report - Document to Files
  • Create the 2 different permission sets and assign it to the 2 users.
Step 2
  • The quiz was simple.. no surprises
Step 3
  • If you haven't done the Documents to Files in Step 1, do it here
  • Update the Accounts Tab visualforce page to Lightning using SLDS
Step 4
  • Create 2 Compact Layouts, 2 record types,
  • assign the record types to the 2 profiles of the users we have
  • assign the compact layouts to the record types
Step 5
  • Again, the quiz was simple.. no surprises but jus couple of places where I had to pause and think
    • Lookup Filter --> Lookup Search in LEX
    • Work.com High Risk in LEX
Step 6
  • After you create the group, customise the group record page (click edit page from setup wheel while on the group page) and use App builder to add the required components to the group page (Recommendations and Trending Topics)
Step 7 -
  • Opportunity Pipeline Report
    • Select the Report Type as Opportunities
    • In the Filters section, Select Show : All Opportunities, Date Field: Closed Date, All Time, and Click Ok (No Other Filters required)
    • Change the report format to Summary and Group by - Stage, Probability and Type and Summarise the Amount field
  • Scheduling Opportunity Pipeline Report - If Mon 8am is not available in the preferred time dropdown when scheduling the report in classic, then use the Subscribe option in lightning
  • Sales Operations dashboard - Keep only the 3 components in the requirement and use the right grouping and all the 3 components should use Sum of Amount
  • Useful discussion in this thread
Step 8 -
  • Create the 2 custom fields - Question & Answer
  • Create the 3 record types, page layouts in the knowledge object
  • Add the Record Type and the 2 custom fields to all the 3 page layouts
  • Create the Lightning Knowledge app
  • Remember to add the History component to the Utility Bar in the Lightning Knowledge App
  • Create the Org Home Lightning Home page and add to the Lightning Knowledge app
Step 9 -
  • easiest of the 3 quizes ...
Step 10 -
  • Create the Destination success lightning component with  a link to the url used by the custom link. make sure the url opens in a new tab. add the component to the Sales app home page.
  • Create the Campaign Influence Lightning report - make sure you add in the filters Campaign Name equals blank and Campaign Id equals blank
  • Update the two custom links mentioned as risks in the readiness report
    • Create a Lightning action UpsellCrosssellOpportunity under Case and link the action to open the CreateOppty lightning component
    • Create a detail page link under Campaign that opens the report we created before. make sure you use a relative url to open the report and also pass in the campaign Id to the report.
Checkout my trailhead profile here - Vamsi Gosu Also, if you are interested in trailhead and getting addicted with it like me and earning badges crazily, get yourself added to the unofficial leaderboard here 
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".