Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
#ForceAcademyLA
I fell in love with
clicks AND code
… here’s what I learned
in relationship therapy
#ForceAcademyLA
Thank you Sponsors!
A big shout out to our sponsors, without them these events would
not be possible:
#ForceAcademyLA#ForceAcademyLA
Hello!
Daniel Stange
Technical Architect
DIA die.interaktiven
Frankfurt (DE) User Group Lea...
#ForceAcademyLA#ForceAcademyLA
• Happy (Solo) Days
• Relationship <3
• Crisis!
• Reconciliation
Agenda
#ForceAcademyLA
“Do not swear by the moon,
for she changes constantly.
then your love would also change.”
#ForceAcademyLA
Solo Admin,
flyin’ solo
1.
HAPPY
DAYS
#ForceAcademyLA#ForceAcademyLA
DEMO
Our session
scenario: Just a plain
org with some basic
“clicks not code”
automations
P...
#ForceAcademyLA
Wouldn‘t it be nice
if it never rained?
#ForceAcademyLA#ForceAcademyLA
Which scenarios
were tested?
There aren‘t any issues, right?
How was it tested?
For which s...
#ForceAcademyLA
Admin <3 Dev
kinda…
2.
RELATIONSHIP
#ForceAcademyLA#ForceAcademyLA
• Apex Developers
• AppExchange Packages
• Integrations & Data Loads
• ... and even yoursel...
#ForceAcademyLA#ForceAcademyLA
Scenarios?
Again...
Tests?
Scale? Operations?
Data Volume?
Single record, positive tests fr...
#ForceAcademyLA#ForceAcademyLA
DEMO
A new requirement!
And alas – it needs
some code!
Place your screenshot here
#ForceAcademyLA
“Thus with a kiss I die”
#ForceAcademyLA
„Just don‘t send these
kinds of emails!“
3.
CRISIS
#ForceAcademyLA#ForceAcademyLA
DEMO
Turns out that
declarative and code
don’t live side by
side harmonically…
But why?
And...
#ForceAcademyLA#ForceAcademyLA
• „it‘s nothing personal“ indeed:
Exceptions pop up as they happen
• Team up
• Keep documen...
#ForceAcademyLA#ForceAcademyLA
LIMITS
Bring the attention of your audience over a
key concept using icons or illustrations
#ForceAcademyLA
Everyone shares the same set of limits
Even workflow rules consume governor
limits.
Database interactions,...
#ForceAcademyLA#ForceAcademyLA
ORDER
There’s an order to everything that
happens after you saved a record to the
database
#ForceAcademyLA#ForceAcademyLA
Know the „Order of Execution“ by heart
Þ Core explanation for most common problems
Þ Logic ...
#ForceAcademyLA#ForceAcademyLA
„Order of Execution“ at a glance
#ForceAcademyLA#ForceAcademyLA
„Order of Execution“ at a glance
#ForceAcademyLA#ForceAcademyLA
„Order of Execution“ at a glance
#ForceAcademyLA#ForceAcademyLA
RECURSION
Re-Entry into previously executed logic
is sometimes crucial – and sometimes
terr...
#ForceAcademyLA#ForceAcademyLA
Operations can (and will) run in circles
Recursion is the #1 villain... Really.
Use the rec...
#ForceAcademyLA#ForceAcademyLA
SPREAD
A Change in Data can trigger a chain
reaction as it fires logic far away from the
st...
#ForceAcademyLA#ForceAcademyLA
Operations tend to spread out
Plan automations carefully if they are going to touch
related...
#ForceAcademyLA#ForceAcademyLA
The Usual Suspects...
• Rollup Summaries
• Cross Object Workflow Updates
• Implicit Rollups...
#ForceAcademyLA#ForceAcademyLA
DEMO
Supposedly simple
operations can
consume a massive
amount of your
limits
Place your sc...
#ForceAcademyLA
They lived happily
Ever after
4.
RECONCILIATION
#ForceAcademyLA#ForceAcademyLA
CHOOSE
WISELY
Know when to build code,
know when to save the effort
#ForceAcademyLA#ForceAcademyLA
• Avoid PB / Flow for bulk operations
• Use the advantage of the „before“ context in
Trigge...
#ForceAcademyLA#ForceAcademyLA
BE
SPECIFIC
For every automation, check for the
conditions to really run the automation
#ForceAcademyLA#ForceAcademyLA
• Leverage entry criteria
• Leverage action criteria in Process Builder
• Check for Changed...
#ForceAcademyLA#ForceAcademyLA
USE
GATES
Filter away everything
that should not happen
#ForceAcademyLA#ForceAcademyLA
• Use hidden fields to start or bypass
workflows, flows and process builder nodes
Flow Cont...
#ForceAcademyLA#ForceAcademyLA
Static variables to keep track of
• Operation Entry Point
• Executed Units
• Processed Reco...
#ForceAcademyLA#ForceAcademyLA
DEMO
Use clear entry
conditions and
prevent re-entry
Place your screenshot here
#ForceAcademyLA#ForceAcademyLA
ALLOW
BYPASSES
Once you control your automations, build
ways to bypass your logic
#ForceAcademyLA#ForceAcademyLA
Bypasses let you decide which logic to run next.
• Exceptions from Validations
• Deliberate...
#ForceAcademyLA#ForceAcademyLA
DEMO
Use a Custom
Permission to
Bypass Validations
Place your screenshot here
#ForceAcademyLA#ForceAcademyLA
DEMO
Use Handler
bypasses in Triggers
Place your screenshot here
#ForceAcademyLA#ForceAcademyLA
The Work Horse:
Kevin O‘Hara‘s Framework:
github.com/kevinohara80/sfdc-trigger-framework
Li...
#ForceAcademyLA#ForceAcademyLA
TEST,
TEST,
TEST… volume, integrations, expected outcome,
#ForceAcademyLA#ForceAcademyLA
DEMO
Example of a test
data insert, update
extract and delete
job.
Place your screenshot he...
#ForceAcademyLA#ForceAcademyLA
Thank Y u!
Any questions?
You can find me at:
@stangomat
Daniel.Stange@die-interaktiven.de
...
Prochain SlideShare
Chargement dans…5
×

