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