COGSA6 - Uso testi variabii¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | COGSA6-OPE | x(20) | Vedi argomenti successivi |
| COGSA6-CLASSE | x(04) | Classe descrizione da elaborare | |
| COGSA6-LNG | x(03) | Lingua | |
| COGSA6-SUDD | x(30) | Suddivisione richiesta (Dipende dalla classe) | |
| COGSA6-KEY | x(50) | Chiave di ricerca oggetto | |
| COGSA6-TAB-INFO | |||
| 9(04) | Numero di elementi passati | ||
| Tabella di 100 elementi | |||
| x(40) | Tag da riconoscere nel testo (senza "<>") | ||
| s9(12)v999999 | Dato numerico | ||
| x(500) | Dato alfanumerico | ||
| OUTPUT | COGSA6-TESTO | x(4000) | Testo elaborato |
| COGSA6-TESTO-SIZE | 9(04) | Dimensione del testo restituito | |
| COGSA6-ESITO | x(01) | Esito dell'operazione: |
|
| COGSA6-MSG | x(160) | Eventuale messaggio restituito dalla routine al programma chiamante | |
| FILLER | x(500) |
Logica generale Questo programma restituisce al programma chiamante un testo variabile tra quelli configurati in Descrizioni/testi variabili Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.
Operazione: ESTRAI-TESTO¶
Descrizione Riceve in input i parametri per la ricerca e l'elaborazione di un testo che sarà restituito al programma chiamante, già "completo". Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | COGSA6-OPE | ESTRAI-TESTO |
| COGSA6-CLASSE | Classe descrizione da elaborare Vedi Descrizioni/testi variabili |
|
| COGSA6-LNG | ||
| COGSA6-SUDD | Suddivisione richiesta (Dipende dalla classe, vedi Descrizioni/testi variabili) | |
| COGSA6-KEY | Chiave di ricerca oggetto (dipende dalla classe) | |
| COGSA6-TAB-INFO | In questa tabella saranno passate delle coppie di "TAG/DATO" relative alla classe che si sta elaborando Le eventuali date dovranno essere passate in "DATO-X" già formattate I dati numerici saranno invece formattati direttamente dalla subroutine |
|
| COGSA6-TAB-PNT | ||
| OUTPUT | COGSA6-TESTO | Testo elaborato |
| COGSA6-TESTO-SIZE | Dimensione restitutita | |
| COGSA6-ESITO | Esito dell'operazione: |
|
| COGSA6-MSG | Eventuale messaggio restituito dalla routine al programma chiamante |
Elaborazione A - Lettura descrizione/testo Eseguire in sequenza le ricerche del testo da elaborare coe indicato finchè non viene trovato un record A.1 - Lettura completa
| Dato | Contenuto |
|---|---|
| DVA-CLASSE | COGSA6-CLASSE |
| DVA-LNG | COGSA6-LNG |
| DVA-SUDD | COGSA6-SUDD |
A.2 - Lettura senza suddivisione
| Dato | Contenuto |
|---|---|
| DVA-CLASSE | COGSA6-CLASSE |
| DVA-LNG | COGSA6-LNG |
| DVA-SUDD | " " |
A.3 - Lettura con suddivisione e lingua base
| Dato | Contenuto |
|---|---|
| DVA-CLASSE | COGSA6-CLASSE |
| DVA-LNG | "ITA" |
| DVA-SUDD | COGSA6-SUDD |
A.4 - Lettura senza suddivisione e lingua base
| Dato | Contenuto |
|---|---|
| DVA-CLASSE | COGSA6-CLASSE |
| DVA-LNG | "ITA" |
| DVA-SUDD | " " |
Se non viene trovato in nessuno dei casi precedenti restituire il risultato vuoto con dimensione 0 impostando: * COGSA6-ESITO = "W" * COGSA6-MSG = "Testo/descrizione non trovato" Contare i caratteri presenti realmente nella descrizione (ricerca all'indietro del primo carattere diverso da " ") B - Esame e sostituzione Dopodichè esaminare ciascuna coppia di TAG/DATO, tante volte quante definite in COGSA6-TAG-PNT. L'esame avverrà prima cercando il tag esterno delimitato da "[[" e "]]", poi quello interno "<" e ">". Se è presente solo quello interno si effettua una sostituzione semplice; se è presente anche quello esterno, tutto il contenuto del tag esterno sarà stampato solo se il contenuto del tag interno è significativo. Per ciascuna eseguire la ricerca/sostituzione nel testo trovato, usando GESSTR:
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | GESSTR-OPE | "REPLACE" |
| GESSTR-NOTE | Testo | |
| GESSTR-LEN-NOTE | Lunghezza del testo trovata | |
| GESSTR-SOST-DA | "<" TAG ">" | |
| GESSTR-SOST-A | Dato da sostituire: PS: se il dato passato in input è > 100 caratteri, risulterà troncato: ma per il momento non gestiamo questo caso |
|
| OUTPUT | GESSTR-NOTE | Campo note convertito e relativa lunghezza modificata. Saranno riutilizzati per la gestione del tag successivo |
| GESSTR-LEN-NOTE |
Al termine della sostituzione, esportare COGSA6-DATO e COGSA6-DATO-SIZE e chiudere.
COGSA601¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "01": documenti generati dalla procedura di fatturazione contratti Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Ricerca dati Questa classe dato riceve in input una testata bolla, e dovrà come prima cosa verificare se è un documento di fatturazione contratti: Ricerca su ASNCNFAT con ACNF-CHIA3. Se non trovato significa che il documento non è di questo tipo, perciò uscire restituendo:
| Dato | Contenuto |
|---|---|
| COGSA6-ESITO | "E" |
| COGSA6-MSG | Documento non collegato a contratto |
| COGSA6-TESTO-SIZE | 0 |
| COGSA6-TESTO | " " |
Altrimenti proseguire eseguendo la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| ID-CONTR | ACNT-ID | |
| RIF-CONTR | ACNT-RIF-CONTRATTO | |
| DATA-CONTR | ACNT-DATA | |
| CONTR-DATA-I | ACNT-DATA-DA | |
| CONTR-DATA-F | ACNT-DATA-A | |
| DATA-RATA | ACNF-DATA | |
| TIPO-CONTR-D | ACNT-TIP: cercare la descrizione sulla tabella tipi contratto (ACNP-DES) | |
| MOD-CONTR-D | ACNT-MODELLO: cercare la descrizione sulla tabella modelli contratto (ACNM-DES) | |
| NOTE-TIPO | ACNP-NOTE (dal tipo contratto) | |
| NOTE-RATA | ACNF-DESCR-AGG | |
| ORDINE-CLIENTE | ACNT-ORDINE-CLIENTE | |
| ACN2-INCREMENTO-ISTAT | ||
| ACNC-ID-MATRICOLA | ||
| AMTR-SN | ||
| AMTR-MARCA | ||
| AMRC-DES | ||
| AMOD-NOME | ||
| AMOD-DES | ||
| <MTR-MODD+SN) | AMOD-DES + AMTR-SN | |
| AMTR-N-INV | ||
| AMTR-UBICAZIONE |
Note sulla ricerca matricole Tutti i tag relativi alla gestione matricole (<MTR-*) potrebbero fare riferimento a più di una matricola presente su un contratto. Creare quindi una tabella interna al programma (max 50 elementi). Come prima cosa scorrere le matricole del contratto (ASNCNMTR); le matricole sono quelle con ACNC-TIPO = ''C'. Con ciascuna matricola trovata riempiamo la tabella matricole. Poi la usiamo per creare i tag: nel singolo tag si inserisce il dato richiesto per tutte le matricole selezionate. Quindi, se sono state trovate 3 matricole, potrei avere:
| COGSA6-TAG | Risultato |
|---|---|
| "1234 (delim-dati) 442 (delim-dati) 443" | |
| "XYZ (delim-dati) AAA (delim-dati) AAB" | |
| <MTR-MODD+SN) | "BF101 (delim-dati) XYX (delim-elementi) BF100 (delim-dati) AAA (delim-elementi) BF101 (delim-dati) AAB (delim-elementi)" |
Note sulla composizione dei tag In caso di tag con più elementi (matricole), o di tag con più informazioni per ciascun elemento (es. MTR-MODC+SN) si potrebbe avere il seguente risultato: ModA/SN1 - ModB/SN2 dove: * ModA e ModB sono i modelli delle matricole assistite * SN1 e SN2 sono i S/N delle matricole assistite * - : delimitatore tra le matricole, configurato in delim-elementi * / : delimitatore tra le informazioni per una matricola, configurato in delim-dati
COGSA602¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "02": documenti generati dalla chiusura interventi di assistenza esterna. In particolare questa classe si riferisce ad interventi relativi a chiamate non collegate a contratto (in realtà la presenza del contratto è ininfluente: non sono previsti campi specifici relativi al contratto di assistenza). Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| testi | delim-elementi | |
| testi | delim-dati |
Elaborazione A - Ricerca dati Questa classe dato riceve in input una testata bolla, e dovrà come prima cosa verificare se è un documento generato da un intervento di assistenza esterno: * Ricerca su ASNINDMG usando ACIM-CHIA2:
| Dato | Contenuto |
|---|---|
| ACIM-TES-CHIA3 | Il documento cercato |
| ACIM-TIP | "D" |
Se trovato, ACIM-ID-INTERVENTO corrisponde all'intervento collegato al documento Se non trovato significa che il documento non è di questo tipo, perciò uscire restituendo:
| Dato | Contenuto |
|---|---|
| COGSA6-ESITO | "E" |
| COGSA6-MSG | Documento non collegato ad intervento |
| COGSA6-TESTO-SIZE | 0 |
| COGSA6-TESTO | " " |
Altrimenti proseguire eseguendo la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| ACIT-ID | ||
| ACIT-ID-CHIAMATA | ||
| ACIT-INT-DATA | ||
| ACHT-CLI-ASS-COD | ||
| ANA-NOME | ||
| ANA-LOCA | ||
| ANA-NOME | ||
| ACHD-ID-MATRICOLA | ||
| AMTR-SN | ||
| AMTR-MARCA | ||
| AMRC-DES | ||
| AMOD-NOME | ||
| AMOD-DES | ||
| <MTR-MODD+SN) | AMOD-DES + AMTR-SN | |
| AMTR-N-INV | ||
| AMTR-UBICAZIONE | ||
| ACHT-CHIAMATA-CLI | ||
| ACIT-INT-CLIENTE |
Schema riassuntivo delle tabelle interessate per ciascun documento
| Tabella | Contenuto | Prefisso dati |
|---|---|---|
| Testata intervento | ACIT-* | |
| Testata chiamata | ACHT-* | |
| Anagrafica clienti | ANA-* | |
(il primo record trovato |
Dettaglio matricole chiamata | ACHD-* |
| Matricola trovata su difetto | AMTR-* | |
| Marca matricola | AMRC-* | |
| Modello matricola | AMOD-* | |
| Dettaglio intervento (per cercare le matricole usate sull'intervento) | ACID-* |
Note sulla ricerca matricole Tutti i tag relativi alla gestione matricole (<MTR-*) potrebbero fare riferimento a più di una matricola. Creare quindi una tabella interna al programma (max 10 elementi). Come prima cosa scorrere il dettaglio intervento (ASNINDET); se si trova qui almeno una matricola (ACID-ID-MATRICOLA), usare le matricole trovate qui. Altrimenti usare le matricole trovate su ASNCHDET. In ogni caso in questo modo riempiamo la tabella matricole. Poi la usiamo per creare i tag: nel singolo tag si inserisce il dato richiesto per tutte le matricole selezionate. Quindi, se sono state trovate 3 matricole, potrei avere:
| COGSA6-TAG | Risultato |
|---|---|
| "1234 (delim-dati) 442 (delim-dati) 443" | |
| "XYZ (delim-dati) AAA (delim-dati) AAB" | |
| <MTR-MODD+SN) | "BF101 (delim-dati) XYX (delim-elementi) BF100 (delim-dati) AAA (delim-elementi) BF101 (delim-dati) AAB (delim-elementi)" |
Note sulla composizione dei tag In caso di tag con più elementi (matricole), o di tag con più informazioni per ciascun elemento (es. MTR-MODC+SN) si potrebbe avere il seguente risultato: ModA/SN1 - ModB/SN2 dove: * ModA e ModB sono i modelli delle matricole assistite * SN1 e SN2 sono i S/N delle matricole assistite * - : delimitatore tra le matricole, configurato in delim-elementi * / : delimitatore tra le informazioni per una matricola, configurato in delim-dati
COGSA603¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "03": Testo e-mail di copia conoscenza ad utente. Vedi Descrizioni/testi variabili Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Ricerca dati Questa classe dato riceve in input una codice attività, quindi avremo ad esempio COGSA6-KEY="000000123456". Quindi cercare l'attività su CRMATTIV, e proseguire eseguendo la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| CRN-ANA | ||
| CRA-DES | ||
| CRA-ANA-COD | ||
| AAP2-RACCORDO | ||
| CRT-DES | ||
| CRO-NOTE | ||
| CRT-NUM | ||
| CRT-DATA-ESE |
Schema riassuntivo delle tabelle interessate per ciascun documento
| Tabella | Contenuto | Prefisso dati | Note |
|---|---|---|---|
| Testata attività | CRT-* | Ricerca diretta da COGSA6-KEY | |
| Nominativi per attività | CRN-* | Start attraverso la chiave principale | |
| Anagrafica nominativi | CRA-* | Se trovato, si ottiene con una lettura diretta usando CRN-ANA | |
| Dettaglio matricole chiamata | ANA-* | Se presente, si cerca usando CRA-ANA | |
| Matricola trovata su difetto | AAP2-* | Lettura diretta con AAP2-CHIA2 = ANA-CHIA |
COGSA604¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "04": Descrizioni aggiuntive su documento di riconsegna chiamate di laboratorio. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Ricerca dati Questa classe dato riceve in input un id di chiamata di assistenza. Con l'id si trova la testata chiamata ASNCHTES, e da qui tutto il resto (vedi schema in fondo) Eseguire la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| ACIT-ID-CHIAMATA | ||
| ACIT-INT-DATA | ||
| ACHT-CLI-ASS-COD | ||
| ANA-NOME | ||
| ANA-LOCA | ||
| ANA-NOME | ||
| ACHD-ID-MATRICOLA | ||
| AMTR-SN | ||
| descrizione matricola | ||
| SNA-KEY-AGG | ||
| AMTR-MARCA | ||
| AMRC-DES | ||
| AMOD-NOME | ||
| AMOD-DES | ||
| ACHT-CHIAMATA-CLI | ||
| ACHT-DOC-CLI-COD | ||
| oggetto chiamata | ||
| TES-NBOLFOR (relativo al documento di entrata) | ||
| ACHD-ID-MTR-SOST | ||
| AMTR-SN | ||
| SNA-KEY-AGG | ||
| AITD-NOTE (tipo "F") |
Schema riassuntivo delle tabelle interessate per ciascun documento
| Tabella | Contenuto | Prefisso dati |
|---|---|---|
| Testata chiamata | ACHT-* | |
| Anagrafica clienti | ANA-* | |
(il primo record trovato |
Dettaglio matricole chiamata | ACHD-* |
| Matricola da riparare | AMTR-* | |
| Marca matricola | AMRC-* | |
| Modello matricola | AMOD-* | |
| Dati aggiuntivi s/n | SNA-* | |
| Matricola sostituente (SWAP-) | AMTR-* | |
| Marca matricola | AMRC-* | |
| Modello matricola | AMOD-* | |
| Dati aggiuntivi s/n | SNA-* | |
| Testata intervento | ACIT-* | |
| Dettaglio intervento (per cercare le matricole usate sull'intervento) | ACID-* | |
| Serve per recuperare il riferimento al documento di entrata che ha generato la chiamata (ACIM-TIP = "C") | ACID-* | |
| Testata documenti di magazzino | TES-* | |
| Note intervento (in questo caso servono le note di chiusura) | AITD-* | |
COGSA605¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "05": Descrizioni aggiuntive su ddt di invio a fornitore per riparazione. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Ricerca dati Questa classe dato riceve in input un id di chiamata di assistenza. Con l'id si trova la testata chiamata ASNCHTES, e da qui tutto il resto (vedi schema in fondo) Eseguire la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| ACIT-ID-CHIAMATA | ||
| ACIT-INT-DATA | ||
| ACHT-CLI-ASS-COD | ||
| ANA-NOME | ||
| ANA-LOCA | ||
| ANA-NOME | ||
| ACHD-ID-MATRICOLA | ||
| AMTR-SN | ||
| SNA-KEY-AGG | ||
| AMTR-MARCA | ||
| AMRC-DES | ||
| AMOD-NOME | ||
| AMOD-DES | ||
| ACHT-CHIAMATA-CLI | ||
| ACHT-DOC-CLI-COD | ||
| TES-NBOLFOR (relativo al documento di entrata) |
Schema riassuntivo delle tabelle interessate per ciascun documento
| Tabella | Contenuto | Prefisso dati |
|---|---|---|
| Testata chiamata | ACHT-* | |
| Anagrafica clienti | ANA-* | |
(il primo record trovato |
Dettaglio matricole chiamata | ACHD-* |
| Matricola da riparare | AMTR-* | |
| Marca matricola | AMRC-* | |
| Modello matricola | AMOD-* | |
| Dati aggiuntivi s/n | SNA-* | |
| Matricola sostituente (SWAP-) | AMTR-* | |
| Marca matricola | AMRC-* | |
| Modello matricola | AMOD-* | |
| Dati aggiuntivi s/n | SNA-* | |
| Testata intervento | ACIT-* | |
| Dettaglio intervento (per cercare le matricole usate sull'intervento) | ACID-* | |
| Serve per recuperare il riferimento al documento di entrata che ha generato la chiamata (ACIM-TIP = "C") | ACID-* | |
| Testata documenti di magazzino | TES-* | |
COGSA606¶
Posizione nel menu Programma non a menu Linkage section La stessa linkage di COGSA6 Logica generale Sottoprogramma ad uso interno di COGSA6, necessario per recuperare le informazioni necessarie per la sostituzione dei testi di classe "0006" Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Ricerca dati Questa classe dato riceve in input una testata bolla, e dovrà verificare se è collegato ad un benestare. Il collegamento potrà avvenire in due modi diversi: * Documento autorizzato da un benestare: A.1 * Documento di fatturazione generato da un benestare: A.2 Se in uno dei due modi è stato trovato un benestare, allora proseguire eseguendo la ricerca dei dati necessari per riempire tutti i tag previsti, e quindi riempire la tabella di linkage relativa:
| COGSA6-TAG | COGSA6-DATO-X | COGSA6-DATO-N |
|---|---|---|
| BSTS-ID | ||
| BSTS-ID-UFFICIALE | ||
| BSTS-DATA | ||
| BSTS-DOC-CLI-RIF | ||
| BSTS-DOC-CLI-DATA |
A.1 - Ricerca benestare che autorizza il documento Effettuare una ricerca del documento in input su COGBSDAU, usando BSDA-CHIA2
| Dato | Contenuto |
|---|---|
| BSDA-DOCUMENTO | COGSA6-KEY |
Se trovato, da qui posizionarsi sulla testata COGBSTES usando BSDA-ID A.1 - Ricerca benestare che autorizza il documento Effettuare una ricerca del documento in input su COGBSTES, usando BSTS-CHIA3
| Dato | Contenuto |
|---|---|
| BSTS-DOCUMENTO-FAT | COGSA6-KEY |
Se trovato, ricavare le informazioni da questo.
Operazione: CERCA-DES¶
Descrizione Riceve una classe di descrizioni variabili e restituisce se è stata configurata. Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | COGSA6-OPE | CERCA-DES |
| COGSA6-CLASSE | Classe descrizione da elaborare Vedi Descrizioni/testi variabili |
|
| COGSA6-LNG | Lingua in cui restituire il testo | |
| COGSA6-SUDD | Eventuale suddivisione (diversificazione) del testo, se la classe lo prevede | |
| OUTPUT | COGSA6-ESITO | Esito dell'operazione: |
Elaborazione A - Lettura descrizione/testo Eseguire la ricerca del testo da elaborare allo stesso modo spiegato in Operazione: ESTRAI-TESTO Se almeno un record esiste restituire COGSA6-ESITO = "S"; altrimenti restituire COGSA6-ESITO = "N" e chiudere
Estratto da documentazione interna ClickUp