PSG – Manuale Programmatore
PSG – Manuale Programmatore
Paragrafo-Pagina di Pagine 1-1 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
SOMMARIO
1
A Chi è destinato ...............................................................................................................1-3
2
Pre requisiti ......................................................................................................................2-3
3
Obiettivi ............................................................................................................................3-3
4
Durata della formazione ...................................................................................................4-3
5
Introduzione concettuale ..................................................................................................5-3
6
IMPLEMENTAZIONI SOFTWARE VERSO PSG......................................................................6-4
6.1
Per generare un documento personalizzabile ............................................................................................. 6-4
6.1.1
Configurazione variabili di ambiente ................................................................................................... 6-5
6.1.2
Modifiche da apportare a sorgente di tipo CL ........................................................................................ 6-5
6.1.3
Modifiche da apportare a sorgente di tipo RPG, COBOL … ....................................................................... 6-6
6.1.4
6.2
6.2.1
6.2.2
Applicazioni EDM ............................................................................................................................. 6-9
Altre Applicazioni ............................................................................................................................. 6-9
6.3
Gestione parametri di indirizzamento da programma ................................................................................. 6-10
6.4
Pulizia Archivi di Lavoro ........................................................................................................................ 6-13
7
ARCHIVIAZIONE STAMPE GRAFICHE IN DATABASE LINK ...............................................7-14
7.1
Concetti e Informazioni ......................................................................................................................... 7-14
7.2
Dettaglio Integrazione Programmi RPG ................................................................................................... 7-14
7.2.1
8
Generazione automatica archivio REPORT EDITOR ................................................................................ 6-8
Invio Fax o Posta Elettronica e/o Archiviare file di spool non personalizzabili .................................................. 6-9
PSG – DbLink ................................................................................................................................. 7-14
Esempio di implementazione sorgente RPG ....................................................................8-16
Paragrafo-Pagina di Pagine 1-2 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
1 A CHI È DESTINATO
Ai programmatori che necessitano di integrare applicazioni proprie al PSG, allo scopo di generare stampe grafiche
personalizzabili o di integrare il sistema di produzione della propria reportistica con un sistema di servizi per la Posta
Elettronica o Fax.
2 PRE REQUISITI
L‟allievo deve essere in grado di programmare in linguaggio RPG e deve avere le conoscenze base dell‟utente PSG.
3
OBIETTIVI
Alla fine del corso sarai in grado di :
Argomento
Livello
Durata
1.
Come implementare sorgente rpg
Base
45 min
2.
Integrazione archiviazione DBLINK
Base
15 min
3.
Esempio di trasformazione sorgente rpg
Base
30 min
4 DURATA DELLA FORMAZIONE
Per la totalità degli obiettivi indicati, compresa la fase di verifica dell‟apprendimento, la durata della sessione è di 1,30 ore.
5 INTRODUZIONE CONCETTUALE
PSG è un insieme di applicazioni progettate per risolvere alcuni dei problemi che si incontrano normalmente nella
realizzazione di un report:
1. creazione e personalizzazione di moduli;
2. l‟integrazione di parti grafiche (immagini, disegni CAD, codici a barre);
3. gestione di allegati;
4. indipendenza dei prospetti dal supporto utilizzato;
5. possibilità di indirizzamento su diverse unità logiche;
6. utilizzo di font diversi in qualsiasi dimensione, colore e stile.
PSG risolve questi problemi attraverso:
1. la realizzazione delle applicazioni in ambiente distribuito Client-Server;
2. funzioni utente per impostazione e personalizzazione stampe con tabelle di configurazione;
3. un trasparente sistema di indirizzamento delle stampe su unità diverse (stampanti, FAX, posta
elettronica, file di database).
Il tutto per l‟utente finale senza il ricorso all‟intervento di programmatori. Ciò è possibile modificando i sorgenti RPG che
producono le stampe (file di spool), in modo che l‟emissione avvenga su un database generico, che contiene i dati senza
etichetta e attributi. PSG ha la funzione di applicare, ai dati emessi dal programma RPG nel database generico, le indicazioni
previste dall‟utente in riferimento al tipo di emissione (stampa, mail, fax, pdf, ecc…), agli attributi di stampa (tipo di
carattere, dimensione, colore, ecc…) e la posizione nel documento ed eventuali integrazione con immagini o allegati o dati
fissi definiti dall‟utente e non dal programmatore.
Paragrafo-Pagina di Pagine 5-3 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
6 IMPLEMENTAZIONI SOFTWARE VERSO PSG
6.1 Per generare un documento personalizzabile
Qualsiasi software per sistema ISERIES può produrre stampe grafiche personalizzabili e quindi processabili dal PSG,
apportando modifiche circoscritte ai sorgenti.
Il programma RPG che tradizionalmente scrive un file di stampa, deve essere modificato per sostituire la scrittura del file di
spool, con la scrittura del file fisico XSTAM nella libreria PRTBLD. Si tratta di un file multimembro, al quale per ogni richiesta
di stampa deve corrispondere un membro nuovo. Ad ogni membro possono corrispondere più documenti, tutti quelli gestiti in
capo alla stessa richiesta dell‟utente, gestiti tutti insieme in un‟unica azione di distribuzione, quindi con gli stessi parametri
(numero di copie, device, supporto cartaceo, per posta elettronica, ecc…).
I documenti gestiti nel file XSTAM devono essere numerati progressivamente ed il campo destinato a contenere questo
numero è XSNDOC. I campi da riferirsi allo stesso documento devono avere tutti lo stesso numero documento XSNDOC, in
corrispondenza del quale, il PSG esegue automaticamente un salto pagina, ridefinisce i dati di testata e totale, l‟azzeramento
del numero pagina e nel caso di gestione di un file pdf la generazione di un nuovo oggetto.
I campi che formano il documento e che quindi verranno scritti nel file XSTAM, devono essere organizzati con la stessa
struttura che si vuol rendere disponibile all‟utente in REPORT EDITOR in fase di progettazione della stampa.
Quindi i campi devono essere suddivisi in TESTATA e DETTAGLIO secondo il seguente criterio:

