Friday, October 30, 2015

Setup Audit fields feature – Winter 16 release update.

Setup Audit fields feature – Winter 16 release update

Setup Audit fields

What is audit fields feature? This feature allow us to migrate created date, last modified date, created by & last modified by fields data.

Many of us know about setup audit fields in salesforce. In Salesforce data migration we cannot migrate some fields data directly like created date & Last modified by fields data. To migrate this data we need to contact support to enable audit fields.

With the Winter 16 Salesforce release, we can directly enable this feature without contacting Salesforce.

To enable the user permissions, first enable the organization preference on the User Interface page. From Setup, enter User Interface in the Quick Find box, then select User Interface. After you enable the organization preference, enable the user permissions in a permission set or profile. You can set audit fields only in API-enabled editions of Salesforce.

Running Specified Tests-Changeset deployment in winter 16 release.

Running Specified Tests-Changeset deployment

Running specified tests option is now available with change set deployment in Salesforce. This option is available with winter 16 release. We can choose which tests to run when deploying or validating inbound changeset in Sandbox org production orgs. This option is available in both Salesforce Classic & Salesforce Lightning Experience.

Below running test option are available when you validate/deploy an inbound changeset:

Default, Run Local Tests, Run All Tests & Run specified Tests.

Default: By default no test classes will execute in a sandbox & all local tests will run when your inbound change set contains apex classes/apex triggers.

Run Local Tests: All local  test classes will  run with this option(Excludes managed packages classes).

Run All Tests: All test classes will  execute including managed packages.

Run Specified Tests: Only specified test classes will run with this option. We have to provide specified tests in comma-separated list.

Friday, October 23, 2015

Limitations of the approval process in salesforce.

Limitations of the approval process

Approval processes are available on Enterprise, Unlimited, Performance, and Developer editions. For the Professional Edition, you can enable this feature by paying an extra amount. As Salesforce is based on a multitenant architecture, it imposes a few limitations on the approval process:
• For each approval process, you can have a maximum of the following:
  • 30 steps per process
  • 25 approvers per step

• Each organization can have the following limitations:
  • 300 approval processes per object
  • 1,000 approval processes per organization

• An approval process's e-mail limit per day is as follows:
  • 1,000 per Salesforce standard license
  • 200,000 per organization                                          

Note: Once an organization's daily limit of 200,000 exceeds, Salesforce will send a warning e-mail to the default workflow user and discard all the e-mails. Salesforce will not try to resend them later.

You cannot delete active approval processes. If you want to delete them, you will first have to inactivate the approval process and make sure no records have been submitted for approval. If any records have been submitted, delete them and remove them from the recycle bin.
Once an approval process is activated, you cannot add, delete, or change the order of the steps or change the reject or skip comportment of that process, even if you make the process inactive.

Various ways to approve a request – approval settings

You can approve records in Salesforce by three ways, which are follows:

• Via a UI
• Through a wireless-enabled mobile device
• Via Salesforce Chatter 

Thanks for reading....

Tuesday, October 20, 2015

Reports and Dashboard limitations in salesforce.

Reports and Dashboard limitations in Salesforce.

The following are some noteworthy points about reports:
  • You can create a dashboard only from the matrix and summary reports.
  • A maximum of 2,000 rows will be displayed in a report. To view all the rows, export the report to Excel, or use the printable view for tabular and summary reports. For joined reports, the export option is not available, and the printable view displays a maximum of 20,000 rows.
  • In the report builder, up to 20 rows will be displayed for summary and matrix reports and up to 50 rows for will be displayed in the tabular report.
  • You can use five formulas per report.
  • You can use up to 20 field filters in a report.
  • To set the maximum number of records to display in a tabular report, click on Add and select Row Limit in a report builder.
  • By default, reports time out after 10 minutes. You can contact support to extend the time-out limit to 20 minutes for tabular, summary, and matrix reports, but no extension is available for joined reports. It will continue to time out after 10 minutes.
  • Reports will show only the first 254 characters in a rich-text area or a long-text area. 

A few noteworthy points about dashboards

The following are the noteworthy points about dashboards:
  • A dashboard filter can have up to 50 options. By default, 10 options areenabled. If you want to enable more, contact the support team to extend your limit.
  • Each dashboard can have up to 20 components.
  • A dashboard table or chart can display up to 20 photos.
  • You must wait at least one minute between dashboard refreshes.

