KEPLIN Docs

Passaggi, decisioni e attese

Il catalogo dei nodi di un workflow — condizioni, scritture nel record, notifiche, email, script, attese, cicli, parallelismo e unioni.

Questa pagina percorre tutti i tipi di passaggio che si trascinano dalla palette Nodi sulla tela. Per ognuno: cosa fa, cosa si compila e cosa succede durante l'esecuzione.

Prima, però, un pezzo che si ripete in quasi tutti: la provenienza di un valore.

Da dove viene un valore

Ogni volta che un passaggio chiede un valore — il lato destro di una condizione, quello che si scrive in un campo — l'interfaccia offre le stesse quattro provenienze:

Provenienza Cosa porta
Valore fisso Un testo scritto a mano ("Ganha", "25000").
Campo del record Un campo del record di cui l'esecuzione si occupa.
Variabile Una delle variabili del processo.
Chi ha avviato Chi ha fatto partire il processo — Nome utente (lo username) o Id utente.

È per questo che un processo non ha bisogno di codice per la maggior parte di quello che fa: le decisioni e le scritture si compongono con questi quattro pezzi.

Condizione

Apre due strade a partire da una domanda. Ha sempre due uscite fisse: Vero e Falso.

La finestra Condizioni del passaggio
La finestra Condizioni del passaggio

  1. Seleziona il passaggio e apri Condizioni dal pulsante .
  2. Clicca su Aggiungi condizione.
  3. Scegli la provenienza del lato sinistro (di solito Campo del record), il campo, l'operatore e il lato destro.

Gli operatori sono gli stessi dei filtri e delle regole di formattazione del resto della piattaforma:

Operatore Significa
eq / neq Uguale a / diverso da
gt / gte Maggiore di / maggiore o uguale a
lt / lte Minore di / minore o uguale a
contains Contiene il testo
startsWith / endsWith Comincia con / finisce con
isEmpty / isNotEmpty È vuoto / non è vuoto

"Devono valere tutte" — più condizioni nello stesso passaggio si combinano con E, mai con O. Per un O, usa due passaggi di condizione in catena.

Senza nessuna condizione, "prosegue sempre per «Vero»" — utile mentre si disegna, pericoloso se resta così.

Scrivi nel record

Salva campi nel record di cui l'esecuzione si occupa. È il passaggio che chiude il cerchio: il processo ha deciso, ora la scheda del CRM deve rifletterlo.

La finestra Campi da scrivere nel record
La finestra Campi da scrivere nel record

  1. Apri Campi da scrivere dal pulsante .
  2. Clicca su Aggiungi campo.
  3. Scegli il Campo e la provenienza del valore.

Nell'esempio, il passaggio Marcar como Ganha scrive fase = "Ganha" (valore fisso) e responsavel = Chi ha avviato (lo username di chi ha avviato il processo).

Nota

La scrittura avviene "dallo stesso GraphQL dell'app, con l'autorizzazione di chi lo ha avviato". Ossia: le autorizzazioni contano. Se chi ha avviato il processo non può modificare quell'entità, il passaggio fallisce — e fa bene a fallire, perché un processo non è una porta di servizio alle autorizzazioni.

Un passaggio senza nessun campo "non fa nulla" — l'interfaccia lo dice invece di nasconderlo.

Notifica

Manda una notifica dentro l'app — la campanella della navigazione, in tempo reale per chi ha la sessione aperta, e nella casella in arrivo per chi non ce l'ha.

Campo Note
Utenti Account dell'app, scelti a mano.
Ruoli Tutti gli utenti con quel ruolo. Sopravvive agli ingressi e alle uscite di persone.
Titolo La riga che compare nella notifica.
Testo Il corpo.

Nel titolo e nel testo puoi inserire valori del record o di variabili fra parentesi graffe: A oportunidade {titulo} foi rejeitada.

Email

Uguale a Notifica, ma la destinazione è l'email, tramite il canale configurato nelle impostazioni dell'app. Ha due campi in più: il corpo è HTML, scritto in un editor apposito, e può portare un report in allegato.

Il passaggio Email selezionato, con il pannello delle proprietà
Il passaggio Email selezionato, con il pannello delle proprietà

