Cerca nel blog

lunedì 25 gennaio 2016

ABAP: WORKFLOW

Definizione Workflow

Il Workflow è l’insieme di regole che determinano il percorso che il processo richede. Per esempio, come una richiesta di acquisto viene elaborato, dalla richiesta iniziale alla creazione dell’ordine di acquisto.
Il WorkFlow può essere usato per definire i processi di business quali:
  • Procedure semplici di approvazione o di rilascio
  • Processi più complessi come la creazione di un codice materiale, un’offerta o un ordine
Il WorkFlow è particolarmente adatto a situazioni in cui i processi di lavoro sono caratterizzati da step sequenziali o paralleli, che possono richiedere l’intervento di uno specifica figura professionale, situazioni quindi in cui il processo coinvolge diverse figure professionali in una sequenza specifica. Inoltre si può anche usare il WorkFlow per rispondere agli errori ed alle eccezioni presentatesi in altri processi.
Avvalendosi della struttura organizzativa di SAP si ha modo di indirizzare (nella maggior parte dei casi in maniera completamente automatica) i processi sviluppati con WF direttamente alle unità organizzative o agli utenti preposti a svolgere le attività. L’utente destinatario dei processi riceverà le informazioni (Workitem) direttamente nella sua “SAP office”, dalla quale interagirà con il processo stesso.

L'amministratore del WorkFlow, ha una serie di strumenti e funzioni con le quali gestire ed analizzare i WorkFlow correnti, nonché riceve automaticamente dal sistema informazioni sui problemi riscontrati.
Gli elementi basilari in un processo di WorkFlow sono:

§   I Business Object Builder, strutturati in:
       Interfacce
       Campi chiave
       Attributi
       Metodi
       Eventi
§   I Task o le attività che possono coesistere in un processo di WF in forma singola o in gruppi ed essere elaborate in modo interattivo dall’utente o in background
§   Operatori e funzioni di processo (condizioni, loop, operazioni, decisione utente, attesa e generazione eventi, ecc.)
§   Il Task Container e Workflow Container, ambienti nei quali si definiscono le variabili e gli oggetti da instanziare
§   Il flusso dati (Binding), tramite il quale si definisce il flusso dei dati tra le variabili del processo e le modalità di interazione


Definizione di un sistema Workflow

1.     Definizione del processo
Che cosa succede, in quale sequenza?
     Workflow Builder, definizione dei task

2.     Modello organizzativo
      Chi fa che cosa?
      Struttura organizzativa, regole di definizione agenti

3.     Incapsulamento applicazioni
Quali oggetti sono richiesti? (es: ordine, fattura, elemento WBS, …)
Business Object Builder, Business Object Repository
 
4.     Supporto agli utenti finali
      Che cosa devo fare domani?
      Business Workplace

5.     Controllo del processo
      Cosa succede quando?
      Workflow manager, work item manager

6.     Valutazione del processo
      Chi ha fatto cosa e quando?
      Reporting, analisi dei log
  

Architettura del Workflow




Esempio: La definizione di uno step usa gli attributi (operazione di container), gli eventi (step di attesa) ed i metodi. 
Un task usa la definizione di un workflow, i metodi di un business object  

Costruiamo una semplice applicazione di workflow

Lo strumento principale per la creazione, la visualizzazione e l'elaborazione di un Workflow è il costruttore del flusso di lavoro (Transazione SWDD). All'interno del costruttore del Workflow è possibile creare tutti i componenti di un flusso di lavoro, inclusi tutti i contenitori necessari per ottenere i dati da una fase all'altra.
Generalmente, la maggior parte dei Workflows vengono avviati da un evento (ad esempio, quando viene creato un materiale o quando arriva una nuova richiesta di acquisto). È possibile definire quali dati da questo evento deve essere passati al Workflow via Binding.
Tuttavia è anche possibile avviare direttamente qualsiasi Workflow.
Cerchiamo di creare un workflow semplice ed avviarlo direttamente, utilizzando gli strumenti di test.
Richiamiamo la transazione SWDD. Se è la prima volta che viene richiamata, allora viene visualizzata un workflow di default, altrimenti viene visualizzato l’ultimo wokflow creato.
Premere il pulsante “Creare nuovo workflow”
 

