Showing posts with label Swayam chouksey. Show all posts
Showing posts with label Swayam chouksey. Show all posts

Sunday, 1 October 2017

Salesforce Data Architecture & Management Designer Certification --  My Experience




Recently I have cleared Salesforce Data Architecture & Management Designer Certification. This is my second Certification on Application Architect Track.

Credential Overview:


The Salesforce Certified Data Architecture and Management Designer credential is designed for those who assess the architecture environment and requirements and design sound, scalable, and high-performing solutions on the Force.com platform as it pertains to enterprise data management.

Exam Outline:

  • 60 multiple-choice/multiple-select questions* (2-5 unscored questions may be added)
  • 120 minutes allotted to complete the exam (time allows for unscored questions)
  • 68% is the passing score
  • No prerequisites; however, we recommend the training and materials available through the free resource guide for this domain speciality
  • A full exam outline can be found in the exam guide
My Experience:

This is really a good Salesforce certification exam so far, The exam mostly focuses on Large Data Volume, Skinny Tables, MDM, data quality. If you have work on these topics than it is very easy to clear this one.

Here are some examples of the concepts you should understand to pass the exam:
  • Aware of platform-specific design patterns and key limits
  • Understand large data volume considerations, risks, and mitigation strategies
  • Understand LDV considerations with communities
  • Ability to design a data and sharing model that supports an LDV environment
  • Understand data movement best practices in an LDV environment
  • Understand strategies to build an optimized and high-performing solution
Study Material:

Large Data Volumes - Very Useful to walkthrough through Salesforce Data Architecture for Large Data

Data Skewing - A must read to understand how data skewing works.

Optimizing SOQL, List Views, and Reports - Good Insight on how to Maximizing the Performance of Force.com SOQL, Reports, and List Views

Bulk API - A must read how bulk API works, Parallel Processing etc.

Primary Key Chunking - Understand What PK Chunking means and how it works.

Data Loading - Learn how Extreme Force.com Data Loading works.

API Limits -  Very Useful notes on Bulk API Limits

Master Data Management - Very Useful post on How MDM works.

Data Governance and Stewardship in Salesforce - Useful video on Best Practices for Data Governance & Stewardship in Salesforce.

Useful Blogs:


Quizlet:


Say Hello To Me On Twitter | Facebook | Linkedin | Medium | My Blog

#HappyLearning #AllTheBest

Saturday, 23 September 2017

Salesforce Sharing and Visibility Designer Certification — My Experience


Recently I have cleared Salesforce Sharing and Visibility Designer Certification, my first certification on Salesforce new Architect track.

Credential Overview

The Salesforce Certified Sharing and Visibility Designer credential is designed for those who assess the architecture environment and requirements and design sound, scalable, and high-performing technical solutions on the Force.com platform that meet sharing and visibility security requirements. Candidates should have experience communicating solutions and design trade-offs to businesses and IT stakeholders.

Exam Outline

  • 60 multiple-choice/multiple-select questions* (2–5 unscored questions may be added)
  • 120 minutes allotted to complete the exam (time allows for unscored questions)
  • 68% is the passing score
  • No prerequisites; however, we recommend the training and materials available for the free resource guide for this domain speciality
  • A full exam outline can be found in the exam guide

My Experience

This is really a good Salesforce certification exam so far, The exam mostly focuses on Profiles, Roles, OWD, Sharing Rules, Salesforce licenses, Permission Sets, Apex Managed Sharing, Record Locking related issues, Territory Management, Communities, Account & Opportunity Teams. If you have work on these topics than it is very easy to clear this one.

Study Material


Useful Blogs


Say Hello To Me On Twitter | Facebook | Linkedin | Medium | MyBlog

#HappyLearning #AllTheBest

Friday, 1 July 2016

Salesforce Dev Utility Post #3 : Pagination in Visualforce Page, Using Visualforce Component

Working on large set of Data or Displaying more than 100 records in a single visualforce page, We need to do the Pagination,

Salesforce has a number of different pagination options that are available to you which include using a Visualforce StandardSetController, Query and QueryMore SOAP API Calls, and Offset clauses within SOQL queries. These options are great but sometimes when you are building a custom site or working with complex data models you are unable to use standard objects and need to use custom wrapper classes for your data.

