SlideShare uma empresa Scribd logo
1 de 46
Salesforce for Domino Dogs
1#engageug
Who are we – Paul Mooney
2#engageug
• Senior Architect, Bluewave Technology
• Did a lot of Domino Admin stuff
• For 15 years or so
• Certified Salesforce
• Administrator
• Advanced Administrator
• Developer (Yes – I know… mental)
• Service Cloud Consultant
• Sales Cloud Consultant
• Instructor
• Spoke at a lot of things over the years
• Mostly sober
Who are we – Mark Myers
• Member of the London Developer Co-op
• Co-writer of LDCVia
http://www.ldcvia.com
• IBM Connections, Domino,
Salesforce and Web development
• Hire me!
• Developer from a support background
• 14+ years on Domino, 17+ years in IT
• Speaker at 6 x Lotuspheres/Connects, 6 x
UKLUGs, 1 x ILUG (A very drunk one), 4
x BLUG/Engage
3#engageug
What’s this session about?
“All software sucks”
-Paul Mooney, 2014
“Some of the time”
-Mark Myers, 2014
4#engageug
Salesforce…
Totally different architecture to Domino
…with many similarities
5#engageug
Quick overview of Salesforce
6#engageug
• 16 years old
• 180,000 customers
• 2.8 million users
• Forbes most innovative company 2011, 2012, 2013, 2014,
2015
• New release for all customers three times a year
7#engageug
• 17 Languages
natively supported
• Global translation capability for content and custom application
design
• Fully accredited Safe Harbour Trust for EU
• ISO27001 compliance certified
• Staff doubled in past year (8000 employees)
8#engageug
2015 Gartner Magic Quadrant
9#engageug
All these clouds…
10#engageug
11#engageug
Trusted Cloud Infrastructure
Customer Success Platform Services
Shared
Data Shared Workflow Shared Reporting Shared Collaboration Shared IdentityShared
APIs
AnalyticsCommunityMarketingServiceSales Apps
12#engageug
It’s not a mail server
(It does fully integrate with Outlook, O365, Google Apps, Lotus
Notes etc)
13#engageug
An administrator is not an administrator
There are no servers – Administrators ontop of managing/
integrating tend to Declaratively (click) develop)
Where things are similar…
14#engageug
User Management
• Users (user account)
• Groups (To group users)
• Policies (Control functions)
15#engageug
• Users (user accounts)
• Groups (To group users)
• Profiles (Control functions)
• Permission Sets
• (granular control of functions)
Security Levels
• Authentication Level
• Server Level
• Database Level
• Record Level
• Field Level
16#engageug
• Authentication Level /
License
• Organization Level
• Profile Level
• Record Level
• Field Level
Databases and declarative design
• Databases
• NoSQL based tables
• Fields
• Forms
• Views
• XPages
17#engageug
• Apps/Objects
• Relational
• Fields
• Layouts/Record Types
• Views
• VisualForce/Lightening Pages
More on objects, fields
18#engageug
• Standard objects – fully functional pre built tables
• Can be completely customised/altered as needed
• You ALWAYS alter them
• You cannot delete them, but do not have to use them
• Standard fields – built for you in standard objects
• Can be altered to a point
• You cannot delete them, but you can hide them
• Custom Objects – create your own tables / apps
• Custom fields – create your own fields
• End in __c. 400 fields per object limit
Salesforce Development Components
19#engageug
Salesforce Development Components
20#engageug
Noord Brabantlaan 1A, 5652 LA Eindhoven
Fields
• Field types
• Validation rules
• Formulas
• Conditional rules
• Agents
21#engageug
• Field types
• Validation Rules
• Formulas
• Conditional rules
• Process builder / Triggers
• Approval processes
Types of fields in Salesforce
• Auto Number
• Formula
• Roll Up
• Lookup
• Master Detail
• External Lookup
• Checkbox
• Currency
• Date
22#engageug
• Date/Time
• Email
• Geolocation
• Number
• Percent
• Phone
• Picklist
• Multi value
Picklist
• Text
• Text Area
• Text Area (Long)
• Text Area (rich)
• Encrypted
• URL
Formula fields…
23#engageug
Agents are
process builder
24#engageug
Internal Release methodology
25#engageug
• Sandboxes and change sets• Templates and design replacing
Mobile Development
Salesforce1
26#engageug
Similar problems that can be solved
• Poor design possible
• Poor release management
• Too many rights (changing
stuff in production)
27#engageug
• Poor design possible
• Poor release management
• Too many rights (changing
stuff in production)
Salesforce Development Consists of 2 Types
28#engageug
• Declarative (Point-And-Click)
• Simple.
• Fast.
• Easy.
• Upgrades don't break your apps.
• Does not require programming skills.
• Programmatic (Apex / Visualforce / API)
• Finer Control.
• Flexibility.
• You can expand capabilities to match User demands.
How Salesforce Dev is the same as Domino Dev
• Due to fast version iterations Salesforce is about the same
age as Domino feature wise so it is full of poorly
documented quirks and artefacts.
• User behaviour is like the golden days of Notes Dev, your
users will add fields and bits into the live design meaning
your dev environment is out of date.
• New Design elements keep being created as the “next big
thing”
29#engageug
How Salesforce Dev differs from Domino Dev
• Online only (though you can have sandboxes).
• Clever hacks to provide users with what they want are
NOT supported by Salesforce.
• “we do not support javascript”
• Never sure how much of your existing code each new
version of Salesforce will break.
• (Paul Edit. This was Mark’s fault)
30#engageug
The are 5 Golden Rules to
Salesforce development
31#engageug
Golden Rules
1) Salesforce Cares more about their platform than your code.
2) Salesforce Cares more about their platform than your code.
3) Salesforce Cares more about their platform than your code.
4) Salesforce Cares more about their platform than your code.
5) Salesforce Cares more about their platform than your code.
32#engageug
Golden Rules
1) Think of all database actions in terms of Batches.
2) Crude code scales VERY poorly and hits hard
salesforce limits.
3) Salesforce feels like a Document based system, but
under the covers it’s a classic Relational database
system.
4) Write your tests at the same time as your code, its
quicker that way.
5) Keep up to date with what the platform is doing (not
doing so costs you money and makes you look silly)
33#engageug
Batches – BAD!
• In Notes you tend to
write to disk on every
iteration on a document
loop
• In Salesforce this will fail
validation when you
attempt to promote to
live
34#engageug
for(Integer i=0; i<25; i++) {
Case ct = new Case(
Priority = '1 - Critical',
Status = 'Logged',
Resoloution_Sub_Category__c = '');
insert ct;
}
Batches – GOOD!
• Save up all your
transaction and at
the end of the Loop
write them to the
database.
35#engageug
List<Case> cases = new List<Case>();
for(Integer i=0; i<25; i++) {
Case ct = new Case(
Priority = '1 - Critical',
Status = 'Logged',
Resoloution_Sub_Category__c = '');
cases.add(ct);
}
insert cases;
Limits
• Sales force has a number of hard limits that can be just as
annoying as the notes 32K limit but are there to protect
the platform
• SOQL Limits are 50,000 records per statement (1,000,000 in read only
mode)
• No more that 15 SOQL statements in a given function
• APEX run time out 10 Seconds (standard synchronous calls).
• List object cant hold more than 1000 objects.
• More Limits: https://developer.salesforce.com/docs/atlas.en-
us.apexcode.meta/apexcode/apex_gov_limits.htm
36#engageug
Testing
• To promote code from a Sandbox to Production 75% of
your code needs to be reachable via a test class
• You can see your code coverage level from the developer
console
37#engageug
Testing – Developer Console.
38#engageug
Code that is covered
by tests
Code that is not Tested
Keeping up to date
“All certified professionals are required to maintain their
certification by taking a maintenance exam every release
cycle.”
“Release cycles are about four months in length”
“If you do not pass the release exam by its deadline, all
credentials maintained by that exam will expire, or in some
cases become suspended. “
39#engageug
https://help.salesforce.com/HTViewSolution?id=000186547
Quirks
40#engageug
Fun Quirks
41#engageug
• Cases are kept in the “Case” table, Accounts are kept in
the “Account” table etc etc…. Products are kept in the
“Product2”
• To lookup a standard field
• To get value: case.account
• To get relationship value: case.account.Name
• To lookup a custom field
• To get value: case.customaccount__C
• To get relationship value: case. customaccount__R.Name
Renaming Stuff
• All code is checked
for dependencies, if
you try and rename
an object or attribute
and it is used else
where you will be
stopped.
42#engageug
Tips for Actually Developing
43#engageug
Top Tips.
• Stop your users updating live while you are writing new
Updates (and make sure your sandboxes are up to date)
• Keep a note of every element you change as it makes it
easier to build your Outbound Change Sets.
• Cater all your code to run on millions of records.
• Invest in a good alternative Code editor
44#engageug
Code Editors - Alternatives
• Atom
• My Preferred text editor
• Integration plug in https://atom.io/packages/mavensmate-atom
• Subline
• Well thought off and excellent editor
• Great plugin for salesforce integration
https://github.com/mailtoharshit/Weave#installation
• Eclipse
• The original IDE for salesforce, but I have seen very few people actually
use it recently and a lot of complaints on the forum.
45#engageug
Questions?
46#engageug

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Coding in the App Cloud
Coding in the App CloudCoding in the App Cloud
Coding in the App Cloud
 
