Vai al contenuto

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