Below is Generic component to implement pagination. Here you only have to pass the list of recodrs you want to show up using pagination also you have to pass the columns fields you desire to display.

Following is a visualforce component for pagination:
Here you have to pass the list of records(whichever object it may be) you want to display in table and the column fields to display.

Visualforce component

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<apex:component controller="ComponentController">
  <apex:attribute name="listo" description="List of Account" type="Account[]" required="false" assignTo="{!idList}"/>
  <apex:attribute name="listofield" description="Fields to display" type="string[]" required="false" assignTo="{!SobjFieldList}"/>     
     
    <apex:form >
       <apex:pageblock id="pg">
          <apex:pageBlockTable value="{!SObjectRecs}" var="rec">
             <apex:repeat value="{!FieldList}" var="fl">
                <apex:column value="{!rec[fl]}"/>
             </apex:repeat> 
          </apex:pageBlockTable>
       
          <apex:panelGrid columns="7">
             <apex:commandButton status="fetchStatus" reRender="pg" value="First" action="{!setRecords.first}" disabled="{!!setRecords.HasPrevious}" />
             <apex:commandButton status="fetchStatus" reRender="pg" value="Previous" action="{!setRecords.previous}" disabled="{!!setRecords.HasPrevious}" />
             <apex:commandButton status="fetchStatus" reRender="pg" value="Next" action="{!setRecords.next}" disabled="{!!setRecords.HasNext}" />
             <apex:commandButton status="fetchStatus" reRender="pg" value="Last" action="{!setRecords.last}" disabled="{!!setRecords.HasNext}"/>
             <apex:outputPanel style="color:green;">
                  <apex:actionStatus id="fetchStatus" startText="Fetching..." stopText=""/>
             </apex:outputPanel>
          </apex:panelGrid>
       </apex:pageblock>
    </apex:form>
  
</apex:component>

Controller For Visualforce component

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class ComponentController {

public List<sObject> idList{get;set;}
public List<String> SobjFieldList{get;set;}
public Integer pageSize = 10;  
  Public ApexPages.StandardSetController setRecords{
    get{
     if(setRecords == null){
        setRecords = new ApexPages.StandardSetController(getIdListRecrds());
        setRecords.setPageSize(pageSize);
     }  
      return setRecords;
    }set;
   }
    
   Public List<sObject> getSObjectRecs(){
        List<sObject> sObjList = New List<sObject>();
        for(sObject SObj :(List<sObject>)setRecords.getRecords())
            sObjList.add(SObj); 
        return  sObjList ;   
   }
   
   Public List<String> FieldList{
       get{
       List<String> FieldList = New List<string>();
       FieldList = getSobjtFieldList();
       return FieldList;
       }set;
   }
   
    public List<sObject> getIdListRecrds() {
       List<sObject> IdListRecrds =idList;
       return IdListRecrds;
    }
    
    public List<string> getSobjtFieldList() {
       List<String> FieldList = SobjFieldList;
       return FieldList ;
    }

}

Usage with Visual force Page :

1
2
3
<apex:page controller="PageController">
  <c:PaginationComponent listo="{!accountList}" listofield="{!accountFieldList}"/>
</apex:page>

Controller :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public Class PageController {
Public List<Account> accountList {get;set;}
Public List<String> accountFieldList{get;set;}

    public PageController (){
      accountList = New List<Contact>();
      accountFieldList = New List<string>();
      accountList = [select Name, AccountNumber, AccountSource, Phone, Type from Account];
      accountFieldList.add('Name');
      accountFieldList.add('AccountNumber');
      accountFieldList.add('AccountSource');
      accountFieldList.add('Phone');
      accountFieldList.add('Type');
    }
}

Please connect with me in case of any doubt.

                                         Happy Coding !!      

Thursday, 12 November 2015

Salesforce Dev Utility Post #2 : Best Practice -- Force.com Development Naming Conventions

If most people don't mind along with the senior developer then you will have very difficult time persuading them all. In this case I would recommend just keep going with the original convention set forth by the original developer and at least keep things consistent.

If other people are not okay with that as well then you can focus on the ROI of converting already existing project naming convention to language naming convention and present that to the management along with the senior developer. This will most certainly cause some friction.
In conclusion, I would say that language naming conventions are very important because new people coming into your project are more comfortable with the code-base requiring less explanation and causing less friction.

