Vai al contenuto

SWA053 - Esportazione giorni di non disponibilità

Logica generale Esportazione dei giorni di non disponibilità su ARPGGNONDISP, specificatamente al tipo "O". I dati vengono determinati da CRMAGCAL. Al momento è previsto solo l'esportazione da gestionale. Il programma terrà conto anche delle forzature fatte da scheduler (A-GGND-FORZATURA-SCHEDULER), che hanno priorità rispetto alle impostazioni del gestionale. Configurazioni possibili

Gruppo Parametro Note

Elaborazione A - Esportazione Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPGGNONDISP-O"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPGGNONDISP-O"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1

Qui otterremo due informazioni importanti: * Data/ora ultima esportazione da gestionale a postgres (A_SYN_DA_GES_DATA e A_SY_DA_GES_ORA) * Prossimo ID sincronizzazione da memorizzare sulla tabella (A_SYN_ID_SINCRO) A.1 Ricalcolo calendario Per essere certi di avere il calendario corretto, prima di eseguire l'elaborazione vera e propria effettuare una chiamata a CRM120:

Dato Contenuto
CRM120-CALLER k-program-id
CRM120-CALLED "CRM120"
CRM120-OPE 0
CRM120-DATA-MIN Oggi
CRM120-DATA-MAX Oggi + 1 anno
CRM120-BATCH-MODE "S"

Questo ricostruisce il contenuto di CRMAGCAL per il periodo in corso. A.2 Scansione operatori Scorrere CRMUSERS. Considerare solo gli operatori che hanno * CRU-LIV numerico e > 0 e ripetere il giro descritto per ciascun operatore. A.2.1 Ricerca record da esportare Per ciascun operatore configurato nel CRM dovremo estrarre le date di non disponibilità per 1 anno a partire dalla data odierna (ignoriamo i giorni passati). Quindi usando DTPRG e PRGDT partendo da oggi ripetere il ciclo 365 volte. A.2.1.1 Ricerca operatore/giorno Fare una chiamata a GESDATE per ottenere informazioni relative al giorno in elaborazione:

Dato Contenuto
GESDATE-OPE "INFO-DATA"
GESDATE-DATA-IN Data da esaminare

Se GESDATE-FESTA = "S", allora si esegue B - Operatore non disponibile. Altrimenti proseguire. Scorrere CRMAGCAL per la combinazione operatore/giorno:

Dato Contenuto
CCA-OPE Operatore in elaborazione
CCA-DATA data in elaborazione
  • Se non esiste nessun record: B - Operatore non disponibile
  • Se esiste almeno un record, scorrere i record per operatore/giorno finchè non se ne trova uno con CCA-FL-DISP = "S": questo significa che l'operatore è disponibile. Quindi, se
    • Trovato: C - Operatore disponibile
    • Non trovato: B - Operatore non disponibile B - Operatore non disponibile Cercare l'esistenza di un record su ARPGGNONDISP:
Dato Contenuto
A-GGND-AZIENDA azienda
A-GGND-APPLICAZIONE "O"
A-GGND-OPERATORE Operatore in elaborazione
A-GGND-ANAGRAFICA " "
A-GGND-DST-ID-TIP " "
A-GGND-DST-ID-IDX 0
A-GGND-DATA data in elaborazione

Se il record: * Non esiste: inserirlo * Esiste: se è stata forzata la "disponibilità da Scheduler", deve avere la priorità; quindi, se A-GGND-FORZATURA-SCHEDULER contiene: * \= "D": non facciamo nulla * <> "D": impostiamo la non disponibilità; quindi se A-GGND-VAL contiene: * \= "C": variarlo * <> "C": non fare nulla I dati da aggiornare in caso di inserimento/variazione sono

Dato Contenuto
A-GGND-VAL " "
A-GGND-ID-SINCRO Primo id sincro libero
A-GGND-NOTE " "

C - Operatore disponibile Cercare l'esistenza di un record su ARPGGNONDISP:

Dato Contenuto
A-GGND-AZIENDA azienda
A-GGND-APPLICAZIONE "O"
A-GGND-OPERATORE Operatore in elaborazione
A-GGND-ANAGRAFICA " "
A-GGND-DST-ID-TIP " "
A-GGND-DST-ID-IDX 0
A-GGND-DATA data in elaborazione

Se il record esiste, verifichiamo se è stata forzata la "non disponibilità da Scheduler"; questa deve avere la priorità; quindi se A-GGND-FORZATURA-SCHEDULER è: * \= "N": non facciamo nulla * <> "N": lo marchiamo come cancellato (annulla la non disponibilità):

Dato Contenuto
A-GGND-VAL "C"
A-GGND-ID-SINCRO Primo id sincro libero

Se invece non esiste, non fare nulla. D Aggiornamento id sincro Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A-SYN-AZIENDA Codice azienda
A-SYN-TABELLA "ARPGGNONDISP-O"
A-SYN-DA-ID-SINCRO Ultimo ID sincro aggiornato

Estratto da documentazione interna ClickUp