ProcessMaker

ProcessMaker è una soluzione Open Source per la gestione dei flussi di lavoro aziendali nelle piccole e medie imprese e nelle organizzazioni di varia natura. ProcessMaker consente a qualsiasi utente, anche con pochissima esperienza, di automatizzare e gestire i processi aziendali.

Il Business Process Management è l’insieme di attività necessarie per definire, ottimizzare, monitorare ed integrare i processi aziendali al fine di modellare un sistema orientato a massimizzare efficienza ed efficacia del business aziendale. ProcessMaker è un Sistema, web based, di Business Process Management System (BPMS), utilizzabile con il browser preferito, che consente la modellazione, l’automazione e la gestione dei processi aziendali. Non è richiesta alcuna installazione locale.

La semplicità d’uso rende conveniente anche il disegno di quei processi che vengono utilizzati solo di rado.

La successiva analisi dei processi può comportare una revisione degli stessi ed eventualmente ridurne i costi.

Con ProcessMaker si possono disegnare i propri forms, creare documenti, definire utenti ed assegnare ruoli, definire le regole di processo, connettersi ad altre applicazioni e DBMS.

ProcessMaker si rivolge quindi:

  • a chi, in azienda, deve disegnare il processo ed assegnare i compiti;
  • agli utenti del processo, per lo svolgimento dei compiti assegnati;
  • ai supervisori per la verifica del corretto svolgimento;
  • ai manager per l’analisi dei risultati ed ottimizzazione dei processi.

Quali sono le motivazioni che stanno dietro l’adozione di ProcessMaker?

Le PMI (Piccole e Medie Imprese) non hanno tempo e risorse per utilizzare costose suite BPM (Business Process Management) concepite per grosse organizzazioni; le PMI hanno la necessità di:

  1. un prodotto che consenta, in maniera semplice, di automatizzare i flussi di lavoro per avere più tempo da dedicare al business;
  2. un prodotto che possa essere utilizzato senza dover assumere nuovo personale;
  3. un prodotto che sia flessibile e si integri con i sistemi ed i database esistenti;
  4. un prodotto facile da usare che avvicini gli utenti al sistema.

Requisiti di sistema

Per un uso personale, ProcessMaker può essere usato su qualsiasi computer con una CPU moderna, connessione a Internet e 2 GB di RAM, mentre per l’uso in produzione, i requisiti hardware possono variare in base a diversi fattori (numero di utenti collegati contemporaneamente, dimensioni del repository , configurazione del sistema). Per l’uso in produzione, si consiglia di installare ProcessMaker su un server dedicato o su una macchina virtuale con una connessione Internet dedicata.

Per la nostra versione di ProcessMaker, disponibile a questo indirizzo , consigliamo l’installazione di docker.

Guida all’installazione

Prima di tutto, se non l’avete ancora fatto, scaricare l’immagine da github

docker build -t rossonet/processmaker-apache:latest https://github.com/rossonet/ProcessMaker-apache.git

ed attivare il daemon docker

sudo dockerd
  1. creare la bridge network
    docker network create --driver bridge pmos-net
    
  2. Creare il database MySQL
    mkdir mysql-data
    docker run -d --rm --name mysql-db -v $(pwd)/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw --network pmos-net mysql:5
    
  3. creare l’istanza Processmaker
    mkdir processmaker-data
    export PMOS_URL=localhost
    docker run -d --rm --name pmos -p 8080:8080 -v $(pwd)/processmaker-data:/opt -e URL=$PMOS_URL --network pmos-net rossonet/processmaker-apache:latest
  4. configurare ProcessMaker: aprire il link http://localhost:8080 nel browser. Dovrebbe apparire una pagina col dependencies check.
    Installazione, passo 1 di 5: Pre-installation Check
  5. Cliccare su “Next”
    Installazione, passo 2 di 5: File Permissions
  6. Cliccare ancora “Next”
    Installazione passo 3 di 5: ProcessMaker Open Source Licence
  7. Selezionare “I Agree”, poi ancora “Next”
    Installazione, passo 4 di 5: Database Configuration
  8. A questo punto inserire host name e password scelti durante la creazione del database; cliccare su “Test Connection” e, se è andato a buon fine, cliccare “Next”
    Installazione, passo 5 di 5: Workspace Configuration
  9. Inserire una password per l’admin, cliccare “Check Workspace Configuration” e, se va a buon fine, cliccare “Finish”. Dovrebbe apparirvi un popup di conferma
    Installazione andata a buon fine.
  10. Cliccare “OK”.
    A questo punto, all’indirizzo http://localhost:8080/sysworkflow/en/neoclassic/login/login dovrebbe apparirvi la form per il login di Processmaker
    ProcessMaker Login Page
  11. Inserite la password scelta per Admin, e benvenuti su ProcessMaker!