The reason being that language naming conventions are global and project naming conventions are local so people would need more time getting used to it.

As new developers are getting used to the project naming conventions they are bound to mix it up with language naming conventions if that's what they were used to. Code reviews could solve this issue but it is an unpleasant element of going with the project naming conventions nevertheless.

Hence, from that perspective language naming conventions are more important than project naming conventions.

Follow the CamelCase Java conventions, except for VF pages and components start with a lower case letter.

Triggers:
  • § <ObjectName>Trigger - The trigger itself. One per object.
  • §  <ObjectName>TriggerHandler - Class that handles all functionality of the trigger
  • §  <ObjectName>TriggerTest

Controllers:
  • §  <ClassName>Controller
  • §  <ClassName>ControllerExt
  • §  <ClassName>ControllerTest
  • §  <ClassName>ControllerExtTest

Classes:
  • §  <ClassName>
  • §  <ClassName>Test (These might be Util classes or Service classes or something else).

Visualforce pages and components:
  • §  <ControllerClassName>[optionalDescription] (without the suffix Controller). There might be multiple views so could also have an extra description suffix.


Object Names and custom Fields:
  • §  Upper_Case_With_Underscores

Variables/properties/methods in Apex:
  • §  camelCaseLikeJava - more easily differentiated from fields

Test methods in test classes
  • §  test<methodOrFunctionalityUnderTest><ShortTestCaseDesc> - For example, testSaveOpportunityRequiredFieldsMissing, testSaveOpportunityRequiredFieldsPresent, etc.

Working on something that would be used as an app or in some cases just a project? If yes, then do the following:

Prefix all custom objects, apex classes, Visualforce pages and components with an abbreviation so that they are easier to identify (e.g., easier for changesets). For example the WidgetFactory app would have the prefix wf on those. Additionally, when adding custom fields to a standard object they would also be prefixed to identify them as part of the app/package.


The main reason for the Object and Fields Names using Upper_Case_With_Underscores is that when you type in the name field or object with spaces it automatically adds the underscores. Although Apex is case insensitive, always refer to the Objects and Custom Fields in the code as Upper_Case_With_Underscores as well for consistency all around and consistency with what is generated by the SOQL schema browser and other tools. Object and Field Labels (which are generally ignored by code but visible to users) should keep spaces, not underscores.

"Happy Coding"


Wednesday, 26 August 2015

Wednesday, 22 April 2015

Salesforce Dev 401 Certification Preparation

Certified Salesforce Administrator DEV 401 300x300 How To Pass the Salesforce Developer DEV 401 Exam With Free Resources

First of all, one need to understand the key point of taking Salesforce Developer track certification. As you might know, there are two certifications available for the development track.
  • The Salesforce.com Certified Force.com Developer
  • The Salesforce.com Certified Force.com Advanced Developer
For the sake of clarity, I’ll just repeat the official description here: 

The ‘Salesforce.com CertifiedForce.com Developer’ certification is for those who want to demonstrate their knowledge, skills and abilities in building custom applications and analytics using the declarative capabilities of Force.com platform. 

What this means is that the ‘Salesforce.com Certified Force.com Developer’ certification merely focuses on declarative capabilities and not the coding capabilities, which is the subject of ‘TheSalesforce.com Certified Force.com Advanced Developer’ certification.

Resources to Pass Salesforce Developer Exam (DEV-401)
  1. Salesforce Developer Study Guide (PDF)
  2. Force.com Platform Fundamentals (Free)
  3. Premier training - Building Applications with Force.com and Visualforce (DEV401)
  4. Tip Sheets and Implementation Guides (Salesforce Help - Free)
  5. Workshop: Get Started on the Certified Force.com Developer Credential (Dream force video)

Specific Areas to Focus On
  1. Master-detail relationships
  2. Sharing rules and Org Wide Defaults
  3. Assignment rules
  4. Approval processes
  5. Junction Objects
  6. Workflows
  7. Custom report types
  8. Analytic snapshots
  9. Validation rules
  10. Field level security
  11. Record types
  12. Role hierarchy
  13. Relationship rules

