SlideShare a Scribd company logo
@patlatus www.patlatus.wordpress.com
S A L E S F O R C E D E V E L O P M E N T T E A M L E A D
S A L E S F O R C E C E R T I F I E D F O R C E . C O M A D V A N C E D D E V E L O P E R
Bohdan Dovhan
Being Salesforce Jedi:
Salesforce Forbidden and Advanced Techniques
Headshot optional
Advanced techniques used by Salesforce Jedi
Screen scraping, URL hacking
Debugging gacks, Reverse engineering
Overview
Forbiddenor advancedtechniques
* Screenscraping: “Please Don’t ScreenScrape Visualforce!”
Screenscraping is the most fragile integration you can imagine.
If there is a better option, screenscraping should not beused
* Debugging gacks (internal Salesforce Errors): gack id ( stack trace id)
sometimes it is possible to fix the issue without Salesforce Support
* Reverse engineering of Managed Packageto workaround MP bugs
* URL hacking:prepopulating field values onstandard interface
* Salesforce UI Requests Automation
URL hacking:prepopulatingfield values
To createarbitrary recordfollow the url: /{SObject prefix}/e?
To populate standard fields: ?{standard field name}={value}
To populate custom non-lookup fields: ?{custom field id}={value}
To populate custom lookup field: ?CF{custom field id}_lkid={lookupId}&CF{custom field id}={lookup.Name}
URL hacking:easy FLS copy
1.Inspect request which is sent on FLS save on source field (which you want to copy FLS Settings from )
2. Replace field Id with the desired field id
3. Open that URL in browser
4. => PROFIT!
ScreenScrapingUse Case: Get TotalLicenses
1. No “good” way to obtain “TotalLicenses” on Salesforce User License
2. There is a pilot feature which is not available for APEX queries even when enabled, and client needs to ask
Salesforce to turn that feature and write complex logic to retrieve that field value
3. Instead, we can just screen scrape User Licenses page and transform it into custom object records.I
implemented this in a ULETAS Gamma managed package
4. Custom object records can be used for easy further integration, they are accessible through APEX queries
Being A Salesforce Jedi
Being A Salesforce Jedi
Being A Salesforce Jedi
Salesforce UIRequests Automation
Neversay never. Nothing is impossible for those whobelieve.
Evenif somepiece of functionality is not exposed through Standard Objects, Apex Queries, REST API, SOAP API, Metadata API,
Tooling API, Bulk API, it doesn’t mean that it is not possible to write integration on it.
Using combination of ScreenScraping,URL hacking, Requests Reverse Engineering it is possible to integrate ANY functionality
which is exposed through Salesforce UI.
Suchintegration won’t bereliable and will be the mostfragile integration you can everimagine,however, it exists at least if you
can’t achievethat by any other means.
Being A Salesforce Jedi
Salesforce UIRequests Automation:SmartS2S
If you are tired to perform some tasks manually, you can implement Salesforce UI Requests Automation using combination of
ScreenScraping, URL hacking, Requests Reverse Engineering.
Use case: reconnect S2S connection of sandboxes after monthly refresh.
1. Particular implementation for the currentclient (hardcoding templates there)
2. General implementation for arbitrary pair of source and destination connections
General integration I am goingto present as Smart S2S managed package
Salesforce UIRequests Automation:SmartS2S
SalesforceUI Requests Automation:SmartS2S
Being A Salesforce Jedi
Salesforce UIRequests Automation:SmartS2S
Salesforce UIRequests Automation:SmartS2S
Being A Salesforce Jedi
Being A Salesforce Jedi
SalesforceUI Requests Automation:SmartS2S
References
1. https://developer.salesforce.com/blogs/developer-relations/2011/10/please-dont-screen-scrape-visualforce.html
2. http://salesforce.stackexchange.com/questions/4692/screen-scrape-salesforce-with-rest-get-call-from-apex
3. http://stackoverflow.com/questions/7841998/treat-salesforce-visualforce-page-as-an-external-widget
4. https://developer.salesforce.com/blogs/engineering/2015/02/gack.html
5. http://www.salesforceben.com/salesforce-url-hacking-tutorial/
Now you should have deeper understanding of
how Salesforce works and how you can do
impossible things with Salesforce
You should also understand how you can
automatize some routine tasks in Salesforce
You can now use provided information to build
some unique application or integration
Summary
Q & A? Questions?
Being A Salesforce Jedi
Being A Salesforce Jedi
AND FINALLY:
MAY BE THE FORCE.COM WITH YOU...

