Tuesday, October 23, 2018

Salesforce is a Multitenant Architecture

Salesforce is a Multitenant Architecture


Multitenancy is aevery customer shares the same infrastructure and runs on the same platform. But, like an apartment building, each unit is unique and accessible only to the owner. It’s that simple

Multi-tenancy is a Shared IT Resources
  • Cost efficiently
  • Securely


Multi-Tenant vs Single-Tenant








Monday, October 15, 2018

Lightning Experience Configuration Converter Tool

Lightning Experience Configuration Converter Tool

Lightning Configuration Converter is a tool that looks at OnClick JS buttons and converts then to LEX compatible alternatives. The primary focus of this tool are simple url-hacks.





1. Preview:


2. Convert:


3. Deploy:
Tool Link:

TrailBlazer Community Link:

Difference Between Custom Settings, Custom Object & Custom Metadata Types in Salesforce

Difference Between Custom Settings, Custom Object & Custom Metadata Types in Salesforce

Custom settings are similar to custom objects. Application developers can create custom sets of data and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application cache, which enables efficient access without the cost of repeated queries to the database. Formula fields, validation rules, flows, Apex, and the SOAP API can then use this data.

Reference:

Salesforce Admin Jobs in Dubai

Salesforce Admin Jobs in Dubai

Please find below Job Description:

JOB DESCRIPTION:
Experience: 4+ yrs
Job location: Dubai
Role: SalesForce Admin/SalesForce Administrator

Job Description and Skillsets: 
- Experience 5 years in administrating Salesforce , CRM Administrator or Advanced Administrator Certified
- Manage users, data, and security
- Maintain and customize Sales Cloud and Service Cloud applications
- Build reports, dashboards, and workflows
- Analyzes, designs, and configures SalesForce to develop and implement systems to meet customer facing business and technical requirements
- Responsible for supporting the maintenance of the functional areas of data management, dashboards, reports, etc. as well as maintaining and troubleshooting existing configurations.
- Salesforce expert and key contributor in many aspects of projects, including development, configuration and UAT
- Provide day-to-day end-user support and educate users with proactive best practices to enhance and increase their knowledge of Salesforce.com.
- Establish and implement best practices with regards to system maintenance, configuration, development, testing, data integrity, etc.
- Research and communicate changes in upcoming versions of salesforce.com and other integrated applications.
Tools: SalesForce
If interested, please reply with your resume and following details:
Total experience (yrs):
Relevant experience as SalesForce Admin (yrs):
Current CTC:
Expected CTC:
Notice period:
Current location:
Any onsite experience:

Contact Details:
Amrutha| Talent Acquisition
Amrutha.sindhuja@arowanaconsulting.com
Bangalore | Dubai | Abu Dhabi | Jeddah | Muscat | New York
www.arowanaconsulting.com

Saturday, October 13, 2018

Execution Mode for Process Builder and Flow

Process Builder and Flow Execution ModeUser-added image
Process Builder runs in the system mode so the object and field level permissions both will be ignored for the user who triggers the Process.
However, if a Process is launching a Flow (which runs in system mode), the whole automation will run in the system mode.

Process Builder like Workflows runs in the System Mode hence not restricted by Field Level Security or object level permissions
Flows run in User Mode, Flows when Launched using a Process builder will run in the System mode.


for more detials:

Monday, October 8, 2018

Difference between Salesforce Process Builder and Workflow

Difference between Salesforce Process Builder and Workflow

Workflows Rules allow you to define the following actions:
  • Field Updates
  • Email Alerts
  • Create Tasks
  • Send an Outbound Message
Process Builder now allows Admins to do the following actions to compare the workflow rules:
  • Create Records (not just task records)
  • Update fields on any related record
  • Post to Chatter
  • Invoke other processes
  • Launch a Flow
  • Submit a record for Approval
  • Call/invoke an Apex class
Process Builder vs Workflow


Wednesday, September 5, 2018

Salesforce Report List Using XML Format

Salesforce Report List Using XML Format


Generate Salesforce Reports as a XML format using the below way:
  1. Login to your salesforce ORG using your credentails
  2. Replease the URL after your salesforce domain  like "servlet/servlet.ReportList/"
https://theblogreader-developer-edition.my.salesforce.com/servlet/servlet.ReportList/
here https://theblogreader-developer-edition.my.salesforce.com/ -> domain 

Difference Between Managed Packages and Unmanaged Packages in Salesforce

Difference Between Managed Packages and Unmanaged Packages in Salesforce



