CRMS14 - Gestione workflow di approvazione¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | CRMS14-OPE | x(20) | Operazione da eseguire Vedi argomenti successivi |
| CRMS14-DOC-CLASSE | x(04) | Classe documento da elaborare (vedi costanti-tipi-documento.cpy) | |
| CRMS14-DOC-KEY | x(40) | Chiave del documento da elaborare | |
| I/O | CRMS14-DSR-CHIA1 | Chiave dossier | |
| x(03) | |||
| 9(12) | |||
| OUTPUT | CRMS14-STATO-APPR | x(04) | Stato approvazione restituito |
| CRMS14-EFFETTO-DOC | x(01) | Effetto su documenti (vedi CRMDOSCO.DCO-EFFETTO-DOC) | |
| CRMS14-ESITO | x(01) | Esito dell'operazione: |
|
| CRMS14-MSG | x(200) | Messaggio restituito | |
| FILLER | x(1000) |
Logica generale Questa routine nasce principalmente per gestire la creazione di un workflow di approvazione documento.
Operazione: CREA-WORKFLOW¶
Descrizione Questa operazione riceve un documento da elaborare. Se è previsto il workflow di approvazione per il tipo documento, permette la creazione del workflow. Chiamata standard
| Dato | Contenuto |
|---|---|
| CRMS14-OPE | CREA-WORKFLOW |
| CRMS14-DOC-CLASSE | Tipo documento da elaborare |
| CRMS14-DOC-KEY | Chiave documento |
Elaborazione Verifica tipo documento Come prima cosa si deve verificare se il tipo documento è associato ad un tipo dossier di approvazione. Scorrere CRMDOSTP in modo sequenziale. Se si trova un tipo dossier avente: * DTP-FL-WKF = "S" * DTP-DOC-AREA-CLASSE = CRMS14-DOC-CLASSE * DTP-FL-APPROVAZIONE = "S" allora il tipo documento è abilitato alla gestione dei workflow di approvazione, quindi proseguire. Altrimenti uscire con esito "W" e il messaggio "Tipo documento non abilitato ai workflow di approvazione" Ricerca workflow collegato Ora si deve verificare se il documento è già associato ad un workflow. Ricerca su CRMWKFTS usando WKT-CHIA4, impostando:
| Dato | Contenuto |
|---|---|
| WKT-DOC-AREA-CLASSE | CRMS14-DOC-CLASSE |
| WKT-DOC-AREA-KEY | CRMS14-DOC-KEY |
| WKT-TIP-OGG | "O" |
Se presente, contiene l'id del workflow di approvazione già collegato al documento: restituirlo al programma chiamante e uscire:
| Dato | Contenuto |
|---|---|
| CRMS14-DSR-KEY-TDO | WKT-TDO |
| CRMS14-DSR-NUM | WKT-COD |
| CRMS14-ESITO | "W" |
| CRMS14-MSG | "Workflow già collegato al documento" |
Altrimenti proseguire Creazione dossier Ora leggiamo la testata del documento da elaborare per ottenere il nominativo principale; a seconda della classe documento
| Classe | Tabella | Dati |
|---|---|---|
| K-DOC-TIP-ORDINE-FORNITORE | COGTESOR | TOR-DESTINA (il fornitore interessato all'ordine) |
| K-DOC-TIP-PREVENTIVO-V | COGTESPR | TPR-CLI (il cliente interessato al preventivo) |
Eseguire una chiamata a CRMS10:
| Dato | Contenuto |
|---|---|
| CRMS10-OPE | "SCRIVI" |
| CRMS10-ANA | Riferimento anagrafico interessato all'operazione |
| CRMS10-TDO | Tipo dossier trovato |
| CRMS10-ID | " " |
| CRMS10-DES | "Approvazione " + descrizione tipo documento + chiave documento in chiaro |
| CRMS10-DATA-APE | Data sistema |
All'uscita il dossier creato sarà restituito in CRMS10-DSR-CHIA1 In caso di esito negativo restituire
| Dato | Contenuto |
|---|---|
| CRMS14-ESITO | "E" |
| CRMS14-MSG | CRMS10-MSG |
e uscire; altrimenti proseguire Creazione struttura workflow Diamo per scontato che una tipologia di dossier x approvazione documento contenga un solo modello di workflow. Quindi ora dobbiamo posizionarci sulla versione più recente del modello di workflow. Lo faremo con una start su CRMWKFTS all'indietro su WKT-CHIA1:
| Dato | Contenuto |
|---|---|
| WKT-TIP-OGG | "A" |
| WKT-TDO | Tipo dossier trovato |
| WKT-COD | "ZZZZZZZZZZZZ" |
| WKT-VER | 99999999 |
Il primo record trovato a parità del tipo dossier rappresenta il modello di workflow da clonare. Effettuiamo quindi una chiamata a CRMK12 che esegue la creazione del nuovo workflow:
| Dato | Contenuto |
|---|---|
| CRMK12-OPE | "D" |
| CRMK12-ORI-TIP-OGG | "A" |
| CRMK12-ORI-TDO | Tipo dossier trovato |
| CRMK12-ORI-COD | WKT-COD trovato |
| CRMK12-ORI-VER | WKT-VER trovato |
| CRMK12-DES-TIP-OGG | "O" |
| CRMK12-DES-TDO | Tipo dossier trovato |
| CRMK12-DES-COD | CRMS10-DSR-NUM |
Al termine leggere la testata workflow creata per inserire il collegamento con il documento in elaborazione: leggere
| Dato | Contenuto |
|---|---|
| WKT-TIP-OGG | "O" |
| WKT-TDO | CRMK12-DES-TDO |
| WKT-COD | CRMK12-DES-COD |
| WKT-VER | 0 |
e aggiornare
| Dato | Contenuto |
|---|---|
| WKT-DOC-AREA-CLASSE | CRMS14-DOC-CLASSE |
| WKT-DOC-AREA-KEY | CRMS14-DOC-KEY |
Attivazione workflow Eseguire la creazione del file di transito TRAN-CRMK10 (vedi CRMK10) Dopodichè inserire un record su questo file con i seguenti dati:
| Dato | Contenuto |
|---|---|
| TRS-K10-PROG | 0 |
| TRS-K10-INS | "S" |
| TRS-K10-DOSSIER | La chiave del dossier in elaborazione |
| TRS-K10-NOM-1 | DSN-NOM trovato su CRMDOSAN, avente DSN-POSIZIONE = 1 |
| TRS-K10-NOM-2 | DSN-NOM trovato su CRMDOSAN, avente DSN-POSIZIONE = 2 |
| TRS-K10-TDO | DSA-TDO |
| TRS-K10-STEP | Il primo step WKS-STEP trovato su CRMWKFST per il workflow in elaborazione |
| TRS-K10- |
Al termine eseguire una chiamata a CRM060 con la linkage inizializzata (vedi CRMK10) Uscita A questo punto se non sono intervenuti altri problemi non previsti si può uscire con esito positivo
Operazione: CONTROLLA-STATO¶
Descrizione Questa operazione riceve un documento da controllare, e restituisce lo stato di approvazione del workflow collegato, se presente.
Chiamata standard
| Dato | Contenuto |
|---|---|
| CRMS14-OPE | CONTROLLA-STATO |
| CRMS14-DOC-CLASSE | Tipo documento da elaborare |
| CRMS14-DOC-KEY | Chiave documento |
Elaborazione Ricerca workflow collegato Si deve verificare se il documento è già associato ad un workflow. Ricerca su CRMWKFTS usando WKT-CHIA4, impostando:
| Dato | Contenuto |
|---|---|
| WKT-DOC-AREA-CLASSE | CRMS14-DOC-CLASSE |
| WKT-DOC-AREA-KEY | CRMS14-DOC-KEY |
| WKT-TIP-OGG | "O" |
Se non presente, restituire esito positivo, e tutti i campi di output vuoti. Altrimenti proseguire. Ricerca effetto su documento Ricerca testata dossier su CRMDOSSR:
| Dato | Contenuto |
|---|---|
| DSA-KEY-TDO | WKT-TDO |
| DSA-NUM | WKT-COD |
Dopodichè cercare il codice operativo
| Dato | Contenuto |
|---|---|
| DCO-TDO | DSA-TDO |
| DCO-COD | WKT-DOC-STATO-APPR |
Poi restituire al programma chiamante le informazioni:
| Dato | Contenuto |
|---|---|
| CRMS14-DSR-KEY-TDO | WKT-TDO |
| CRMS14-DSR-NUM | WKT-COD |
| CRMS14-STATO-APPR | WKT-DOC-STATO-APPR |
| CRMS14-EFFETTO-DOC | DCO-EFFETTO-DOC |
| CRMS14-ESITO | "S" |
| CRMS14-MSG | " " |
Uscita A questo punto se non sono intervenuti altri problemi non previsti si può uscire con esito positivo
Estratto da documentazione interna ClickUp