More Related Content

What's hot (12)

Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Fabio Franzini
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
Fabio Franzini
 
Twitter bootstrap force.com site and responsive design
Twitter bootstrap   force.com site and responsive designTwitter bootstrap   force.com site and responsive design
Twitter bootstrap force.com site and responsive design
Steven Herod
 
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Antonio Peric-Mazar
 
Create great mobile apps with Xamarin, Visual Studio and Azure
Create great mobile apps with Xamarin, Visual Studio and AzureCreate great mobile apps with Xamarin, Visual Studio and Azure
Create great mobile apps with Xamarin, Visual Studio and Azure
Matteo Pagani
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Fabio Franzini
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Chris O'Brien
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVC
Barry Gervin
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
Evan Mullins
 
Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0
Mads Toustrup-Lønne
 
Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
Mikkel Flindt Heisterberg
 
GWT
GWTGWT
GWT
yuvalb
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Fabio Franzini
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
Fabio Franzini
 
Twitter bootstrap force.com site and responsive design
Twitter bootstrap   force.com site and responsive designTwitter bootstrap   force.com site and responsive design
Twitter bootstrap force.com site and responsive design
Steven Herod
 
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Antonio Peric-Mazar
 
Create great mobile apps with Xamarin, Visual Studio and Azure
Create great mobile apps with Xamarin, Visual Studio and AzureCreate great mobile apps with Xamarin, Visual Studio and Azure
Create great mobile apps with Xamarin, Visual Studio and Azure
Matteo Pagani
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Fabio Franzini
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Chris O'Brien
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVC
Barry Gervin
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
Evan Mullins
 
Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0Protecting your APIs with Doorkeeper and OAuth 2.0
Protecting your APIs with Doorkeeper and OAuth 2.0
Mads Toustrup-Lønne
 
Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
Mikkel Flindt Heisterberg
 

Similar to Being A Salesforce Jedi (20)

Blazing new trails with salesforce data nov 16, 2021
Blazing new trails with salesforce data   nov 16, 2021Blazing new trails with salesforce data   nov 16, 2021
Blazing new trails with salesforce data nov 16, 2021
Safe Software
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
pdufourSFDC
 
Introduction to Point-and-Click App Building
Introduction to Point-and-Click App BuildingIntroduction to Point-and-Click App Building
Introduction to Point-and-Click App Building
Salesforce Developers
 
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Codemotion
 
Salesforce REST API
Salesforce  REST API Salesforce  REST API
Salesforce REST API
Bohdan Dovhań
 
SFDC REST API
SFDC REST APISFDC REST API
SFDC REST API
Bohdan Dovhań
 
