Monday, June 24, 2019

Salesforce & Blockchain - a new addition to largest CRM By Revenue


Recently, I read a post on 'Salesforce gave blockchain technology a ringing endorsement....'. From there, I tried to note down some interesting points related to Salesforce, Blockchain and it's future competitors.




At its fourth annual TrailheaDX developer conference, Salesforce announced its new low-code platform called Salesforce Blockchain that enables organizations to share verified, distributed data sets across a trusted network of partners and third parties.


Salesforce Blockchain — which is currently available to select designer partners — is built on Hyperledger Sawtooth, an open source modular platform for designing, deploying, and running distributed ledgers, and it’s customized for Salesforce Lightning, Salesforce’s front-end framework for app development.


It consists of three components:

a) Blockchain Builder, a developer toolset for building blockchain applications;

b) Blockchain Connect, which integrates blockchain actions with Salesforce apps; and

c) Blockchain Engage, which enables customers to invite parties to blockchain apps created within Salesforce.


With Salesforce Blockchain, admins can build and maintain networks, apps, and smart contracts or create and share blockchain objects, and layer blockchain data on top of existing sales, services, and marketing flows like search queries and process automation.


Future Competitors -
===============
Salesforce Blockchain will compete to an extent with Azure Blockchain Service, Microsoft’s newly launched fully managed blockchain service, and Amazon Managed Blockchain. Other rivals include IBM Blockchain, a performance-as-a-service offering.



Note - Salesforce Blockchain is currently available to select design partners but the company expects it become generally available in 2020. Any suggestions what things you want to see in it's first release??

Thursday, November 2, 2017

How to pass Salesforce Certified Administrator (SU17) exam and become a certified Administrator?

Hello Friends,

After passing Salesforce Certified Platform App Builder - Transition Exam (SU17) few days before I registered for the Salesforce Certified Administrator (SU17) and happy to share that I cleared it today.


So, in this post I would like to share how did I prepared for this exam and what is the best way to achieve the same(if you are planning to get then). I would suggest to first go through the list of topics with links which is given in the examination guide of Salesforce Certified Administrator. Then the next best way to revise or to learn is Trailhead. I would say once you have done with these 2 things you are good enough to take the exam.

Wait!!! Wait!!!.... Remember one thing??? 'Practice makes a man/ woman perfect' 😋 So,take some time before tieing your shoe-lace and heading to exam centre. I would like to share one or two exam related links which you can take to test your knowledge -

a) http://www.salesforceben.com/certified-admin-mock-exam/

b) https://quizlet.com/212822561/adm-201-salesforce-certification-flash-cards/

From the above 2 links, you can get around 75-80% of questions. I think that's really good score to pass the exam since the minimum score require 65%. But hold on, we cannot rely on only above 2 links since I got 7-8 questions which I didn't found anywhere while practicing. And you never know this 7-8 questions can become more or less for anyone giving the exam. So, please don't rely completely on this online mock papers.

The extra questions which I got in my exam, I am sharing them here. Although it's not all those 7-8 questions but only those which I remember right now -

I) Lightning Sync can be used to be used to synced which of the below objects? (Choose 2)
A. Account
B. Opportunities
C. Contacts
D. Leads
E. Events

II) What are the valid fields for the validation rules? (Choose 2)
A. Active
B. Erro Message
C. Error Condition Formula
D. Owner

III) What is the name of the setting in profile that makes a user to to search for the records from the search although Tab is hidden from all the apps and also the tab bar?
A. Tab settings
B. Object settings
C. Rename Tab page
D. System permissions

Please let me know if you have any questions.

Monday, October 30, 2017

Real-time Sync of Salesforce Data using Change Data Capture (Pilot)


New feature of Winter'18 release -

The purpose of this article is to share how can we receive near-real-time changes of Salesforce records, and synchronize corresponding records in an external data store.

What is CDC (Change Data Capture Pattern)?

Change Data Capture as the name suggests is a design pattern to track changes in data so that an action can be taken based on the change. Changes include creation of a new record, updates to an existing record, deletion of a record, and undeletion of a record. CDC is common in most of the ETL tools however it is design pattern to track any data changes in any data repository that could be data warehouse or data bases. Data change events are published on a channel (the event bus) when changes occur in Salesforce.

