SlideShare a Scribd company logo
1 of 26
@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
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.
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
Salesforce UIRequests Automation:SmartS2S
Salesforce UIRequests Automation:SmartS2S
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?
AND FINALLY:
MAY BE THE FORCE.COM WITH YOU...

More Related Content

What's hot

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
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 designSteven 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 AzureMatteo 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 knockoutjsFabio 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 OBrienChris O'Brien
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCBarry 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.0Mads 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 learnedMikkel Flindt Heisterberg
 

What's hot (13)

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
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...
 
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
 
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
 
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
 
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
 
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
 
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
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVC
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
 
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
 
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
 
GWT
GWTGWT
GWT
 

Similar to Being A Salesforce Jedi

Open Source Web Technologies
Open Source Web TechnologiesOpen Source Web Technologies
Open Source Web TechnologiesAastha Sethi
 
Integrating Web Apps with Canvas - Salesforce1 World Tour
Integrating Web Apps with Canvas - Salesforce1 World TourIntegrating Web Apps with Canvas - Salesforce1 World Tour
Integrating Web Apps with Canvas - Salesforce1 World TourRichard Donkin
 
Alfresco for Salesforce
Alfresco for SalesforceAlfresco for Salesforce
Alfresco for SalesforceJared Ottley
 
GermaniumWeb training for CXA2010
GermaniumWeb training for CXA2010GermaniumWeb training for CXA2010
GermaniumWeb training for CXA2010ianloh13
 
Intro to Salesforce Lightning Web Components (LWC)
Intro to Salesforce Lightning Web Components (LWC)Intro to Salesforce Lightning Web Components (LWC)
Intro to Salesforce Lightning Web Components (LWC)Roy Gilad
 
Node js salesforce integration using js force a quick guide to look out in 20...
Node js salesforce integration using js force a quick guide to look out in 20...Node js salesforce integration using js force a quick guide to look out in 20...
Node js salesforce integration using js force a quick guide to look out in 20...Katy Slemon
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDmitry Vinnik
 
Hitchhicker's Guide to Using Xamarin Forms with RESTful Services
Hitchhicker's Guide to Using Xamarin Forms with RESTful ServicesHitchhicker's Guide to Using Xamarin Forms with RESTful Services
Hitchhicker's Guide to Using Xamarin Forms with RESTful ServicesHeather Downing
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends Meitar Karas
 
Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...Nidhi Sharma
 
Dreamforce'15 wrap up by manish
Dreamforce'15 wrap up by manishDreamforce'15 wrap up by manish
Dreamforce'15 wrap up by manishManish Thaduri
 
Salesforce DX: A closer look - Part II
Salesforce DX: A closer look - Part IISalesforce DX: A closer look - Part II
Salesforce DX: A closer look - Part IIFederico Giust
 
Robotlegs on Top of Gaia
Robotlegs on Top of GaiaRobotlegs on Top of Gaia
Robotlegs on Top of GaiaJesse Warden
 
10 commandments for writing spiffy Lightning Apps
10 commandments for writing spiffy Lightning Apps10 commandments for writing spiffy Lightning Apps
10 commandments for writing spiffy Lightning AppsAnup Jadhav
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsNCCOMMS
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesThoughtWorks
 
SFDC Lightning Demo
SFDC Lightning DemoSFDC Lightning Demo
SFDC Lightning DemoSamar Saha
 
Salesforce lightning online training
Salesforce lightning online trainingSalesforce lightning online training
Salesforce lightning online trainingParthaT1
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patternsukdpe
 

Similar to Being A Salesforce Jedi (20)

Open Source Web Technologies
Open Source Web TechnologiesOpen Source Web Technologies
Open Source Web Technologies
 
Integrating Web Apps with Canvas - Salesforce1 World Tour
Integrating Web Apps with Canvas - Salesforce1 World TourIntegrating Web Apps with Canvas - Salesforce1 World Tour
Integrating Web Apps with Canvas - Salesforce1 World Tour
 
Alfresco for Salesforce
Alfresco for SalesforceAlfresco for Salesforce
Alfresco for Salesforce
 
GermaniumWeb training for CXA2010
GermaniumWeb training for CXA2010GermaniumWeb training for CXA2010
GermaniumWeb training for CXA2010
 
Intro to Salesforce Lightning Web Components (LWC)
Intro to Salesforce Lightning Web Components (LWC)Intro to Salesforce Lightning Web Components (LWC)
Intro to Salesforce Lightning Web Components (LWC)
 
Node js salesforce integration using js force a quick guide to look out in 20...
Node js salesforce integration using js force a quick guide to look out in 20...Node js salesforce integration using js force a quick guide to look out in 20...
Node js salesforce integration using js force a quick guide to look out in 20...
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Hitchhicker's Guide to Using Xamarin Forms with RESTful Services
Hitchhicker's Guide to Using Xamarin Forms with RESTful ServicesHitchhicker's Guide to Using Xamarin Forms with RESTful Services
Hitchhicker's Guide to Using Xamarin Forms with RESTful Services
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends
 
Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...
 
Dreamforce'15 wrap up by manish
Dreamforce'15 wrap up by manishDreamforce'15 wrap up by manish
Dreamforce'15 wrap up by manish
 
