1Web
gate
400
[webgate400 08/10/2009]
Argomenti della Giornata
• Nuova architettura di Webgate400• Implementazioni “semplici” Interfaccia• Nuova “Configurazione Runtime”• Implementazioni “avanzate” Interfaccia• Alcune “facility” di Webgate400• “Più avanti” nella Modernizzazione
2Web
gate
400
[webgate400 08/10/2009]
Nuova architettura di Webgate400A tempo di esecuzione, i DSPF convertiti diventano vere e
proprie tabelle (PF) collocate in apposite librerie di appoggio: default = WGTDBL400
• Ogni tabella conterrà la definizione di un “formato record”.• WG4SYSFD/WGTDBIDX è l’indice di queste tabelle.• Ad ogni chiusura di programma vengono “svuotate” le
relative tabelle. • Operazioni in IPL di ottimizzazione delle tabelle tramite
l’utility WGUIMGR -r (anche controllo conguità)
3Web
gate
400
[webgate400 08/10/2009]
Nuova architettura di Webgate400Vantaggi:• Il peso nell’effettuare operazioni complesse viene spostato
dal Client al Server• Possibilità di “estendere” le tabelle da interfaccia• Il Client non deve “vedere” tutti i record di Subfile per
Esportarli, Ordinarli, Gerarchizzarli, Filtrarli, ecc.• Parziale abbandono degli *USRIDX nel rapporto
Client/Server• Non è richiesta nessuna ri-conversione dei programmi
attuali
4Web
gate
400
[webgate400 08/10/2009]
Nuova architettura di Webgate400
Svantaggi:
Questa pagina è stata intenzionalmente lasciata vuota
5[webgate400 08/10/2009]
Nuova architettura di Webgate400Attivazione:• Agendo sul file WG4SYSFD/ODAZI (record EDM/999999)
• Da Gestione Ambienti On Demand
6Web
gate
400
[webgate400 08/10/2009]
Implementazioni “semplici”
Interfaccia• Combinazione tasti ALT+R per simulare tasto destro del
mouse su incrocio subfile
• Combinazione tasti ALT+O per ordinare colonne subfile• Modalità esposizione Tasti Funzione • Modalità esposizione Opzioni Subfile• Modalità visualizzazione Posizione Cursore• Modalità Rotella del Mouse (wheel mouse):
7Web
gate
400
[webgate400 08/10/2009]
Implementazioni “semplici”
Interfaccia
• Marcatura Campi Input Subfile.
• Espansione Subfile in Windows : *fmtatr2193=R(1)• SFLRCDNBR: (CURSOR *TOP)• Svuotamento Buffer Tastiera: non tipo CTRL 5250
(Ripristino) ma attivo/disattivo• Blocco colonne Subfile (impedire lo scorrimento delle
colonne oltre l'area di visualizzazione)
8Web
gate
400
[webgate400 08/10/2009]
Nuova “Configurazione Runtime”• Nuovo look interfaccia principale• Ripartite logicamente le “Gestioni”
• Più chiare (e immediate) le selezioni
• Personalizzabili chiamate funzioni Sistema
9Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile• Solo per Designer/Abilitati a Filtri• Si attivano premendo ALT+F (cursore nel subfile)• Semplici o Composti (1 o più righe di filtro)• Vengono applicati in
AND se applicati sulla stessa riga, in OR tra più righe)
• Click su pulsante elenco per aprire il filtro guidato
10Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile• Sintassi SQL (where).
Esempio 1:– Filtrare i clienti che hanno avuto movimenti nell’anno xxxx
IN(SELECT jcdcan FROM jfcmv03l WHERE
jcdsoc='001' AND jcdtan='C' AND jdtregBETWEEN 20070101 AND 20071231
)
11Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile…continua Sintassi SQL (where).
Esempio 2:– Filtrare i clienti che hanno prodotto (in totale) più di yyyyyyIN(
SELECT fmtccl FROM prd5000f GROUP BY fmtcclHAVING SUM(fmsnmt01)<3000
)
12Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile…continua Sintassi SQL (where).
Esempio 3:– Filtrare solo i clienti di una provincia (campo non presente nel
subfile)IN(
SELECT jancan FROM jfana00f WHERE jansoc='001' and jantan='C' and janprv='BS‘
)
13Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile…continua Sintassi SQL (where).
Esempio 4:– Filtrare solo i clienti che si chiamano “ROSSI”LIKE ‘%ROSSI’OppureLIKE ROSSI
14Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri Subfile…continua Sintassi SQL (where).
• Per i campi alfabetici gli apici (') non sono obbligatori• Se non specificato nessun operatore si assume = (uguale)• Per l’istruzione LIKE se non indicato viene assunto
automaticamente in testa e in coda il simbolo % (percentuale)
15Web
gate
400
[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri SubfileSalvataggio Filtri con Estremi Personalizzazione
16[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Filtri SubfileRichiamo filtri salvati
L’applicazione di un filtro è percepibile perché l’intestazione di colonna diventa Rossa
17[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Accesso non VedentiE’ possibile attivare la “voce” a Webgate400, utile soprattutto
per gli utenti non vedenti.Si attiva dal menù “?” attraverso la voce “Abilita Lettura”Vengono lette automaticamente le informazioni di Login e
ogni titolo Finestra (ALT+T per rileggerlo).Attraverso poi gli “Attributi Oggetti” è possibile impostare quali
“etichette+valore campo” verranno letti.
18[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Aggiunta colonne subfileTramite un apposita interfaccia
(richiamabile dal menù Strumenti- Personalizzazioni-Aggiunta Colonne) sarà possibile aggiungere colonne ai subfile.
In generale, i campi/colonne recuperati nei formati record presenti verranno descritti tramite la forma &nomeformato.nomecampo (oppure solo &nomecampo se il formato è lo stesso su cui viene fatta la personalizzazione).
19[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Aggiunta colonne subfileI campi che possono essere aggiunti possono essere
valorizzati in quattro modalità diverse:• DECODIFICHE• EXIT PROGRAM• FORMULE MATEMATICHE• ISTRUZIONI SQL
20[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Aggiunta colonne subfile: Parte comuneTutti i 4 tipi di aggiunta hanno in comune il primo pannello di
dati:
21[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Aggiunta colonne subfile: Decodifiche
Nel dizionario di Webgate400 viene codificato per ogni campo che programma usare per decodificarlo (tecnica usata anche in DBLink, FastQuery, ecc.)
Il programma chiamato ha una struttura di parametri fissa, ma potrebbe essere usato un pgm standard per le decodifiche utilizzata attraverso il files DECOD
22[webgate400 08/10/2009]
Implementazioni “avanzate”
interfaccia
Aggiunta colonne subfile: DecodificheI parametri di questo programma di decodifica saranno:
Per le decodifiche composte, è previsto il “campo associato”
23[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: Exit Program
Verrà richiamato il programma dichiarato passando due particolari strutture di parametri:
• La prima è unica e identificherà quante strutture del secondo tipo verranno passate, che dimensione avranno e in quale struttura c’è il campo che si deve valorizzare
• La seconda struttura verrà ripetuta “n” volte e contiene l’intero elenco dei campi del formato record con le sue caratteristiche, compreso dove nel buffer si trova il dato
24[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: Exit ProgramQueste sono le strutture: vedere esempio CWG009
25[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: Formula
Valgono le () e sono ammessi i classici operatori algebrici.
Dovendo far riferimento ad un dato presente su un altro formato (esposto): &nomeformato.nomecampo
26[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: SQL
Rispettando la sintassi dell’SQL, è possibile fare delle “SELECT” utilizzando come WHERE I campi presenti a video (non necessariamente lo stesso formato).
Per sfruttare il fatto che da una Select potremmo recuperare più campi, è stato introdotto il concetto di campo “Master” e campo “Slave”. Quindi può essere eseguita una sola Select che popola più colonne aggiunte.
27[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: SQL
Nel caso riportato sopra, la Select riguarda più campi: JANIN1, JANIN2, JANLOC, JANPRV
Se non diversamente specificato, il primo campo in Select viene utilizzato per popolare questa colonna aggiunta. Il nome della nuova colonna sarà utilizzato come “Master” in modo da ripartire gli altri campi (JANIN2, JANLOC, JANPRV) su altrettanti nuove colonne aggiunte.
28[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: SQL
Nel caso riportato sopra, la Select riguarda più campi: JANIN1, JANIN2, JANLOC, JANPRV
Se non diversamente specificato, il primo campo in Select viene utilizzato per popolare questa colonna aggiunta. Il nome della nuova colonna sarà utilizzato come “Master” in modo da ripartire gli altri campi (JANIN2, JANLOC, JANPRV) su altrettanti nuove colonne aggiunte.
29[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaAggiunta colonne subfile: SQL
Questo sarà quello che metteremo nel secondo campo aggiunto (il “Campo Riferimento” è utile se il nome del campo aggiunto è diverso da quello utilizzato nel comporre lo statement Sql sul campo Master)
E così via…..
30[webgate400 08/10/2009]
Implementazioni “avanzate”
interfacciaI ColoriLa gestione dei colori avviene
tramite il menù Strumenti + Gestione Colori.
Un utente Designer può memorizzare i colori scelti.
Le impostazioni Company/Utente vengono salvate su IFS nella cartella /webgate400/styles (crearla se assente). Le impostazioni di default devono essere create da un Client e poi copiate dalla cartella di cache /IndirizzoIP/Styles alla cartella /webgate400/styles, chiamando l’XML: default.xml
31[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Le Tabs e gli attributi di formato:Sono SQL con cui possiamo “arricchire” un video direttamente
da interfaccia.Possono essere:• Statiche (la “where” è fissa)• Dinamiche (la “where” è legata a qualche altro campo
presente a video (sia parte fissa che subfile)Non dobbiamo dimenticare che all’interno delle Tabs,
possiamo utilizzare i “Format Attribute” di Webgate400 per creare Gerarchizzazioni (con Riepiloghi) e possiamo anche introdurre le chiavi per poter generare un grafico.
32[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Le Tabs e gli attributi di formato:Il programma CWG002 altro non è che un video vuoto (lato
codice, solo EXFMT), e attraverso questa Tabs
diventa qualcosa di fruibile
33[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Le Tabs e gli attributi di formato:Addirittura in grado, premendo l’apposito pulstante di
produrre immediatamente un grafico.
34[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Immagini e Button Image:Facilmente vengono messe nei form Immagini, Text Icons e
Extended Icons (per I Button Image).E’ utile ricordare che è possibile utilizzare proprie immagini
(soprattutto .ico), magari mettendole in una sottocartella della /WGPublic.
Sia per le Text Icons che per le Extended Icons è utile ricordare che per “standardizzare” le descrizioni associate è possibile codificale nel file XFIMG della propria libreria oggetti (anche quando hanno associato un comando)
35[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Keyword “poco” conosciute:• <w>*hide</w>: utilizzata sui campi Hidden, impedisce che
un informazione non utile in grafica venga passata dal Server al Client.
• <w>*cpyright</w>: abbinata a un campo del formato video, ne sposta il contenuto al posto della dicitura ‘Powered by IBM ISeries’ (se questa dicitura è disabilitata a livello di configurazione runtime)…
• <w>*fit</w>: adatta le immagini alla dimensione reale del campo.
36[webgate400 08/10/2009]
Alcune “facility”
di Webgate400Keyword “poco” conosciute:• <w><h>intestazione_colonna</h></w>:
– Semplice: una sola descrizione– Condivise: si raggruppano diverse intestazioni tramite una parte
comune: se contigue l’effetto è:– Variabile: <h>nomeFormato.nomevariabile</h>– File Messaggi: <h>&filemessaggi.mic</h> In tutti I casi, se presente anche costante/variabile a video, è
necessario attribuirle la keyword (<w>*ignore</w>)
37[webgate400 08/10/2009]
Più
avanti nella Modernizzazione%Bif:E’ possibile utilizzare le %Bif (Build in Function) anche
quando riguardano le operazioni di I/O con il DSPF: Chain Subfile If %Found(Subfile); ReadC Subfile If %Eof(Subfile)L’unico prerequisito è che dopo la %Bif sia sempre dichiarato il nome
del formato record utilizzato.
Rpg/free:E’ possibile utilizzare l’RPG/Free anche per le parti di
gestione del DSPF.
38[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneDrag & Drop:L’effetto del Drag & Drop avviene tramite un particolare tipo di
Service Command.Viene invocato il Service Command quando uno o più
elementi a video specifici vengono “draggati”. Il Comando può già autonomamente chiamare dei componenti di “Gestione dell’oggetto” (Interrogazione, Modifica, Cancellazione, Stampa), oppure compiere un azione che un altro programma, attraverso un artificio (non esistono eventi in RPG!), può intercettare.
39[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneDrag & Drop:Gli esempi CWG004 e CWG005 sono stati predisposti proprio
per dimostrarne l’effetto.
Dal pgm Origine (CWG004) sarà possibile “draggare” uno o più Codici Cliente nel pgm Destinazione (CWG005)
40[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneDrag & Drop:Il Service Command è stato realizzato in questo modo: da
notare il 1° parametro ‘*DS’ e 6° che è ‘&5’ e non ‘%5’
41[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneLOBS: Gestione di oggetti complessi all'interno di applicazioni 5250
convertite Webgate400.Obiettivo: poter gestire oggetti esterni come fossero dati nativi
delle applicazioni, utilizzando una tecnica simile a quella utilizzata per la gestione dei CLOB/BLOB dal DB/2, ma semplificata dal punto di vista della programmazione.
L’utilizzo richiede conoscenza delle tecniche di realizzazione e gestione degli oggetti CLOB (Character Large Object) o BLOB (Binary Large Object):
No!!
42[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneLOBS: Alla data sono gestiti due tipi di oggetti LOB: Txt e MhtL’esempio CWG003 dimostra l’utilizzo di entrambe i controlli.I campi lob devono avere il nome con il prefisso WLOB_ e
devono necessariamente essere lunghi 18Char. Devono avere la TEXT <lob> … </lob>, qualificante come
negli esempi seguenti:<w><lob>txt h:10 w:80 s:F1 d:F4 l:F5 </lob></w><w><lob>mht h:10 w:80 s:F1 d:F4 l:F5</lob></w>
Le key s: (tasto save), d: (tasto delete), l: (tasto lose change)
43[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneLOBS: Il programmatore deve fondamentalmente occuparsi di
salvare sui suoi normali archivi il campo lungo 18Char!Vengono archiviati su IFS in un particolare percorso:
/WGPublic/Lobs/lobstore_subdir/annomese/UNIDE.xxxI Lobs possono essere trasportati da un sistema all’altro
semplicemente salvando e ripristinando la directory IFS che li contiene (non va mai salvato il loro indice).
Hanno una serie di Api per automatizzare alcune funzioni: Copia, Rebuild index, Delete, ecc.
44[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneLOBS: Il Lobs “Txt” è un oggetto che permette di gestire a video un
editor avanzato (anche se solo testuale) e permette di creare/modificare/stampare testi direttamente dai pgm.
45[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneLOBS: Il Lobs “Mht” è un oggetto che permette di gestire a video un
editor avanzato (quello di Outlook Express) e permette di creare/modificare documenti direttamente dai pgm.
46[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneScript e WGEXEIOUT: Alcuni applicativi creano/gestiscono documenti (tipo .pdf, .doc,
.xls, .html, .xml) e hanno la necessità di aprirli da un programma.
L’utilizzo dell’STRPCCMD (anche emulato da Webgate400) funziona se il documento è già sul PC (o in un percorso di rete).
Se invece l’oggetto è su IFS (non condiviso) è possibile usare il componente WGEXEIOUT per aprire il documento da programma.
47[webgate400 08/10/2009]
Più
avanti nella ModernizzazioneScript e WGEXEIOUT: L’esempio CWG008 dimostra come sia possibile creare un
semplice files HTML su IFS per poi aprirlo direttamente.La stessa cosa può essere utilizzata tramite Link (exei://)
richiamando un programma RPG: Il Print Box di Webgate400, fondamentalmente fa questo.
48[webgate400 08/10/2009]
….fine….
Grazie a tutti dell’attenzione!
Top Related