Salesforce UI API (TDXGG'18)
Salesforce UI API (TDXGG'18)Salesforce UI API (TDXGG'18)
Salesforce UI API (TDXGG'18)
Rahul Malhotra
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Dreamforce
 
Salesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide DeckSalesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide Deck
brightgenss
 
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins GroupSalesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
animuscrm
 
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life EasierSingapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Joey Chan
 
Introduction to Salesforce UI API
Introduction to Salesforce UI APIIntroduction to Salesforce UI API
Introduction to Salesforce UI API
Atul Gupta(8X)
 
Salesforce Application Development
Salesforce Application DevelopmentSalesforce Application Development
Salesforce Application Development
Nishtha Gupta
 
Point and Click App Building Workshop
Point and Click App Building WorkshopPoint and Click App Building Workshop
Point and Click App Building Workshop
Salesforce Developers
 
Introduction to Force.com
Introduction to Force.comIntroduction to Force.com
Introduction to Force.com
Salesforce Developers
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API Review
Lydon Bergin
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 
Df09 Complex Integration In Your Contact Centre Dreamforce Session
Df09 Complex Integration In Your Contact Centre Dreamforce SessionDf09 Complex Integration In Your Contact Centre Dreamforce Session
Df09 Complex Integration In Your Contact Centre Dreamforce Session
Stuart Bernstein
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
Salesforce Developers
 
Play with force.com metadata
Play with force.com metadataPlay with force.com metadata
Play with force.com metadata
Rakesh Kumar Kedia
 
Blazing new trails with salesforce data nov 16, 2021
Blazing new trails with salesforce data   nov 16, 2021Blazing new trails with salesforce data   nov 16, 2021
Blazing new trails with salesforce data nov 16, 2021
Safe Software
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
pdufourSFDC
 
Introduction to Point-and-Click App Building
Introduction to Point-and-Click App BuildingIntroduction to Point-and-Click App Building
Introduction to Point-and-Click App Building
Salesforce Developers
 
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Codemotion
 
Salesforce UI API (TDXGG'18)
Salesforce UI API (TDXGG'18)Salesforce UI API (TDXGG'18)
Salesforce UI API (TDXGG'18)
Rahul Malhotra
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Dreamforce
 
Salesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide DeckSalesforce Winter 23 Release Webinar Slide Deck
Salesforce Winter 23 Release Webinar Slide Deck
brightgenss
 
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins GroupSalesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
Salesforce Admin Group-Barcelona-2022-07-05 In-person Meetup-BCN Admins Group
animuscrm
 
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life EasierSingapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Joey Chan
 
Introduction to Salesforce UI API
Introduction to Salesforce UI APIIntroduction to Salesforce UI API
Introduction to Salesforce UI API
Atul Gupta(8X)
 
Salesforce Application Development
Salesforce Application DevelopmentSalesforce Application Development
Salesforce Application Development
Nishtha Gupta
 
Point and Click App Building Workshop
Point and Click App Building WorkshopPoint and Click App Building Workshop
Point and Click App Building Workshop
Salesforce Developers
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API Review
Lydon Bergin
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 
Df09 Complex Integration In Your Contact Centre Dreamforce Session
Df09 Complex Integration In Your Contact Centre Dreamforce SessionDf09 Complex Integration In Your Contact Centre Dreamforce Session
Df09 Complex Integration In Your Contact Centre Dreamforce Session
Stuart Bernstein
 
Ad

More from Bohdan Dovhań (11)

PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
Bohdan Dovhań
 
Second-generation managed packages
Second-generation managed packagesSecond-generation managed packages
Second-generation managed packages
Bohdan Dovhań
 
Migrate To Lightning Web Components from Aura framework to increase performance
Migrate To Lightning Web Components from Aura framework to increase performance Migrate To Lightning Web Components from Aura framework to increase performance
Migrate To Lightning Web Components from Aura framework to increase performance
Bohdan Dovhań
 
SFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 Update
Bohdan Dovhań
 
Custom Metadata Records Deployment From Apex Code
Custom Metadata Records Deployment From Apex CodeCustom Metadata Records Deployment From Apex Code
Custom Metadata Records Deployment From Apex Code
Bohdan Dovhań
 
Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)
Bohdan Dovhań
 
SFDX Presentation
SFDX PresentationSFDX Presentation
SFDX Presentation
Bohdan Dovhań
 
Salesforce certifications process
Salesforce certifications processSalesforce certifications process
Salesforce certifications process
Bohdan Dovhań
 
Salesforce for marketing
Salesforce for marketingSalesforce for marketing
Salesforce for marketing
Bohdan Dovhań
 
Introduction about development, programs, saas and salesforce
Introduction about development, programs, saas and salesforceIntroduction about development, programs, saas and salesforce
Introduction about development, programs, saas and salesforce
Bohdan Dovhań
 
ExtJS Sencha Touch
ExtJS Sencha TouchExtJS Sencha Touch
ExtJS Sencha Touch
Bohdan Dovhań
 
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
Bohdan Dovhań
 
Second-generation managed packages
Second-generation managed packagesSecond-generation managed packages
Second-generation managed packages
Bohdan Dovhań
 
Migrate To Lightning Web Components from Aura framework to increase performance
Migrate To Lightning Web Components from Aura framework to increase performance Migrate To Lightning Web Components from Aura framework to increase performance
Migrate To Lightning Web Components from Aura framework to increase performance
Bohdan Dovhań
 
SFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 Update
Bohdan Dovhań
 
Custom Metadata Records Deployment From Apex Code
Custom Metadata Records Deployment From Apex CodeCustom Metadata Records Deployment From Apex Code
Custom Metadata Records Deployment From Apex Code
Bohdan Dovhań
 
Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)
Bohdan Dovhań
 
Salesforce certifications process
Salesforce certifications processSalesforce certifications process
Salesforce certifications process
Bohdan Dovhań
 
Salesforce for marketing
Salesforce for marketingSalesforce for marketing
Salesforce for marketing
Bohdan Dovhań
 
Introduction about development, programs, saas and salesforce
Introduction about development, programs, saas and salesforceIntroduction about development, programs, saas and salesforce
Introduction about development, programs, saas and salesforce
Bohdan Dovhań
 
Ad

Recently uploaded (12)

Exercise Book- improves yours health.pdf
Exercise Book- improves yours health.pdfExercise Book- improves yours health.pdf
Exercise Book- improves yours health.pdf
deepaksasiktym
 
Destiny University's Neurophysiological Engineering Curriculum.pdf
Destiny University's Neurophysiological Engineering Curriculum.pdfDestiny University's Neurophysiological Engineering Curriculum.pdf
Destiny University's Neurophysiological Engineering Curriculum.pdf
Michael Herlache, MBA
 
Black Aura Meaning: Most Frequently Asked Questions Answered
Black Aura Meaning: Most Frequently Asked Questions AnsweredBlack Aura Meaning: Most Frequently Asked Questions Answered
Black Aura Meaning: Most Frequently Asked Questions Answered
Maria Hayes
 
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
billal1282bankalbila
 
BOOK REVIEW -Finding Strength in Difficult Times.pptx
BOOK REVIEW -Finding Strength in Difficult Times.pptxBOOK REVIEW -Finding Strength in Difficult Times.pptx
BOOK REVIEW -Finding Strength in Difficult Times.pptx
Samirsinh Parmar
 
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdfPublic - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Michael Herlache, MBA
 
Effective communication in the workplace
Effective communication in the workplaceEffective communication in the workplace
Effective communication in the workplace
TanveerMomin7
 
30 Common Headings.pdf extract from social media
30 Common Headings.pdf extract from social media30 Common Headings.pdf extract from social media
30 Common Headings.pdf extract from social media
Padmasrinivas N
 
The Economics of Cashback with reference to Hutti
The Economics of Cashback with reference to HuttiThe Economics of Cashback with reference to Hutti
The Economics of Cashback with reference to Hutti
hutti7865
 
Psychology_of_ Habit_Formation.pptx
Psychology_of_      Habit_Formation.pptxPsychology_of_      Habit_Formation.pptx
Psychology_of_ Habit_Formation.pptx
raghavsharma19765
 
Leadership in Action: Building Belonging Together
Leadership in Action: Building Belonging TogetherLeadership in Action: Building Belonging Together
Leadership in Action: Building Belonging Together
UiPathCommunity
 
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptxLEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
DIANAPETERS19
 
Exercise Book- improves yours health.pdf
Exercise Book- improves yours health.pdfExercise Book- improves yours health.pdf
Exercise Book- improves yours health.pdf
deepaksasiktym
 
Destiny University's Neurophysiological Engineering Curriculum.pdf
Destiny University's Neurophysiological Engineering Curriculum.pdfDestiny University's Neurophysiological Engineering Curriculum.pdf
Destiny University's Neurophysiological Engineering Curriculum.pdf
Michael Herlache, MBA
 
Black Aura Meaning: Most Frequently Asked Questions Answered
Black Aura Meaning: Most Frequently Asked Questions AnsweredBlack Aura Meaning: Most Frequently Asked Questions Answered
Black Aura Meaning: Most Frequently Asked Questions Answered
Maria Hayes
 
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
23 Years as a Banker: A Journey Through Global Banking, Compliance, and Chara...
billal1282bankalbila
 
BOOK REVIEW -Finding Strength in Difficult Times.pptx
BOOK REVIEW -Finding Strength in Difficult Times.pptxBOOK REVIEW -Finding Strength in Difficult Times.pptx
BOOK REVIEW -Finding Strength in Difficult Times.pptx
Samirsinh Parmar
 
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdfPublic - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Public - Natural RAS & Innate Genius_ Reclaiming the Human Nervous System.pdf
Michael Herlache, MBA
 
Effective communication in the workplace
Effective communication in the workplaceEffective communication in the workplace
Effective communication in the workplace
TanveerMomin7
 
30 Common Headings.pdf extract from social media
30 Common Headings.pdf extract from social media30 Common Headings.pdf extract from social media
30 Common Headings.pdf extract from social media
Padmasrinivas N
 
The Economics of Cashback with reference to Hutti
The Economics of Cashback with reference to HuttiThe Economics of Cashback with reference to Hutti
The Economics of Cashback with reference to Hutti
hutti7865
 
Psychology_of_ Habit_Formation.pptx
Psychology_of_      Habit_Formation.pptxPsychology_of_      Habit_Formation.pptx
Psychology_of_ Habit_Formation.pptx
raghavsharma19765
 
Leadership in Action: Building Belonging Together
Leadership in Action: Building Belonging TogetherLeadership in Action: Building Belonging Together
Leadership in Action: Building Belonging Together
UiPathCommunity
 
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptxLEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
LEVELS OF ANALYSIS & THEORIES OF FOREIGN POLICY.pptx
DIANAPETERS19
 

Being A Salesforce Jedi

  • 1. @patlatus www.patlatus.wordpress.com S A L E S F O R C E D E V E L O P M E N T T E A M L E A D S A L E S F O R C E C E R T I F I E D F O R C E . C O M A D V A N C E D D E V E L O P E R Bohdan Dovhan Being Salesforce Jedi: Salesforce Forbidden and Advanced Techniques Headshot optional
  • 2. Advanced techniques used by Salesforce Jedi Screen scraping, URL hacking Debugging gacks, Reverse engineering Overview
  • 3. Forbiddenor advancedtechniques * Screenscraping: “Please Don’t ScreenScrape Visualforce!” Screenscraping is the most fragile integration you can imagine. If there is a better option, screenscraping should not beused * Debugging gacks (internal Salesforce Errors): gack id ( stack trace id) sometimes it is possible to fix the issue without Salesforce Support * Reverse engineering of Managed Packageto workaround MP bugs * URL hacking:prepopulating field values onstandard interface * Salesforce UI Requests Automation
  • 4. URL hacking:prepopulatingfield values To createarbitrary recordfollow the url: /{SObject prefix}/e? To populate standard fields: ?{standard field name}={value} To populate custom non-lookup fields: ?{custom field id}={value} To populate custom lookup field: ?CF{custom field id}_lkid={lookupId}&CF{custom field id}={lookup.Name}
  • 5. URL hacking:easy FLS copy 1.Inspect request which is sent on FLS save on source field (which you want to copy FLS Settings from ) 2. Replace field Id with the desired field id 3. Open that URL in browser 4. => PROFIT!
  • 6. ScreenScrapingUse Case: Get TotalLicenses 1. No “good” way to obtain “TotalLicenses” on Salesforce User License 2. There is a pilot feature which is not available for APEX queries even when enabled, and client needs to ask Salesforce to turn that feature and write complex logic to retrieve that field value 3. Instead, we can just screen scrape User Licenses page and transform it into custom object records.I implemented this in a ULETAS Gamma managed package 4. Custom object records can be used for easy further integration, they are accessible through APEX queries
  • 10. Salesforce UIRequests Automation Neversay never. Nothing is impossible for those whobelieve. Evenif somepiece of functionality is not exposed through Standard Objects, Apex Queries, REST API, SOAP API, Metadata API, Tooling API, Bulk API, it doesn’t mean that it is not possible to write integration on it. Using combination of ScreenScraping,URL hacking, Requests Reverse Engineering it is possible to integrate ANY functionality which is exposed through Salesforce UI. Suchintegration won’t bereliable and will be the mostfragile integration you can everimagine,however, it exists at least if you can’t achievethat by any other means.
  • 12. Salesforce UIRequests Automation:SmartS2S If you are tired to perform some tasks manually, you can implement Salesforce UI Requests Automation using combination of ScreenScraping, URL hacking, Requests Reverse Engineering. Use case: reconnect S2S connection of sandboxes after monthly refresh. 1. Particular implementation for the currentclient (hardcoding templates there) 2. General implementation for arbitrary pair of source and destination connections General integration I am goingto present as Smart S2S managed package
  • 21. References 1. https://developer.salesforce.com/blogs/developer-relations/2011/10/please-dont-screen-scrape-visualforce.html 2. http://salesforce.stackexchange.com/questions/4692/screen-scrape-salesforce-with-rest-get-call-from-apex 3. http://stackoverflow.com/questions/7841998/treat-salesforce-visualforce-page-as-an-external-widget 4. https://developer.salesforce.com/blogs/engineering/2015/02/gack.html 5. http://www.salesforceben.com/salesforce-url-hacking-tutorial/
  • 22. Now you should have deeper understanding of how Salesforce works and how you can do impossible things with Salesforce You should also understand how you can automatize some routine tasks in Salesforce You can now use provided information to build some unique application or integration Summary
  • 23. Q & A? Questions?
  • 26. AND FINALLY: MAY BE THE FORCE.COM WITH YOU...