Its based on three attributes:
  1. Customization
  2. Upgrades
  3. Org Limits









Attribute        Managed PackagesUnmanaged Packages
Customization You can’t view or change the offering’s code or metadata like Apex Class, Trigger, VF Page & Lightning Component, etc.You can customize code and metadata, if desired.
Upgrades The provider can automatically upgrade the offering.To receive an upgrade message, you must uninstall the package from your org and then reinstall a new version from AppExchange.
Org limits The contents of the package don’t count against the app, tab, and object limits in your org.The contents of the package count against the app, tab, and object limits in your org.

Sunday, September 2, 2018

Difference types of Record level access in salesforce

Difference types of Record level access in salesforce



There are four types of record level access in salesforce


  1. Org-wide defaults
  2. Role hierarchies
  3. Sharing rules
  4. Manual sharing

Salesforce Trailhead Challenge: Create a validation rule to check that a contact is in the zip code of its account

Salesforce Trailhead Challenge: Create a validation rule to check that a contact is in the zip code of its account




Error Condition Formula:

AND (
NOT(ISBLANK( AccountId )),
MailingPostalCode <> Account.ShippingPostalCode

)

Monday, August 27, 2018

How to split string values using Salesforce Apex Class

How to split string values using Salesforce Apex Class

Split the string values in comma or space or semicolon then use split the below syndax:

List<String> values = splitStringVal.split(',');
List<String> values = splitStringVal.split(';');
List<String> values = splitStringVal.split(' ');


For Example:

String splitStringVal = 'aaa;bbb;ccc;dddd';
List<String> values = splitStringVal.split(';');
for(String value:values){
    System.debug(value +'\n');
}


Output:
aaa
bbb
ccc
ddd


Use String.split(regExp, limit) method:

Returns a list that contains each substring of the String that is terminated by either the regular expression regExp or the end of the String.

Example:

String strValue = 'this-is-learn-for-sfdc';
List<String> result = strValue.split('-', 2);
System.debug(result);

Result:
USER_DEBUG [3]|DEBUG|(this, is-learn-for-sfdc)


Reference:
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_string.htm

Salesforce Package XML Format for Workbench and ANT Tool Deployment

Salesforce Package XML Format for Workbench and ANT Tool Deployment

Salesforce Package XML Format : 

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <!-- Custom Object Tab, Web Tab and Visualforce tab -->
    <types>
        <members>Employee__c</members>
        <name>CustomTab</name>
    </types>
    <types>
        <members>*</members>
        <name>ApexClass</name>
    </types>
    <types>
        <members>*</members>
        <name>ApexComponent</name>
    </types>
    <types>
        <members>*</members>
        <name>ApexPage</name>
    </types>
    <types>
        <members>*</members>
        <name>ApexTrigger</name>
    </types>
    <types>
        <members>*</members>
        <name>CustomApplication</name>
    </types>
    <types>
        <members>Activity.Closed__c</members>
        <name>CustomField</name>
    </types>
    <types>
        <members>*</members>
        <members>Account</members>
        <name>CustomObject</name>
    </types>
    <types>
        <members>*</members>
        <name>CustomTab</name>
    </types>
    <types>
        <members>Images/Logo.png</members>
        <name>Document</name>
    </types>
<!--     For retrieving and deploying Email Templates, folder name is mandatory       -->
    <types>
        <members>unfiled$public/Test_Notification</members>
        <members>EmailTemplates/InquiryPortal</members>
        <name>EmailTemplate</name>
    </types>
    <types>
        <members>*</members>
        <name>HomePageComponent</name>
    </types>
    <types>
        <members>*</members>
        <name>HomePageLayout</name>
    </types>