For example, you have a human resource (HR) system with copies of employee custom object records from Salesforce. You can synchronize the employee records in the HR system by receiving data change events from Salesforce. After receiving the events, you can process the corresponding insert, update, delete, or undelete operations in the HR system. Because the changes are received in near real time, the data in your HR system stays up to date.

Note - Available in: Performance, Unlimited, Enterprise, and Developer Editions. This is a pilot program and Change Data Capture isn’t generally available unless or until Salesforce announces its general availability in documentation or in press releases or public statements. Make your purchase decisions only on the basis of generally available products and features.

Event Subscription -

To subscribe to data change events, use CometD the same way you subscribe to other streaming events, like PushTopic events or platform events.

Subscription Channels -

a) The channel to subscribe to all data change events is: /data/ChangeEvents
b) The channel to subscribe to data change events for a standard object is: /data/AccountChangeEvent (for Account object)
c) The channel to subscribe to data change events for a custom object is: /data/Employee__ChangeEvent (for Employee__c object)

Example: This data change event is sent when an account is created.

{
"data": {
"schema": "IeRuaY6cbI_HsV8Rv1Mc5g",
"payload": {
"ChangeEventHeader": {
"entityName": "Account",
"recordIds": [
"001R0000002aV0B"
],
"changeType": "CREATE",
"changeOrigin": "com.salesforce.core",
"transactionKey": "001b7375-0086-250e-e6ca-b99bc3a8b69f",
"sequenceNumber": 1,
"isTransactionEnd": true,
"commitTimestamp": 1501010206653,
"commitNumber": 92847272780,
"commitUser": "<User_ID>"
},

"Name": "Acme",
"Description": "Everyone is talking about the cloud. But what does it mean?",
"OwnerId": "<Owner_ID>",
"CreatedDate": "2017-07-25T19:16:44Z",
"CreatedById": "<User_ID>",
"LastModifiedDate": "2017-07-25T19:16:44Z",
"LastModifiedById": "<User_ID>"
},

"event": {
"replayId": 6
}

},
"channel": "/data/ChangeEvents"
}


For getting the list of supported standard objects and Salesforce release note on this, visit the below link -
https://releasenotes.docs.salesforce.com/en-us/winter18/release-notes/rn_api_data_change_events.htm

Monday, October 23, 2017

Salesforce Certified Platform App Builder – Transition Exam (SU-17)


Hi All,
Today, I have cleared my Salesforce Certified Platform App Builder–Transition Exam (SU-17) and here are the tips from my side to clear the exam:
1) Go through the training resources given in “SECTION 4. RECOMMENDED TRAINING AND REFERENCES” in the exam guide available at https://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjjtYTppPnUAhXFx7wKHdhqCMQQFggoMAA&url=http%3A%2F%2Fcertification.salesforce.com%2FSG_CertifiedPlatformAppBuilderTransition.pdf&usg=AFQjCNGl2oWzGI-d9lbhQZlCfiFBZtmGFw
2) Go through “Platform App Builder – Full Question Set” as given in http://sfdcstudy.org/platform-app-builder-quizzes/ and also the below one -https://www.proprofs.com/quiz-school/quizshow.php?title=transition-app-builder&q=15&next=y
3) Also here I am sharing some sample questions which I found in my exam -
I) Universal Container installs an unmanaged package. Which of the following are true: (Choose 2 answers):
A. Unmanaged packages can be upgraded
B. Components of unmanaged packages can be edited
C. Unmanaged packages have a namespace prefix
D. Unmanaged packages don't have a version number
E. Tests are executed during deployment
II) What would the proper field type be to allow users to enter multiple paragraphs (Choose 2 answers):
A. Text Area (Rich)
B. Text Area
C. Text Area (Long)
D. Text Area (Super Long)
E. Text
F. Text (Encrypted)
III) On an object called "Building", when the building is changed from "Commercial building" to "Residential building", some fields are not relevant anymore and should not appear on the page. What is the recommended solution to eliminate the fields that are no longer relevant?
A. Create a separate Residential object and use a workflow to clone the existing Commercial
B. Create a criteria-based sharing rule to help with access to the record
C. Create a Residential record type to control the page layout for the object
D. Create a separate Residential object and use a trigger to clone the existing Commercial object
IV) What is a true statement regarding case assignment rules? (Choose 3 answers):
A. A predefined Case Team is mandatory for each rule entry
B. Salesforce processes case assignment rules before workflow rules
C. They allow for more than one active rule at the same time
D. They allow for more than one rule entry for each assignment rule
E. They allow cases to be assigned to a queue
V) Which is true about social accounts:
A. You can use social accounts data even when you are not logged into the social account.
B. You need a personal social account in order to see social account data
C. You can use social accounts to import data into salesforce
D. Connection to social account is established thru a company wide "named principal"
VI) Universal Containers wants to rollout new product bundles with several pricing options. Pricing options include product-price bundles, account specific pricing and more. Which product satisfies the needs (Choose 1 answer):
A. Custom AppExchange-app for product-pricing
B. Workflow on Opportunity/Opportunity Product
C. Formula fields on Opportunity/Opportunity Product
D. Lightning process builder
VII) An admin is trying to add a custom VF page to the mobile app quick navigation menu but can't. What might be the problem?
A. The smart search is not enabled for the VF page
B. The VF page references / fields that the user can't access
C. A tab has not been created for the VF page
D. The menu configuration has not been set up correctly for the VF page
I got almost 90% of the questions in my exam from the above links, so this would suffice mostly, unless you are not lucky:)
Please let me know for any questions.

