• Passa al contenuto principale
  • Passa alla barra laterale primaria
  • INIZIA QUI
  • HOME
  • CHI SONO

APPin5Minuti

Creare APP Gestionali con Oracle APEX e Low-Code

Crea Applicazioni Gestionali con Oracle APEX e gli strumenti Low-Code.

Oracle APEX: Workflow Manager con Flows for APEX

Aprile 3, 2021

Flows for APEX è una soluzione open source, messa a disposizione gratuitamente sotto licenza MIT, che consente di progettare ed eseguire dei workflow all’interno di una applicazione APEX. È stato sviluppata da un gruppo di appassionati esperti di Apex e nel tempo si è rapidamente evoluta in una soluzione di modellazione dei processi ricca di funzionalità.

Cliccando a questo link puoi accedere alla pagina GitHub del progetto Flows for APEX dove puoi trovare, tra le altre cose, diverse risorse molto utili come tutorial e alcune demo.

In questo articolo ti voglio mostrare come funziona.

IN QUESTO ARTICOLO

  • Flows for APEX: come si installa
  • Flows for APEX: panoramica sull’applicazione
    • Flow Management
    • Flow Monitor
  • Flows for APEX: un esempio pratico
    • Applicazione Prenotazione Sale
    • Workflow di Prenotazione Sale
    • Come integrare Flows for APEX nella applicazione
  • In Conclusione

Flows for APEX: come si installa

Per usare Flows for APEX devi prima di tutto scaricare l’installer dal sito dello sviluppatore.

Nel momento in cui sto scrivendo questo articolo, la versione scaricabile di Flows for APEX è la 5.1.1. utilizzabile dalla release Oracle APEX 20.1 e superiori.

Nella cartella compressa troverai due installer SQL, il primo è il motore di Flow, il secondo è una applicazione DEMO che puoi usare per fare dei test.

Collegati al tuo Workspace APEX, entra nell’APP Builder e clicca Import.

Seleziona l’installer dell’applicazione Flows for APEX e imposta le varie opzioni per l’import del file:

  • File Type: Database Application
  • File Character Set: Unicode UTF-8

Clicca Next

Clicca su Next

Clicca Install Application.

Attiva l’opzione Install Supporting Objects e clicca Next.

Clicca Install.

Alla fine della procedura dovresti vedere l’applicazione disponibile nel workspace.

Opzionalmente puoi installare anche una applicazione di DEMO seguendo la stessa procedura che ho appena spiegato.

Flows for APEX: panoramica sull’applicazione

Se hai installato Flows for APEX puoi eseguire l’applicazione.

La sezione Getting Started mette a tua disposizione una serie di informazioni generali, i riferimenti alla documentazione on-line e alla pagina di download.

Flow Management

Nela sezione Flow Management puoi creare i tuoi workflow.

Per vedere la definizione di un Flow, clicca sul bottone Edit.

Nella parte alta della pagina puoi vedere alcune informazioni generali come il nome, la versione e lo stato.

A destra ci sono dei contatori che mostrano quanti processi sono stati attivati per questo flow (istanze) con indicazioni di quali sono in corso (running instances) e quali sono completate (completed instances).

Nella sezione finale della pagina puoi vedere il flusso grazie a BPMN.i0, un viewer Third-Party integrato.

Cliccando su Edit Flow puoi modificare il Flow direttamente nell’editor grafico. Quando hai completato le modifiche clicca su Save Flow per salvare la definizione del flow.

Il formato con cui viene salvato il flow è definito dallo standard BPMN 2.0. Quindi oltre ad essere utilizzato da una applicazione APEX può essere esportato per essere integrato in altre applicazioni. Clicca su View Source per vedere la definizione del flusso.

Per esportare il file bpmn clicca su Export, specifica le opzioni e clicca nuovamente Export per salvare localmente la definizione del flusso.

Flow Monitor

Nella sezione Flow Monitor puoi monitorare e gestire i processi di workflow che sono stati attivati.

Un processo Flow può essere avviato da una qualsiasi applicazione APEX usando delle API che Flows for APEX mette a disposizione (nei paragrafi successivi vedremo come fare).

Per avviare manualmente un processo dal Flow Monitor, clicca Create New Instance.

Specifica quale flow avviare e clicca Create per mettere in coda il processo

La nuova istanza del processo è stata creata ma non è ancora avviata: clicca sul bottone Start Process per avviare il flow.

Una volta avviato il flow, puoi vedere il suo avanzamento direttamente nel viewer dove il task correntemente attivo viene evidenziato.

Per far avanzare il flow, clicca sul tab Subflows.

In questa sezione puoi vedere i task che sono stati attivati; per far avanzare il flow clicca sul bottone Go To Next Step.

Viene attivato il secondo task (Task B)

Anche nel viewer la situazione è cambiata, infatti è cambiato il task correntemente attivo.

Flows for APEX: un esempio pratico

