Saturday, 21 May 2016

the Salesforce Certified Platform App Builder Transition exam

Salesforce.com has introduced 3 new exams among others in the recent past. These exams are:
1. Salesforce Certified Platform App Builder
2. Salesforce Certified Platform Developer I
3. Salesforce Certified Platform Developer II
Salesforce has tried to break out the declarative capabilities of the platform and utilize the App Builder cert to test our knowledge about it.

If you hold the developer certification, then you are eligible to write a short transition exam to get the new App Builder cert.

Please Refer Below imp links:

http://www.salesforce.com/campaigns/success-services/developer-certification-in-progress.jsp
http://www.salesforce.com/campaigns/success-services/certified-force-developers.jsp


STUDY GUIDE :
Salesforce Certified Platform App Builder 
Transition Exam
Study Guide



Pre-Requisites and additional info:
  1. You should have passed the Developer certification. ðŸ™‚
  2. You are not expected to have programming experience (APEX, Visualforce, Lightning components using APEX or JS). But great if you do.
  3. But you ARE expected to have the following experience:
    • Familiarity with the declarative capabilities of the Force.com platform.
    • Awareness of Salesforce license types and the related considerations.
    • You know to design applications to support business processes and reporting requirements.
    • Familiarity with the social and mobile capabilities of the platform. Think Salesforce1.
    • Familiarity with the Salesforce development environments and the options available to deploy applications and manage changes on the Force.com platform.

Thursday, 19 May 2016

Add or Remove rows dynamically Functionality using apex and visual force page salesforce

<apex:page controller="creatingListOfRecordsController" showHeader="false" sidebar="false">
    <apex:form >
   
        <apex:pageBlock title="Creating List Of Account Records">
        <apex:pageMessages ></apex:pageMessages>
            <apex:pageBlockButtons location="top">
                <apex:commandButton value="Add Row" action="{!addRow}" reRender="table" immediate="true"/>
            </apex:pageBlockButtons>
                <apex:pageBlockTable value="{!accountwrapperList}" var="page" id="table">
                    <apex:column headerValue="Name">
                        <apex:inputField value="{!page.account.name}"/>
                    </apex:column>
                    <apex:column headerValue="Phone">
                        <apex:inputField value="{!page.account.Phone}" />
                    </apex:column>
                    <apex:column headerValue="Action">
                        <apex:commandLink value="Delete" action="{!removingRow}" immediate="true">
                            <apex:param name="index" value="{!page.counterWrap}"/>
                        </apex:commandLink>
                    </apex:column>
                </apex:pageBlockTable>
                <apex:commandButton value="Save" action="{!saving}" />
           
        </apex:pageBlock>
    </apex:form>
    </apex:page>

apex class:
public with sharing class creatingListOfRecordsController {
   
    public list<Account> accountList{get;set;}
    public list<Accountwrapper> accountwrapperList{get;set;}
    public Integer counter{get;set;}
   
    public creatingListOfRecordsController(){
           counter = 0;
           accountList = new list<Account>();
           accountwrapperList = new list<Accountwrapper>();
           for(Integer i=0;i<5;i++){
               Accountwrapper actWrap = new Accountwrapper(new Account());
               counter++;
               actWrap.counterWrap = counter;
               accountwrapperList.add(actWrap);
             
           }
     
    }
   
    public PageReference addRow(){
        //accountList.add(new Account());
        Accountwrapper actWrap = new Accountwrapper(new Account());
       
        counter++;
        actWrap.counterWrap = counter;
        accountwrapperList.add(actWrap);
        return null;  
    }
    public PageReference removingRow(){
   
        Integer param = Integer.valueOf(Apexpages.currentpage().getParameters().get('index'));
       
        for(Integer i=0;i<accountwrapperList.size();i++){
            if(accountwrapperList[i].counterWrap == param ){
                accountwrapperList.remove(i);    
            }
        }
       
       
        counter--;
        return null;  
    }
   
    public PageReference saving(){
        list<Account> updateAccountList;
        updateAccountList = new list<Account>();
        if(!accountwrapperList.isEmpty()){
            for(Accountwrapper accountWrapper:accountwrapperList){
                updateAccountList.add(accountWrapper.account);
            }
        }
        if(!updateAccountList.isEmpty()){
            upsert updateAccountList;
        }
       ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.Info,'Record Saved Successfully.');
       ApexPages.addMessage(myMsg);
        return null;
    }
   
    public class Accountwrapper{
        public Account account{get;set;}
        public Integer counterWrap{get;set;}
       
        public Accountwrapper(Account act){
            this.account = act;
           
        }
    }
   
}

customize omni channel logic to distribute cases based on Case Creation Date

Omni Channel queues distributes cases, based on Date/Time the case is assigned to the queue. we can customize this logic to look for some ...