Visual Workflow Overview
Visual Workflow OverviewVisual Workflow Overview
Visual Workflow Overview
 
Salesforce Lightning Design System
Salesforce Lightning Design SystemSalesforce Lightning Design System
Salesforce Lightning Design System
 
Secure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISecure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part I
 
Salesforce cicd integration a quick guide
Salesforce cicd integration a quick guideSalesforce cicd integration a quick guide
Salesforce cicd integration a quick guide
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Salesforce API: Salesforce Console Deep Dive
Salesforce API: Salesforce Console Deep DiveSalesforce API: Salesforce Console Deep Dive
Salesforce API: Salesforce Console Deep Dive
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
Write bulletproof trigger code
Write bulletproof trigger codeWrite bulletproof trigger code
Write bulletproof trigger code
 
Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins Intro to Salesforce Lightning for Admins
Intro to Salesforce Lightning for Admins
 
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
 
A Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and TriggersA Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and Triggers
 
Lightning Components: The Future
Lightning Components: The FutureLightning Components: The Future
Lightning Components: The Future
 
SFDC Visual Flow
SFDC Visual FlowSFDC Visual Flow
SFDC Visual Flow
 
Lightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce DevelopersLightning Design System and Components for Visualforce Developers
Lightning Design System and Components for Visualforce Developers
 
Lightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best PracticesLightning Experience with Visualforce Best Practices
Lightning Experience with Visualforce Best Practices
 
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automationsDiscover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automations
 
Process Automation on Lightning Platform Workshop
Process Automation on Lightning Platform WorkshopProcess Automation on Lightning Platform Workshop
Process Automation on Lightning Platform Workshop
 
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 minsBuild Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
 
Introduction to Lightning for Salesforce Admins
Introduction to Lightning for Salesforce AdminsIntroduction to Lightning for Salesforce Admins
Introduction to Lightning for Salesforce Admins
 

Semelhante a Saleforce For Domino Dogs

Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
Bill Ayers
 
Lotuscript for large systems
Lotuscript for large systemsLotuscript for large systems
Lotuscript for large systems
Bill Buchan
 

Semelhante a Saleforce For Domino Dogs (20)

Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Kku2011
Kku2011Kku2011
Kku2011
 
A Beard, An App, A Blender
A Beard, An App, A BlenderA Beard, An App, A Blender
A Beard, An App, A Blender
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16
 
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
 
Engage 2018 adm04 - The lazy admin wins
Engage 2018   adm04 - The lazy admin winsEngage 2018   adm04 - The lazy admin wins
Engage 2018 adm04 - The lazy admin wins
 
Engage 2018 adm04 The lazy admin wins
Engage 2018   adm04 The lazy admin winsEngage 2018   adm04 The lazy admin wins
Engage 2018 adm04 The lazy admin wins
 
In (database) automation we trust
In (database) automation we trustIn (database) automation we trust
In (database) automation we trust
 
Alexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implementAlexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implement
 
Lotuscript for large systems
Lotuscript for large systemsLotuscript for large systems
Lotuscript for large systems
 
Kku2011
Kku2011Kku2011
Kku2011
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems
 
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
 

Mais de Mark Myers

Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
Mark Myers
 
Blug2013 frameworks
Blug2013 frameworksBlug2013 frameworks
Blug2013 frameworks
Mark Myers
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasure
Mark Myers
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
Mark Myers
 

Mais de Mark Myers (11)

Engage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventureEngage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventure
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
 
Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faq
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
 
SHOW104: Practical Java
SHOW104: Practical JavaSHOW104: Practical Java
SHOW104: Practical Java
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino Developers
 
The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)
 
Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want
 
Blug2013 frameworks
Blug2013 frameworksBlug2013 frameworks
Blug2013 frameworks
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasure
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
 

Último

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Último (20)

%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 