Thursday, October 5, 2017

Shield Platform Encryption In Salesforce


a) What basically Encryption mean?
At its most basic level, encryption scrambles information so that only those people with the right decoder key can unscramble it.

b) What is Shield Platform Encryption?
Salesforce Shield lets customers see who is doing what with sensitive data, know the state and value of their data going back up to ten years, and encrypt sensitive data at rest, while still preserving business functionality. 

c) What Kind of Data We Can Encrypt?
We can encrypt phone numbers, dates, names, text files, images, etc. If it’s recorded digitally, you can encrypt it. Shield Platform Encryption encrypts data at rest, meaning that we encrypt it when it’s being stored within Salesforce.

d) 'Shield Platform Encryption' Basics -
  • 'Keys' do the scrambling and unscrambling, and 'Secrets' keep your keys safe and working properly. Tenant secret partners with the master secret in what’s called a key derivation process to create keys that encrypt and decrypt your data. Master secret gets updated once per release, but you can update your tenant secrets as often as you want.
  • Shield Platform Encryption is available for free in Developer Edition orgs. 
  • All other editions require you to purchase a license. With Shield Platform Encryption, you can encrypt all kinds of confidential and sensitive data at rest on the Salesforce Platform. “At rest” means any data that’s inactive or stored in files, spreadsheets, standard and custom fields, and even databases and data warehouses.
  • The data is encrypted with a stronger 256-bit AES key.
  • Shield Platform Encryption even allows you to search for encrypted data in databases.
  • To generate 'Tenant Secret' key, goto Setup, enter Platform Encryption in the Quick Find box, then select 'Platform Encryption' and then select 'Generate Tenant Secret'.
  • You can 'Export' and also 'Import' the tenant secrets keys in order to regain access to data.
  • Best practice is to generate new tenant secret at frequent intervals. This process of generating a new tenant secret and archiving the old one is called key rotation. 
  • Archived tenant secrets can’t encrypt new data, but the app uses these archived keys to decrypt the data that was previously encrypted with it.
  • Remember, encryption doesn’t take the place of field-level access controls.
  • As with encrypted fields, encryption for files and attachments affects only files and attachments created after encryption is enabled. Enabling encryption doesn’t automatically encrypt files and attachments that were already in Salesforce. To encrypt all of those files that lived in Doc’s org before you enabled Shield Platform Encryption, contact Salesforce for help.

e) How to Enable Shield Platform Encryption in Salesforce -
  • Provision your license. Contact Salesforce to get one. Shield Platform Encryption is automatically available in Developer Edition orgs created on or after the Summer of 2015.
  • Assign permissions - need the “Customize Application” and “Manage Encryption Keys” permissions. However, you likely don’t want everyone managing encryption keys. Assign permissions with these scenarios in mind.