Esempio/ caso d’uso

Supponiamo che nella nostra azienda un dipendente abbia necessità di materiale (cancelleria, attrezzature). In questo caso, chiederà al magazzino che, se il materiale è presente, lo consegnerà al richiedente; in caso contrario farà a sua volta una richiesta di acquisto all’ufficio preposto, e provvederà a consegnare il materiale al dipendente una volta che sarà arrivato.

Tutto ciò in ProcessMaker può essere rappresentato con un diagramma di flusso

Varie fasi, però, possono essere automatizzate in modo da far risparmiare tempo alle persone coinvolte: il richiedente, per esempio, anziché recarsi personalmente in magazzino, ed aspettare mentre il magazziniere verifica la disponibilità e reperisce il materiale, potrà compilare una form di richiesta materiale; ProcessMaker si occuperà di inviare una mail interna con la richiesta al magazziniere; solo quando il materiale sarà disponibile, il richiedente si recherà a ritirarlo al magazzino, oppure il magazziniere glielo consegnerà in ufficio.

Ovviamente, anche il processo di richiesta di acquisto può essere automatizzato:

in tal caso, una volta che il magazziniere avrà compilato la form di richiesta di acquisto, ProcessMaker invierà al manager dell’ufficio acquisti una mail interna con la richiesta

A questo punto, se il manager approva, si provvederà all’acquisto del materiale; in caso contrario, verrà inviato al magazziniere l’avviso che l’ordine è stato rifiutato, con la richiesta di riformulare la richiesta d’acquisto.

Problem Solving

Verifica dell’installazione

verificare la rete docker utilizzata tra i containers

$ docker network ls
NAME      VERSION  PLUGINS
pmos-net  0.4.0    bridge,portmap,firewall,tuning,dnsname

controllare i containers

$ docker ps
CONTAINER ID  IMAGE                                                                                                      COMMAND         CREATED       STATUS           PORTS                   NAMES
d4b50ff138e4  localhost/rossonet/processmaker-apache:latest                                                              /bin/bash       24 hours ago  Up 24 hours ago  0.0.0.0:8080->8080/tcp  pmos
0d8e8100be08  docker.io/library/mysql:5                                                                                  mysqld          24 hours ago  Up 24 hours ago                          mysql-db

controllare la connessione tra il container di ProcessMaker ed il database:

prima di tutto, installare il pacchetto MySQL client

$ docker exec -it pmos yum install -y mysql
Loaded plugins: ovl, priorities
amzn-main                                                                                                                                        | 2.1 kB  00:00:00     
amzn-updates                                                                                                                                     | 3.8 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package mysql.noarch 0:5.5-1.6.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
 Package                              Arch                                  Version                                      Repository                                Size
========================================================================================================================================================================
Installing:
 mysql                                noarch                                5.5-1.6.amzn1                                amzn-main                                2.7 k

Transaction Summary
========================================================================================================================================================================
Install  1 Package

Total download size: 2.7 k
Installed size: 0  
Downloading packages:
mysql-5.5-1.6.amzn1.noarch.rpm                                                                                                                   | 2.7 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql-5.5-1.6.amzn1.noarch                                                                                                                           1/1 
  Verifying  : mysql-5.5-1.6.amzn1.noarch                                                                                                                           1/1 

Installed:
  mysql.noarch 0:5.5-1.6.amzn1                                                                                                                                          

Complete!

poi provare la connessione tra il container di ProcessMaker ed il database (la password è la stessa che abbiamo messo durante l’installazione, nel nostro esempio è my-secret-pw)

$ docker exec -it pmos mysql -h mysql-db -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.7.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wf_workflow        |
+--------------------+
5 rows in set (0.02 sec)

Pulizia dell’ambiente di lavoro

Fermare i containers

$ docker stop pmos mysql-db
d4b50ff138e48e4274e0b13c08d89c517a9f2ecdc9ce6b0bcc8af6350782c6cf
0d8e8100be08d4bbaa6add4f0120ab0acb6716bee1358a07f2f54a990cfe5d98

Cancellare la network bridge

$ docker network rm pmos-net
pmos-net

Rimuovere le directory di archiviazione (come user root)

$ sudo rm -rf processmaker-data mysql-data

Reference

source code on GitHub repository

image at DockerHub registry

image at GitHub registry