webgate400 08/10/2009 - Golden Lake Evolution

Transcript

webgate400 08/10/2009 - Golden Lake Evolution
Argomenti della Giornata
Webgate400
•
•
•
•
•
•
Nuova architettura di Webgate400
Implementazioni “semplici” Interfaccia
Nuova “Configurazione Runtime”
Implementazioni “avanzate” Interfaccia
Alcune “facility” di Webgate400
“Più avanti” nella Modernizzazione
[webgate400 08/10/2009]
1
Nuova architettura di Webgate400
Webgate400
A 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à)
[webgate400 08/10/2009]
2
Nuova architettura di Webgate400
Webgate400
Vantaggi:
• 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
[webgate400 08/10/2009]
3
Nuova architettura di Webgate400
Webgate400
Svantaggi:
Questa pagina è stata intenzionalmente lasciata vuota
[webgate400 08/10/2009]
4
Nuova architettura di Webgate400
Attivazione:
• Agendo sul file WG4SYSFD/ODAZI (record EDM/999999)
• Da Gestione Ambienti On Demand
[webgate400 08/10/2009]
5
Implementazioni “semplici” Interfaccia
• Combinazione tasti ALT+R per simulare tasto destro del
mouse su incrocio subfile
Webgate400
•
•
•
•
•
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):
[webgate400 08/10/2009]
6
Implementazioni “semplici” Interfaccia
• Marcatura Campi Input Subfile.
Webgate400
• 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)
[webgate400 08/10/2009]
7
Nuova “Configurazione Runtime”
• Nuovo look interfaccia principale
• Ripartite logicamente le “Gestioni”
Webgate400
• Più chiare (e immediate) le selezioni
• Personalizzabili chiamate
funzioni Sistema
[webgate400 08/10/2009]
8
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
Webgate400
•
•
•
•
[webgate400 08/10/2009]
9
Implementazioni “avanzate” interfaccia
Filtri Subfile
Webgate400
• 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 jdtreg
BETWEEN 20070101 AND 20071231
)
[webgate400 08/10/2009]
10
Implementazioni “avanzate” interfaccia
Filtri Subfile
Webgate400
…continua Sintassi SQL (where).
Esempio 2:
– Filtrare i clienti che hanno prodotto (in totale) più di yyyyyy
IN(
SELECT fmtccl FROM prd5000f
GROUP BY fmtccl
HAVING SUM(fmsnmt01)<3000
)
[webgate400 08/10/2009]
11
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Esempio 3:
Webgate400
–
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‘
)
[webgate400 08/10/2009]
12
Implementazioni “avanzate” interfaccia
Filtri Subfile
Webgate400
…continua Sintassi SQL (where).
Esempio 4:
– Filtrare solo i clienti che si chiamano “ROSSI”
LIKE ‘%ROSSI’
Oppure
LIKE ROSSI
[webgate400 08/10/2009]
13
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Webgate400
• 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)
[webgate400 08/10/2009]
14
Implementazioni “avanzate” interfaccia
Filtri Subfile
Webgate400
Salvataggio Filtri con Estremi Personalizzazione
[webgate400 08/10/2009]
15
Implementazioni “avanzate” interfaccia
Filtri Subfile
Richiamo filtri salvati
L’applicazione di un filtro
è percepibile perché l’intestazione
di colonna diventa Rossa
[webgate400 08/10/2009]
16
Implementazioni “avanzate” interfaccia
Accesso non Vedenti
E’ 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.
[webgate400 08/10/2009]
17
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile
Tramite un apposita interfaccia
(richiamabile dal menù StrumentiPersonalizzazioni-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).
[webgate400 08/10/2009]
18
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile
I campi che possono essere aggiunti possono essere
valorizzati in quattro modalità diverse:
• DECODIFICHE
• EXIT PROGRAM
• FORMULE MATEMATICHE
• ISTRUZIONI SQL
[webgate400 08/10/2009]
19
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Parte comune
Tutti i 4 tipi di aggiunta hanno in comune il primo pannello di
dati:
[webgate400 08/10/2009]
20
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
[webgate400 08/10/2009]
21
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Decodifiche
I parametri di questo programma di decodifica saranno:
Per le decodifiche composte, è previsto il “campo associato”
[webgate400 08/10/2009]
22
Implementazioni “avanzate” interfaccia
Aggiunta 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
[webgate400 08/10/2009]
23
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Exit Program
Queste sono le strutture: vedere esempio CWG009
[webgate400 08/10/2009]
24
Implementazioni “avanzate” interfaccia
Aggiunta 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
[webgate400 08/10/2009]
25
Implementazioni “avanzate” interfaccia
Aggiunta 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.
[webgate400 08/10/2009]
26
Implementazioni “avanzate” interfaccia
Aggiunta 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.
[webgate400 08/10/2009]
27
Implementazioni “avanzate” interfaccia
Aggiunta 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.
[webgate400 08/10/2009]
28
Implementazioni “avanzate” interfaccia
Aggiunta 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…..
[webgate400 08/10/2009]
29
Implementazioni “avanzate” interfaccia
I Colori
La 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
[webgate400 08/10/2009]
30
Alcune “facility” di Webgate400
Le 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.
[webgate400 08/10/2009]
31
Alcune “facility” di Webgate400
Le 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
[webgate400 08/10/2009]
32
Alcune “facility” di Webgate400
Le Tabs e gli attributi di formato:
Addirittura in grado, premendo l’apposito pulstante
produrre immediatamente un grafico.
[webgate400 08/10/2009]
di
33
Alcune “facility” di Webgate400
Immagini 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)
[webgate400 08/10/2009]
34
Alcune “facility” di Webgate400
Keyword “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.
[webgate400 08/10/2009]
35
Alcune “facility” di Webgate400
Keyword “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>)
[webgate400 08/10/2009]
36
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.
[webgate400 08/10/2009]
37
Più avanti nella Modernizzazione
Drag & 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.
[webgate400 08/10/2009]
38
Più avanti nella Modernizzazione
Drag & 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)
[webgate400 08/10/2009]
39
Più avanti nella Modernizzazione
Drag & Drop:
Il Service Command è stato realizzato in questo modo: da
notare il 1° parametro ‘*DS’ e 6° che è ‘&5’ e non ‘%5’
[webgate400 08/10/2009]
40
Più avanti nella Modernizzazione
LOBS:
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!!
[webgate400 08/10/2009]
41
Più avanti nella Modernizzazione
LOBS:
Alla data sono gestiti due tipi di oggetti LOB: Txt e Mht
L’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)
[webgate400 08/10/2009]
42
Più avanti nella Modernizzazione
LOBS:
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.xxx
I 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.
[webgate400 08/10/2009]
43
Più avanti nella Modernizzazione
LOBS:
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.
[webgate400 08/10/2009]
44
Più avanti nella Modernizzazione
LOBS:
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.
[webgate400 08/10/2009]
45
Più avanti nella Modernizzazione
Script 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.
[webgate400 08/10/2009]
46
Più avanti nella Modernizzazione
Script 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.
[webgate400 08/10/2009]
47
….fine….
Grazie a tutti dell’attenzione!
[webgate400 08/10/2009]
48