Master-Detail Relationships
  1. Lookup or Master-Detail Relationship in Salesforce (Certified on Demand - video)
  2. Overview of Object Relationships (Salesforce Help)
  3. Considerations for Relationships (Salesforce Help)
  4. Master-Detail relationship (Johan Yu)

Sharing Rules and Org Wide Defaults
  1. Sharing rules Overview (Salesforce Help)
  2. Who sees what Record access via sharing rules (Salesforce video)
  3. How to configure: Sharing rules (Shell Black)
  4. Setting up Security Part 1 (Shell Black)
  5. How to configure OWDs (Shell Black)
  6. Security model (CoD)
  7. The Definitive Guide to Salesforce Security (Bluewolf)
  8. Sharing Rule Considerations (Salesforce Help)
  9. Criteria-Based Sharing Rules Overview (Salesforce Help)
  10. Creating Account Sharing Rules (Salesforce Help)
  11. Sharing Rule Categories (Salesforce Help)

Assignment Rules
  1. Lead Assignment Rules (Certified on Demand)
  2. Managing Assignment Rules (Salesforce Help)
  3. Setting up Assignment Rules (Salesforce Help)
  4. Viewing and Editing Assignment Rules (Salesforce Help)

Approval Processes
  1. Approval Processes Overview (Salesforce Help)
  2. Creating an Approval Process (Salesforce Help)
  3. Hands-on Training: Streamline Requests with Approval Processes (Dream force)
  4. Hands-on Training: Streamline Requests with Approval Processes (2) (Dream force)
  5. Serial and Parallel Approval Process (Johan Yu)

Junction Objects
  1. Introducing Junction Objects (Udacity)
  2. Creating a Many-to-Many Relationship (Salesforce Help)
  3. Deep dive into Junction Object (Shivasoft.in)
  4. Create a Round Robin Lead or Case Assignment Rule (Shell Black)

Workflows
  1. Creating Workflow Rules (Salesforce Help)
  2. Workflow Examples (Salesforce Help)
  3. Workflow and Approvals Overview (Salesforce Help)
  4. How to Configure Workflow: Rule Criteria (Shell Black)
  5. Salesforce Workflow Rules Part 1 (Shell Black)
  6. Salesforce Workflow Rules Part 2 – Immediate and Time Dependent (Shell Black)

Custom Report Types
  1. Hands-on Training: Put It All Together with Custom Report Types (Dream force)
  2. Report Types (CoD)
  3. Limits on Report Types (Salesforce Help)
  4. Add Child Objects to your Custom Report Type (Salesforce Help)
  5. Manage Custom Report Types (Salesforce Help)
  6. Set up a Custom Report Type (Salesforce Help)
  7. Create a Custom Report Type (Salesforce Help)

Analytic Snapshots
  1. Analytics Snapshots: Common Use Cases That Everyone Can Utilize (Dream force)

Validation Rules
  1. Using Validation Rules to Enforce Data Quality in Salesforce (Shell Black)
  2. Examples of Validation Rules (Shell Black)
  3. About Validation Rules (Salesforce Help)
  4. Validation Rules (CoD)
  5. Validation Rules (Appirio)

Field Level Security
  1. Who sees What: Field Level Security (Salesforce)
  2. Security Overview (CoD)
  3. Field-level Security Overview (Salesforce Help)
  4. Salesforce Field-Level Security Cheatsheet (Salesforce)

Record Types
  1. Tips and Hints for Record Types (Salesforce)
  2. Deep Diving into Salesforce Record Types (Arkus)
  3. Record Type in Salesforce.com (Johan Yu)

Role Hierarchy
  1. Who Sees What: Record Access via the Role Hierarchy (Salesforce)
  2. Overview of Roles (Salesforce Help)
  3. Controlling Access Using Hierarchies (Salesforce Help)
  4. Setting up Security Part 1 (Shell Black)

Relationship Rules
1.        Relationships Among Objects (Salesforce)
2.        Overview of Object Relationships (Salesforce Help)

For Preparation refer below links :

Quiz Link Part #1 (Click Here)

Quiz Link Part #2 (Click Here)

Sample Mock Questions Part #1. (Click Here To Download)

Sample Mock Questions Part #2 . (Click Here To Download)

Happy Learning !!