dati di TESTATA: le informazioni che devono essere resi disponibili su tutte le pagine del documento;

dati di DETTAGLIO: il corpo del documento, le informazioni che devono essere elencate dinamicamente nel documento e
che rendono la dimensione del documento stesso.
Inoltre, i campi devono essere ulteriormente classificati in gruppi omogenei tra di loro. Questa classificazione può essere a 2
livelli, il primo identificato dal codice NUMERO RECORD (vedi campo XSNREC) e il secondo identificato dal codice
DIVERSIFICATORE RECORD (vedi campo XSDREC). Ogni gruppo di campi, quindi per ogni combinazione di NUMERO RECORD
e DIVERSIFICATORE RECORD, può essere composto al massimo da 20 campi di una lunghezza massima di 40 caratteri
ciascuno.
Attraverso il file XSTAM, il programma RPG comunica al PSG le informazioni che compongono i documenti, quali stringhe di
testo, immagini, codici a barre, oppure allegati oppure gli estremi degli indirizzi di destinazione della mail o del fax. Esistono
dei vincoli sulla scrittura del record di XSTAM legati al tipo di informazione da gestire, a questo scopo esiste il campo XSTIRE
TIPO RECORD che può assumere i seguenti valori:
T=Testata
Nei record di XSTAM, con tipo record uguale a “T”, il programma deve scrivere informazioni relative il
contenuto del documento (stringhe di testo, cifre, immagini, codici a barre, ecc…) da gestire come testata al
documento;
D=Dettaglio
Nei record di XSTAM, con tipo record uguale a “D”, il programma deve scrivere informazioni relative il
contenuto del documento (stringhe di testo, cifre, immagini, codici a barre, ecc…) da gestire come dettaglio
del documento;
A=Allegati
Nei record di XSTAM , con tipo record uguale a “A”, il programma deve scrivere gli estremi per rintracciare
gli allegati da riprodurre in coda ad ogni singolo documento;
M= Mail/Fax
Nei record di XSTAM, con tipo record uguale a “M”, il programma deve scrivere gli estremi dell‟indirizzo mail
o fax dei destinatari del documento.
Tracciato record del file XSTAM
Descrizione
Nome del campo
Lunghezza
Tipo
XSDA01
Dati del documento
40
A
XSDA02
Dati del documento
40
A
XSDA03
Dati del documento
40
A
XSDA04
Dati del documento
40
A
XSDA05
Dati del documento
40
A
XSDA06
Dati del documento
40
A
XSDA07
Dati del documento
40
A
XSDA08
Dati del documento
40
A
XSDA09
Dati del documento
40
A
XSDA10
Dati del documento
40
A
XSDA11
Dati del documento
40
A
XSDA12
Dati del documento
40
A
XSDA13
Dati del documento
40
A
Paragrafo-Pagina di Pagine 6-4 di 18
Versione 2 del 12/07/2016
Valori possibili
PSG – Manuale Programmatore
XSDA14
Dati del documento
40
A
XSDA15
Dati del documento
40
A
XSDA16
Dati del documento
40
A
XSDA17
Dati del documento
40
A
XSDA18
Dati del documento
40
A
XSDA19
Dati del documento
40
A
XSDA20
XSNDOC
Dati del documento
NUMERO DOCUMENTO
40
6 0dec
A
N
XSTIRE
Tipo Record
1
A
XSNREC
Numero Record
2 0dec
N
XSFFFO
Salto Pagina Forzato
1
A
XSDREC
Diversificatore record
1
A
XSIDDT
Numero Identificatore Dettaglio
6 0dec
N
XSSEQS
Sequenza Stampa Dettagli
3 0dec
N
XSLIVL
Livello Dettaglio/Testata
2 0dec
N
XSIDD2
Numero Identificatore Dettaglio
6 0dec
N
XSIDD3
Numero Identificatore Dettaglio
6 0dec
N
XSIDD4
Numero Identificatore Dettaglio
6 0dec
N
XSIDD5
Numero Identificatore Dettaglio
6 0dec
N
D,T,M,A
„ „,S
6.1.1 Configurazione variabili di ambiente
Il lavoro che deve produrre documenti psg deve essere avviato prevedendo in lista delle librerie anche le seguenti librerie:
DBLIFIxx (dati DBLINK se installato)
PRTFIxx (dati PSG)
WEBGATE400 (oggetti WEBGATE400)
WEBG4FD (database WEBGATE400)
PRTBLD (oggetti PSG)
DBLINK (oggetti DBLINK se installato)
6.1.2 Modifiche da apportare a sorgente di tipo CL
Di seguito sono elencate le specifiche da includere nel sorgente di tipo CLP.
6.1.2.1
1.
SPECIFICHE DA INCLUDERE PRIMA DELLA CHIAMATA ALL’OGGETTO CHE CREA LA STAMPA:
Dichiarazioni di variabili
DCL VAR(&ESITO) TYPE(*CHAR) LEN(1)
DCL VAR(&LBXST) TYPE(*CHAR) LEN(8)
DCL VAR(&LBPRT) TYPE(*CHAR) LEN(8)
DCL VAR(&NRR) TYPE(*CHAR) LEN(3)
DCL VAR(&NOMEP) TYPE(*CHAR) LEN(10)
DCL VAR(&TIPSU) TYPE(*CHAR) LEN(1)
DCL VAR(&IDPRT) TYPE(*CHAR) LEN(10)
DCL VAR(&NUCOP) TYPE(*CHAR) LEN(5)
2.
Preparazione ambiente struttura WEBGATE400 (da non fare se si tratta di un oggetto avviato con la struttura degli
elaborati EDM)
CALL PGM(WEBGATE400/RQF00OC)
3.
Creazione nuovo membro nel file-lavoro XSTAM il cui nome è contenuto nella variabile &LBXST
CALL PGM(PRTU00N) PARM('XSTAM' &LBXST 'T' 'M' '' '')
OVRDBF FILE($STAM) TOFILE(XSTAM) MBR(&LBXST)
4.
Nell’eventualità che serva gestire i parametri di ambiente da programma per assegnare delle impostazioni
diverse rispetto quelle definite dall’utente in configurazione della stampa grafica (elaborato K1), scrivere il
file $$PRT come da istruzioni disponibili al punto 6.3.
5.
Intercettazione dati di configurazione della stampa e gestione video parametri per scelte utenti
CALL PGM(PRTBLD/PRTU01C) PARM('nome stampa' &ESITO &LBXST &LBPRT &NRR &NOMEP &TIPSU &IDPRT &NUCOP)
IF COND(&ESITO *EQ '*') THEN(GOTO CMDLBL(FINE))
Paragrafo-Pagina di Pagine 6-5 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
6.1.2.2
SPECIFICHE DA INCLUDERE DOPO LA CHIAMATA ALL’OGGETTO CHE CREA LA STAMPA:
Chiamata al processore che produce la stampa personalizzata come da configurazione utente
CALL PGM(PRTBLD/PRTU03C) PARM(&LBPRT)
6.1.3 Modifiche da apportare a sorgente di tipo RPG, COBOL …
Nel sorgente RPG, COBOL … rivedere le specifiche di emissione, in modo tale che il contenuto della stampa in oggetto venga
scritto sul file fisico XSTAM (con identificazione $STAM), organizzando i campi classificati nella prospettiva dell‟utente durante
la fase di progettazione, come segue:
6.1.3.1
Documenti - Creazione
Scrivere i record per ogni tipo di testata o di totali, impostando il campo XSTIRE TIPO RECORD al valore "T" e il relativo
codice di NUMERO RECORD, con i campi dal XSDA01 al XSD20 compilati. La sequenza temporale con cui vengono scritti i
record di testata non è influente, in quanto sul documento assumono la posizione assoluta in riga e colonna imposta
dall‟utente.
Scrivere i record per ogni argomento di dettaglio del documento, impostando il campo XSTIRE TIPO RECORD al valore "D" e
il relativi codici di NUMERO RECORD e DIVERSIFICATORE RECORD, con i campi dal XSDA01 al XSD20 compilati. La sequenza
temporale con cui vengono scritti i record di dettaglio determina la sequenza con cui verranno esposti i dati nel documento.
In fase di progettazione del documento, sono disponibili delle funzioni sofisticate che permettono di mettere in relazione i
campi fra di loro (riordinamento dettaglio, formule, allegati, table builder, ecc…), le quali per funzionare hanno bisogno di
riconoscere i legami fra i vari dettagli e sotto dettagli del documento. A questo scopo esistono nel file XSTAM 5 campi
(XSIDDT, XSIDD2, XSIDD3, XSIDD4, XSIDD5) che assegnano la sequenza ai dettagli in forma scalare.
Per esempio
Il documento dell‟ordine tecnico che contiene il ciclo di lavorazione del prodotto, in riferimento al quale per ogni operazione
è prevista la stampa dell‟elenco di una serie di macchine utilizzabili e di seguito il ciclo di attrezzaggio, per il quale è previsto
un elenco di attrezzi. Di seguito la rappresentazione del file XSTAM.
XSDA01
XSDA02
XSDA…
XSIDDT
XSIDD2
XSIDD3
XSIDD4
XSIDD5
Assemblaggio
ASS
…
000001
000000
000000
000000
000000
MAC01
…
…
000001
000001
000001
000000
000000
MAC02
…
…
000001
000001
000002
000000
000000
Fase ATT 1
…
…
000001
000002
000000
000000
000000
Attrezzo A
…
…
000001
000002
000001
000000
000000
Attrezzo B
…
…
000001
000002
000002
000000
000000
Fase ATT 2
…
…
000001
000003
000000
000000
000000
Attrezzo C
…
…
000001
000003
000001
000000
000000
Attrezzo D
…
…
000001
000003
000002
000000
000000
Confezionam.. CFZ
…
000002
000000
000000
000000
000000
MAC03
…
…
000002
000001
000001
000000
000000
MAC04
…
…
000002
000001
000002
000000
000000
Fase ATT 1
…
…
000002
000002
000000
000000
000000
Attrezzo j
…
…
000002
000002
000001
000000
000000
Attrezzo y
…
…
000002
000002
000002
000000
000000
Fase ATT 2
…
…
000002
000003
000000
000000
000000
Attrezzo z
…
…
000002
000003
000001
000000
000000
Attrezzo x
…
…
000002
000003
000002
000000
000000
Prevedendo la compilazione dei campi che numerano i dettagli dichiarando la relazione tra dettaglio e sottodettaglio, la
funzione di assegnazione di una sequenza diversa da parte dell‟utente o la funzione di duplicazione dei dettagli può
funzionare correttamente così anche le formule a fronte delle quali PSG deve individuare eventuali campi utilizzati per
condizionare o per calcolare.
N.B. (a) I dati dei documenti scritti nei 20 campi (XSDA01-20) sono allineati a destra. Attenzione: non il contenuto dei dati
stessi, ma i campi che li contengono nella loro massima lunghezza (specificata in personalizzazione K2). Esempio: il
Paragrafo-Pagina di Pagine 6-6 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
campo codice articolo XCODAR di 13 caratteri, anche se il contenuto occupasse solo le prime 5 posizioni (es. 00100),
il dato nei campi di XSTAM inizia sempre dalla posizione 28 (40-13+1).
N.B. (b) Nel tracciato record di XSTAM è previsto anche il campo XSFFFO. Questo campo serve per forzare da programma un
salto pagina prima di un determinato dettaglio, impostandovi il valore "S" sul record del dettaglio in questione.
6.1.3.2
Documenti – Tipo di dato
Le informazioni disponibili per essere esposte sul documento raccolte nel file XSTAM possono essere di diversa natura, ai
quali infatti corrisponde l‟attributo TIPO CAMPO in report editor o nella gestione tabellare della personalizzazione con la
funzione “K2”. Di seguito si elencano le modalità di scrittura dell‟‟informazione, da esporre sui documenti, nel file di
interscambio XSTAM, in funzione della natura del campo e quindi del TIPO indicato in personalizzazione della stampa:
NATURA
TIPO MODALITA’ DI SCRITTURA CAMPO NEL FILE INTERSCAMBIO XSTAM
Testo alfanumerico
Riportare il dato allineato a destra nel campo destinato a contenerlo, fra i 20 disponibili sul
record di XSTAM (vedi nota (a) sopra).
Cifra numerica
Riportare il dato allineato a destra nel campo destinato a contenerlo, fra i 20 disponibili sul
record di XSTAM (vedi nota (a) sopra).
Disegno
D
Riportare il nome del disegno/immagine e il suo percorso allineata a sinistra del campo
destinato a contenerlo, fra i 20 disponibili sul record di XSTAM.
Codice a Barre (tutti
i tipi)
B…
Riportare il dato allineato a destra nel campo destinato a contenerlo, fra i 20 disponibili sul
record di XSTAM (vedi nota (a) sopra).
LOB
N/T
Riportare il dato allineato a destra nel campo destinato a contenerlo, fra i 20 disponibili sul
record di XSTAM (vedi nota (a) sopra).
6.1.3.3
Documenti - Allegati
Per ogni allegato del documento, emettere un record di tipo "allegato" (XSTIRE="A"), con i primi 5 campi (XSDA01, XSDA02,
XSDA03, XSDA04 e XSDA05) (primi 200 Bytes del record del file XSTAM) contenenti il percorso del file da allegare (allineato
a sinistra e continuo sui due campi).
6.1.3.4
Documenti - Invio per Fax o Posta Elettronica
Nel caso in cui il documento possa essere oggetto di posta o fax, per ogni documento da creare, emettere i seguenti record:
tanti record di tipo "mail" con numero record 05 contenenti gli estremi dell'indirizzamento, quanti sono i destinatari principali
del documento;
tanti record di tipo "mail" con numero record 11 contenenti gli estremi dell'indirizzamento, quanti sono i destinatari per copia
conoscenza del documento;
tanti record di tipo "mail" con numero record 12 contenenti gli estremi dell'indirizzamento, quanti sono i destinatari per copia
conoscenza riservata del documento;
NOME CAMPO
VALORE CAMPO
XSTIRE
M
XSNREC
05 / 11 / 12
XSDA01
Numero Fax (lungh. 12 caratteri di tipo alfanumerico)
XSDA02
Prefisso Fax (lungh. 4 caratteri di tipo alfanumerico)
XSDA03
Vuoto
XSDA04
Nome Destinatario (lungh. 20 caratteri di tipo alfanumerico)
XSDA05
Titolo Destinatario (lungh. 5 caratteri di tipo alfanumerico)
XSDA06
Primi 40 caratteri dell'indirizzo di posta
XSDA07
Ultimi 24 caratteri dell'indirizzo di posta
Paragrafo-Pagina di Pagine 6-7 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
un record sempre di tipo “mail” con numero record 10 per l‟oggetto;
NOME CAMPO
VALORE CAMPO
XSTIRE
M
XSNREC
10
XSDA01
Primi 40 caratteri della descrizione dell'oggetto del documento
XSDA02
Ultimi 31 caratteri della descrizione dell'oggetto del documento
Emettere un record di tipo "mail" con numero record 30 per riprodurre nel corpo della mail (body) un testo gestito come
oggetto di tipo LOB, contenente gli estremi dell'indirizzamento per il prelievo del contenuto, come segue:
NOME CAMPO
VALORE CAMPO
XSTIRE
M
XSNREC
30
XSDA01
Identificatore Univoco del LOB.
Campo alfanumerico di 18 caratteri, allineato a sinistra.
6.1.4 Generazione automatica archivio REPORT EDITOR
Una volta modificato il sorgente in oggetto, sul menù PSG dell'applicazione, è disponibile la chiave 21 (elaborato "K5") che
ne ricava l'elenco campi per la personalizzazione utente, manutenibile con l‟applicazione REPORT EDITOR o con l'elaborato
"K2". Questa procedura serve solo alla prima conversione del programma, in seguito, a variazioni del sorgente, si deve
intervenire manualmente ad adeguare la lista campi della personalizzazione, la quale, in ogni caso, deve corrispondere con le
specifiche di emissione del programma sul file XSTAM. I record di tipo "M" (dati mail) e "A" (dati allegati), sono gli unici a
non aver riferimenti in personalizzazione stampe.
Paragrafo-Pagina di Pagine 6-8 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
6.2 Invio Fax o Posta Elettronica e/o Archiviare file di spool non
personalizzabili
Qualsiasi software per AS/400 può indirizzare automaticamente al PSG i propri files di spool (anche se non sono stati
trasformati in stampe personalizzabili), quindi inviarli via fax, via posta e archiviarli, apportando le modifiche indicate nei
paragrafi che seguono.
6.2.1 Applicazioni EDM
Per le applicazioni avviate con la struttura degli elaborati EDM, attivare la funzione impostando il campo "Stampa via Posta"
uguale a "S" sulla manutenzione dell'elaborato interessato.
6.2.2 Altre Applicazioni
6.2.2.1
Modifiche da apportare a sorgente di tipo CL
Per ogni altro tipo di applicazione, sono di seguito elencate le specifiche da includere nel sorgente di tipo CL.
SPECIFICHE DA INCLUDERE PRIMA DELLA CHIAMATA ALL‟OGGETTO DI TIPO CLP:

Dichiarazioni di variabili
DCL
DCL
DCL
DCL
VAR(&ESITO) TYPE(*CHAR) LEN(1)
VAR(&LBPRT) TYPE(*CHAR) LEN(8)
VAR(&IDPRT) TYPE(*CHAR) LEN(10)
VAR(&NUCOP) TYPE(*CHAR) LEN(5)

Impostazione parametri di ambiente.
Nell’eventualità che serva gestire i parametri di ambiente da programma per assegnare delle impostazioni
diverse rispetto quelle definite dall’utente in configurazione della stampa grafica (elaborato K1), scrivere il file
$$PRT come da istruzioni disponibili al punto 6.3.
Preparazione ambiente struttura WEBGATE400
CALL PGM(WEBGATE400/RQF00OC)
RTVDTAARA DTAARA(*LDA (521 8)) RTNVAR(&LBPMS)
OVRDBF FILE($$PMS) TOFILE(*LIBL/$$PMS) MBR(&LBPMS)


Gestione video parametri per scelte utenti
(è possibile impostare la variabile &IDPRT al device di tipo PSG desiderato, in questo modo sul video parametri è già
compilato. Può essere utile per lavori di tipo batch).
CALL PGM(PRTBLD/PRTU01C) PARM('' &ESITO '' &LBPRT '' '' '' &IDPRT &NUCOP)
IF COND(&ESITO *EQ '*') THEN(GOTO CMDLBL(FINE))
Se è necessario inviare la stampa a più destinatari con diversi indirizzi e-mail, è possibile compilare il file $$PRT, in
particolare il membro con il nome contenuto nella variabile &LBPRT, aggiungendo tanti record quanti sono gli indirizzi di
destinazione con chiave impostata alla costante "$EMAIL" e l'indirizzo scritto nel campo $$PAL1.
6.2.2.2
Modifiche da apportare a sorgente di tipo RPG, COBOL …
Per tutte le applicazioni (anche quelle avviate con la struttura degli elaborati EDM), nel sorgente RPG, COBOL, ecc., che crea
il file di spool (e' indispensabile eseguire questa chiamata dall'oggetto che crea lo spool perche' in questo momento la
stampa e' in stato *OPEN, ossia non disponibile ai programma di scrittura), eseguire le azioni sottoelencate:
agganciare dal file di lavoro $$PMS, il record con la chiave bianca e controllare il campo "$$VIAP". Se quest'ultimo è
impostato uguale a "S", eseguire il richiamo al programma PRTU97C in PRTBLD (senza parametri).
F$$PMS
IF
E
K DISK
Paragrafo-Pagina di Pagine 6-9 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
C
C
C
C
'
'
CHAIN
IF
CALL
ENDIF
$$PMS
%FOUND AND $$VIAP=‟S‟
„PRTU97C‟
6.3 Gestione parametri di indirizzamento da programma
Il file $$PRT è il mezzo di comunicazione dei parametri di indirizzamento dei documenti al PSG. In prima istanza il file $$PRT
contiene i parametri come da impostazioni definite in fase di progettazione (dati di default). In seguito all‟emissione del video
parametri, in fase di creazione dei documenti, l‟utente può modificare i dati e quindi nel file $$PRT le informazioni contenute
sono quelle riviste manualmente dall‟utente.
I programmatori, a seconda delle esigenze, potrebbero intervenire direttamente su questo file, per impostare i parametri di
inoltro delle stampe, in particolare nel caso non sia possibile emettere il video parametri per le scelte utente.
Il programmatore può modificare i parametri nel file $$PRT prima dell‟emissione del video all‟utente intervenendo prima della
chiamata al programma PRTU01C prevista nella CLP, oppure dopo sovrascrivendo eventualmente le modifiche apportate
dall‟utente se emesso il video.
$$PRT è un file gestito a più membri, creati dall‟utilità PRTU01C. Il nome del membro del file $$PRT utilizzato dal lavoro in
corso, è contenuto nella variabile &LBPRT. Contiene più records identificati ognuno con una chiave diversa. Ad ogni diversa
chiave corrispondono campi-parametri con informazioni diverse, come indicato di seguito.
6.3.1.1
Tracciato record file $$PRT
Di seguito viene elencato il suo tracciato record e le istruzioni di compilazione dei campi.
Campo
Descrizione
Tipo
$$KEYP
Chiave Record
Alfanumerico 6
$$AZIE
Nome Azienda
Alfanumerico 20
$$TITL
Titolo
Alfanumerico 40
$$USER
Utente
Alfanumerico 10
$$TERM
Terminale
Alfanumerico 10
$$DATE
Data
Numerico
6
0
$$TIMI
Ora inizio
Numerico
6
0
$$TIMF
Ora fine
Numerico
6
0
$$PA01
Parametro 01
Alfanumerico 15
$$PA02
Parametro 02
Alfanumerico 15
$$PA03
Parametro 03
Alfanumerico 15
$$PA04
Parametro 04
Alfanumerico 15
$$PA05
Parametro 05
Alfanumerico 15
$$PA06
Parametro 06
Alfanumerico 15
$$PA07
Parametro 07
Alfanumerico 15
$$PA08
Parametro 08
Alfanumerico 15
$$PA09
Parametro 09
Alfanumerico 15
$$PA10
Parametro 10
Alfanumerico 15
$$PA11
Parametro 11
Alfanumerico 15
$$PA12
Parametro 12
Alfanumerico 15
$$PA13
Parametro 13
Alfanumerico 15
$$PA14
Parametro 14
Alfanumerico 15
$$PA15
Parametro 15
Alfanumerico 15
$$PA16
Parametro 16
Alfanumerico 15
$$PA17
Parametro 17
Alfanumerico 15
$$PA18
Parametro 18
Alfanumerico 15
$$PA19
Parametro 19
Alfanumerico 15
$$PA20
Parametro 20
Alfanumerico 15
$$PA21
Parametro 21
Alfanumerico 15
$$PA22
Parametro 22
Alfanumerico 15
Paragrafo-Pagina di Pagine 6-10 di 18
Versione 2 del 12/07/2016
Lunghezza
Decimali
PSG – Manuale Programmatore
$$PA23
Parametro 23
Alfanumerico 15
$$PA24
Parametro 24
Alfanumerico 15
$$PA25
Parametro 25
Alfanumerico 15
$$PA26
Parametro 26
Alfanumerico 15
$$PA27
Parametro 27
Alfanumerico 15
$$PA28
Parametro 28
Alfanumerico 15
$$PA29
Parametro 29
Alfanumerico 15
$$PA30
Parametro 30
Alfanumerico 15
$$PAL1
Parametro 01 Lungo
Alfanumerico 71
$$PAL2
Parametro 02 Lungo
Alfanumerico 71
$$PAL3
Parametro 03 Lungo
Alfanumerico 71
$$PAL4
Parametro 04 Lungo
Alfanumerico 71
$$PAL5
Parametro 05 Lungo
Alfanumerico 71
$$PAL6
Parametro 06 Lungo
Alfanumerico 71
$$PAL7
Parametro 07 Lungo
Alfanumerico 71
$$PAL8
Parametro 08 Lungo
Alfanumerico 71
$$PRT è un file gestito a più membri, creati dall‟utilità PRTU01C. Il nome del membro del file $$PRT utilizzato dal lavoro in
corso, è contenuto nella variabile &LBPRT. Contiene più record identificati ognuno con una chiave diversa. Ad ogni diversa
chiave corrispondono campi-parametri con informazioni diverse, come indicato dalla tabella seguente:
Campo
Chiave
$$KEYP
$PRINT
Campo
Contenuto Campo Parametro (allineato a sx)
Parametro
$$PA01
$$PA02
$$PA03
$$PA04
$$PA05
$$PA06
$$PA07
$$PA08
$$PA09
$$PA10
$$PA11
$$PA12
$$PA13
$$PA14
$$PA15
$$PA16
$$PA17
$$PA18
$$PA19
$$PA20
$$PA21
$$PA22
$$PA23
$$PA24
$$PA25
$$PA26
$$PA27
$$PA28
$$PA29
$$PA30
IDPR Identificativo stampante
NCOP Numero Copie
STLA Opzione stampa layout
LAYO Codice Layout
LSTD Origine Layout standard (S)
MODU Codice Modulo spool file
ALIM Tipo alimentazione carta stampante
FRRE Utilizzo fronte retro del foglio
CSTP Codice stampa grafica
*nullo
PSTD Origine personalizzazione standard (S)
LINE Numero linee per pagina
CPI
Numero Caratteri per police
LPI
Numero Linee per pollice
COLO Numero colonne per pagina
INDE Prima riga dettaglio
FIDE Ultima riga dettaglio
VISU Opzione visualizzazione video parametri
USRD Dati utente identificativo file di spool
TIST Codice formato carta
NSZL Nr sezioni in larghezza (etichette)
NSZA Nr. Sezioni in altezza (etichette)
*nullo
ALLG Opzione stampa allegati (S)
DSZL Larghezza della sezione (etichetta)
DSZA Altezza della sezione (etichetta)
*nullo
SAVE Opzione conservazione stampa
AAUT Opzione archiviazione automatica
ADEV Device archiviazione automatica
Paragrafo-Pagina di Pagine 6-11 di 18
Versione 2 del 12/07/2016
Lunghezza
Parametro
nel Campo
10 a
05 n 0 dec
01 a
02 a
01 a
04 a
02 n 0 dec
01 a
06 a
01 a
03 n 0 dec
02 n 0 dec
02n 0 dec
03 n 0 dec
03 n 0 dec
03 n 0 dec
01 a
10 a
02 a
03 n 0 dec
03n 0 dec
01 a
06 n 2 dec
06 n 2 dec
01 a
01 a
10 a
PSG – Manuale Programmatore
0PRINT
&PRINT
$$PAL1
$$PAL2
$$PAL3
$$PAL4
$$PAL5
$$PAL6
$$PAL7
$$PAL8
$$PA01
$$PA02
$$PA03
$$PA04
$$PA05
$$PA06
$$PA07
$$PA08
$$PA09
$$PA10
$$PA11
$$PA12
$$PA13
$$PA14
$$PA15
$$PA16
$$PA17
$$PA18
$$PA19
$$PA20
$$PA21
$$PA22
$$PA23
$$PA24
$$PA25
$$PA26
$$PA27
$$PA28
$$PA29
$$PA30
$$PAL1
$$PAL2
$$PAL3
$$PAL4
$$PAL5
$$PAL6
$$PAL7
$$PAL8
$$PA01
$$PA02
$$PA03
$$PA04
$$PA05
$$PA06
$$PA07
$$PA08
$$PA09
$$PA10
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
FXTL Numero telefonico FAX
FXPT Prefisso telefonico FAX
FXTS Prefisso telefonico internzazione FAX
FXCF Coda FAX
FXDT Data trasmissione fax
FXTM Ora trasmissione fax
NOME15 Primi 15 caratteri nome destinatario
NOME20 Ultimi 5 caratteri nome destinatario
FXOC Opzione stampa copertina fax
*nullo
UNPR Unità preferenziale (F/P)
FXPR Priorità di invio
INPO Indirizzo di posta elettronica (i caratteri da 1 a 15)
INPO Indirizzo di posta elettronica (i caratteri da 16 a 30)
INPO Indirizzo di posta elettronica (i caratteri da 31 a 45)
INPO Indirizzo di posta elettronica (i caratteri da 46 a 60)
INPO Indirizzo di posta elettronica (i caratteri da 61 a 64)
PRTC Unità per stampa copia
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
*nullo
ALLA Opzione archiviazione allegati
ASOS Opzione sostituzione documento archiviato
MLT1 Testo introduttivo alla posta
MLT2 Testo introduttivo alla posta
MLT3 Testo introduttivo alla posta
MLT4 Testo introduttivo alla posta
MLT5 Testo introduttivo alla posta
MLT6 Testo introduttivo alla posta
MLT7 Testo introduttivo alla posta
MLT8 Testo introduttivo alla posta
LBFI *OUTFILE: nome file
LBLI *OUTFILE: nome libreria
LBMB *OUTFILE: nome membro
REPL *OUTFILE: opzione sostituzione file “*REPLACE”
CLDD classe documentazione dblink
DSTP descrizione stampa grafica
*nullo
*nullo
*nullo
*nullo
Paragrafo-Pagina di Pagine 6-12 di 18
Versione 2 del 12/07/2016
12
04
05
08
06
06
15
05
01
a
a
a
a
n 0 dec
n 0 dec
a
a
a
01
01
15
15
15
15
04
10
a
a
a
a
a
a
a
a
01
10
70
70
70
70
70
70
70
70
10
10
10
08
02
30
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
PSG – Manuale Programmatore
WPRINT
$$PA11
$$PA12
$$PA13
$$PA14
$$PA15
$$PA16
$$PA17
$$PA18
$$PA19
$$PA20
$$PAL1
$$PAL8
$$PAL1
$$PAL2
$$PAL3
$$PAL4
$$PAL5
$$PAL6
$$PAL7
CLS1
CLS2
CLS3
CLS4
CLS5
CLS6
CLS7
CLS8
CLS9
CLS0
Indirizzo forzato mail mittente
ID LOB TESTO INTRODUTTIVO MAIL
BXBOX
BXPROT
BXUSRID
BXINAM
BXPATH 71car
BXPATH 57car
BXHOST
02
02
02
02
02
02
02
02
02
02
64
18
a
a
a
a
a
a
a
a
a
a
a
a
6.4 Pulizia Archivi di Lavoro
Sui sistemi AS/400 dove vengono utilizzate applicazioni integrate con il PSG, si deve schedulare giornalmente (o
settimanalmente), quando l'applicazione non è in uso, l'esecuzione dell'oggetto PRTBLD/PRTU90C, il quale cancella gli archivi
di lavoro della struttura in oggetto.
Paragrafo-Pagina di Pagine 6-13 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
7 ARCHIVIAZIONE STAMPE GRAFICHE IN DATABASE LINK
7.1 Concetti e Informazioni
Tra le funzioni dell‟applicazione PSG, è disponibile l‟archiviazione automatica delle stampe grafiche prodotte e riferite ad un
modulo personalizzabile, nel DATABASE LINK, applicazione studiata per la gestione dei documenti aziendali.
L‟archiviazione dei vari documenti nella struttura database links avviene contestualmente alla stampa degli stessi con il
processore stampe grafiche.
Durante la fase di stampa dei documenti avviene quanto segue:

Vengono prelevati dalla tabella parametri i dati di archiviazione rendendoli disponibili all‟utente per ulteriori variazioni in
fase di impostazione dati unità emissione;

La fase di emissione del file contenente i dati della stampa (XSTAM) genera i riferimenti del documento dblink
corrispondente generato e gli argomenti relativi per la ricerca per categoria;

Viene inoltrata la richiesta di archiviazione della stampa al processore stampe grafiche indicato;

Il processore stampe grafiche salva una copia in pdf del documento nell‟indirizzo indicato sulla classe documenti dblink.
7.2 Dettaglio Integrazione Programmi RPG
L‟applicazione DBLINK oltre ad eseguire il salvataggio di un documento in un sistema di archiviazione elettronico, crea anche
una struttura di ricerca e classificazione dei documenti che mette in relazione i documenti al database gestionale,
impostando un legame diretto al file e ai suoi records definendo il nome del file e i campi chiave del record.
7.2.1 PSG – DbLink
Il pgm che scrive il file XSTAM deve essere modificato come segue:
eseguire per ogni documento in stampa la chiamata all‟api PRTBLD/PRTLNK settando i relativi parametri di chiamata come
segue:
C
PARM
PANPRA
20
C
PARM
PDSDLK
80
C
PARM
PKWDL1
20
C
PARM
PKWDL2
20
C
PARM
PKWDL3
20
C
PARM
PFLNAM
10
C
PARM
PFLK01
20
C
PARM
PFLK02
20
C
PARM
PFLK03
20
C
PARM
PFLK04
20
C
PARM
PFLK05
20
C
PARM
PFLK06
20
C
PARM
PFLK07
20
C
PARM
PFLK08
20
C
PARM
PFLK09
20
C
PARM
PFLK10
20
C
PARM
PPALNK
256
C
PARM
PKEYUN
18
PANPRA=numero pratica o identificativo univoco del documento (es. FA20060010 fattura 10 dell‟anno 2006) utilizzato nella
composizione del nome dell‟oggetto/file
PADSLK=descrizione estesa del documento / titolo
PKWDL1= prima chiave di ricerca
PKWDL2= seconda chiave di ricerca
PKWDL3= terza chiave di ricerca
PFLNAM= nome file di legame con allegato
PFLK01= valore primo campo chiave del file di legame con allegato
PFLK02= valore secondo campo chiave del file di legame con allegato
PFLK03= valore terzo campo chiave del file di legame con allegato
PFLK04= valore quarto campo chiave del file di legame con allegato
PFLK05= valore quinto campo chiave del file di legame con allegato
PFLK06= valore sesto campo chiave del file di legame con allegato
Paragrafo-Pagina di Pagine 7-14 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
PFLK07= valore settimo campo chiave del file di legame con allegato
PFLK08= valore ottavo campo chiave del file di legame con allegato
PFLK09= valore nono campo chiave del file di legame con allegato
PFLK10= valore decimo campo chiave del file di legame con allegato
PPALNK= (PARAMETRO DI OUTPUT) indirizzo documento nell‟archivio dblink
PKEYUN= (PARAMETRO DI OUTPUT) identificativo univoco del documento dblink, normalmente da non valorizzare per
consentire alla routine chiamata di calcolarlo; è possibile utilizzare tale parametro già valorizzato affinché la routine non
esegua la generazione del documento, ma il solo aggiornamento dei legami con il database indicato.
L‟api PRTLNK esegue l‟aggiornamento degli archivi dell‟applicazione dblink, riservando un identificativo di allegato al
documento in creazione e creando il legame con il database dell‟applicazione che genera la stampa grafica, per consentire
l‟aggancio automatico attraverso l‟applet di webgate400. Nel caso in cui un allegato debba essere legato a più riferimenti di
database (diversi files o diverse chiavi dello stesso file), eseguire più chiamate alla routine con il parametro PKEYUN vuoto
alla prima richiesta e compilato (come reso da chiamata precedente) alle successive, per fare in modo che l‟api generi solo il
legame richiesto in aggiunta, in quanto l‟allegato già generato alla prima chiamata.
Al fine di comunicare al PSG l‟indirizzo del database ove archiviare i documenti in stampa, prevedere sul file XSTAM
l‟emissione di un record, per ogni documento coinvolto nella richiesta dell‟utente, con:
XSTIRE
TIPO RECORD impostato al valore “M”;
XSNREC
NUMERO RECORD impostato al valore “20”;
i primi 256 caratteri del record di XSTAM, allineato a destra, impostato al valore dell‟indirizzo del documento nel database di
archiviazione fornito dalla chiamata ad una routine standard sopra citata, con il parametro PPALNK.
Paragrafo-Pagina di Pagine 7-15 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
8 ESEMPIO DI IMPLEMENTAZIONE SORGENTE RPG
Illustrazione modifiche apportate a sorgente RPG.
Specifiche di Descrizione File
Prima
Dopo
Si passa da un file di stampa (descritto internamente o esternamente) a un file di database.
Il programmatore non deve più preoccuparsi del controllo di accensione indicatore di Fine Pagina.
$STA2 è la denominazione interna al programma RPG del file di database denominato XSTAM.
Specifiche di Output
Prima
Dopo
Non si utilizzano più i campi Space (before/after) e Skip (before/after); in base al numero di righe definite nei parametri del
codice stampa grafica (elaborato K1), PSG si occupa automaticamente del salto pagina; le interlinee da applicare prima della
stampa delle righe sono dichiarate nel dettaglio stampa grafica (elaborato K2).
Prima
Dopo
Per ogni record scritto nel file XSTAM è necessario indicare il Tipo di Record (1) e il Numero di Record (2,0); nel caso sopra
illustrato questi dati sono scritti a fine posizione 809 (trattasi di record di dettaglio „D‟ con numero 05).
Le costanti da stampare possono essere eliminate dal programma RPG e aggiunte nel dettaglio stampa grafica sottoforma di
mascheratura (nel caso specifico sopra illustrato la costante sarà la mascheratura di un campo valorizzato con „.‟; in
manutenzione dettaglio stampa grafica è possibile omettere la stampa di questo carattere „.‟ per ottenere la stampa della
sola mascheratura).
Il campo XXXLEVEL è numerico (1,0) valorizzato con 1 o 2 dal programma RPG. In manutenzione dettaglio stampa grafica è
stata associata mascheratura „Livello „.
Il campo numerico (6,0) che termina alla posizione 806 deve contenere un numero che individua ciascun documento
stampato (nel caso di stampa di 3 fatture, questo campo dovrà essere valorizzato con 3 valori diversi).
I records del file XSTAM, record di dettaglio („D‟ in posizione 807), devono essere scritti con delle coordinate che ne
permettono l‟identificazione nel caso di applicazione di Formule/Regole PSG; Quindi, i campi numerici (6,0) che terminano
alle posizioni 817, 828, 834, 840 e 846, devono essere adeguatamente valorizzati.
Esempio:
Paragrafo-Pagina di Pagine 8-16 di 18
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
jjjjjj
jjjddt jjjddt2 jjjddt3 jjjddt4 jjjddt5
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
riga 4 dati Articolo
1
1
1
1
1
0
riga 5 dati Articolo
1
1
1
1
2
0
riga 6 dati Articolo
1
1
1
1
3
0
riga 7 dati Articolo
1
1
1
1
4
0
1
1
1
2
0
0
riga 9 dati Articolo
1
1
1
2
1
0
riga 10 dati Articolo
1
1
1
2
2
0
1
1
2
0
0
0
1
1
2
1
0
0
1
1
2
1
1
0
1
2
0
0
0
0
1
2
1
0
0
0
1
2
1
1
0
0
1
2
1
1
1
0
2
0
0
0
0
0
Fattura 1
riga 1 DDT „1‟
riga 2 Ordine „11‟
riga 3 Testata Articolo „111‟
riga 8 Testata Articolo „112‟
riga 11 Ordine „12‟
riga 12 Testata Articolo „121‟
riga 13 dati Articolo
riga 14 DDT „2‟
riga 15 Ordine „21‟
riga 16 Testata Articolo „211‟
riga 17 dati Articolo
Fattura 2
…
Prima
Dopo
Tutte le costati sono tolte dal programma RPG e gestite dalla manutenzione dettaglio stampa grafica (elaborato K2).
Specifiche di Calcolo
Prima
Paragrafo-Pagina di Pagine 8-17 di 18
Dopo
Versione 2 del 12/07/2016
PSG – Manuale Programmatore
Il programmatore non deve più preoccuparsi di controllare il raggiungimento di Fine Pagina.
Paragrafo-Pagina di Pagine 8-18 di 18
Versione 2 del 12/07/2016