GRI000 - Controllo e innesco importazioni¶
Controllo su funzionamento GRI000¶
I processi GRI000 (uno per ciascuna azienda interessata) dovranno essere innescati con un collegamento posto sul server locale di ogni azienda (o comunque su un pc sempre funzionante nella rete locale).
I processi dovranno essere messi in esecuzione automatica in modo che risultino sempre attivi.
Sulla tabella GRPAZIEN sono stati aggiunti alcuni campi che permetteranno di controllare se i processi GRI000 sono attivi; per ciascuna azienda avremo:
| Campo | Formato | Descrizione |
|---|---|---|
| ao-azi-gri000-attivo | x(01) | Questo parametro viene impostato a "S" all'avvio dell'applicazione "GRI000" dell'azienda |
| ao-azi-gri000-timestamp | 9(16) | Data/ora inizio ultimo ciclo di controllo di "GRI000" dell'azienda. |
| ao-azi-gri000-avviso | x(01) | Questo parametro viene impostato a "S" se, dopo un controllo, risulta che "GRI000" non e' attivo, e viene inviato un messaggio di posta agli indirizzi configurati. |
| ao-azi-gri000-ts-avviso | 9(16) | Data/ora ultimo avviso, significativo se AO-AZI-GRI000-AVVISO = "S" |
Logica di controllo¶
Attivazione controllo.
All'avvio di GRI000 si dovra' aggiornare il record GRPAZIEN relativo impostando:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "S" |
| ao-azi-gri000-timestamp | data/ora attuale |
| ao-azi-gri000-avviso | "N" |
| AO-AZI-GRI000-TS-AVVISO | 0 |
Ciclo di elaborazione di GRI000.
All'inizio di ogni ciclo si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-timestamp | data/ora attuale |
Chiusura GRI000.
Se GRI000 viene interrotto volontariamente da un utente, si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "N" |
Ciclo di controllo.
Il programma GRSMIS, ad ogni ciclo di elaborazione, dovra' scorrere tutte le aziende attive e considerare i record con AO-AZI-GRI000-ATTIVO = "S".
Per ciascuna azienda dovra' confrontare AO-AZI-GRI000-TIMESTAMP con data/ora attuale. Se il tempo risultante e' superiore ad un intervallo configurato in "grp-azi"-"intervallo-controllo-gri000", valutare il campo AO-AZI-GRI000-AVVISO; se vale: * "N" si dovra' inviare un messaggio agli indirizzi configurati in "grp-azi"-"email-avviso-gri000-non-attivo". Nel messaggio riportare gli estremi dell'azienda interessata. Dopodiche' impostare: * AO-AZI-GRI000-AVVISO = "S" * AO-AZI-GRI000-TS-AVVISO = data/ora attuale * "S": e' gia' stato inviato un messaggio di avviso, ma non e' stato effettuato ancora nessun intervento; quindi confrontare data/ora attuale con quella memorizzata in AO-AZI-GRI000-TS-AVVISO; se la differenza supera i 30 minuti: * Inviare un nuovo messaggio, come nel caso precedente * AO-AZI-GRI000-TS-AVVISO = data/ora attuale
GRI000 - Versione originale¶
Nome programma: GRI000
Linkage section
Programma richiamabile direttamente da runtime.
Logica generale del programma¶
Questo programma dovra' effettuare due diverse importazioni: * Esaminare le sessioni di importazione pronte e lanciare i singoli programmi di importazione necessari. * Controllare se nella cartella di import da Confident ci sono informazioni da importare
NB: Questo programma dovra' girare in una rete locale rispetto all'azienda per cui e' configurato (quindi non in cloud assieme al programma di smistamento)
Elaborazione¶
All'inizio del programma leggere GRPAZIEN per ottenere il path di import dell'azienda corrente (EXT-GRP-AZIENDA).
Aggiornare i campi:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "S" |
| ao-azi-gri000-timestamp | data/ora attuale |
| ao-azi-gri000-avviso | "N" |
| ao-azi-gri000-ts-avviso | 0 |
Leggere dalla configurazione la cartella di import da Confident: "grp-azi"-"path-import-confident"
A - Loop principale¶
Il programma dovra' effettuare un loop, ad intervalli di "n" secondi, sul file GRPIMPOR, attraverso AO-IMP-CHIA2, impostando: * AO-IMP-AZ = EXT-GRP-AZIENDA * AO-IMP-STATO = "A" * AO-IMP-ESITO = " "
Per ciascun record trovato dovra' eseguire l'elaborazione successiva, e proseguire con il loop senza intervallo. Quando la ricerca di un nuovo record fallisce si passa alla seconda fase:
A.1 - Ricerca import da Confident¶
(NB: il seguente metodo e' necessario perche' la C$LIST_DIRECTORY non supporta la notazione remota)
- Chiamata a "CercaImportConfident", passandogli come parametro il "path-import-confident"; la chiamata va fatta in modo "sincrono"
- All'uscita dal programma l'eseguibile "CercaImportConfident" avra' creato nella stessa cartella configurata un file chiamato "Elenco_da_importare.txt".
- Copiare usando la notazione remota il file "Elenco_da_importare.txt" in un percorso server: EXT-TMP-DIR.
- Aprire su EXT-TMP-DIR il file "Elenco_da_importare.txt".
- Scorrere il contenuto del file: ogni riga rappresenta un file di dati da importare; quindi per ciascun record:
- Copiare usando la notazione remota il file indicato nel record in un percorso server: EXT-TMP-DIR
- Esaminare l'estensione; dovra' corrispondere ad una delle Classi di informazione previste da Confident. In base alla classe di informazione lanciare un programma di importazione il cui nome sara': "GRC" + codice estensione (il nome del file dovra' essere passato al programma chiamato)
- Al termine dell'elaborazione, solo se GRC001-ESITO <> "N" il file dovra' essere rimosso dalla EXT-TMP-DIR, e usando la notazione remota anche dal percorso originale.
- Al termine dell'elaborazione rimuovere il file "Elenco_da_importare.txt" sia dalla EXT-TMP-DIR che dal percorso originale.
A.1.1 - Rimozione immagini vecchie¶
In alcuni casi nella cartella di importazione di Confident rimangono immagini relative a prescrizioni di cui non e' stato ricevuto il relativo file di classe "003". Se queste immagini non sono relative alla data attuale verranno cancellate.
A.2 - Aggiornamento stato¶
All'inizio o alla fine di ogni ciclo si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-timestamp | data/ora attuale |
B - Importazione da elaborare¶
Per ogni record da elaborare, posizionarsi sul record "classe" GRPSYCLA impostando: * GRPSYCLA.AO-SYC-COD = GRPEXPOR.AO-IMP-CLASSE
e innescare il programma configurato AO-SYC-PRG passando in linkage l'id del record AO-IMP-ID e il path di import dell'azienda.
C - Chiusura¶
Se GRI000 viene interrotto volontariamente da un utente, si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "N" |
GRI000 - Versione 21-08-2013¶
Note versione: Permettere di disattivare temporaneamente una delle due modalita' di importazione (Confident o da aziende del gruppo).
Nome programma: GRI000
Linkage section
Programma richiamabile direttamente da runtime.
Logica generale del programma¶
Questo programma dovra' effettuare due diverse importazioni: * Esaminare le sessioni di importazione pronte e lanciare i singoli programmi di importazione necessari. * Controllare se nella cartella di import da Confident ci sono informazioni da importare
NB: Questo programma dovra' girare in una rete locale rispetto all'azienda per cui e' configurato (quindi non in cloud assieme al programma di smistamento)
Maschera del programma¶
Tra i dati di testata aggiungere 2 check: * Import da Confident * Import dal gruppo
Questi due check devono essere spuntati per default, e devono essere cliccabili dalla griglia in ogni momento.
Se ad un check viene tolta la spunta: * "da Confident": si deve disattivare la parte di importazione da Confident; * "dal gruppo": si deve disattivare la parte di importazione standard (quella dove si fa la scansione di GRPIMPOR)
Elaborazione¶
All'inizio del programma leggere GRPAZIEN per ottenere il path di import dell'azienda corrente (EXT-GRP-AZIENDA).
Aggiornare i campi:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "S" |
| ao-azi-gri000-timestamp | data/ora attuale |
| ao-azi-gri000-avviso | "N" |
| ao-azi-gri000-ts-avviso | 0 |
Leggere dalla configurazione la cartella di import da Confident: "grp-azi"-"path-import-confident"
A - Loop principale¶
Da effettuare se il check "Import dal gruppo" e' spuntato
Il programma dovra' effettuare un loop, ad intervalli di "n" secondi, sul file GRPIMPOR, attraverso AO-IMP-CHIA2, impostando: * AO-IMP-AZ = EXT-GRP-AZIENDA * AO-IMP-STATO = "A" * AO-IMP-ESITO = " "
Per ciascun record trovato dovra' eseguire l'elaborazione successiva, e proseguire con il loop senza intervallo.
Quando la ricerca di un nuovo record fallisce si passa alla seconda fase:
A.1 - Ricerca import da Confident¶
Da effettuare se il check "Import da Confident" e' spuntato
(NB: il seguente metodo e' necessario perche' la C$LIST_DIRECTORY non supporta la notazione remota)
- Chiamata a "CercaImportConfident", passandogli come parametro il "path-import-confident"; la chiamata va fatta in modo "sincrono"
- All'uscita dal programma l'eseguibile "CercaImportConfident" avra' creato nella stessa cartella configurata un file chiamato "Elenco_da_importare.txt".
- Copiare usando la notazione remota il file "Elenco_da_importare.txt" in un percorso server: EXT-TMP-DIR.
- Aprire su EXT-TMP-DIR il file "Elenco_da_importare.txt".
- Scorrere il contenuto del file: ogni riga rappresenta un file di dati da importare; quindi per ciascun record:
- Copiare usando la notazione remota il file indicato nel record in un percorso server: EXT-TMP-DIR
- Esaminare l'estensione; dovra' corrispondere ad una delle Classi di informazione previste da Confident. In base alla classe di informazione lanciare un programma di importazione il cui nome sara': "GRC" + codice estensione (il nome del file dovra' essere passato al programma chiamato)
- Al termine dell'elaborazione, solo se GRC001-ESITO <> "N" il file dovra' essere rimosso dalla EXT-TMP-DIR, e usando la notazione remota anche dal percorso originale.
- Al termine dell'elaborazione rimuovere il file "Elenco_da_importare.txt" sia dalla EXT-TMP-DIR che dal percorso originale.
A.1.1 - Rimozione immagini vecchie¶
In alcuni casi nella cartella di importazione di Confident rimangono immagini relative a prescrizioni di cui non e' stato ricevuto il relativo file di classe "003". Se queste immagini non sono relative alla data attuale verranno cancellate.
A.2 - Aggiornamento stato¶
All'inizio o alla fine di ogni ciclo si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-timestamp | data/ora attuale |
B - Importazione da elaborare¶
Per ogni record da elaborare, posizionarsi sul record "classe" GRPSYCLA impostando: * GRPSYCLA.AO-SYC-COD = GRPEXPOR.AO-IMP-CLASSE
e innescare il programma configurato AO-SYC-PRG passando in linkage l'id del record AO-IMP-ID e il path di import dell'azienda.
C - Chiusura¶
Se GRI000 viene interrotto volontariamente da un utente, si dovra' impostare:
| Campo | Contenuto |
|---|---|
| ao-azi-gri000-attivo | "N" |
Estratto da documentazione interna ClickUp