A few points on the report and dashboard schedule

The following are some noteworthy points about the report and dashboard schedule:
  • If the running user becomes inactive, the report is not run. The systemadministrator will get an e-mail notification to either activate the user or delete the report scheduled, or change the running user to an active one inthe scheduled report.
  • The limit for scheduled reports per organization is one or two based on editions.
  • An organization is limited to 200 scheduled reports and dashboards.
  • Daily limits differ by edition. You can purchase additional schedule reports or dashboards.
  • A joined report can't be scheduled for future runs.
  • Scheduled reports run in the time zone of the user who set up the report schedule. Let's take an example. If the Time Zone field on your user record is set to Indian Standard Time, and you schedule a report to run every day at 3:00 PM, then the report runs every day between 3:00 PM and 3:29 PM as per Indian Standard Time.
  • The maximum size for e-mailed reports is 10 MB
  • For Enterprise Edition, you are only permitted one dashboard refresh per user, per hour, and for Unlimited Edition this limit is two. If you want to increase this slot, you have to purchase additional refresh slots. To do that, contact the support team.

A few points about analytical snapshots

The following are some noteworthy points about analytical snapshots:

  • The maximum number of rows you can insert into a custom object is 2,000
  • The maximum number of runs you can store is 200
  • The maximum number of source report columns you can map to target fields is 100
  • You can only schedule one analytic snapshot to start on any given day on Professional Edition
  • An analytic snapshot will fail during a scheduled run if the source report includes more than 100 fields.
  •  An analytic snapshot will fail during a scheduled run if the target object isincluded in a workflow

Thanks for reading...

Friday, October 16, 2015

Tags feature in salesforce.

Tags feature in salesforce.

Tags are some keywords that you can use with your records to make a search easier and organize the records in your personalized way. For example, in your organization, you have thousands of account records, but you want to organize the accounts that were created in the summer of 2014, so that the next time you search for the account records, you simply need to search summer 2014.

There are two types of tags that are provided by Salesforce:

        Personal Tags: These are private to a specific user.
        Public Tags: These are public and available for all users.

To use the tags feature, you need to enable it. To enable tags, follow these instructions:

1.   Navigate to Setup | Build | Customize | Tags | Tab Settings.
2.   Select Enable Personal Tags as shown in the following screenshot:

3.  Select the layout on which you want to show the tagging feature. In our case, select the Account Layout option and click on the Save button, as shown in the following screenshot: 

4. Now, go to any of the account record detail pages and you will see a button Add Tags as shown in the following screenshot:

5.  Enter the tag that you want to give to this account; in our case, enter Summer 14 and click on Save as shown in the following screenshot: 

6.  Now, the tag will be associated with this account, and you can see the related tags in the upper-right corner of the account.

In a similar way, you can enable public tags, and they will be available to all users.

Thanks for reading.....

Converting Multi-Select picklist to Multi-Select checkboxes in VF page.

Converting Multi-Select pick-list to Multi-Select check-boxes in VF page.

In this post i am providing an example of converting Multi Select Pick-list to  convert Multi Select Chyeckboxes in VF page.

For this i created a Multi-Select Pick-list field on opportunity page with some values.

Using custom controller extension in VF page.

Controller Class:

public class MultiCheckBoxExtn {
    public opportunity opp{get;set;}
    public List<SelectOption> leadSourceCheckbox {get;set;}
    public MultiCheckBoxExtn(ApexPages.StandardController controller) {
        opp = (opportunity)controller.getRecord();
    public void saveOpp(){
     upsert opp;
 //get the multi-select pick list values
    public List<SelectOption> MPOptions {
     get {
       List<SelectOption> options = new List<SelectOption>();
       for( Schema.PicklistEntry f : opportunity.Srinivas__Multi_Select_Pick_List__c.getDescribe().getPicklistValues()) {
         options.add(new SelectOption(f.getValue(), f.getLabel()));
       return options;
    //get and set the multi-select pick list as checkboxes
       public String[] MPItems { 
     get {
        String[] selected = new List<String>();
        List<SelectOption> sos = this.MPOptions;
        for(SelectOption s : sos) {
        if (this.opp.Srinivas__Multi_Select_Pick_List__c !=null && this.opp.Srinivas__Multi_Select_Pick_List__c.contains(s.getValue()))
        return selected;
     }public set {
        String selectedCheckBox = '';
        for(String s : value) {
         if (selectedCheckBox == '') 
           selectedCheckBox += s;
         else selectedCheckBox += ';' + s;
        opp.Srinivas__Multi_Select_Pick_List__c = selectedCheckBox;

VF page : 

<apex:page standardController="Opportunity" extensions="MultiCheckBoxExtn" tabStyle="Opportunity" id="thepg">
<apex:pagemessages ></apex:pagemessages>
    <apex:form id="theFm" >
     <apex:pageBlock id="thePB" >
        <apex:pageblockSection title="Opporutnity Details" id="thePbs1" collapsible="false">
         <apex:inputfield value="{!}" id="name1"/>
         <apex:inputField value="{!opp.closeDate}"/>
          <apex:inputField value="{!opp.stageName}"/>

         <apex:pageBlockSection title="Multiselect Picklist to Checkbox" columns="2" collapsible="false" id="thePbs2">
         <apex:outputLabel value="{!$ObjectType.opportunity.Fields.Multi_Select_Pick_List__c.InlineHelpText}" />
           <apex:selectcheckboxes layout="pageDirection"  value="{!MPItems}" label="" id="checkbox1">                   
             <apex:selectoptions value="{!MPOptions}"  > </apex:selectoptions>       
        <apex:pageblockButtons >
         <apex:commandButton value="Save" action="{!saveOpp}"/>

Once the user clicks  on the save button it will set the check box values into multi select pick-list 

If you edit the record it will show the multiselect picklist like this.

That's it.


Thursday, October 15, 2015

Deleting all the data in Salesforce.

Deleting all the data in Salesforce.

If you have a trial account of Salesforce, and at any time you decide to delete all the data including the sample data, that is, the data you stored in the Salesforce trial organization, follow these instructions:
1. Navigate to Setup | Data Management | Delete All Data.

2. Salesforce will request you to enter text to state that you understand all data will be deleted: 

 3. Click on the Submit button as shown in the preceding screenshot to complete this process.

Note: This feature is only available during the trial period.

Thanks for reading.....

Truncating custom objects in salesforce

Truncating custom objects in salesforce.

Truncating a custom object allows Salesforce to delete all records from particular objects and save the empty object and its metadata. This is a fast way to delete all records from custom objects compared to Import Wizard and Data Import Wizard. This action will remove records from custom objects and you cannot recover them from the recycle bin.

Enabling truncate for custom objects

Before using this feature for your organization, you must enable it. To do this, follow these instructions:
1. Navigate to Setup | Build | Customize | User Interface.
2. On the user interface page, navigate to the Setup section.
3. Select the Enable Custom Object Truncate checkbox, as shown in the following screenshot:

4.  Click on Save.

Performing truncate for custom objects

You can use this feature when you have created a custom object and filled it with test records. To delete those test records with a single action, you can use this feature.
To perform this action, follow these instructions:
1. Navigate to Setup | Build | Create | Objects.
2. Identify the object on which you want to perform this action and click on an object name to go to its detail page. In our case, select Event Object.
3. Click on the Truncate button, as shown in the following screenshot:

4. It will pop up a window. Read the warning message carefully and type the
object name as shown in the following screenshot:

5. Click on the Truncate button to complete the process.

Note: When you truncate a custom object, Salesforce stores a copy of the truncated object in the deleted objects' list for 15 days, and it will count against your organization's limit. After 15 days, the records will be erased permanently and will no longer count against your limits.

Thanks for reading.....

Saturday, October 10, 2015

Delegated administration in salesforce.

Concepts of delegated administration

Let's start with an example where TCS has 5,000 Salesforce Enterprise Edition licenses, and they have only one system administrator. The system administrator receives ample requests to reset the password, change login hours, unlock users, or change their sharing settings daily. To reduce this, the system administrator can go ahead and set up a delegated administrator, so that any other user who is a delegated administrator can help with the workload.

The delegated administrator is a concept that extends certain admin privileges to non-admin users in order to allow them to perform admin functions. The actions that delegated administrators can perform include the following:
User administration: For the named roles and their entire subordinate roles, delegated administrators can create and edit users and reset passwords, as well as unlock users in named roles. Delegated users can also log in as users who have granted login access to their administrator. They can also do quota settings, create default teams, and create personal groups.
Assignable profiles: The delegated administrators can assign only the profiles granted to the delegated administrator.

Custom object administration: Access can be granted to delegated administrators to serve as administrators for certain custom objects and their associated tabs only.

Setting up a delegated administration
To set up a delegated administration for your organization, follow these steps:
1.Navigate to Setup | Administer | Security Controls | Delegated Administration.
2.Click on New as shown in the following screenshot:

     3. It will redirect you to a New Delegated Group window, where you have to enter data in the Delegated Group Name field as well as optionally select the Enable Group for Login Access checkbox. The details of each field are as follows:

·Delegated Group Name: This specifies the group name.

·Enable Group for Login Access: This option is selected if you want to allow the delegated administrator to log in as a user belonging to the role hierarchy that they manage.

4. Click on Save; this will redirect you to the Delegated Group Detail page. This will look like the following screenshot:

    5. After creating the delegated user group, you have to do a few tasks, defined as follows:
   Delegated administrators: You can add users to this group who are a part of the delegated administrator group. To do this, click on the Add button available on the list related to Delegated Administrator; it will redirect you to a new page and add users (click on the magnifying glass icon) as per your business requirement. Once done, click on Save:

    User Administration: Now, you have to specify the roles and subordinates that the delegated administrators can create and edit. To do this, click on the Add button available in the list related to Role Administrator; this will redirect you to a new page and add a role (click on the magnifying glass icon) as per your business requirement. Once done, click on Save:

Assignable Profiles: Here, you can specify the profiles of the delegated administrators of this group and these can be assigned to the users they create or update. To do this, click on the Add button available on the list related to Assignable Profiles; this will redirect you to a new page and add assignable profiles as per your business requirement. Once done, click on Save

Delegated administrators cannot assign profiles with the permission Modify All Data, such as system administrator profiles.
Custom Object Administration: In this section, you can specify the custom objects that the delegated administrators of a group can administer. To do this, click on the Add button found on the list related to Custom Object Administration; it will redirect you to a new page, and here, you can add custom objects (click on the magnifying glass icon) as per your business requirement. Once done, click on Save:

Now, you are done with the delegated administrator settings. You can change these settings any time by navigating to Setup | Administer | Security Controls | Delegated Administration.
These changes are captured under View Setup Audit Trail. If you need to check the Audit Trail for these changes, navigate to Setup | Administer | Security Controls | View Setup Audit Trail. Finally, our delegated administrator page will look like the following screenshot:

Thanks for reading....

Wednesday, October 7, 2015

Difference between master-detail relationships and lookup relationships

Difference between master-detail relationships and lookup relationships

Master-detail relationship

Lookup relationship

You can define master-detail relationships between custom objects or between a custom object and a standard object (standard object must be the parent).

You can define a relationship between any two objects, standard or custom.

When a record in a master object (parent) is deleted, all the records in the detail object (child) that are related to that master record will be deleted.

When a parent object is being deleted, you can configure a child object to either clear the parent record value in the child record or prevent deletion of the parent record.

All child records must have a related parent record.

The parent record may not require a related parent record.

The ownership of the child record is determined by the related parent record. Child records do not have an owner.

Each child record has an owner and is not related to the parent record.

The detail record inherits sharing and security from the master record.

There is no security or inheritance between related parent and child records.

To relate an object to another object, no records should exist in the child object.

To relate an object to other objects, there is no condition on the number of records.

If you have the Roll-Up Summary field in the parent object, any create, edit, or delete action in the child record will trigger an edit action in the parent object. If you have a validation rule and other rules in parent object, the validation rules will trigger for the parent object.

You cannot create the Roll-Up Summary field in the lookup relationship using out-of-the-box Salesforce functionality.

Supports cross-object workflow. You can configure a field update action to update a field in the parent record using a value from the child record.

Does not support cross-object workflow.

To create a master-detail relationship for an existing object with records as the child object, you can initially define it as a lookup relationship, populate all parent fields for all records, and then change the relationship to a master-detail relationship.

You can build a many-to-many object relationship using two master-detail relationships in a single custom object, which is known as a junction object in that case. 

Thanks for reading...

| ,