Permissions for Shield Platform Encryption
  • Enable Shield Platform Encryption for your org.

f) Limitations under Shield Platform Encyption - 
A security solution as powerful as Shield Platform Encryption doesn't come without some tradeoffs.

i) Shield Platform Encryption and the Lightning Experience -
For more details on this, refer to below link
https://help.salesforce.com/articleView?id=security_pe_considerations_lightning.htm&type=5

ii) Field Limits with Shield Platform Encryption -
For more details on this, refer to below link
https://trailhead.salesforce.com/modules/spe_admins/units/spe_admins_get_started

Happy Weekend Friends!!!! 😊

Thursday, September 28, 2017

What makes Visualforce In Salesforce Classic & Lightning Experience different?


1) Development Mode for Visualforce is only available in Salesforce Classic and not in Lightning.

2) Pages you view using direct URL access always display in Salesforce Classic and not in Lightning. The reason is in order to view your page in Lightning Experience, you need to access the Lightning Experience container app. This means accessing /one/one.app. If you’re accessing that, you can’t access /apex/PageName. They’re just two different URLs that don’t overlap.

To test your page in Lightning Experience, add the following bookmarklet to your browser’s menu or toolbar -

javascript:(function(){ 

    var pageName = prompt('Visualforce page name:'); 
    $A.get("e.force:navigateToURL").setParams(
        {"url": "/apex/" + pageName}).fire();})();

3) Use the $User.UITheme and $User.UIThemeDisplayed global variables to determine the current user experience context in Visualforce context. These global variables return a string that uniquely identifies the current user interface context. The difference between the two variables is that $User.UITheme returns the look and feel the user is supposed to see, while $User.UIThemeDisplayed returns the look and feel the user actually sees. 

The possible values for $User.UITheme and $User.UIThemeDisplayed are the same:

  • Theme1—Obsolete Salesforce theme
  • Theme2—Salesforce Classic 2005 user interface theme
  • Theme3—Salesforce Classic 2010 user interface theme
  • Theme4d—Modern “Lightning Experience” Salesforce theme
  • Theme4t—Salesforce1 mobile Salesforce theme
  • PortalDefault—Salesforce Customer Portal theme
  • Webstore—Salesforce AppExchange theme

4) Use the UserInfo.getUiTheme() and UserInfo.getUiThemeDisplayed() system methods to determine the current user experience context in Apex code. The possible values returned by these methods are the same as those returned by the $User.UITheme and $User.UIThemeDisplayed global variables.

5) Lightning Experience manages navigation using "Events" (use 'sforce.one' object) while in Salesforce Classic we have "PageReference" for performing navigation actions.

6) Use <apex:slds> component to reference Lightning Design System stylesheets without uploading them as a static resource, simplifying the syntax of your page and preventing you from hitting the 250-mb static resource limit.

7) Some more differences that we can make in between Visualforce page running in Salesforce Classic compared to Lightning Experience are -

a) In Salesforce Classic, Visualforce “owns” the page. But in Lightning Experience, Visualforce runs inside an iframe that’s wrapped inside the larger Lightning Experience container.
b) Lightning Experience and Visualforce pages are not only held in different browser contexts, they’re also served from different domains. So, even though it’s all showing in one browser window, the session ID inside the Visualforce iframe will be different than the session ID outside the iframe, in another part of Lightning Experience.
c) <apex:page> showHeader and sidebar attributes are always false.




Happy Weekend Friends!!!! 😊

Thursday, September 14, 2017

Handling TimeZone Conversion in Apex

Before the week ends, here's my next post on handling TimeZone conversion in Apex -

a) Developers might have datetime issue reported before in existing application. This is a good reference for timezone conversion in apex.

http://www.force2b.net/index.php/2010/08/date-time-and-timezone-handling-in-apex/
-------------------------------------------------------------------------------------------------------------------

b) Another way to retrieve SFDC default timezone  from User object :

Schema.DescribeFieldResult fieldResult = User.TimeZoneSidKey.getdescribe();

List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();

for(Schema.PicklistEntry p : ple){
system.debug('###'+p.getlabel()+'****'+p.getValue()+'\n');
}

Please leave your comment if you agree or have any better approach of handling TimeZone conversion in Apex.