Webcamp Zagreb, 2016
React is a great view layer, but what about the rest of the app structure?
React is a great view layer, but if you want to create something more than a simple TODO app, you’ll need some other parts. First of, you’ll need a data structure and a way to handle the changes in it. Although the most simple way to do it could be to take parts of a framework you’re used to (e.g. Backbone Collections/Models), there is something better out there. First, there was the Flux architecture, made by Facebook itself - it forced us to change and consume our data in a certain way in order to prevent developers from shooting themselves in the foot. Then there was Redux - a state container that preaches immutability and time travel. While Redux is great, and enables us great things like hot module reloading, it is also very strict and introduces a lot of boilerplate code. MobX, on the other side, has almost no boilerplate code, can be strict when/if you want it to be, and gives you a nice performance boost for free.
https://2016.webcampzg.org/talks/view/making-react-part-of-something-greater/
Serverless Angular, Material, Firebase and Google Cloud applicationsLoiane Groner
Presented at DevFest Florida 2019 - January 19, Orlando, FL.
In this talk we'll learn how to use all the power of Google stack technologies (Angular, Material, Firebase and Google Cloud) to develop a full stack application. We'll learn how we can empower a serverless Angular + Material application with Firebase and reactive programming by using realtime database, Firestore, authentication (with different providers) and Firebase hosting. And we if need any other functionality, we can use Cloud Functions or a NodeJS app. This talk will demonstrate the overview of a real world application (40k users), along with CI configuration and some details of the code (the good parts!).
Webcamp Zagreb, 2016
React is a great view layer, but what about the rest of the app structure?
React is a great view layer, but if you want to create something more than a simple TODO app, you’ll need some other parts. First of, you’ll need a data structure and a way to handle the changes in it. Although the most simple way to do it could be to take parts of a framework you’re used to (e.g. Backbone Collections/Models), there is something better out there. First, there was the Flux architecture, made by Facebook itself - it forced us to change and consume our data in a certain way in order to prevent developers from shooting themselves in the foot. Then there was Redux - a state container that preaches immutability and time travel. While Redux is great, and enables us great things like hot module reloading, it is also very strict and introduces a lot of boilerplate code. MobX, on the other side, has almost no boilerplate code, can be strict when/if you want it to be, and gives you a nice performance boost for free.
https://2016.webcampzg.org/talks/view/making-react-part-of-something-greater/
Serverless Angular, Material, Firebase and Google Cloud applicationsLoiane Groner
Presented at DevFest Florida 2019 - January 19, Orlando, FL.
In this talk we'll learn how to use all the power of Google stack technologies (Angular, Material, Firebase and Google Cloud) to develop a full stack application. We'll learn how we can empower a serverless Angular + Material application with Firebase and reactive programming by using realtime database, Firestore, authentication (with different providers) and Firebase hosting. And we if need any other functionality, we can use Cloud Functions or a NodeJS app. This talk will demonstrate the overview of a real world application (40k users), along with CI configuration and some details of the code (the good parts!).
Level Up Your Android Build -Droidcon Berlin 2015Friedger Müffke
A journey of a young entrepreneur through the Android Gradle build system. It explains the groovy and gradle details that are need during the development process of an Android app.
On stage with Volker Leck
Building Multi-Tenant and SaaS products in PHP - CloudConf 2015Innomatic Platform
Building Multi-Tenant and SaaS products in PHP with the open source Innomatic Platform.
Let’s look at how you can build multi-tenant applications and SaaS products in PHP faster and better with the open source Innomatic Platform.
Presentation at CloudConf 2015
The Dynamic Action framework can make it easy to add dynamic behavior to your APEX applications without writing any JavaScript. But there are parts of the framework that aren’t so straight forward. JavaScript hooks, complex event bindings, debugging Ajax, and more – some might call these the hard parts of Dynamic Actions.
In this session, attendees will skip the introduction to Dynamic Actions and dive right into the hard parts. By the end, folks will leave with some new tools in their tool belt that will help them take the Dynamic Action framework further than they thought was possible.
進擊的 ASP.NET Web API 2 巨人 – 打造支援各種裝置及平台的服務
你/妳知道WebApi (REST)己經成為一個企業IT系統整合及網路服務成長最為快速的趨勢嗎? 你/妳知道現今在網路上最被Mobile device使所用的資料交換的格式是JSON (Javascript Object Notation)而不再是肥大擁腫的XML怪獸嗎?
全世界的網路大咖都拼命地開發WebApi的服務來吸引Mobile或Web application的開發者, 我們將在這堂課中結合AngularJs與ASP.NET Web API 2來讓大家開始感受WebApi的吸引力。
React is a fantastic Javascript rendering framework with a steep learning curve. One of the reasons is understanding state. We explore unidirectional flow, props, state Immutability and Redux.
Building Modern Web Applications using React and ReduxMaxime Najim
React and Redux are latest evolution in modern web application development. This talk covers the concepts and set of technologies of modern web application development.
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
JQuery is awesome, but with all major browsers following the ES and HTML5 specs, the library has become more of a convenience than a necessity for browser compatibility. While the library is useful and ubiquitous, it does distract us from learning the language that it's built on. This talk will outline functionalities that pure javascript provides, and also provide steps we can take to begin writing vanilla javascript applications and start appreciating the power and uniqueness of javascript.
Level Up Your Android Build -Droidcon Berlin 2015Friedger Müffke
A journey of a young entrepreneur through the Android Gradle build system. It explains the groovy and gradle details that are need during the development process of an Android app.
On stage with Volker Leck
Building Multi-Tenant and SaaS products in PHP - CloudConf 2015Innomatic Platform
Building Multi-Tenant and SaaS products in PHP with the open source Innomatic Platform.
Let’s look at how you can build multi-tenant applications and SaaS products in PHP faster and better with the open source Innomatic Platform.
Presentation at CloudConf 2015
The Dynamic Action framework can make it easy to add dynamic behavior to your APEX applications without writing any JavaScript. But there are parts of the framework that aren’t so straight forward. JavaScript hooks, complex event bindings, debugging Ajax, and more – some might call these the hard parts of Dynamic Actions.
In this session, attendees will skip the introduction to Dynamic Actions and dive right into the hard parts. By the end, folks will leave with some new tools in their tool belt that will help them take the Dynamic Action framework further than they thought was possible.
進擊的 ASP.NET Web API 2 巨人 – 打造支援各種裝置及平台的服務
你/妳知道WebApi (REST)己經成為一個企業IT系統整合及網路服務成長最為快速的趨勢嗎? 你/妳知道現今在網路上最被Mobile device使所用的資料交換的格式是JSON (Javascript Object Notation)而不再是肥大擁腫的XML怪獸嗎?
全世界的網路大咖都拼命地開發WebApi的服務來吸引Mobile或Web application的開發者, 我們將在這堂課中結合AngularJs與ASP.NET Web API 2來讓大家開始感受WebApi的吸引力。
React is a fantastic Javascript rendering framework with a steep learning curve. One of the reasons is understanding state. We explore unidirectional flow, props, state Immutability and Redux.
Building Modern Web Applications using React and ReduxMaxime Najim
React and Redux are latest evolution in modern web application development. This talk covers the concepts and set of technologies of modern web application development.
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
JQuery is awesome, but with all major browsers following the ES and HTML5 specs, the library has become more of a convenience than a necessity for browser compatibility. While the library is useful and ubiquitous, it does distract us from learning the language that it's built on. This talk will outline functionalities that pure javascript provides, and also provide steps we can take to begin writing vanilla javascript applications and start appreciating the power and uniqueness of javascript.
The presentation deals with ASP.NET page life cycle and gives you a brief introduction of the events that are fired during each phaze of page processing.
Apex Replay Debugger and Salesforce Platform Events.pptxmohayyudin7826
Exploring Salesforce Platform Events: Discover how to use Platform Events to create real-time applications that streamline your workflows and enhance collaboration.
Apex Replay Debugger: Learn how to troubleshoot your Apex code like a pro. We'll show you how to identify and fix issues efficiently.
The complexity of frontend applications over the years led to the creation of more robust solutions, where data logic won’t be messed up at scale. A shift took place from the traditional services approach, in which data is tightly coupled to the Views of their Components, towards more composable and shareable solutions. Each of these solutions is what we call a "state-manager".
Goal of this presentation is the comparative analysis between different react frontend state managers such as Redux, MobX, Recoil and React-Query. State Machines will also be presented, showing a completely different perception of how state can be orchestrated. Different mental models of the aforementioned state managers along with their different technical implementations will be presented to the audience. Ultimately, the audience can use this presentation for future reference on faster deciding which state-manager fits their own projects. Before delving into the comparison there will be a description of the main data flow in the browser. Concepts like reactivity, immutability, predictability, concurrency and performance will be detected on the main flow and will act as our comparison metrics among the state-managers.
Salesforce Release Spring 24 - French GatheringDoria Hamelryk
Pour cette nouvelle release Spring'24, nous vous proposons un événement spécial durant lequel l'ensemble des groupes de Paris se retrouveront chez ISDI pour vous présenter les features à ne pas manquer. Les autres groupes de France participeront également dans leurs villes respectives.
https://trailblazercommunitygroups.com/events/details/salesforce-salesforce-women-in-tech-group-paris-france-presents-spring-24-french-gathering/
Vous trouverez dans cette présentation la procédure à suivre pour participer à nos concours Trailblazers be Certified
https://trailblazercommunitygroups.com/salesforce-women-in-tech-group-paris-france/
Webinar du 24 novembre 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-salesforce-women-in-tech-group-paris-france-presents-a-la-decouverte-de-pardot/
Webinar du 28 octobre 2020 dans les #serieslex. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-salesforce-women-in-tech-group-paris-france-presents-serieslex-evaluez-vos-actions-marketing-grace-aux-campagnes-salesforce/
#sfpariswit
10 of Our Favorite Salesforce Winter ’21 FeaturesDoria Hamelryk
Webinar du 13 octobre 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-salesforce-women-in-tech-group-paris-france-presents-top-features-winter-21/
Ecrire son premier Trigger (et les comprendre)Doria Hamelryk
Webinar du 28 mai 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-ecrire-son-premier-trigger-et-les-comprendre/
#sfpariswit
Webinar du 14 mai 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-les-formules-et-moi-ca-fait-3/
#sfpariswit
Webinar du 30 apris du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-importer-les-donnees-par-les-outils-salesforce/
#sfpariswit
Webinar du 09 av 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-salesforce-starter-kit/
#sfpariswit
Comment se préparer pour les certifications SalesforceDoria Hamelryk
Webinar du 02 av 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-comment-se-preparer-pour-les-certifications-salesforce/
#sfpariswit
Comment l'automatisation dans Salesforce peut vous faciliter la vieDoria Hamelryk
Webinar du 12 mars 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-comment-lautomatisation-dans-salesforce-peut-vous-faciliter-la-vie/
#sfpariswit
Girls, What's Next? - Première rencontre du groupeDoria Hamelryk
Session du 20 Février 2020 du groupe Salesforce Paris Women in Tech. Plus d'info :
https://trailblazercommunitygroups.com/events/details/salesforce-paris-france-women-in-tech-group-presents-girls-whats-next/
#sfpariswit
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
3. 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021
Why do you really need to know Flows as a developer?
Visual Flows in GA
New Flow builder
Einstein Next Best Actions
Scheduled Flows
Autolaunched Flows
Record Triggered Flows
Public Web Services Integration
Platform Events Flows
4. Flows & Trigger types
Manual
• Quick action
• Global action (with
component)
• LEX page component
(executed on load)
Scheduled
• Start/End date
• Frequency
Automatic
Autolaunched
Record Triggered
Platform Event Triggered
• Insert et/ou Update
• Before ou After
• Publication d’un
événement
Call from :
• Other Flows
• Button
• Apex
6. Lookup component
● Allows you to create a Lookup element based on the Lookup
field of an object
● All the fields of the chosen record are available in the Flow • The Lookup Filters are taken into
account at creation (Create Record
element) but not on display (Screen
element).
• No support for dependent Lookup Filters
• The user must have creation rights on
the source object ("Object API name"
field)
• Custom Lookup fields pointing to User
are not supported
• Only the first 5 results go up in the list
of records (matching based on the
Name field)
Points of attention
https://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_forcecom_flow_fbuilder_lookup.htm
7. Adding LWC to Flows
It is possible to create LWCs for Flows.
Minimum LWC settings for it to be
available in Flows:
● Target : lightning__FlowScreen
● isExposed : true
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>49.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__FlowScreen</target>
</targets>
</LightningComponentBundle>
https://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_forcecom_flow_fbuilder_solutions.htm
8. sObject in LWC for Flows
When using sObjects in LWCs, it is no longer
mandatory to restrict yourself to just one type of
object.
➔ Mutualization of certain components
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>49.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__FlowScreen</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__FlowScreen">
<propertyType name="ObjectType" extends="SObject" label="Objet" />
<property name="records" type="{ObjectType[]}" label="Records" />
</targetConfig>
</targetConfigs>
</LightningComponentBundle>
<template>
<lightning-datatable data={records} columns={colonnes} key-field="id">
</lightning-datatable>
</template>
import { LightningElement, api } from 'lwc';
export default class Mysobject extends LightningElement {
@api records = [];
@api colonnes = [{ label: 'Nom Record', fieldName: 'Name' }];
}
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_lc_flow_support_generic_sobject.htm
9. sObject in invocables actions
https://releasenotes.docs.salesforce.com/en-us/spring20/release-notes/rn_forcecom_flow_fbuilder_dynamic_types.htm
public with sharing class GetFirstFromCollection {
@InvocableMethod
public static List <Results> execute (List<Requests> requestList) {
List<SObject> inputCollection = requestList[0].inputCollection;
SObject outputMember = inputCollection[0];
Results response = new Results();
response.outputMember = outputMember;
List<Results> responseWrapper= new List<Results>();
responseWrapper.add(response);
return responseWrapper;
}
public class Requests {
@InvocableVariable(required=true)
public List<SObject> inputCollection;
}
public class Results {
@InvocableVariable
public SObject outputMember;
}
}
By using sObjects in classes, it is now possible to create
generic actions.
10. Conditional Visibililty
● Visibility can be configured on all screen
components.
● Based on AND / OR conditions.
● 10 conditions maximum, nestable according
to complex logics.
● A non-visible field configured as required,
does not trigger an error if it is not filled in.
https://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_forcecom_flow_fbuilder_conditionals.htm
Beware of LWC components (Lookup, custo picklist, etc.):
It is not possible to condition fields on their value, which is
only stored in the step following the screen component.
11. Elements Layout
Two modes are available in Winter ’21:
●The free mode, which we know today
●AutoLayout mode, which offers automatic organization of items
My Advice :
• Do not use, as long as it is not possible to
move the elements, and still in Beta
12. Decision refined like in Process Builders
Just as it was possible to decide in Process Builders, if an action should only be executed when the execution conditions changed from FALSE
to TRUE, Winter ‘21 offers the possibility of testing these conditions in the decision elements
14. Ways to get records and fields values
Selection :
Specific fields
Selection :
Specific fields
Storage :
Record var
(created by user)
Storage :
Multiple vars – one for each field
(created by user)
Selection :
All fields
Selection :
Specific fields
Storage :
Record Var
(created by system)
Storage :
Record Var
(created by system)
https://releasenotes.docs.salesforce.com/en-us/spring20/release-notes/rn_forcecom_flow_fbuilder_variables.htm
15. Pass Context in LEX pages
Variable Declaration (in Flow) LEX Page Setup Screen Flows Setup
IdRecord
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_forcecom_flow_fbuilder_pass_record.htm
Be carefull!
Update in Flow = Update in Layout
Update in Layout != Update in Flow
16. Pass context in Quick Actions
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_forcecom_flow_fbuilder_pass_record.htm
Variable Declaration Get Record Screen
17. Pass context in Quick Actions
Flow setup Quick Action setup Rendering
Id
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_forcecom_flow_fbuilder_pass_record.htm
If only record context needed :
No need to create custom
component anymore.
If other context needed :
Component will be needed, if not
available in Flows.
18. Launch Flow from Global Action
Today, Flows:
●are not available in Global Actions.
●must be called by Lightning components.
●cannot be called by LWCs.
The input variables must:
●Be declared in the Controller (init) before
launching the Flow.
●Receive the "name", "type" and "value"
elements
By default :
●The Flow will launch in Docker mode and not in
a modal.
●Once the Flow is finished, you will also have to
manage the closing of the component.
({
init : function (component) {
var flow = component.find("flowId");
var inputVariables = [ {name : "maVariable",type:'String',value:« valeur"}];
flow.startFlow("FluxGlobal",inputVariables);
}
})
<aura:component implements="flexipage:availableForAllPageTypes,[…]« access="global" >
<aura:handler name="init" value="{!this}" action="{!c.init}" />
<lightning:flow aura:id="flowId" />
</aura:component>
// Composant
<lightning:flow aura:id="flowData" onstatuschange="{!c.handleStatusChange}" />
// Controller
handleStatusChange : function (component, event) {
if(event.getParam("status") === "FINISHED") {
// Fermeture, redirection, Toast…
}
}
22. Execution order and circular calls
System validation rules
Before Triggers
Custom validation rules
After Triggers
Assignement Rules
Workflows
Escalation rtules
Formula fields calculation
Flow in Before
Flow in After
Object
Case #1 :
2 Flows with updates on the same record
Execution: once per Flow
Object A Object B
Case #2 :
Flow with update from object A to object B,
and vice versa
Execution: once per Flow
https://releasenotes.docs.salesforce.com/en-us/spring20/release-notes/rn_forcecom_flow_fbuilder_before_save_updates.htm
Trigger on :
• Insert
• Update
• Upsert
23. Record-Triggered Flows launch condition
Recommendations: Do not use this functionality.
Reason:
It is necessary to maintain a single Flow Trigger per object and per
type, in order to manage the execution order of the different actions.
The conditions of application of actions within the Flow are to be
supported by "Decision" elements
Autolaunched
Flows
Autolaunched
Flows
Triggered
Flow
24. Performance Tests : Trigger vs. Automation
Trigger
(before insert)
Flow
(before sur insert)
Workflow Process builder
Min time 2058 2472 (+20%*) 4920 (+139%*) 9124 (+343%*)
Max time 2741 3756 (+37%*) 5899 (+115%*) 11558 (+322%*)
Avg time 2435 2969 (+22%*) 5367 (+120%*) 10049 (+313%*)
Performance tests:
• Performed on a creation of 2000 records
• Results over 10 iterations of tests
* Comparison with the execution time of the equivalent Trigger
Recommendation :
• Do not use Process Builder anymore !
25. Available actions according to the type of execution
Flow in Before Flow in After
Flow in Before:
• Only possible to update the current record.
• No further action possible.
Flow in After:
• Ability to perform more complex actions.
Pay attention to the order of execution: it is impossible to
manage the order of Flow Triggers
Recommendations:
• Only 1 Flow Trigger per object and per type (before / after).
• Only on low volume objects, without complex logic.
• No processing in the Flow in Trigger, only calls to Auto
Launched Flows.
26. Flow Trigger on before delete
In addition to the insert and the update, with the
Winter ’21, there is the possibility of managing
actions during deletion (before delete).
Please note, there is no possibility yet to manage
the Undelete, which will have to go through a
trigger.
27. AutoLaunched Flows
Autolaunched Flows are Flows, without Screen element, that can be launched from :
● Processus
● Apex Classes
● API REST
● Onglets Web
● Buttons or Links
● Visualforce Pages
https://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_forcecom_nba_call.htm
Do not mix Autolaunched Flows and Programmatic automation (class, trigger)
Use them to mutualize business processes between flows
29. Platform Events (PE) : publication & subscription
Pay attention to the configuration of the
publication behavior!
In “Publish immediately" mode, transaction
limitations are not respected.
Platform events should be declared in “Publish
After Commit" mode to avoid these behaviors.
Process
PE publication
Create Task
Trigger on Task
Before Insert
Database
Commit
PE subscription
Read Task
Error
Process
PE publication
Create Task
Trigger sur Task
Before Insert
Database
Commit
PE subscription
Read Task
30. Subscriptions to PE through Flows
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_forcecom_flow_fbuilder_platform_event_trigger.h
Subscription to custom and standard events :
• AIPredictionEvent
• BatchApexErrorEvent
• FlowExecutionErrorEvent
• FOStatusChangedEvent
• OrderSummaryCreatedEvent
• OrderSumStatusChangedEvent
• PlatformStatusAlertEvent
If a Flow and a Trigger subscribe to the same event, it is not possible to
guarantee the order in which they will receive its publication.
Beware of infinite loops: a process subscribed to an event, which itself
creates this type of event, would loop.
Limitations:
• Definition of platform events: 50
• Active process subscribers per platform event: 2000
• Post / hour: 250k
• External subscribers (CometD): 1000 in total
• External notifications per 24h: 25k
32. Execution mode in Flows
3 execution modes :
● System with sharing
● System without sharing
● User- or Context-Dependent
https://releasenotes.docs.salesforce.com/en-us/spring20/release-
notes/rn_forcecom_flow_fbuilder_system_mode.htm
https://help.salesforce.com/articleView?id=flow_distribute_context.htm&type=5
Beyond the record visibility, it is
necessary to take into account the
behavior of Flows regarding
Permissions on objects and fields
33. Execution mode : Lightning Pages
User or System
Context
System without sharing System with
sharing
VISIBILITE Sharing : user Sharing : system Sharing : user
PERMISSION Object/FLS : user Object/FLS : system Object/FLS : system
Lightning Page
Screen
Flow
The Flow configuration will determine the visibility on records (with / without sharing) and permissions on fields /
objects (user / system).
When the Flow is set to Context mode, the visibility and permissions will be those of the user running the Flow
34. Execution mode : Parent / Child Flow
Page Lightning
Main Flow :
Screen Flow
Child Flow :
Autolaunched
Flow
VISIBILITE User or System
Context
System without sharing System with
sharing
Flow parent – Context Sharing : user Sharing : system Sharing : user
Flow parent – without sharing Sharing : system Sharing : system Sharing : user
Flow parent – with sharing Sharing : user Sharing : system Sharing : user
PERMISSION User or System
Context
System without sharing System with
sharing
Flow parent – Context Object/FLS : user Object/FLS : system Object/FLS : system
Flow parent – without sharing Object/FLS : system Object/FLS : system Object/FLS : system
Flow parent – with sharing Object/FLS : system Object/FLS : system Object/FLS : system
The configuration of the child Flow will determine the visibility on the records (with / without sharing) and the permissions
on the fields / objects (user / system).
When the child Flow is set up in Context mode, the setting of the parent Flow will be taken into account.
If the parent and child are both in Context mode, the visibility and permissions will be that of the user running the Flow
35. Execution mode : Impact on LWC and Classes
VISIBILITE User or System
Context
System without sharing System with
sharing
Class with sharing Sharing : user Sharing : user Sharing : user
Class without sharing Sharing : system Sharing : system Sharing : system
Page
LightningScreen
Flow LWC Class
PERMISSION User or System
Context
System without sharing System with
sharing
Class with/without
sharing
Object/FLS : system Object/FLS : system Object/FLS : system
As standard, classes called from LWC components do not take permissions
into account:
PERMISSION User or System
Context
System without sharing System with
sharing
Class with/without
sharing
Object/FLS : user Object/FLS : user Object/FLS : user
When testing the permissions via the isAccessible () function, the current
user is always taken into account, regardless of the Flow execution mode:
Visibility on records will be determined by the
class declaration (with / without sharing)
User permissions on fields / objects will be:
• Bypassed when no test is done via functions
such as isAccessible (), ...
• Respected, if we test accessibility
And this; regardless of the execution mode of
the Flows
36. Execution mode : Autolaunched Flows from methods
VISIBILITE User or System
Context
System without sharing System with
sharing
Class with sharing Sharing : system Sharing : system Sharing : user
Class without sharing Sharing : system Sharing : system Sharing : user
Trigger Class
Autolaunched
Flow
PERMISSION User or System
Context
System without sharing System with
sharing
Class with/without
sharing
Object/FLS : system Object/FLS : system Object/FLS : system
The visibility on the records will be determined by the execution mode of the
Flow (with / without sharing).
In Context mode, visibility is identical to System without sharing mode
Field / object permissions will always be in system mode, regardless of the
Flow execution mode
38. Debug flows & running user
With Winter ‘21, it is possible to test Flows by
simulating execution by a chosen user.
This will allow you to have better control over the tests
for the different profiles.
This option must be activated in:
Setup > Process Automation Settings> Let admins
debug flows as other users
User must have view all data permission !
40. Deployement and Test Coverage
● The minimum test coverage of 75% excludes the Flux test
coverage.
● For active Flows, it is possible to define a minimum test
coverage percentage specific to Flows.
● Access to the configuration from "Process Automation
Settings” in the Configuration
https://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_forcecom_flow_mgmnt_coverage.htm
41. Other features subject to a pilot
Public Web Services available in Actions
● Jira, Dropbox, Instagram, Twitter, Mailchimp, eBay, Walmart,
GoToMeeting, Trello, Medium - 25 actions max. à la fois par API
Multi-column screens
● Configurable by section