Salesforce DX: A closer look - Part II
Salesforce DX: A closer look - Part IISalesforce DX: A closer look - Part II
Salesforce DX: A closer look - Part II
 
Robotlegs on Top of Gaia
Robotlegs on Top of GaiaRobotlegs on Top of Gaia
Robotlegs on Top of Gaia
 
10 commandments for writing spiffy Lightning Apps
10 commandments for writing spiffy Lightning Apps10 commandments for writing spiffy Lightning Apps
10 commandments for writing spiffy Lightning Apps
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx Extensions
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
 
SFDC Lightning Demo
SFDC Lightning DemoSFDC Lightning Demo
SFDC Lightning Demo
 
Salesforce lightning online training
Salesforce lightning online trainingSalesforce lightning online training
Salesforce lightning online training
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 

More from Bohdan Dovhań

PUBLISHING YOUR PACKAGE TO APPEXCHANGE IN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGE IN 2023Bohdan Dovhań
 
Second-generation managed packages
Second-generation managed packagesSecond-generation managed packages
Second-generation managed packagesBohdan 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 UpdateBohdan 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 CodeBohdan 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 processBohdan Dovhań
 
Salesforce for marketing
Salesforce for marketingSalesforce for marketing
Salesforce for marketingBohdan 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 salesforceBohdan Dovhań
 

More from Bohdan Dovhań (13)

PUBLISHING YOUR PACKAGE TO APPEXCHANGE IN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023PUBLISHING YOUR PACKAGE TO APPEXCHANGEIN 2023
PUBLISHING YOUR PACKAGE TO APPEXCHANGE IN 2023
 
Second-generation managed packages
Second-generation managed packagesSecond-generation managed packages
Second-generation managed packages
 
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
 
SFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 Update
 
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
 
Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)
 
SFDX Presentation
SFDX PresentationSFDX Presentation
SFDX Presentation
 
SFDC REST API
SFDC REST APISFDC REST API
SFDC REST API
 
Salesforce REST API
Salesforce  REST API Salesforce  REST API
Salesforce REST API
 
Salesforce certifications process
Salesforce certifications processSalesforce certifications process
Salesforce certifications process
 
Salesforce for marketing
Salesforce for marketingSalesforce for marketing
Salesforce for marketing
 
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
 
ExtJS Sencha Touch
ExtJS Sencha TouchExtJS Sencha Touch
ExtJS Sencha Touch
 

Recently uploaded

integrity in personal relationship (1).pdf
integrity in personal relationship (1).pdfintegrity in personal relationship (1).pdf
integrity in personal relationship (1).pdfAmitRout25
 
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...JeylaisaManabat1
 
Spiritual Life Quote from Shiva Negi
Spiritual Life Quote from Shiva Negi Spiritual Life Quote from Shiva Negi
Spiritual Life Quote from Shiva Negi OneDay18
 
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan
 
南新罕布什尔大学毕业证学位证成绩单-学历认证
南新罕布什尔大学毕业证学位证成绩单-学历认证南新罕布什尔大学毕业证学位证成绩单-学历认证
南新罕布什尔大学毕业证学位证成绩单-学历认证kbdhl05e
 
(南达科他州立大学毕业证学位证成绩单-永久存档)
(南达科他州立大学毕业证学位证成绩单-永久存档)(南达科他州立大学毕业证学位证成绩单-永久存档)
(南达科他州立大学毕业证学位证成绩单-永久存档)oannq
 
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?Mikko Kangassalo
 
Inspiring Through Words Power of Inspiration.pptx
Inspiring Through Words Power of Inspiration.pptxInspiring Through Words Power of Inspiration.pptx
Inspiring Through Words Power of Inspiration.pptxShubham Rawat
 

Recently uploaded (8)

integrity in personal relationship (1).pdf
integrity in personal relationship (1).pdfintegrity in personal relationship (1).pdf
integrity in personal relationship (1).pdf
 
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...
Module-2-Lesson-2-COMMUNICATION-AIDS-AND-STRATEGIES-USING-TOOLS-OF-TECHNOLOGY...
 
Spiritual Life Quote from Shiva Negi
Spiritual Life Quote from Shiva Negi Spiritual Life Quote from Shiva Negi
Spiritual Life Quote from Shiva Negi
 
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
 
南新罕布什尔大学毕业证学位证成绩单-学历认证
南新罕布什尔大学毕业证学位证成绩单-学历认证南新罕布什尔大学毕业证学位证成绩单-学历认证
南新罕布什尔大学毕业证学位证成绩单-学历认证
 
(南达科他州立大学毕业证学位证成绩单-永久存档)
(南达科他州立大学毕业证学位证成绩单-永久存档)(南达科他州立大学毕业证学位证成绩单-永久存档)
(南达科他州立大学毕业证学位证成绩单-永久存档)
 
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
Virtue ethics & Effective Altruism: What can EA learn from virtue ethics?
 
Inspiring Through Words Power of Inspiration.pptx
Inspiring Through Words Power of Inspiration.pptxInspiring Through Words Power of Inspiration.pptx
Inspiring Through Words Power of Inspiration.pptx
 

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
  • 7.
  • 8.
  • 9.
  • 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.
  • 11.
  • 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
  • 15.
  • 18.
  • 19.
  • 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?
  • 24.
  • 25.
  • 26. AND FINALLY: MAY BE THE FORCE.COM WITH YOU...