Force Academy '19: I fell in love with clicks AND code - here's what I learned in relationship therapy

509 vues

Publié le

Presentation held at ForceAcademy '19 (May 13, 2019). Session Abstract: The Lightning platform enables both Admins and Developers to build customized logic in ways that no other platform offers. Flows, processes, workflows and Apex code can sit side-by-side to accelerate even the most complex business processes.

Let's face it: In a fresh org, you can easily build with "Clicks Not Code". But how do you learn to align legacy code and new declarative customization’s to design reliable and scalable application with Clicks AND Code?

I will run you through typical scenarios and show where (and how) Code and Clicks work together harmonically. And as this relationship sometimes get complicated, I will bring a few scenarios where our clicks AND code couple clashes - let's stick our heads together to apply some best practice and patterns as a therapy!

Publié dans : Technologie
  • You can try to use this service ⇒ www.HelpWriting.net ⇐ I have used it several times in college and was absolutely satisfied with the result.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Soyez le premier à aimer ceci

Force Academy '19: I fell in love with clicks AND code - here's what I learned in relationship therapy

  1. 1. #ForceAcademyLA I fell in love with clicks AND code … here’s what I learned in relationship therapy
  2. 2. #ForceAcademyLA Thank you Sponsors! A big shout out to our sponsors, without them these events would not be possible:
  3. 3. #ForceAcademyLA#ForceAcademyLA Hello! Daniel Stange Technical Architect DIA die.interaktiven Frankfurt (DE) User Group Leader Found Salesforce boring in the dark ages - Changed my mind. You can find me at: @stangomat linkedin.com/in/danielstange/ Blog: blog.danielstange.de
  4. 4. #ForceAcademyLA#ForceAcademyLA • Happy (Solo) Days • Relationship <3 • Crisis! • Reconciliation Agenda
  5. 5. #ForceAcademyLA “Do not swear by the moon, for she changes constantly. then your love would also change.”
  6. 6. #ForceAcademyLA Solo Admin, flyin’ solo 1. HAPPY DAYS
  7. 7. #ForceAcademyLA#ForceAcademyLA DEMO Our session scenario: Just a plain org with some basic “clicks not code” automations Place your screenshot here
  8. 8. #ForceAcademyLA Wouldn‘t it be nice if it never rained?
  9. 9. #ForceAcademyLA#ForceAcademyLA Which scenarios were tested? There aren‘t any issues, right? How was it tested? For which scale was it built? Operation Types Data Volume
  10. 10. #ForceAcademyLA Admin <3 Dev kinda… 2. RELATIONSHIP
  11. 11. #ForceAcademyLA#ForceAcademyLA • Apex Developers • AppExchange Packages • Integrations & Data Loads • ... and even yourself (yes, that‘s right) Who‘s in the game?
  12. 12. #ForceAcademyLA#ForceAcademyLA Scenarios? Again... Tests? Scale? Operations? Data Volume? Single record, positive tests from the UI with an Admin user...
  13. 13. #ForceAcademyLA#ForceAcademyLA DEMO A new requirement! And alas – it needs some code! Place your screenshot here
  14. 14. #ForceAcademyLA “Thus with a kiss I die”
  15. 15. #ForceAcademyLA „Just don‘t send these kinds of emails!“ 3. CRISIS
  16. 16. #ForceAcademyLA#ForceAcademyLA DEMO Turns out that declarative and code don’t live side by side harmonically… But why? And What can we do? Place your screenshot here
  17. 17. #ForceAcademyLA#ForceAcademyLA • „it‘s nothing personal“ indeed: Exceptions pop up as they happen • Team up • Keep documentation (of the system AND of incidents) Cope with Anger & Frustration
  18. 18. #ForceAcademyLA#ForceAcademyLA LIMITS Bring the attention of your audience over a key concept using icons or illustrations
  19. 19. #ForceAcademyLA Everyone shares the same set of limits Even workflow rules consume governor limits. Database interactions, rows... And CPU time! KNOW ABOUT THE LIMITS
  20. 20. #ForceAcademyLA#ForceAcademyLA ORDER There’s an order to everything that happens after you saved a record to the database
  21. 21. #ForceAcademyLA#ForceAcademyLA Know the „Order of Execution“ by heart Þ Core explanation for most common problems Þ Logic may not run (or run more than once) Þ Data may have changed Þ Inspect the operation flow in the dev console using the „Analysis Perspective“
  22. 22. #ForceAcademyLA#ForceAcademyLA „Order of Execution“ at a glance
  23. 23. #ForceAcademyLA#ForceAcademyLA „Order of Execution“ at a glance
  24. 24. #ForceAcademyLA#ForceAcademyLA „Order of Execution“ at a glance
  25. 25. #ForceAcademyLA#ForceAcademyLA RECURSION Re-Entry into previously executed logic is sometimes crucial – and sometimes terribly dangerous
  26. 26. #ForceAcademyLA#ForceAcademyLA Operations can (and will) run in circles Recursion is the #1 villain... Really. Use the recursion flags for Workflows and process Builder with care Map out your operations
  27. 27. #ForceAcademyLA#ForceAcademyLA SPREAD A Change in Data can trigger a chain reaction as it fires logic far away from the starting point
  28. 28. #ForceAcademyLA#ForceAcademyLA Operations tend to spread out Plan automations carefully if they are going to touch related objects and keep documentation / maps.
  29. 29. #ForceAcademyLA#ForceAcademyLA The Usual Suspects... • Rollup Summaries • Cross Object Workflow Updates • Implicit Rollups • (Task to LastActivityDate on Account and WhoId / WhatID) • DLRS / Rollup Helper
  30. 30. #ForceAcademyLA#ForceAcademyLA DEMO Supposedly simple operations can consume a massive amount of your limits Place your screenshot here
  31. 31. #ForceAcademyLA They lived happily Ever after 4. RECONCILIATION
  32. 32. #ForceAcademyLA#ForceAcademyLA CHOOSE WISELY Know when to build code, know when to save the effort
  33. 33. #ForceAcademyLA#ForceAcademyLA • Avoid PB / Flow for bulk operations • Use the advantage of the „before“ context in Triggers • Use „update records“ action with care if writing up or down • Minimize the number of automation types and stick with one Rule of thumb: Least complex tool to do the job
  34. 34. #ForceAcademyLA#ForceAcademyLA BE SPECIFIC For every automation, check for the conditions to really run the automation
  35. 35. #ForceAcademyLA#ForceAcademyLA • Leverage entry criteria • Leverage action criteria in Process Builder • Check for Changed Fields before running your logic Filter for exact scenarios
  36. 36. #ForceAcademyLA#ForceAcademyLA USE GATES Filter away everything that should not happen
  37. 37. #ForceAcademyLA#ForceAcademyLA • Use hidden fields to start or bypass workflows, flows and process builder nodes Flow Control in Declarative Logic
  38. 38. #ForceAcademyLA#ForceAcademyLA Static variables to keep track of • Operation Entry Point • Executed Units • Processed Record Ids • Units to execute (or not) Advanced stuff: Enterprise Patterns / Unit of Work Flow Control in Apex Triggers
  39. 39. #ForceAcademyLA#ForceAcademyLA DEMO Use clear entry conditions and prevent re-entry Place your screenshot here
  40. 40. #ForceAcademyLA#ForceAcademyLA ALLOW BYPASSES Once you control your automations, build ways to bypass your logic
  41. 41. #ForceAcademyLA#ForceAcademyLA Bypasses let you decide which logic to run next. • Exceptions from Validations • Deliberately bypass logic KNOW WHAT YOU‘RE DOING: Data Inconsistency Ahead! Bypasses to manipulate the flow
  42. 42. #ForceAcademyLA#ForceAcademyLA DEMO Use a Custom Permission to Bypass Validations Place your screenshot here
  43. 43. #ForceAcademyLA#ForceAcademyLA DEMO Use Handler bypasses in Triggers Place your screenshot here
  44. 44. #ForceAcademyLA#ForceAcademyLA The Work Horse: Kevin O‘Hara‘s Framework: github.com/kevinohara80/sfdc-trigger-framework Lightweight & Modern: MyTriggers: github.com/appero-com/MyTriggers Full Circle: Force DI: github.com/afawcett/force-di Trigger Handler Progression
  45. 45. #ForceAcademyLA#ForceAcademyLA TEST, TEST, TEST… volume, integrations, expected outcome,
  46. 46. #ForceAcademyLA#ForceAcademyLA DEMO Example of a test data insert, update extract and delete job. Place your screenshot here
  47. 47. #ForceAcademyLA#ForceAcademyLA Thank Y u! Any questions? You can find me at: @stangomat Daniel.Stange@die-interaktiven.de linkedin.com/in/danielstange/ Blog post / source code to come blog.danielstange.de and github.com/dstdia

×