Saleforce For Domino Dogs

  • 1. Salesforce for Domino Dogs 1#engageug
  • 2. Who are we – Paul Mooney 2#engageug • Senior Architect, Bluewave Technology • Did a lot of Domino Admin stuff • For 15 years or so • Certified Salesforce • Administrator • Advanced Administrator • Developer (Yes – I know… mental) • Service Cloud Consultant • Sales Cloud Consultant • Instructor • Spoke at a lot of things over the years • Mostly sober
  • 3. Who are we – Mark Myers • Member of the London Developer Co-op • Co-writer of LDCVia http://www.ldcvia.com • IBM Connections, Domino, Salesforce and Web development • Hire me! • Developer from a support background • 14+ years on Domino, 17+ years in IT • Speaker at 6 x Lotuspheres/Connects, 6 x UKLUGs, 1 x ILUG (A very drunk one), 4 x BLUG/Engage 3#engageug
  • 4. What’s this session about? “All software sucks” -Paul Mooney, 2014 “Some of the time” -Mark Myers, 2014 4#engageug
  • 5. Salesforce… Totally different architecture to Domino …with many similarities 5#engageug
  • 6. Quick overview of Salesforce 6#engageug
  • 7. • 16 years old • 180,000 customers • 2.8 million users • Forbes most innovative company 2011, 2012, 2013, 2014, 2015 • New release for all customers three times a year 7#engageug
  • 8. • 17 Languages natively supported • Global translation capability for content and custom application design • Fully accredited Safe Harbour Trust for EU • ISO27001 compliance certified • Staff doubled in past year (8000 employees) 8#engageug
  • 9. 2015 Gartner Magic Quadrant 9#engageug
  • 11. 11#engageug Trusted Cloud Infrastructure Customer Success Platform Services Shared Data Shared Workflow Shared Reporting Shared Collaboration Shared IdentityShared APIs AnalyticsCommunityMarketingServiceSales Apps
  • 13. It’s not a mail server (It does fully integrate with Outlook, O365, Google Apps, Lotus Notes etc) 13#engageug An administrator is not an administrator There are no servers – Administrators ontop of managing/ integrating tend to Declaratively (click) develop)
  • 14. Where things are similar… 14#engageug
  • 15. User Management • Users (user account) • Groups (To group users) • Policies (Control functions) 15#engageug • Users (user accounts) • Groups (To group users) • Profiles (Control functions) • Permission Sets • (granular control of functions)
  • 16. Security Levels • Authentication Level • Server Level • Database Level • Record Level • Field Level 16#engageug • Authentication Level / License • Organization Level • Profile Level • Record Level • Field Level
  • 17. Databases and declarative design • Databases • NoSQL based tables • Fields • Forms • Views • XPages 17#engageug • Apps/Objects • Relational • Fields • Layouts/Record Types • Views • VisualForce/Lightening Pages
  • 18. More on objects, fields 18#engageug • Standard objects – fully functional pre built tables • Can be completely customised/altered as needed • You ALWAYS alter them • You cannot delete them, but do not have to use them • Standard fields – built for you in standard objects • Can be altered to a point • You cannot delete them, but you can hide them • Custom Objects – create your own tables / apps • Custom fields – create your own fields • End in __c. 400 fields per object limit
  • 20. Salesforce Development Components 20#engageug Noord Brabantlaan 1A, 5652 LA Eindhoven
  • 21. Fields • Field types • Validation rules • Formulas • Conditional rules • Agents 21#engageug • Field types • Validation Rules • Formulas • Conditional rules • Process builder / Triggers • Approval processes
  • 22. Types of fields in Salesforce • Auto Number • Formula • Roll Up • Lookup • Master Detail • External Lookup • Checkbox • Currency • Date 22#engageug • Date/Time • Email • Geolocation • Number • Percent • Phone • Picklist • Multi value Picklist • Text • Text Area • Text Area (Long) • Text Area (rich) • Encrypted • URL
  • 25. Internal Release methodology 25#engageug • Sandboxes and change sets• Templates and design replacing
  • 27. Similar problems that can be solved • Poor design possible • Poor release management • Too many rights (changing stuff in production) 27#engageug • Poor design possible • Poor release management • Too many rights (changing stuff in production)
  • 28. Salesforce Development Consists of 2 Types 28#engageug • Declarative (Point-And-Click) • Simple. • Fast. • Easy. • Upgrades don't break your apps. • Does not require programming skills. • Programmatic (Apex / Visualforce / API) • Finer Control. • Flexibility. • You can expand capabilities to match User demands.
  • 29. How Salesforce Dev is the same as Domino Dev • Due to fast version iterations Salesforce is about the same age as Domino feature wise so it is full of poorly documented quirks and artefacts. • User behaviour is like the golden days of Notes Dev, your users will add fields and bits into the live design meaning your dev environment is out of date. • New Design elements keep being created as the “next big thing” 29#engageug
  • 30. How Salesforce Dev differs from Domino Dev • Online only (though you can have sandboxes). • Clever hacks to provide users with what they want are NOT supported by Salesforce. • “we do not support javascript” • Never sure how much of your existing code each new version of Salesforce will break. • (Paul Edit. This was Mark’s fault) 30#engageug
  • 31. The are 5 Golden Rules to Salesforce development 31#engageug
  • 32. Golden Rules 1) Salesforce Cares more about their platform than your code. 2) Salesforce Cares more about their platform than your code. 3) Salesforce Cares more about their platform than your code. 4) Salesforce Cares more about their platform than your code. 5) Salesforce Cares more about their platform than your code. 32#engageug
  • 33. Golden Rules 1) Think of all database actions in terms of Batches. 2) Crude code scales VERY poorly and hits hard salesforce limits. 3) Salesforce feels like a Document based system, but under the covers it’s a classic Relational database system. 4) Write your tests at the same time as your code, its quicker that way. 5) Keep up to date with what the platform is doing (not doing so costs you money and makes you look silly) 33#engageug
  • 34. Batches – BAD! • In Notes you tend to write to disk on every iteration on a document loop • In Salesforce this will fail validation when you attempt to promote to live 34#engageug for(Integer i=0; i<25; i++) { Case ct = new Case( Priority = '1 - Critical', Status = 'Logged', Resoloution_Sub_Category__c = ''); insert ct; }
  • 35. Batches – GOOD! • Save up all your transaction and at the end of the Loop write them to the database. 35#engageug List<Case> cases = new List<Case>(); for(Integer i=0; i<25; i++) { Case ct = new Case( Priority = '1 - Critical', Status = 'Logged', Resoloution_Sub_Category__c = ''); cases.add(ct); } insert cases;
  • 36. Limits • Sales force has a number of hard limits that can be just as annoying as the notes 32K limit but are there to protect the platform • SOQL Limits are 50,000 records per statement (1,000,000 in read only mode) • No more that 15 SOQL statements in a given function • APEX run time out 10 Seconds (standard synchronous calls). • List object cant hold more than 1000 objects. • More Limits: https://developer.salesforce.com/docs/atlas.en- us.apexcode.meta/apexcode/apex_gov_limits.htm 36#engageug
  • 37. Testing • To promote code from a Sandbox to Production 75% of your code needs to be reachable via a test class • You can see your code coverage level from the developer console 37#engageug
  • 38. Testing – Developer Console. 38#engageug Code that is covered by tests Code that is not Tested
  • 39. Keeping up to date “All certified professionals are required to maintain their certification by taking a maintenance exam every release cycle.” “Release cycles are about four months in length” “If you do not pass the release exam by its deadline, all credentials maintained by that exam will expire, or in some cases become suspended. “ 39#engageug https://help.salesforce.com/HTViewSolution?id=000186547
  • 41. Fun Quirks 41#engageug • Cases are kept in the “Case” table, Accounts are kept in the “Account” table etc etc…. Products are kept in the “Product2” • To lookup a standard field • To get value: case.account • To get relationship value: case.account.Name • To lookup a custom field • To get value: case.customaccount__C • To get relationship value: case. customaccount__R.Name
  • 42. Renaming Stuff • All code is checked for dependencies, if you try and rename an object or attribute and it is used else where you will be stopped. 42#engageug
  • 43. Tips for Actually Developing 43#engageug
  • 44. Top Tips. • Stop your users updating live while you are writing new Updates (and make sure your sandboxes are up to date) • Keep a note of every element you change as it makes it easier to build your Outbound Change Sets. • Cater all your code to run on millions of records. • Invest in a good alternative Code editor 44#engageug
  • 45. Code Editors - Alternatives • Atom • My Preferred text editor • Integration plug in https://atom.io/packages/mavensmate-atom • Subline • Well thought off and excellent editor • Great plugin for salesforce integration https://github.com/mailtoharshit/Weave#installation • Eclipse • The original IDE for salesforce, but I have seen very few people actually use it recently and a lot of complaints on the forum. 45#engageug