<!-- Home Page Custom Link -->
    <types>
        <members>*</members>
        <name>CustomPageWebLink</name>
    </types>
   <types>
        <members>Account.My_Account_Team</members>
        <name>ListView</name>
   </types>
    <types>
        <members>Account-Account Layout</members>
        <name>Layout</name>
    </types>
    <types>
        <members>Analyst</members>
        <name>Profile</name>
    </types>
    <types>
        <members>ExtraReports</members><!--Report Folder-->
        <members>ExtraReports/AnyOccupation</members><!--Report-->
        <members>unfiled$public/Test</members><!--Report from Unfiled Public Reports-->
        <name>Report</name>
    </types>
    <types>
        <members>ExtraDashboards</members><!--Dashboard Folder-->
        <members>ExtraDashboards/AnyOccupation</members><!--Dashboard-->
        <name>Dashboard</name>
    </types>
    <types>
        <members>*</members>
        <name>ReportType</name>
    </types>
    <types>
        <members>*</members>
        <name>StaticResource</name>
    </types>
    <types>
        <members>Contact.SelectTitle</members>
        <name>WebLink</name>
    </types>
    <types>
        <members>*</members>
        <name>PermissionSet</name>
    </types>

     <types>
        <members>*</members>
        <name>QuickAction</name>
    </types>
    <!--
 Workflow includes WorkflowFieldUpdate,
 WorkflowAlert, WorkflowOutboundMessage, WorkflowRule
    -->
    <types>
        <members>ObjectName.WorkFlowName</members>
        <name>Workflow</name>
    </types>
    <types>
        <members>ObjectName.FieldUpdateName</members>
        <name>WorkflowFieldUpdate</name>
    </types>
    <types>
        <members>ObjectName.FieldUpdateName</members>
        <name>WorkflowAlert</name>
    </types>
    <types>
        <members>ObjectName.FieldUpdateName</members>
        <name>WorkflowOutboundMessage</members>
    </types>
    <types>
        <members>ObjectName.FieldUpdateName</members>
        <name>WorkflowRule</name>
    </types>
    <types>
        <members>ObjectName.FieldUpdateName</members>
        <name>WorkflowTask</name>
    </types>
<!--        Custom Button/Link         -->
   <types>
        <members>Directory_Edition__c.Final_Letter_Renewal</members>
        <name>WebLink</name>
    </types>
<!--        Standard Tabs and Fields renames        -->
    <types>
          <members>*</members>
          <name>CustomObjectTranslation</name>
    </types>
<!--        Validation Rules        -->
    <types>
<members>Object Name.Validation Name</members>
        <name>ValidationRule</name>
    </types> 
<!--        Record Types        -->
    <types>
<members>Object Name.Record Type Name</members>
        <name>RecordType</name>
    </types>
<!--       Role        -->
    <types>
          <members>*</members>
          <name>Role</name>
    </types>
<!--       Queue        -->
    <types>
          <members>*</members>
          <name>Queue</name>
    </types>
<!--       Public Group        -->
    <types>
          <members>*</members>
          <name>Group</name>
    </types>
<!--      Custom Labels        -->
    <types>
          <members>*</members>
          <name>CustomLabel</name>
    </types>
<!--      LetterHead       -->
<types>
<members>*</members>
<name>Letterhead</name>
</types>
<!--      Process Builder and Flow  -->
    <types>
        <members>*</members>
        <name>Flow</name>
    </types>
<types>
<members>LogACall</members><!--Global Action -->
<members>Task.TestingAction</members><!--Object Quick Action -->
<name>QuickAction</name>
</types>
<!-- Platform Event -->
<types>
<members>EventName__e</members>
<name>CustomObject</name>
</types>
<!-- Sharing Rule -->
    <types>
        <members>Account.*</members>
        <name>SharingCriteriaRule</name>
    </types>
    <types>
        <members>Account.*</members>
        <name>SharingOwnerRule</name>
    </types>
<!-- Lightning Component -->
<types>
<members>ComponentName</members>
<name>AuraDefinitionBundle</name>
</types>
    <version>41.0</version>
</Package>


Reference:
Ant Migration Tool Guide

Sunday, August 26, 2018

Retrieve Activity Custom Fields using Salesforce Package.xml

Retrieve Activity Custom Fields using Salesforce Package.xml


if you try to retrieve Activities fields (Custom fields of Event/Task object) then use the below:
<types>
<members>Activity.CustomField__c</members>
<name>CustomField</name>
</types>

For More details:

Wednesday, August 22, 2018

What all are the action types available in Salesforce Global Actions

What all are the action types available in Salesforce Global Actions


  1. Create a Record
  2. Send Email
  3. Log a Call
  4. Custom Visualforce
  5. Custom Canvas
  6. Lightning Component

Saturday, March 10, 2018

Salesforce Model-View-Controller (MVC) pattern

Salesforce Model-View-Controller (MVC) pattern

Salesforce Model-View-Controller (MVC) pattern contains below three modules:
  • Model
  • View
  • Controller
1. Visual Force pages, Page Layouts, Tabs comes under View Layer of Model View controller .
2. Workflows, Apex Classes, Triggers comes under Controller part in Model View controller .
3. Objects, Fields, Relationships comes under Model Layer of Model View Controller .