Gli sviluppatori di Flows for APEX hanno pensato bene di rendere disponibili all’interno del pacchetto di rilascio una loro una applicazione di demo e diversi template di flussi che puoi utilizzare per fare esercizio.

Questi template sono disponibili nella sezione Flow Management.

Il mio consiglio è di non modificare questi flow ed eventualmente di crearne di nuovi come copia usando le funzionalità di export/import.

In questo tutorial mi limiterò a spiegarti come creare un semplice flow che aggiorna lo stato di un record e di come integrarlo all’interno della tua applicazione.

Nei prossimi articoli andremo ad esplorare nel dettaglio, usando anche degli esempi pratici, tutte le funzionalità che vengono messe a disposizione da questa applicazione.

Applicazione Prenotazione Sale

Per testare le funzionalità di Flows for APEX ho creato una semplicissima applicazione per gestire le richieste di prenotazione delle sale riunioni che puoi vedere cliccando a questo link.

Il richiedente deve inserire una richiesta specificando la sala da riservare, la data e ora per la quale deve essere impegnata, il numero di persone e se sono richiesti dei servizi aggiuntivi come il proiettore o il servizio di catering.

Dopo aver sottomesso la richiesta, viene attivato un task in carico alla segreteria che deve leggere i dati inseriti nella form di prenotazione e procedere alla approvazione o rifiuto della richiesta.

Quando una richiesta di prenotazione viene approvata, il sistema riserva la sala riunione prenotata ed invia una mail al richiedente.

Nella parte inferiore dell’applicazione ho creato un monitor che mostra in tempo reale lo stato di avanzamento del workflow di approvazione gestito da Flow for APEX.

Workflow di Prenotazione Sale

Per gestire la prenotazione delle sale riunione ho creato il seguente workflow.

  • Il processo parte con il richiedente che deve inserire una nuova richiesta di prenotazione per una sala riunioni.
  • La richiesta viene presa in carico dalla segreteria che provvederà ad approvare o rifiutare la richiesta
    • Se la richiesta viene accetta, la sala riunioni viene riservata e viene inviata una mail di conferma al richiedente. Questo processo avviene automaticamente, sulla base dei dati inseriti nella richiesta.
    • Se la richiesta viene rifiutata viene inviata automaticamente una mail anche in questo caso.

Inserimento Prenotazione

Task di tipo User Task che viene attivato dopo che l’utente ha creato la richiesta nell’applicazione, ovvero dopo che ha premuto il bottone CREA RICHIESTA.

Lavorazione Richiesta

Task di tipo User Task che viene attivato dopo che l’utente ha sottomesso la richiesta di prenotazione, ovvero dopo che ha premuto il bottone INVIA RICHIESTA.

Approvazione della Richiesta

Per gestire correttamente il comportamento dell’applicazione in funzione dell’approvazione o rifiuto della richiesta ho creato un Gateway di tipo esclusivo.

Il nome del Gateway è la variabile che dovremo valorizzare per far capire a Flows for APEX quale ramo deve navigare

I valori ammessi sono definiti nei rami di uscita dal Gateway

Task automatici

I task per inviare la mail sono di tipo Service Task e richiedono di specificare quale script PL/SQL deve essere eseguito.

Questo tipo ti task si completano automaticamente una volta eseguito lo script PL/SQL.

Come integrare Flows for APEX nella applicazione

Come abbiamo visto nel paragrafo precedente, quando crei un flusso puoi utilizzare diversi tipi di task.

Ad esempio, ci sono task che devono essere fatti avanzare a seguito di una azione dell’utente (ad esempio premere un bottone) oppure task che vengono eseguiti automaticamente dal Flow fo APEX non appena vengono attivati (Service Task)

Per integrare la tua applicazione con Flows for APEX devi utilizzare le api PL/SQL che vengono messe a disposizione.

Come avviare un workflow

Nell’applicazione che ho creato, ogni volta che viene creata una richiesta di prenotazione viene generata una nuova istanza di workflow.

Per fare questo ho richiamato l’API di creazione del worflow usando questo script

declare
 p_spcs_prcs_id    number;
 p_spcs_name       varchar2;
begin
 p_spcs_prcs_id := flow_api_pkg.flow_create(pi_dgrm_name => 'Prenotazione_Sala_Riunione', pi_prcs_name => p_spcs_name); 
 flow_api_pkg.flow_start(p_process_id => p_spcs_prcs_id);
end;

La funzione flow_api_pkg.flow_create ha come parametri:

  • pi_dgrm_name: il nome del workflow da istanziare
  • pi_prcs_name: il nome dell’istanza. Io ho utilizzato il numero della richiesta generata dal sistema

In output restituisce l’ID del workflow che è stato istanziato.

Come far avanzare un workflow

Anche per far avanzare un workflow è necessario richiamare una API PL/SQL.

Ad esempio, per muovere il flusso dal task Lavorazione Richiesta a Richiesta Approvata ho utilizzato le seguenti istruzioni:

  • flow_process_vars.set_var per impostare la variabile che serve per navigare il Gateway decisionale
  • flow_api_pkg.flow_complete_step per far avanzare il flusso
