Vai al contenuto

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.

  1. Leggere la classe informazione GRPSYCLA impostando:
    1. AO-SYC-COD = GRPEXPOR.AO-EXP-CLASSE
  2. Cercare i tipi azienda abilitati all'importazione: Scorrere GRPSYIMP usando AO-SYM-CHIA2, impostando:
    1. AO-SYM-COD = GRPSYCLA.AO-SYC-GRP
    2. AO-SYM-SUDDIVISIONE = GRPEXPOR.AO-EXP-SUDDIVISIONE
  3. Per ciascun record trovato:
    1. Posizionarsi su GRPAZIEN impostando:
      1. AO-AZI-TIP = AO-SYM-AZI-TIP
    2. 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

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