ABOUT THE EXAM
Candidates should demonstrate advanced knowledge of the programmatic capabilities of the Salesforce platform and data modeling to develop complex business logic and interfaces.
For an overview on the entire Platform Developer II credential process, check out this handy article.
Prerequisites
- Platform Developer I - Certification
- Apex Specialist - Superbadge
- Data Integration Specialist - Superbadge
- Lightning Component Framework Specialist - Superbadge
- Advanced Apex Specialist - Superbadge
RECOMMENDED TRAINING AND REFERENCES
Salesforce recommends the following training resources to guide your study:
- SOAP API Developer's Guide: Standard Objects
- Apex Code Developer's Guide: Using Salesforce Features with Apex
- About Advanced Currency Management
- Visualforce Developer’s Guide: apex:page
- Compound fields book in the SOAP API Development guide: Object Basics – Compound Fields
- SOAP API Developer's Guide: upsert()
- Choosing the Right Automation Tool Trailhead
- Visual Workflow Implementation Guide
- Force.com Actions Developer’s Guide: Apex Actions
- Apex Code Developer's Guide: Writing Apex – Annotations
- Force.com Apex Code Developer's Guide: Understanding Apex Managed Sharing
- Record-Level Access: Under the Hood
- Designing Record Access for Enterprise Scale
- Force.com REST API Developer's Guide: Getting Started with the Force.com REST API – Introducing Force.com REST API
- Lightning Components Developer’s Guide
- Introducing Lightning Components
- Apex Code Developer's Guide: Debugging Apex
- Developer Best Practices Checklist: Salesforce Developers Blog
- Visualforce Performance: Best Practices
- Apex Web Services and Callouts
- Salesforce Reporting REST API Developer Guide
- Salesforce Analytics API Hands-On Training Webinar
- Salesforce Development Tools
- Development Lifecycle Guide: Development Tools(Retired)
- Application Lifecycle and Development Models
- Force.com Tools and Toolkits
- Prepare for Your Salesforce Platform Developer II Credential
Topic
SALESFORCE FUNDAMENTALS 5%
- Describe the capabilities of base-system objects such as sharing objects, history objects, metadata objects, multi-currency, and Chatter objects.
- Describe the different capabilities of and use cases for the various Salesforce development platforms (Heroku, Fuel, Lightning Platform).
DATA MODELING AND MANAGEMENT 7%
- Describe how to design code that accommodates multi-language, multi-currency, multi-locale considerations.
- Describe the implications of compound data types in Apex programming.
- Describe the use cases for and benefits of external IDs.
- Identify use cases for different types of custom metadata and custom settings, and describe how to implement solutions for those use cases
LOGIC AND PROCESS AUTOMATION 33%
- Given a scenario, describe the implications of the order of execution of a record save.
- Describe the interactions between Visualforce/Apex with Flow/Process Builder.
- Given a scenario, identify the optimal programmatic or declarative solution.
- Given a scenario, debug unexpected behavior due to save execution order.
- Describe the Apex features available for error handling and maintaining transactional integrity.
- Identify potential issues with inefficient code and mitigation techniques to avoid exceeding governor limits.
- Describe the data return types for SOQL and SOSL queries and their impact on variable assignment.
- Describe the options, best practices, and use cases for asynchronous execution.
- Given a scenario, identify the appropriate dynamic Apex feature.
- Given a scenario, describe when and how to use Apex managed sharing.
- Describe the use cases for the various authentication techniques.
USER INTERFACE 22%
- Given a scenario, describe how to use a standard set controller.
- Describe the considerations when creating custom controllers and controller extensions.
- Describe the techniques for using Visualforce to perform actions and partial page refresh.
- Describe the messaging techniques and best practices when displaying errors in user interfaces.
- Describe techniques to maximize code re-use with Visualforce.
- Describe use cases for JavaScript in a Visualforce page.
- Given a set of requirements, describe the process for designing Lightning components
PERFORMANCE 7%
- Describe the common performance issues for user interfaces and the techniques to mitigate them.
- Describe the considerations for query performance.
INTEGRATION 11%
- Describe how to expose Apex classes as SOAP and REST web services.
- Describe how to use system classes to integrate with SOAP- or REST based web services.
- Describe when and how to use metadata, streaming, and Analytics API to enhance Apex and Visualforce solutions.
TESTING 12%
- Describe the best practices for unit testing in Apex.
- Describe how to apply different techniques to create test data and responses.
- Describe the implications of testing Visualforce controllers and controller extensions.
- Describe various ways to execute tests and specify test execution options.
DEBUG AND DEPLOYMENT TOOLS 5%
- Given a scenario, identify the appropriate tool to analyze application performance profiles and troubleshoot data and performance issues.
- Given a scenario, identify the appropriate deployment tool.
Eye catch
Cheat sheets
API Name | Protocol | Data Format | Communication | |
---|---|---|---|---|
1 | REST API | REST | JSON, XML | Synchronous |
2 | SOAP API | SOAP (WSDL) | XML | Synchronous |
3 | Chatter REST API | REST | JSON, XML | Synchronous (photos are processed asynchronously) |
4 | User Interface API | REST | JSON | Synchronous |
5 | Analytics REST API | REST | JSON, XML | Synchronous |
6 | Bulk API | REST | CSV, JSON, XML | Asynchronous |
7 | Metadata API | SOAP (WSDL) | XML | Asynchronous |
8 | Streaming API | Bayeux | JSON | Asynchronous (stream of data) |
9 | Apex REST API | REST | JSON, XML, Custom | Synchronous |
10 | Apex SOAP API | SOAP (WSDL) | XML | Synchronous |
11 | Tooling API | REST or SOAP (WSDL) | JSON, XML, Custom | Synchronous |
Resource Links
- International Organizations: Using Multiple Currencies
- Mass update dated exchange rates
- What is the difference between External ID and Unique ID
- Compound Fields
- Dynamic Apex
- Templating with Visualforce
- Best Practices for Optimizing Visualforce Performance
- Techniques for Optimizing Performance
- Understanding Test Data
- Testing Custom Controllers and Controller Extensions
- Invoke a Flow with Apex
- User Interface API Quick Start
- Integration Patterns Overview
Topic Links
- Apex Inbound Email
- Heroku Data Clips
- StandardSetController Class
- Working with Logs in the Developer Console
- Loading Test Data
- Execution Governors and Limits
- Apex be used with Visual Workflow
- SOAP API login()
- Named Credentials
- Session ID
- OAuth access token
- Security token
- transient
- Use JavaScript Remoting instead of controller actions.
- Test.startTest(), Test.stopTest()
- test data를 만들땐 @testsetup
- WebServiceMock
- Update code to call Test.setMock()
- HttpCalloutMock
- Transaction Control
- Example Text Searches(SOSL)
- LoginScopeHeader
- HttpRequest Class
- Using Certificates
- Using Certificates with HTTP Requests
- Considerations for Creating Custom Controllers and Controller Extensions
- SOQL For Loops
- System.runAs()
- Overloading Web Service Methods, Considerations for Using the webservice Keyword
- Continuation class
- Make Long-Running Callouts from a Visualforce Page
Eye catch
- <apex:messages>
- <apex:message>
- Working with Logs in the Developer Console
- Implement the Process.Plugin interface
- <apex:actionSupport>
- EntitySubscription
- EntityHistory ← unavailable beginning with API version 8.0
- System.runAs() ← other use of runAs
- Testing HTTP Callouts
- Testing ConnectApi Code
- Apex REST Methods
- dynamic SOQL
- local scope에서 버그
- Pros and Cons of Choosing StandardSetController Pagination Tool
- Using Compound Address Fields as Locations
- Building a Controller Extension
- If a WSDL document contains an Apex reserved word, the word is appended with _x when the Apex class is generated.
- Use a static variable to prevent the trigger from executing more than once
- Dynamic Record Choice
- Use SOQL for loops instead of standard SOQL queries
- Database.AllowCallout()
- custom setting
- Apex REST Annotation
- Territories can an instance of salesforce have 1000
- field history retained 18 Months
- maximum view state size of a visualforce page is 170kb
- max timeout for all callouts
- recursive trigger depth 16
- Get request
- Postback request
Eye catch