Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

Eseguire un flusso all'interno di un flusso

Obiettivi di apprendimento

Al completamento di questa unità, sarai in grado di:

  • Ridurre al minimo il lavoro utilizzando l'elemento Sottoflusso.
  • Creare un flusso che viene eseguito all'interno di un altro flusso.
  • Configurare le variabili di un flusso con riferimenti per restituire i dati al flusso principale.
Nota

Nota

Stai seguendo la formazione in italiano? Inizia la sfida in un Trailhead Playground in italiano e utilizza le traduzioni fornite tra parentesi per la navigazione. Per quanto riguarda i valori da inserire, copia e incolla solo quelli in lingua inglese, perché la convalida della sfida è basata sul fatto che i dati siano in inglese. Se non superi la sfida nella tua organizzazione italiana, ti consigliamo di (1) selezionare Stati Uniti per le impostazioni internazionali, (2) selezionare Inglese per la lingua seguendo le istruzioni riportate qui e, successivamente, (3) fare nuovamente clic sul pulsante "Controlla la sfida".

Visita il badge Trailhead nella tua lingua per informazioni dettagliate su come usufruire dell'esperienza Trailhead in altre lingue.

Nota

Questo badge è una tappa del percorso di acquisizione della padronanza di Flow Builder. L'itinerario Creare flussi con Flow Builder ti guiderà attraverso tutto il percorso di apprendimento di Flow Builder, dall'inizio alla fine. Segui la sequenza di badge consigliata per acquisire solide competenze di automazione dei processi e diventare un guru di Flow Builder.

Il potere della pigrizia

Può sembrare incredibile, ma una delle qualità più importanti di un amministratore è la pigrizia.

Proprio così! Se dovessi apportare una modifica alla tua organizzazione Salesforce che interessa quattro flussi diversi, preferiresti aggiornare tutti e quattro i flussi oppure soltanto uno? Può sembrare una magia, ma anche tu puoi superare ostacoli come il lavoro superfluo sfruttando il potere della pigrizia.

Ad esempio, nell'organizzazione di Flo sono presenti quattro flussi che postano lo stesso messaggio su Chatter. Ogni volta che un elemento associato a quel post su Chatter cambia, Flo deve aggiornare l'elemento duplicato in tutti e quattro i flussi. Flo rabbrividisce al pensiero di dover ripetere la stessa operazione tante volte. Per fortuna, ha a sua disposizione un altro elemento che non abbiamo ancora usato: l'elemento Sottoflusso. 

Utilizzando l'elemento Sottoflusso in un flusso (il flusso principale) è possibile fare riferimento a un altro flusso (il flusso secondario) ed eseguirlo all'interno del flusso corrente (quello principale). Flo è entusiasta all'idea di poter apportare modifiche a un solo flusso invece di quattro. Inoltre, con un numero inferiore di flussi, ci sono meno possibilità di trascurare o configurare in modo errato qualcosa.

Flo ti chiede di creare un flusso separato per il post su Chatter. Il suo obiettivo è sostituire gli elementi duplicati in quattro flussi separati utilizzando il nuovo flusso secondario al loro posto. Se, successivamente, un elemento correlato al post su Chatter cambia, Flo può aggiornare soltanto il flusso secondario invece di aggiornare tutti i quattro i flussi separati.

Flo Smith si rilassa su una chaise-longue pensando a un flusso mentre un inserviente le fa aria con una foglia di palma.

Variabili di input e output

Le variabili di un flusso secondario sono speciali. Hai notato le impostazioni Available for input (Disponibile per l'input) e Available for output (Disponibile per l'output) durante la creazione di una variabile? Queste impostazioni consentono alle variabili di trasferire l'input dal flusso principale a quello secondario e l'output dal flusso secondario a quello principale.

Sezione Availability Outside the Flow (Disponibilità al di fuori del flusso) della finestra New Resource (Crea risorsa) con due opzioni: Available for input (Disponibile per l'input) e Available for output (Disponibile per l'output).

Ma perché inviare dati avanti e indietro da un flusso secondario? Nell'esempio di Flo, il flusso secondario pubblica un post su Chatter nel record di attivazione del flusso principale. Quindi, il flusso secondario deve conoscere l'ID di quel record. I flussi secondari non possono accedere al record di attivazione dei flussi principali, quindi questi ultimi devono passarli ai flussi secondari. Inoltre, se il flusso principale deve conoscere l'ID del post di Chatter creato dal flusso secondario, quest'ultimo deve passare quell'ID al flusso principale.

Le variabili vanno definite come disponibili per l'input o per l'output nel flusso secondario.

  • Per ricevere dati dal flusso principale, il flusso secondario ha bisogno di una variabile disponibile per l'input.
  • Per inviare dati al flusso principale quando l'esecuzione è completa, il flusso secondario ha bisogno di una variabile disponibile per l'output.
  • Se non è necessario inviare dati in nessuna delle due direzioni, non sono necessarie né variabili di input né variabili di output.