Verrà visualizzata la seguente schermata iniziale:


La schermata iniziale è suddivisa in 3 parti:
1.     Lo START del workflow
2.     L’area in cui si inserisce la nuova definizione del Workflow
3.     La Fine del workflow

Facciamo doppio click sulla nuova fase, oppure tasto dx e scegliere CREARE, e selezionare il passo “User Decision”.


Inseriamo il titolo per lo “User Decision”, ad esempio "Si prega di prendere una decisione". Inserire anche i testi per la decisione di Approvare e Rifiutare e dopo premere il pulsante INVIO.
Nel campo Agent inserire la persona a cui l’elemento di lavoro deve essere inviato. Dal momento che questo è un esempio di base di workflow, cabliamo il nome della persona scegliendola dal menu a tendina.
In generale, questo tipo di assegnazione agente non è fatto. Gli agenti sono generalmente assegnati utilizzando l'espressione, agente regola di assegnazione o di un oggetto organizzazione (lavoro, posizione, ecc).


Premere successivamente il pulsante Evidenziato in ROSSO, e verrà visualizzato la seguente schermata
  

Ora dobbiamo inserire lo step di invio mail al richiedente per l’approvazione, quindi selezioniamo la linea “Approvare”, tasto dx e selezionare “CREATE”.
Selezionare lo step “Send Mail


Inserire l’oggetto ed il corpo del messaggio per la posta elettronica da inviare.


Premere il pulsante Evidenziato in ROSSO, e verrà visualizzato la seguente pop-up, dove inseriamo il nome del task che stiamo creando e la sua descrizione.


Premere OK.
Fare gli stessi passi fatti per  la linea “Approvare” anche per la linea “Rifiutare”. Alla fine avremo la seguente schermata


Premere il pulsante SAVE per salvare il workflow application, ed ATTIVARLO.
Dopo il salvataggio, un numero viene assegnato al nostro Workflow, come illustrato di seguito.


Per testare il workflow, premere il pulsante evidenziato in ROSSO.
   
  
Verrà visualizzata la seguente schermata, premere F8


Verrà visualizzato nello Status Bar il seguente messaggio: Task avviato con Workitem ID XXXXXX (stato attuale: In elaborazione)
Ora il destinatario riceverà un work item nella sua casella di posta SAP® (Transaction SBWP).
Selezionare il Work Item e premere F8


Nella schermata successiva premere la decisione di Approvare o Rifiutare


In questo caso, una e-mail sarà inviata al richiedente con lo stato della sua richiesta.

TRANSAZIONI RELATIVE AI WORKFLOW
·        Transazione PPOCE – Crea Struttura Organizzativa
·        Transazione PPOME – Modifica Struttura Organizzativa
·        Transazione PPOSE – Visualizza Struttura Organizzativa
·        Transazione SW01 – Creazione e gestione dei Business Objects
·        Transazione SWI1 – Per analizzare i log dei workflow/workitem
Dal log è possibile seguire passo passo tutto il processo e controllare il flusso dati. E’ consigliabile consultare il log con a fianco la definizione  grafica del workflow
·        Transazione SWUD – Diagnosi workflow
Da questo ambiente è possibile accedere a diversi tool per il debugging: trace workflow/eventi, test metodi, consistenza task, trigger eventi, ecc…
·        Transazione SWDD – Costruzione Workflow
·     Transazione PFTC – Creazione Workflow task, Workflow template, Task group
·        Transazione SBWP – Business Workplace
·        Transazione PFAC – Creazione regole Assegnazione agenti
·        Transazione SE24 – Class Builder

TABELLE UTILI PER L’ANALISI DEI WORKITEM
·        SWWVPUBLIC            Dati di testata
·        SWWWIDEADL           Dati sulle scadenze
·        SWWWIRET                 Return-code esecuzione workitem
·        SWW_CONT                 Elementi nei container
·        SWW_CONTOB           Elementi oggetti (istanze B.O.) nei container
·        SWWWIHEAD             Tabella header per tutti i WorkItem
·        SWWLOGHIST             Log history di un Workitem
·        SWWUSERWI              Workitem assegnato ad un utente
·        HRS1205                         Definizione Workflow Infotype Standard
·        SWWWIAGENT           Riepilogo agenti per l’esecuzione di un Workitem