GRSMIS - Smistamento¶
Nome programma: GRSMIS
Linkage section
Programma lanciato direttamente da runtime.
Logica generale del programma¶
Questo programma deve esaminare le sessioni di esportazione pronte e smistarle alle aziende che dovranno importarle, a seconda del criterio assegnato.
Ogni operazione effettuata dovra' essere loggata su un apposito file di log.
Elaborazione¶
A - Loop principale¶
Il programma dovra' effettuare un loop, ad intervalli di "n" secondi, sul file GRPEXPOR, attraverso AO-exp-CHIA3, impostando: * AO-EXP-STATO = "A" * AO-EXP-ESITO = " "
NB: ora l'esportazione viene fatta leggendo le richieste in ordine di data/ora richiesta, altrimenti si rischia di attendere molto per smistare i record di classe molto alta, dando per scontato che le esportazioni complesse (ad esempio il CRM che esporta un nominativo con classe 010 e le info con classe 011) nell'ordine corretto!!
Per ciascun record trovato dovra' eseguire l'elaborazione successiva, e proseguire con il loop senza intervallo.
Solo quando la ricerca di un nuovo record fallisce si dovra' ripetere l'intervallo di "n" secondi.
Al termine di ogni intervallo di ricerca si dovra' eseguire il controllo esecuzione di GRI000 come spiegato in "Controllo su funzionamento GRI000".
B - Esportazione da elaborare¶
Per ogni record trovato da elaborare, i passi sono i seguenti: 1. Definizione delle azienda su cui smistare il file da importare 2. Per ogni azienda interessata 1. Creazione di un record su GRPIMPOR, in stato "elaborazione" 2. Copia del file origine sulla cartella destinazione dell'azienda 3. Impostazione del record in stato "pronto" 3. Rimozione del file di informazioni smistato 4. Impostazione del record GRPEXPOR come "Chiuso"
B.1 - Ricerca aziende interessate¶
Se GRPAZIEN.AO-EXP-AZIENDA-DEST e' numerico e <> 0, significa che per l'esportazione in esame e' stata richiesta un'azienda specifica; in questo caso bypassare tutti i controlli successivi e passare al punto B.2.A
Leggere il record azienda relativo all'azienda trovata sul record di export (GRPEXPOR.AO-EXP-AZIENDA); mettere in un campo di working il campo GRPAZIEN.AO-AZI-PATH-EXPORT.
- Leggere la classe informazione GRPSYCLA impostando:
- AO-SYC-COD = GRPEXPOR.AO-EXP-CLASSE
- Cercare i tipi azienda abilitati all'importazione: Scorrere GRPSYIMP usando AO-SYM-CHIA2, impostando:
- AO-SYM-COD = GRPSYCLA.AO-SYC-GRP
- AO-SYM-SUDDIVISIONE = GRPEXPOR.AO-EXP-SUDDIVISIONE
- Per ciascun record trovato:
- Posizionarsi su GRPAZIEN impostando:
- AO-AZI-TIP = AO-SYM-AZI-TIP
- Scorrere la tabella usando AO-AZI-CHIA2; ciascun record corrisponde ad una azienda che deve importare l'oggetto in esame; quindi, se il codice azienda e' diverso da quella che esporta, passare al punto B.2
- Posizionarsi su GRPAZIEN impostando:
B.2.a - Creazione record GRPIMPOR¶
Inserimento di un record su GRPIMPOR impostando:
| Nome campo | Contenuto |
|---|---|
| ao-imp-id | grpexpor.ao-exp-id |
| ao-imp-az | grpazien.ao-azi-cod |
| ao-imp-az-exp | grpexpor.ao-exp-azienda |
| ao-imp-classe | grpexpor.ao-exp-classe |
| ao-imp-stato | "E" |
| ao-imp-esito | " " |
| ao-imp-msg | " " |
| ao-imp-a-data | data di sistema |
| ao-imp-a-ora | ora di sistema |
| ao-imp-c-data | 0 |
| ao-imp-c-ora | 0 |
B.2.b - Copia del file¶
Cercare il file informazioni usando: * Path: il path salvato in working in precedenza * nome: GRPEXPOR.AO-EXP-ID + "_" + GRPEXPOR.AO-EXP-CLASSE * estensione: ".arc"
Il file deve esistere, e deve essere copiato mantenendo lo stesso nome ed estensione nella cartella GRPAZIEN.AO-AZI-PATH-IMPORT relativo all'azienda trovata al punto B.1
Accertarsi che la copia sia avvenuta con successo.
B.2.c - Record GRPIMPOR "pronto"¶
Sul record GRPIMPOR appena scritto impostare:
| Nome campo | Contenuto |
|---|---|
| ao-imp-stato | "A" |
e aggiornare.
B.3 - Rimozione file di informazioni¶
Copiare ulteriormente il file di informazioni: * Path: il path salvato in working in precedenza * nome: GRPEXPOR.AO-EXP-ID + "_" + GRPEXPOR.AO-EXP-CLASSE * estensione: ".arc"
nella cartella: "path-working/backup"
Dopodiche' eseguire la cancellazione fisica del file.
B.4 - Chiusura GRPEXPOR¶
Posizionarsi sul record GRPEXPOR appena elaborato e impostare:
| Nome campo | Contenuto |
|---|---|
| ao-exp-stato | "C" |
| ao-exp-c-data | data sistema |
| ao-exp-c-ora | ora sistema |
| ao-exp-esito | " " |
| ao-exp-msg | " " |
e aggiornare.
C - Gestione problemi¶
Per ciascuna situazione che impedisce di portare a termine un processo di smistamento, si dovra' modificare il record GRPEXPOR impostando:
| Nome campo | Contenuto |
|---|---|
| ao-exp-esito | "W" o "E" a seconda della gravita' del problema |
| ao-exp-msg | Descrizione esplicativa del problema |
Estratto da documentazione interna ClickUp