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 |
|
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 |
|
|
•COGSA6-TAB-ELE |
|
|
oCOGSA6-TAG |
|
|
oCOGSA6-DATO-N |
|
|
oCOGSA6-DATO-X |
|
OUTPUT |
COGSA6-TESTO |
Testo elaborato |
|
COGSA6-TESTO-SIZE |
Dimensione restitutita |
|
COGSA6-ESITO |
Esito dell'operazione: •"S":Operazione riuscita senza errori •"W":Operazione riuscita con errori •"E":Operazione non riuscita |
|
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.
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: •Se significativo COGSA6-DATO-N: editare e togliere spazi non significativi a sx •Altrimenti usare COGSA6-DATO-X
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.