Campo Note
Utenti / Ruoli I destinatari. Chi non ha un'email resta fuori.
Oggetto Accetta {campo} come il resto dei messaggi.
Testo Apre un editor di HTML dal pulsante (Corpo dell'email).
Allega report Uno dei report dell'app, oppure Nessun allegato.

Sull'allegato: "il PDF viene generato al momento dell'invio, per il record di questa esecuzione" — non è un file salvato, è il documento di quel caso, fatto in quell'istante. Vedi il capitolo Report.

Atenção

Senza un canale email attivo e con SMTP completo nelle impostazioni dell'app, il passaggio non riesce a inviare. Configuralo in Impostazioni dell'app → Notifiche prima di mettere il processo in funzione.

Esegui script

Chiama uno script Python dell'app, a metà del processo. È la valvola di sfogo per tutto quello che il diagramma non fa: chiamare un servizio esterno, calcolare un margine, convalidare contro un altro sistema.

Il passaggio Esegui script selezionato
Il passaggio Esegui script selezionato

Campo Note
Script Uno degli script dell'app.
Salva in La variabile in cui resta ciò che lo script restituisce. Vuoto = "si scarta".

Lo script "riceve il record, la chiave e le variabili negli argomenti" — non c'è bisogno di passarglieli a mano. Ciò che restituisce resta nella variabile indicata e diventa disponibile per i passaggi successivi.

Se lo script fallisce, l'esecuzione resta in Fallita su quel passaggio, con l'errore conservato nella cronologia.

Attendi

Rimanda il processo di un tempo fisso: Giorni e Ore. "Zero in entrambi = nessuna attesa."

È il pezzo di "avvisami fra tre giorni se ancora non c'è risposta". L'esecuzione dorme e viene ripresa automaticamente all'ora giusta, anche se il server è stato riavviato nel frattempo.

Attendi evento

Rimanda il processo finché qualcuno non manda un segnale con un nome concordato.

Il passaggio Attendi evento selezionato
Il passaggio Attendi evento selezionato

L'unico campo è il Nome del segnale (nell'esempio, dados-completos). "Chi invia il segnale scrive questo nome. Senza scadenza: se nessuno lo invia, il processo resta in attesa."

Il segnale si manda in due modi:

  • da un evento di schermata (TypeScript): keplin.workflow.signal("dados-completos", id)
  • da uno script (Python): workflow.signal("dados-completos", key=id)

Senza indicare il record, il segnale sveglia tutti i processi fermi su quel nome; con il record, solo quelli di quel record. Zero svegliati non è un errore — vuol dire che nessuno era in attesa.

Dica

È comune combinare Attendi evento con una freccia di ritorno a un'attività: la persona rimanda indietro il caso chiedendo più dati, il processo resta in attesa del segnale, e quando il commerciale completa la scheda il segnale riporta il caso alla stessa attività. È esattamente quello che fa l'esempio di questa documentazione.

Ciclo

Percorre un elenco, un valore alla volta. Ha due uscite: Ciascuno (il corpo del ciclo, che viene eseguito una volta per valore) e Alla fine (quando l'elenco finisce).

Campo Note
Elenco La variabile con i valori da percorrere. "Di solito è un passaggio di script a produrla."
Salva ciascuno in La variabile che riceve il valore del giro corrente.

Senza un elenco scelto, il diagramma avvisa: "Questo ciclo non dice quale elenco percorrere: esce subito da «Alla fine»."

Parallelo

Avvia più strade nello stesso momento. Ogni ramo è un'uscita del nodo.

La finestra Rami in parallelo
La finestra Rami in parallelo

  1. Apri Rami in parallelo dal pulsante .
  2. Ogni riga è un ramo, con un'Etichetta (quello che si legge nel diagramma) e un Identificatore.
  3. Collega ogni uscita al primo passaggio del ramo corrispondente.

Nell'esempio, il passaggio Fechar e comunicar apre due rami: Registo (che salva la fase) e Cliente (che invia l'email). Nessuno aspetta l'altro.

Unione

Rimette insieme i rami di un Parallelo. È il passaggio che risponde a "quanti se ne aspettano?".

L'Unione selezionata, con il pannello delle proprietà
L'Unione selezionata, con il pannello delle proprietà

Attendere Cosa fa
Tutti i rami Il processo prosegue solo quando arriva l'ultimo ramo.
Il primo decide Prosegue con il primo che arriva — "gli altri rami vengono annullati quando uno arriva".
Un certo numero Prosegue al termine di Quanti rami indichi.

Sub-workflow

Chiama un altro processo, sullo stesso record.

Campo Note
Processo da eseguire Uno dei workflow dell'app.
Attendi che finisca Attivo, questo processo si ferma finché l'altro non termina. "Disattivato, questo processo prosegue e l'altro viene eseguito per conto suo."

"Viene eseguito sullo STESSO record, e quindi deve trattare la stessa entità" — un processo sulle opportunità non può chiamare un processo sugli account. E un processo non può chiamare sé stesso: "sarebbe una ricorsione infinita", e il diagramma lo segnala.

Fine

Termina l'esecuzione. Ha un unico campo, Risultato, un testo breve come approvato, ganha o perdida. "Resta nella cronologia ed è ciò che mostra il widget di stato."

Un processo può avere più nodi di Fine — uno per esito — ed è proprio quello che si deve fare: invece di una Fine generica, una per risultato, perché la cronologia dica qualcosa a chi la legge mesi dopo.

Come si legge un passaggio sulla tela

Ogni riquadro sulla tela mostra tre cose: il nome del passaggio (quello che hai scritto in Nome del passaggio, e quello che compare nella cronologia), il tipo in caratteri piccoli sotto, e le uscite a destra, con il nome di ciascuna. Un triangolo ambra nell'angolo segnala un passaggio con problemi.

Dica

Dai ai passaggi nomi di business — "Aprovação da direcção", "Marcar como Ganha" — e non nomi tecnici. È quel testo che leggerai nella cronologia di ogni esecuzione quando qualcuno chiederà "dove è fermo questo caso?".