Diagramma che rappresenta la descrizione precedente

Creare un elemento Sottoflusso

Per eseguire un flusso all'interno di un altro flusso, è necessario innanzitutto creare il flusso principale e quello secondario e aggiungere un elemento Sottoflusso al flusso principale.

Creare il flusso secondario

  1. Crea un flusso selezionando il tipo Autolaunched Flow (Flusso AutoLaunched).
  2. Crea una variabile di tipo Testo:
    • API Name (Nome API): userMentionId
    • Available for input (Disponibile per l'input): selezionata
  1. Crea un'altra variabile di tipo Testo:
    • API Name (Nome API): postTargetID
    • Available for input (Disponibile per l'input): selezionata
  1. Crea ancora un'altra variabile di tipo Testo:
    • API Name (Nome API): chatterPostID
    • Available for output (Disponibile per l'output): selezionata
  1. Crea una risorsa selezionando il tipo Text Template (Modello di testo):
    • API Name (Nome API): chatterBody
    • Body (Corpo): @[{!userMentionID}], please review this record. (@[{!userMentionID}], ti preghiamo di controllare questo record).
    • Nell'editor del corpo del messaggio, cambia "View as Rich Text" (Visualizza come testo RTF) in "View as Plain Text" (Visualizza come testo normale).
  1. Aggiungi un elemento Action (Azione):
    • Action (Azione): Post to Chatter (Pubblica in Chatter)
    • Label (Etichetta): Chatter Mention Post­ (Post di Chatter con menzione)
    • API Name (Nome API): Chatter_Mention_Post
    • Message (Messaggio) chatterBody
    • Target Name or ID (ID o nome destinazione): postTargetID
    • Sotto Show advanced options (Mostra opzioni avanzate), seleziona Manually assign variables (Assegna manualmente le variabili).
    • Feed Item ID (ID elemento feed): chatterPostID
  1. Salva il flusso. In Flow Label (Etichetta flusso), inserisci Post to Chatter (Pubblica su Chatter).
  2. Attiva il flusso.

Creare il flusso principale con un elemento Sottoflusso

  1. Crea un flusso attivato da record:
    • Object (Oggetto): Case (Caso)
    • Trigger the Flow When (Attiva il flusso quando): A record is created or updated (Un record è creato o aggiornato)
    • Condition Requirements (Requisiti della condizione): All Conditions Are Met (AND) (Tutte le condizioni sono soddisfatte (AND))
    • Condizione: Priority (Priorità), Equals (Uguale a), High (Alta)
    • When to Run the Flow for Updated Records (Quando eseguire il flusso per i record aggiornati): Only when a record is updated to meet the condition requirements (Solo quando un record è aggiornato per soddisfare i requisiti della condizione)
    • Optimize the Flow for (Ottimizza il flusso per): Actions and Related Records (Azioni e record correlati)
  1. Aggiungi un elemento Subflow (Sottoflusso):
    • Seleziona il flusso Post to Chatter (Pubblica su Chatter).
    • Label (Etichetta): Post to Chatter (Pubblica su Chatter)
    • API Name (Nome API): Post_to_Chatter
    • Abilita il campo postTargetID e seleziona Triggering Case (Caso di attivazione) > Case ID (ID caso).
      Il riquadro Subflow (Sottoflusso) in cui viene selezionato Triggering Case (Caso di attivazione) e poi Owner ID (ID titolare) nel campo userMentionID.
    • Abilita il campo userMentionID e seleziona Triggering Case (Caso di attivazione) > Owner ID (ID titolare).
      Accertati di far scorrere l'elenco e di selezionare Owner ID (ID titolare) e non Owner ID (Group) (ID titolare (Gruppo)) o Owner ID (User) (ID titolare (Utente)).
Nota

Quando in un flusso con riferimenti non sono presenti variabili impostate come disponibili per l'input, la sezione Set Input Values (Imposta valori di input) non è visibile.

  1. Salva il flusso. In Flow Label (Etichetta flusso), inserisci Case Priority is High (La priorità del caso è alta).

Ora, ogni volta che bisogna modificare la creazione di record, Flo deve aggiornare soltanto un unico flusso secondario. Pigrizia batte Superlavoro 1 a 0!

Aspetti da considerare

Quando lavori con i sottoflussi, tieni presenti i seguenti aspetti.

  • L'elemento Sottoflusso può fare riferimento soltanto a flussi AutoLaunched e flussi Schermata.
  • In un flusso Schermata è possibile fare riferimento soltanto a un solo altro flusso Schermata.
  • Se fai riferimento a un flusso non attivo, solo gli utenti con l'autorizzazione Gestisci flusso potranno eseguirlo.
  • Se esistono più versioni di un flusso secondario, il flusso principale ne eseguirà la versione attiva. Se non esiste una versione attiva di un flusso secondario, il flusso principale ne eseguirà la versione più recente.

Risorse

Sfida pratica

+500 punti

Preparati

Completerai questa unità, questo progetto o questa fase nella tua organizzazione di prova. Fai clic su Avvia per iniziare o seleziona il nome della tua organizzazione per sceglierne un'altra.

La tua sfida

Simplify and Build Upon the Opportunity Product Flow
In the opportunity product creation flow from unit 1, replace repeated elements with a subflow element that references another flow (child flow) multiple times. Also, add another product path to the parent flow. Prework: If you haven’t already completed the challenge in unit 1 (Define Multiple Paths in a Flow), do that now. Otherwise, you won't be able to complete this challenge.
  • Create an autolaunched flow
  • Create a text variable:
    • API Name: ProductKW
    • Available for input: checked

  • Create another text variable:
    • API Name: OpportunityID
    • Available for input: checked

  • Create another text variable:
    • API Name: PricebookID
    • Available for input: checked

  • Add a Get Records element:
    • Label: Get Product
    • API Name: Get_Product
    • Object: Product
    • Condition Requirements: All Conditions Are Met (AND)
      • Field: Name
      • Operator: Contains
      • Value: ProductKW
    • Keep default values for all other settings

  • Add a Get Records element after the Get Product element:
    • Label: Get PBE
    • API Name: Get_PBE
    • Object: Price Book Entry
    • Condition Requirements: All Conditions Are Met (AND)
    • Add a condition requirement:
      • Field: Pricebook2Id
      • Operator: Equals
      • Value: PricebookID
    • Add another condition requirement:
      • Field: Product2Id
      • Operator: Equals
      • Value: Product from Get_Product > Id
    • Keep default values for all other settings

  • Add a Create Records element after the Get PBE element:
    • Label: Create Opp Product
    • API Name: Create_Opp_Product
    • How to set record field values: Manually
    • Object: Opportunity Product
    • Set Field Values:
      • Field: Opportunity ID, Value: OpportunityID
      • Field: Price Book Entry ID, Value: Price Book Entry from Get PBE > Price Book Entry ID
      • Field: Quantity, Value: 1
      • Field: Total Price, Value: Price Book Entry from Get PBE > List Price

  • Save and activate the flow.
    • Label: Subflow-Create Generator Opp Product
    • API Name: Subflow_Create_Generator_Opp_Product

  • Make a new version of the Add Generator Product to Named Opps flow (Open the flow and click Save As New Version.)
  • Delete these elements:
    • Create 1500 Opp Product
    • Create 2000 Opp Product
    • Get 1500 PBE
    • Get 2000 PBE
    • Get 1500 Product
    • Get 2000 Product

  • On the 1500kW path, add a Subflow element:
    • Select the Subflow-Create Generator Opp Product flow
    • Label: Create 1500 Opp Product
    • API Name: Create_1500_Opp_Product
    • Include the OpportunityId field and select Triggering Opportunity > Opportunity ID
    • Include the PricebookID field and select Price Book from Get Pricebook > Price Book ID
    • Include the ProductKW field and enter 1500

  • On the 2000kW path, create a Subflow element:
    • Select the Subflow-Create Generator Opp Product flow
    • Label: Create 2000 Opp Product
    • API Name: Create_2000_Opp_Product
    • Include the OpportunityId field and select Triggering Opportunity > Opportunity ID
    • Include the PricebookID field and select Price Book from Get Pricebook > Price Book ID
    • Include the ProductKW field and enter 2000

  • In the Check Opp Name Decision element, add a new outcome:
    • Label: 1000kW
    • API Name: X1000kW
    • Condition Requirements: All Conditions Are Met (AND)
    • Resource: Triggering Opportunity > Name
    • Operator: Contains
    • Value: 1000

  • On the 1000kW path, create a Subflow element:
    • Select the Subflow-Create Generator Opp Product flow
    • Label: Create 1000 Opp Product
    • API Name: Create_1000_Opp_Product
    • Include the OpportunityId field and select Triggering Opportunity > Opportunity ID
    • Include the PricebookID field and select Price Book from Get Pricebook > Price Book ID
    • Include the ProductKW field and enter 1000

  • Save and activate the flow
Condividi il tuo feedback su Trailhead dalla Guida di Salesforce.

Conoscere la tua esperienza su Trailhead è importante per noi. Ora puoi accedere al modulo per l'invio di feedback in qualsiasi momento dal sito della Guida di Salesforce.

Scopri di più Continua a condividere il tuo feedback