declare
 p_process_id  number;
 p_subflow_id  number;
 p_action      varchar2;
begin
 flow_process_vars.set_var(pi_prcs_id => p_process_id, pi_var_name => 'Gateway_Approvazione_Richiesta:route', pi_vc2_value => p_action);
 flow_api_pkg.flow_complete_step(p_process_id => p_process_id, p_subflow_id => p_subflow_id);
end;   

In Conclusione

Abbiamo visto come possiamo utilizzare Flows for APEX progettare e gestire un flusso di lavoro tramite una applicazione APEX.

Benché sia un prodotto che necessita di una certa capacità di programmazione per essere sfruttato al meglio, è probabilmente una delle migliori soluzioni disponibili per gestire in workflow in Oracle APEX.

L’aspetto sicuramente più interessante sta nel motore di progettazione che si basa su un editor BPMN grafico, molto intuitivo e facile da utilizzare.

Mentre un po’ più dura è l’integrazione con le applicazioni, basate su chiamate ad api PL/SQL.

Se vuoi approfondire l’argomento, ti invito a guardare questa sessione dimostrativa di Flows for APEX.

TI POTREBBE INTERESSARE:

  • CPQ in Oracle APEX
  • Come gestire i files su Object Storage da Oracle APEX
  • Come migrare le applicazioni da Oracle Forms ad Oracle APEX
  • Come sviluppare applicazioni sicure con Oracle APEX
  • Costruiamo un CRM con Oracle APEX
  • Come costruire Workflows Approvativi in Oracle APEX

flows for apex, flows4apex, oracle, oracle apex

Interazioni del lettore

Commenti

  1. Maria dice

    23/11/2021 alle 10:51 AM

    Ciao, innanzitutto grazie per questo articolo davvero utilissimo.
    Avrei la necessità di chiederti un aiuto. Stiamo utilizzando questo strumento per orchestrare dei lanci di prcedure plsql. Per caso è possibile collegare la documentazione al singolo task?
    Per esempio, è possibile collegare una action al singolo task in modo che con un click si possa aprire una pagina in cui posso inserire un pò di cocumentazione? In rete purtroppo non ho trovato nulla in tal senso.
    Grazie mille in anticipo se riuscirai ad aiutarci.

    Rispondi
  2. chadwick dice

    03/05/2022 alle 7:36 PM

    Yes! Finally sоmething about tasks.

    Rispondi

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Barra laterale primaria

BENVENUTO!

Il mio nome è Daniele Trasarti, autore di APPin5Minuti, il blog italiano che parla di piattaforme di Oracle APEX e applicazioni low-code.

Qui troverai tantissimi tutorial e risorse per imparare a sviluppare in pochissimo tempo bellissime applicazioni per gestire i dati ed i processi della tua azienda.

Se vuoi saperne di più inizia da qui.

Seguimi sui social!

  • LinkedIn
  • Twitter

NEWSLETTER

Iscriviti anche tu per far parte della più grande community italiana di persone che amano sviluppare low-code!

api rest appsheet appsheet data sources appsheet views appsheet workflow automation autonomous database build apps cpq crm css cyber security database dynamic layout facebook flowform flows4apex google google cloud interactive grid interactive report javascript list microsoft microsoft access mobile oracle oracle apex oracle cloud oracle rest data service ords pl-sq PL-SQL power apps product configurator sales configurator security social login software gestionale sql theme roller ux woocommerce wordpress workflows

COMMENTI RECENTI

  1. Daniele Trasarti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Sabatino, grazie per l'apprezzamento. Riguardo alla tua domanda ti consiglio di usare Oracle Cloud. Puoi creare un account gratis…

  2. Sabatino Iannazzo su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Daniele, complimenti per la guida, mi hai aperto un mondo! volevo chiederti se con Apex e Oracle Database Express…

  3. Laura su Autenticazione a 2 Fattori basata su TOTP (Time-based One-time Password) con Oracle APEX

    Ciao, trovo molto interessante il tuo articolo. Hai qualche suggerimento per l'autenticazione con spid? pensi di fare qualche guida al…

  4. Mario Volpetti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ottima spiegazione e complimenti per la semplicità che ai usato. Sono riuscito a farlo anche io con un foglio excel…

  5. Riccardo Liviabella su Google AppSheet: come creare una APP Mobile da un foglio Excel in 5 minuti

    Ciao Daniele e grazie per le tue interessanti spiegazioni. E' da un pò di anni che lavoro su Appsheet e…

  6. Daniele Trasarti su Come costruire Workflows Approvativi in Oracle APEX

    Ciao Bhavin, I think you badly copied PL-SQL because the one you provided is not correct. Fix the script and…

  7. Daniele Trasarti su Applicazione di Prenotazione Appuntamenti in Oracle APEX

    Grazie mille Franca!

Copyright © 2023 · APPin5Minuti.it · Privacy Policy · Cookie Policy