Vai al contenuto

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