Manuale Sist.Strumenti Customizzazione W

Transcript

Manuale Sist.Strumenti Customizzazione W
Strumenti di Customizzazione – Manuale Sistemista
Strumenti di Customizzazione
Paragrafo-Pagina di Pagine 1-1 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
SOMMARIO
1
INTRODUZIONE ................................................................................................................1-3
2
STRUMENTI DI CUSTOMIZZAZIONE ..................................................................................2-3
2.1
2.1.1
2.2
Editor SQL ........................................................................................................................................... 2-3
Specifiche Visualizzazione SQL ........................................................................................................... 2-6
Gestione Interrogazioni Generiche (G5)................................................................................................... 2-11
2.2.1
Default Parzializzazione Interrogazione .............................................................................................. 2-13
2.2.2
Funzioni di Parzializzazione .............................................................................................................. 2-14
2.2.3
2.3
2.3.1
2.4
Comando esecuzione interrogazioni EXEEG5 ....................................................................................... 2-15
Manutenzione Procedure e Funzioni SQL (Stored Procedures e UDF) (HU) .................................................... 2-15
Debug procedure ............................................................................................................................ 2-18
Gestione programmi EXIT (HX) .............................................................................................................. 2-20
2.4.1
Schema di funzionamento ................................................................................................................ 2-24
2.4.2
Utilizzo delle Formule ...................................................................................................................... 2-25
2.4.3
Inner Join ...................................................................................................................................... 2-26
2.4.4
Utilizzo funzioni SUF_ in istruzioni SQL............................................................................................... 2-26
2.4.5
Variabili disponibili .......................................................................................................................... 2-27
2.5
Manutenzione File Messaggi (EP) ............................................................................................................ 2-27
2.6
Fast Query (Vedi manuale specifico) ....................................................................................................... 2-29
2.7
Aggiunta Colonne SubFile con Webgate400.............................................................................................. 2-29
2.7.1
Valorizzazione del campo tramite espressioni SQL ............................................................................... 2-31
2.7.2
Valorizzazione tramite formula.......................................................................................................... 2-33
2.7.3
Valorizzazione di campi da Programmi esterni ..................................................................................... 2-33
2.7.4
Trattamento dei campi UNICODE (tipo G) ........................................................................................... 2-34
2.7.5
Aggiunta di una colonna LINK e/o Immagine....................................................................................... 2-34
2.7.6
Aggiunta di una colonna ICONA ........................................................................................................ 2-36
2.8
Command Services .............................................................................................................................. 2-37
2.8.1
Comman Services di tipo Drag and Drop ............................................................................................ 2-38
2.8.2
Tips .............................................................................................................................................. 2-40
2.9
Sintassi delle Variabili e Campi............................................................................................................... 2-40
2.10
Monitor Data Base (STRDBMON) ........................................................................................................... 2-40
2.11
Interrogazione LOG dall‟Applet .............................................................................................................. 2-41
Paragrafo-Pagina di Pagine 1-2 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
1 INTRODUZIONE
Gli strumenti illustrati di seguito hanno lo scopo di facilitare i reparti di consulenza e assistenza nel soddisfare le richieste dei
clienti sia in termini di aderenza alle specifiche esigenze che di tempestività dell‟intervento.
Al tempo stesso, servono per mantenere la politica dello sviluppo standard senza gravare lo stesso di funzionalità e forme di
visualizzazione di scarso rilievo per l‟interesse collettivo. Questo obiettivo, si rivela particolarmente importante al fine di non
far proliferare all‟infinito campi, colonne, opzioni, tasti di funzione che alla lunga rendono poco intuitivo l‟uso del prodotto.
A CHI È DESTINATO
Agli operatori di applicativi gestionali che per la mansione assegnata consultano oggetti dati supportati dal sistema
informativo aziendale.
CONSIGLI
Quando si decide di utilizzare sul proprio sistema questi strumenti, ricordarsi di aggiungere nei salvataggi serali delle librerie
WEBG4FD e WGFRnnnnD se non è già stato previsto. Se si utilizzano dei *MSGF Custum creati nelle librerie in lingua come
ad esempio WGLANGITA ricordarsi che anche queste librerie vanno salvate.
COME RAGGIUNGERE LE FUNZIONI
Semplicemente dal Menù di WEGGATECVT in : Menù ambiente Applicazioni->Strumenti Customizzazione
2 STRUMENTI DI CUSTOMIZZAZIONE
2.1 Editor SQL
E‟ disponibile su svariati elaborati di Customizzazione, in gestione attributi oggetti e in Query Command, richiede però come
prerequisito “Microsoft NET Framework 4” installato. Consente l‟inserimento di una o più istruzioni SQL concatenate, in un
formato semplice e facile da leggere. E‟ possibile inserire comunque l‟istruzione scrivendo tutto di seguito,ci pensa poi l‟editor
a formattarla e renderla più facilmente leggibile e ad eseguire in automatico i controlli di sintassi e di rispetto della lunghezza
delle istruzioni ove ci fossero queste restrizioni, come nel caso dello statement “CREATE PROCEDURE” o “CREATE FUNCTION”
se il testo eccedente gli 80 caratteri, questo viene evidenziato in rosso. Ove presenti dei parametri nell‟istruzione , questi
sono evidenziati con un diverso colore. Nella cornice in alto, ci sono delle icone che richiamano alcuni dei comandi disponibili
anche con “Clik Sinistro” sulla finestra nera dell‟editor.
Figura 2.1-I (RFQX04FM/W11)
Paragrafo-Pagina di Pagine 2-3 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
“Espandi/Riduci” consente di passare dall‟immagine ristretta, al formato esteso (e viceversa) per consentire la lettura
completa anche di stringhe di comando lunghe
“Formatta” dove inserite istruzioni SQL compattate, spezzetta le istruzioni presentandole in un formato più leggibile e
facile da interpretare ad eccezione di statement di tipo “CREATE PROCEDURE” e “CREATE FUNCTION”. Questa funzione parte
anche in automatico ogni volta che si entra in un oggetto SQL già salvato.
“Verifica Query” in fase di stesura dei comandi SQL, lanciando questa funzione è possibile verificare eventuali errori di
sintassi dei comandi inseriti. Per ogni statement, viene mostrato il risultato di tale analisi ed in caso di errore, selezionando
il MSG presentato, viene suggerita/evidenziata all‟interno dell‟Editor la riga trovata in errore.
“Esegui SQL” sempre in fase di stesura delle istruzioni SQL , consente di eseguire l‟istruzione SQL e visualizzarne il
risultato ottenuto. Con la versione 8.0.0.52 di Webgate è possibile richiedere l'esecuzione di una query che contiene parametri,
anche se non è previsto che questi vengano richiesti da prompt come potrebbe essere quando i parametri provengono da Videate. Il
sistema automaticamente rileva tutti i parametri query e propone di inserire un valore da utilizzare durante l'esecuzione.
“Aggiungi Specifiche” permette di richiamare la finestra in cui impostare le “Specifiche di Visualizzazione SQL”. Vedremo
in seguito come viene compilata
“Visualizza Specifiche” consente di visualizzare le specifiche inserite nell‟istruzione SQL secondo ancora il vecchio
formato. Queste, ove possibile, andrebbero rimosse e convertite secondo il nuovo formato che vedremo tra poco.
“Intellisense” ( non disponibile con icona ) consente di richiedere al programma il suggerimento dei nomi di campi o file che
iniziano con le lettere appena digitate. La funzione sulla base della posizione del cursore all‟interno dello statement, riconosce
se la parola che si sta digitando è un nome di file o campo, e filtra di conseguenza i suggerimenti mostrandone il nome e la
sua descrizione.
Figura 2.1-II (RFQX04FM/W11)
“Verifica Lunghezza Stringa” Nel caso lo statement editato sia una “CREATE PROCEDURE” o una “CREATE FUNCTION”, il
testo eccedente gli 80 caratteri consentiti dall‟istruzione viene evidenziato in rosso. Queste funzioni non possono essere
eseguite direttamente ma devono prima essere salvate su file in AS/400, sottostando al limite imposto dal sistema operativo
degli 80 caratteri per riga.
“Insert Snippet” ( non disponibile con icona ) consente di inserire all‟interno dell‟editor, nel punto in cui è posizionato il
cursore, blocchi predefiniti di codice SQL come potrebbe essere una SELECT, una INSERT, o una CREATE VIEW.
“Wizard” consente di inserire all‟interno di una Query SQL una funzione predefinita attraverso un interfaccia che guida la
definizione dei suoi parametri richiesti. Per prima cosa viene mostrata una lista di funzioni disponibili da poter utilizzare
nelle istruzioni SQL. Evidenziando la riga relativa alla finzione che si vuole utilizzare e premendo il pulsante “Avanti” viene
mostrata la funzione ed i parametri richiesti da compilare. Una volta completati, viene reso all‟interno dell‟editor, nel punto
dove si è posizionati con il cursore, la stringa compilata della funzione selezionata.
Paragrafo-Pagina di Pagine 2-4 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
selezioniamo ad esempio una funzione di interrogazione logistica
dichiariamo la variabile e selezioniamo il valore risultato
tra quelli disponibili per la funzione
l‟istruzione viene quindi compilata
e confermando “Ok”, viene riportata all‟interno dell‟editor
Su funzioni già presenti all‟interno dell‟istruzione SQL è possibile raggiungere la videata e quindi modificarle in modo rapido
evidenziando la funzione dall‟editor con un doppio clik sulla WUF_xxx, premendo poi l‟icona del “Wizard”.
“Altro sull‟Editor ..” Le parole chiave, come pure i parametri presenti all‟interno della query vengono riconosciuti dal sistema,
e colorate in maniera appropriata per evidenziarli.
Paragrafo-Pagina di Pagine 2-5 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
2.1.1 Specifiche Visualizzazione SQL
Utilizzando questa funzione richiamabile dell‟ Editor SQL, si possono attribuite alle colonne dell‟ istruzione SELECT preposta
alla visualizzazione dei dati, una serie di funzioni quali parametri, livello di gerachizzazione, calcolo di somma, media minimo,
massimo, funzioni relative alla costruzione di grafici, hyperlink, pivot (Cross Query). L‟ associazione tra colonna e funzione,
avviene attraverso l‟Alias che deve essere assegnato ad ogni colonna ottenuta attraverso una espressione. Per colonne che
devono essere utilizzate dalle funzioni relative a Command Services e Allegati (Gestione Documentale Database Links),
devono essere utilizzati Alias corrispondenti ai nomi di variabile (o desinenze delle stesse) o non utilizzati affatto se il nome
della colonna corrisponde già a quella definita nel dizionario (vedi colonna XCODAN, XUSERI, ecc…).
Figura 2.1-III (RFQM8FM/T2CTL)
L‟intestazione se non indicata, viene presa dal dizionario dei campi di data base, diversamente è possibile indicarla all‟interno
delle specifiche. Nell‟esempio riportato, alcune colonne sono raggruppate sotto un titolo principale, è il caso di “Dipendente”.
Per ottenere questo, si devono tenere distinte le due stringhe di intestazione dai caratteri “//” come “Dipendente//Codice”
mentre “Indirizzo E-Mail” o “Telefono cellulare” non appartengono a nessun raggruppamento di colonne.
Con “Parametro” viene dichiarato il “Numero” progressivo del parametro ed il “Campo a Video” di destinazione del dato; la
codifica è “TEXMAN01” nome del campo a video che riceverà il dato selezionato e “T1CTL.” il suo formato video. Prendiamo
come esempio la precedente “Specifica” riportata, applicata come personalizzazione ad un video di ricerca “Clienti/Fornitori”.
Selezionando l‟apposita icona presente sull‟interrogazione SQL , il campo mansione esposto in riga è ribaltarlo nel campo
T1CTL.TEXMAN01 che corrisponde al primo campo di testata dei filtri per mansione.
Paragrafo-Pagina di Pagine 2-6 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Con “Gerarchia” si vanno a numerare i livelli di gerarchia con cui verranno esposti i dati. Nell‟esempio qui riportato, ci si
limita a raggruppare per il solo Codice Mansione.
Con “Nascondi” è possibile non esporre delle colonne estratte perché necessarie per altri scopi come potrebbero essere i
campi Hyerlink come vedremo.
Attraverso “Funzione” si possono effettuare calcoli di riepilogo delle colonne come “T_otale” , “M_edia” , “C_onteggio” ,
“M_assimo” e “M_inimo”.
Attraverso “Hyperlink” è possibile ottenere che i dati delle colonne configurate possano essere selezionabili e richiamino dei
comandi secondo quanto configurato nell‟istruzione SQL. Vediamo un esempio e cerchiamo di chiarire come funziona.
Questa è un interrogazione sul mansionario dei Clienti/Fornitori dove possiamo vedere all‟interno dei campi della SELECT due
comandi “EXEC://” che richiamano dei programmi, ad essi sono stati associati degli ALIAS.
Paragrafo-Pagina di Pagine 2-7 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Come si vede, attraverso una numerazione, sono stati correlati tra loro il campo “Descrittivo” di hyperlink con il campo che
contiene il comando relativo che sarà eseguito quando selezionato il campo descrittivo. Si può anche notare nell‟esempio,
che il campo contenete il comando è nascosto. Nella Query quindi troveremo il campo “Dipendente” e “Utente” che saranno
selezionabili e riconoscibili a video dalla “sottolineatura”.
Il comando previsto nell‟esempio è una registrazione di una bolletta , e quindi selezionandolo avremo ………
Oltre al comando “EXEC://” sono possibili anche altri comandi. La lista e la loro sintassi è possibile trovarla nel “Manuale
Webgate400 Converter Tutorial”, riportiamo comunque uno stralcio.
Comando
Tipo
„http://www.webgate400.com‟
URL
„/webgate400/images/rubinetto.gif‟
URL – IFS iSeries Server
„EXEC://CALL PGM(ABCV) PARM(„1‟
„DD‟)‟
CALL RPG con emissione nuova finestra
„EXEB://CALL PGM(ABCV) PARM(„1‟
„DD‟)‟
CALL RPG batch (senza video)
„EXEI://CALL PGM(ABCV) PARM(„1‟
„DD‟)‟
CALL RPG che produce un output da
gestire (vedere inserzione script)
„SQLI:// SELECT‟
SQL su nuova finestra
Esempio
Attraverso “Chart” è possibile configurare i campi su cui poi poter ottenere dei grafici, con la funzione disponibile sull‟applet.
Vediamo come impostare i dati , attraverso un semplice esempio, analisi del venduto per anno suddiviso per classe.
Paragrafo-Pagina di Pagine 2-8 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Il campo XCLASS , codice della classe è estratto , ma non visibile, la sua descrizione è definita come un elemento di
gerarchia, del Valore vogliamo il totale. Nei parametri “Chart” andiamo a definire come comporre il grafico, con “Categoria”
impostiamo l‟asse “X” del grafico, campo DCLASS, con “Valore 1” l‟asse “Y”, campo XPREZE totalizzato e con “Serie”
definiamo il campo XANFAT su cui dovranno essere generati più grafici.
Questo è il risultato applicato su una TAB inserita come personalizzazione di un elaborato, richiamando la funzione “Grafico”
dell‟applet. Il campo “Serie” come si vede, ha generato più grafici di colori diversi.
Paragrafo-Pagina di Pagine 2-9 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Attraverso i parametri “Pivot” è possibile costruire una Query SQL a campi incrociati. In “Ruolo” si indica la natura del
campo che può essere “Pivot” per cui ogni valore verrà esposto su una colonna nuova, “Riga” (Massimo 3 campi) che
servono come chiave di raggruppamento dei dati di lettura (è possibile una gerarchizzazione), “Dati” (Massimo 5 campi) che
sono i campi dei dati visualizzati sotto il “Pivot” per ognuno dei quali è possibile impostare varie tipologie di “Azioni” come
chiedere che il campo sia “Decodificato” con un limite di “Lunghezza” della stringa esposta. In riferimento ai campi definiti
come “Dati” si possono chiedere calcoli come lo scostamento a valore e/o in percentuale tra una colonna “Pivot” e l‟altra. E‟
anche possibile chiedere di omettere il “Totale Generale” delle colonne totalizzate esposte per ogni raggruppamento “Pivot”.
Figura 2.1-IV (RFQM08FM/T2CTL)
Riportiamo qui un esempio di utilizzo di questa tecnica. Cliente XCODAN e Classe XCLASS sono campi “Gerarchizzati di livello
1 e 2”, sono definiti come campi di riferimento di “Riga (ruolo) ” nella struttura dalle Cross Query e se ne chiede la decodifica
che viene limitata a 30 caratteri (effetto finale evidenziato in Rosso e Verdone). L‟anno di fatturazione XANFAT è il campo
“Pivot (ruolo)” della query e lo vediamo come testata del gruppo di colonne (effetto finale evidenziato in Fuxia). I campi
XPRZTE, XNUMER e XPNET sono campi “Dati (ruolo)” della Cross Query, di questi viene chiesto il totale e solo per XPRZTE
viene chiesto lo scostamento a “Valore” e “Percentuale” (effetto finale evidenziato in Viola). Nella definizione di “Pivot” è
richiesto di omettere il totale generale di tutti gli anni estratti per il campo XPNET ed infatti la colonna “Peso” la troviamo per
ogni anno raggruppato, ma non tra le colonne di Totale Generale (effetto finale evidenziate in Verde).
Figura 2.1-V (RFQX07FM/T2)
Attraverso “Modificabile” è possibile dichiarare che alcuni campi esposti a video possono essere modificabili dall‟operatore.
E‟ necessario dichiarare anche il file di destinazione del dato modificato, questo potrebbe essere un limite se i campi che si
vogliono modificare provengono da più files. Il programma che recepisce la modifica, crea una “chiave” di filtro dei record da
aggiornare combinando tutti i campi appartenenti al file dichiarato, con i relativi valori ripresi della riga selezionata e procede
aggiornando tutti i record che entrano in tale filtro, è quindi opportuno valutare con attenzione come si imposta attiva questa
funzione per non ottenere spiacevoli risultati, un consiglio potrebbe essere quello di inserire, eventualmente come campo
nascosto, la chiave effettiva del file che si andrà ad aggiornare.
Figura 2.1-VI (RFQM08FM/T2CTL)
Paragrafo-Pagina di Pagine 2-10 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Con un “doppio click” sul numero riga che si vuole selezionare, si richiama la finestra di aggiornamento dei dati. Solo
selezionando “Salva/Continua” o “Salva” i dati vengono aggiornati fisicamente sul file. Riportiamo qui un esempio
realizzato come personalizzazione di una TAB di un elaborato dove è prevista la possibilità di aggiornare il campo “Utente”.
Per concludere, vediamo le impostazioni dei dati di testata “ID” e dei “Parametri Generali”
Con “Applicazione” viene indicato l‟ambiente applicativo a cui si riferisce la query SQL, “002” indica lo WEBGATE, “006” indica
il Dblink, ecc…con “Descrizione” si imposta il titolo della Query SQL che verrà esposto a video all‟utilizzatore. L‟ impostazione
di “Standard” è riservata a EDM e riguarda tutti quegli SQL che vengono rilasciati ai clienti con gli aggiornamenti.
Se si seleziona “Emissione Sincrona” significa che l‟ istruzione SQL è contemporanea all‟emissione del video, viene elaborata
subito, se non selezionato, parte solo su richiesta dell‟operatore quando apre la TAB che interessa.
“Condizioni Esecuzione” consente di eseguire l‟interrogazione SQL solo “Se cambiato” il valore del campo di riferimento, solo
“Se richiesto” dall‟operatore oppure “Sempre” eseguita ad ogni azione sul video da parte dell‟operatore.
2.2 Gestione Interrogazioni Generiche (G5)
L‟ elaborato “G5” consente la creazione e l‟ archiviazione di interrogazioni personalizzate ad uso dell‟operatore.
Le interrogazioni, possono essere ricercate e richiamate attraverso l‟apposito pulsante oppure con il tasto funzione F2.
Dalla ricerca è possibile selezionare un‟interrogazione per eseguirla “1”, modificarla “2”, copiarla “3”, cancellarla “4” o
semplicemente visualizzarla per interrogare le istruzione SQL impostate “5”.
Utilizzando il tasto F6 è possibile creare una interrogazione nuova identificabile da un “Codice” ed una “Descrizione”
Figura 2.2-I (RFQX04FM/W11)
Paragrafo-Pagina di Pagine 2-11 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
ed una “Sezione” facoltativa, che in realtà molto utile per raggruppare per categoria le interrogazioni e/o racchiudere tutte le
interrogazioni per utente o area aziendale a cui sono destinate. La “Sezione” è utilizzabile anche per bloccare l‟accesso ad un
solo gruppo di interrogazioni per uno o più utenti impedendo di vedere tutto, agendo attraverso la manutenzione attributo
oggetti del video, fissando il campo T2CTL.VVXIGSEZ con il nome della “Sessione” desiderata come valore forzato e protetto.
Figura 2.2-II (RGBMS4FM/T2CTL)
Il “Tipo” di Query ne indica la caratterizza ed il tipo di utilizzo. Le “Query Embedded” sono riservate a EDM e sono utilizzate
da alcuni elaborati, esempio ZR, come supporto per velocizzare le interrogazioni, le “Query Custom” hanno il medesimo
scopo, in più riportano delle specifiche di personalizzazione realizzate per soddisfare le esigenze dell‟Utente o/o dell‟Azienda e
possono essere selezionate dall‟operatore in alternativa alle “Embedded” al momento dell‟interrogazione (per ora solo da ZR
, tasto “F11 – Scelta SQL”). La “Query Interattiva” è l‟interrogazione tradizionale, eseguita interattivamente, il cui risultato
viene mostrato direttamente a Video. Può essere eseguita direttamente da G5 o richiamata come ultimo step di una
procedura GK per visualizzare il risultato finale ottenuto.
Il codice “Applicazione” viene indicato per indicare l‟ambiente di lavoro sul quale lavora la query. “Record Standard” è
un‟opzione solo ad uso EDM e consente di creare delle interrogazioni che verranno rilasciate a tutti i clienti attraverso gli
aggiornamenti periodici di WEBGATE.
Il “Numero Query” e la relativa “Descrizione” servono per organizzare delle ulteriori interrogazioni G5, visibili secondo la
modalità TAB, che si alimentano automaticamente dai dati risultato della query principale dall‟apposita icona di selezione
della riga. Di seguito un esempio dell‟effetto visivo che si può ottenere. Le query TAB vengono popolate tutte
contemporaneamente in modo da velocizzarne la consultazione e quindi non è necessario prima selezionarla e poi scegliere il
soggetto dalla Query Principale.
Figura 2.2-III (RFQX07FM/T2T0)
Attraverso l‟editor SQL è possibile inserire la/e istruzioni SQL che comporranno l‟interrogazione e definirne le “Specifiche” (si
rimanda ai capitoli specifici del manuale). Riguardo le “Specifiche di Visualizzazione” dell‟interrogazione SQL è opportuno
però precisare bene la modalità con cui devono essere codificati i parametri che la Query Base passa alle TAB secondarie.
Paragrafo-Pagina di Pagine 2-12 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.2-IV (RFQM08FM/T2CTL)
Qui vediamo un esempio. I parametri previsti per sono 9 in tutto e si chiamano da T2T0.SQXP1 a T2T0.SQXP9 dove T2T0
é il nome del formato video della Query Base e SQXP1 - P9 è il nome del parametro che si associa al campo di Data Base.
Questi parametri non possono superare al massimo i 20 caratteri.
Con il video “Gestione Istruzione” del “G5”, il tasto “F2 – Custom e Default” è possibile richiamare una finestra attraverso
la quale “Personalizzare “ l‟utilizzo dell‟interrogazione.
Figura 2.2-V (RFQM04FM/W12)
In “Customizzazione” attivando opportunamente i campi è possibile vincolare e limitare l‟utilizzo della Query. Solo per Query
Custom ed Embedded (ad oggi sono quelle utilizzate da “ZR”), in “Parzializzazione File/Formato” si deve indicare il file video
ed il formato al quale si aggancerà l‟istruzione SQL in oggetto. In “Parzializzazione” è possibile impostare i valori assunti per
difetto dai campi ed in genere delle variabili utilizzate nella interrogazione. In “Visualizzazione” è possibile per le query tipo
“Multitab” definire la posizione iniziale del gruppo consentendo così a seconda della natura dell‟interrogazione, di riservare
più o meno spazio alla Query Principale.
2.2.1 Default Parzializzazione Interrogazione
Consente di impostare i valori assunti per difetto dai campi di parzializzazione ed in genere delle variabili utilizzate nella
interrogazione. Il singolo valore è composto da “Nome Variabile” e “Valore” della Variabile separati da un “=” uguale). Le
variabili vanno separate tra di loro da “;” un punto e virgola. Per i campi data, è disponibile una speciale sintassi come
quella utilizzata per i calcoli sulle date nella “WUF_DCA” (la documentazione è disponibile in linea richiamando “Help
Navigator”)
Paragrafo-Pagina di Pagine 2-13 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
CODARF=ART01;CODART=ART02; ecc
(Esempio di Variabili passate all‟istruzione SQL)
Select XCODAR "P5_Codice", XDSART "Descrizione Articolo", XCLASS, WUF_DEC('001','CLASS',XCLASS) "Descrizione
Classe", XDISEG, 'PARAR' "P1_File", '*BLNK' "P2_Id", '*BLNK' "P3_Flaga", '*BLNK' "P4_Codic" FROM PARAR WHERE XCODAR
BETWEEN '%('CODARF','*DICT:Da Codice Articolo','001','CODAR')' AND '%('CODART','*DICT:A Codice
Articolo','001','CODAR')'
DATADA=*STRYEAR -12 *M
(Inizio anno precedente)
DATADA=*TODAY -30 *D
(30 giorni prima di oggi)
DATADAC=*STRYEAR *NONE;DATAALC=*ENDYEAR *NONE;DATADAP=*STRYEAR -12 *M;DATAALP=*ENDYEAR -12 *M
(Calcola due intervalli di date con anno in corso e anno precedente)
2.2.2 Funzioni di Parzializzazione
Sintassi dell’istruzione con l’utilizzo di campi SENZA dizionario (BM)
%(„Nome Variabile‟,„Testo Prompt‟,‟Lunghezza‟,‟Tipo‟,‟Confronto‟)
…dove :

Nome Variabile = nome max lungo 9 posizioni (senza prefisso %)

Testo Prompt = E‟ il testo che descrive la variabile

Lunghezza = Lunghezza complessiva del campo

Tipo = A - Alfa; N - Numero; D - Data (per editare e rovesciare su prompt).

Confronto = Utilizzato per facilitare la immissione ed il controllo delle variabili immesse a video.
Valori disponibili sono :
1.
Bianco o non specificato, non esegue controlli o automatismi.
2.
>= Limite Inferiore (anche valore inferiore between)
3.
<= Limite Superiore (anche valore superiore between)
4.
LIKE utilizzato con LIKE
Esempio
SELECT XCODIP
, SUM(XMLAVN * %COR1/%COR2)
FROM OPERA
WHERE XDATAB >= %('DATA1','Dalla Data','8','D','>=')
AND XDATAB <
%('DATA2','Alla Data','8','D','<=')
GROUP BY XCODIP
Sintassi dell’istruzione con l’utilizzo di campi CON dizionario (BM)
%(„Nome Variabile‟,‟*DICT‟,‟Codice Applicazione‟,‟Nome Campo in Dizionario‟, ‟Confronto‟)
dove :

Nome Variabile = nome max lungo 9 posizioni (senza prefisso %)

*DICT oppure *DICT:Testo = Costante che indica l‟uso del dizionario

Codice Applicazione = E‟ il codice della applicazione con cui è definito il campo del dizionario

Nome Campo in Dizionario = E‟ il nome del campo definito nel dizionario

Confronto = Utilizzato per facilitare la immissione ed il controllo delle variabili immesse a video. Valori disponibili come
indicato precedentemente.
Paragrafo-Pagina di Pagine 2-14 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Esempio 1 (usa testo prelevato da Dizionario)
SELECT XCODIP
, SUM(XMLAVN)
FROM OPERA
WHERE XCODIP = '%('DIPEND','*DICT','001','CODIP')'
GROUP BY XCODIP
Esempio 2 (Usa testo definito DOPO *DICT:)
SELECT XCODIP
, SUM(XMLAVN)
FROM OPERA
WHERE XCODIP = '%('DIPEND','*DICT:Da Cod.Dipen.','001','CODIP')'
GROUP BY XCODIP
2.2.3 Comando esecuzione interrogazioni EXEEG5
Attraverso il comando EXEEG5 è possibile schedulare in AS400 oppure richiamare in HX l‟esecuzione di un‟ Interrogazione
G5. Il comando prevede possibilità di passare una variabile da 500 caratteri contenente le variabili dell‟interrogazione
codificate secondo la sintassi descritta nel paragrafo “Default Parzializzazione Interrogazione”.
EXEEG5
IGUNI(Nome Interrogazione)
NUMAZ(Azienda)
“Facoltativo”
IGPMF(Variabili dell‟interrogazione)
“Possono essere passate anche variabili calcolate”
Esempio :
EXEEG5
IGUNI(INTERROGAZIONE)
NUMAZ(002)
IGPMF('CODCLI=000123;CODART=ART01;DATABOLLA=*TODAY -30 *D')
2.3 Manutenzione Procedure e Funzioni SQL (Stored Procedures e UDF) (HU)
Sull‟argomento, è bene vedere anche l‟ Help “DB2 for i- SQL Stored Procedure”
La/e “Stored Procedure” non sono altro che dei PROGRAMMI a tutti gli effetti richiamabili tramite una SQL CALL Statement.
Consentono l‟utilizzo al loro interno di parametri di Input passati per l‟esecuzione delle istruzioni SQL e di Output estratti
come risultato di SQL. Rispettano i modelli di sicurezza dei dati IBM-i garantendo il controllo dell‟accesso ai dati e la loro
integrità. Con un‟unica richiesta consentono di avviare transazioni multiple e processi e sono anche utili in quanto sono
facilmente trasportabili quando si lavora in ambienti distribuiti.
Paragrafo-Pagina di Pagine 2-15 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.3-I (RDBS01FM/T2CTL)
Entrando nell‟elaborato, vengono mostrate tutte le procedure già inserite. Il simbolo di spunta vuole indicare le procedure
standard rilasciate da EDM aggiornabili solo caricando le nuove versioni di WEBGATE che vengono rilasciate. Con l‟opzione
“3” è possibile copiarne una esistente oppure con il tasto funzione F6 crearne una nuova.
Figura 2.3-II (RDBS01FM/W1)
Inseriamo la descrizione della procedura, che ci consentirà di riconoscerla, dei commenti che ne spieghino le caratteristiche
ed incominceremo ad inserire gli Statement della procedura.
I campi attributo, sono gestiti interamente dal programma
ed indica Utente, Data e Ora dell‟ultimo salvataggio della procedura, mentre il parametro “Standard” gestibile solo da EDM
sta ad indicare se la procedura verrà o meno rilasciata con gli aggiornamenti WEBGATE e sarà resa disponibile a tutti.
“Sintax to Copy” è utile quando si riprendono istruzioni SQL da altri ambienti e si vuole fare una veloce verifica della sitassi
per utilizzarla corretta all0interno della nostra procedura.
“Istruzioni di DROP” è utile prima di CREARE nuovamente la procedura, cancellare tutti i vecchi riferimenti e questo lo
facciamo con questa istruzione DROP PROCEDURE RTKA14.
Cerchiamo ora di vedere come sono strutturate e scritte queste procedure.
Paragrafo-Pagina di Pagine 2-16 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
CREATE PROCEDURE RTKA14 (IN UNID CHAR(18))
Il programma inizia con questa istruzione, dove definiamo il Nome della procedura “RTKA14” (non più lungo di 10 caratteri)
e la lista dei parametri in IN_put , OUT_put, INOUT input/output definiti attraverso il nome dalla variabile “UNID” la sua
natura e dimensione “CHAR(18)”
LANGUAGE SQL
Dichiara il linguaggio utilizzato.
BEGIN
Definisce l‟inizio della prodedura
DECLARE SQLSTATE CHAR(5);
DECLARE SQLCODE INTEGER;
La dichiarazione di queste due variabili “convenzionali” ci consente all‟interno della procedura di poter controllare eventuali
condizioni o errori durante l‟esecuzione di uno statement SQL. DB2 provvede automaticamente ad aggiornare il valore
delle due variabili dopo l‟esecuzione di ogni statement
DECLARE EOF_REACHED CONDITION FOR SQLSTATE '02000';
Questa forma di definizione consente di associare ad una condizione “SQLSTATE = 02000” un nome da utilizzare all‟interno
della procedura che ci può facilitare nella stesura del programma stesso e ci può renderlo maggiormente comprensibile
quando andremo a riprenderlo per una manutenzione. Per chi programma in linguaggio COBOL è l‟equivalente dei livelli 88.
DECLARE V_XKEY01
CHAR(20);
Alfanumerico da 20 caratteri
DECLARE V_XXDALL
DECIMAL(8, 0);
Numerico da 8 interi e 0 decimali
Questo è il modo per definire le variabili che si utilizzeranno all‟interno della procedura. Queste variabili possono anche
essere inizializzate al caricamento iniziale del programma codificando il valore che vogliamo attribuirgli.
DECLARE BREAK_LOOP INT DEFAULT 0;
La variabile viene caricata inizialmente con il valore Zero.
-- Questa procedura controlla l'usura di Attrezzature Numerate…………….
/* Questa procedura controlla l'usura di Attrezzature Numerate…………….*/
Iniziando la riga con due caratteri “meno” oppure racchiudendo il testo all‟interno di “/*
che facilitano la documentazione della procedura.
*/” è possibile inserire commenti
-- Cursor declaration for EACS structure
DECLARE C1 CURSOR FOR
SELECT I.XUNIDE, T.XKEY01, T.XKEY02, T.XKEY03, T.XKEY04, T.XKEY05, T.XKEY06, T.XNMFLI, I.XXDALL, I.XXOALL
FROM EACSI I INNER JOIN EACST T ON T.XUNIDE=I.XUNIDE
WHERE I.XUNIDE=UNID AND (T.XNMFLI='ATNUM' OR T.XNMFLI='PACAT')
FOR READ ONLY;
-- Handler declaration for EOF condition detected
DECLARE CONTINUE HANDLER FOR EOF_REACHED SET BREAK_LOOP = 1;
OPEN C1;
READ_LOOP:
Questa è una TAG del programma
LOOP
FETCH FROM C1 INTO V_XUNIDE, V_XKEY01, V_XKEY02, V_XKEY03,
V_XKEY04, V_XKEY05, V_XKEY06, V_XNMFLI,
V_XXDALL, V_XXOALL;
IF BREAK_LOOP = 1 THEN
LEAVE READ_LOOP;
ELSE
…………………………………
END LOOP;
CLOSE C1;
END;
Nello stralcio precedente vediamo un Declare Cursor sul Data Base ed un Loop controllato di lettura. Da notare l‟istruzione
“FOR READ ONLY” nella SELECT ad indicare l‟accesso in sola lettura dei dati, consigliata per le particolari performance che si
ottengono nell‟accesso al data base. Attraverso la “DECLARE CONTINUE ….” Viene controllato SQLSTATE per determinare
la fine lettura ed attivare la condizione che controllata con IF fa uscire dal Loop di lettura “LEAVE READ_LOOP”.
Paragrafo-Pagina di Pagine 2-17 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
SET V_ALLARM_ON = 0;
Attraverso l‟istruzione SET è possibile impostare il valore alla variabile.
CALL RIQIAT(V_RATMATRA, V_RATDACER, 'N', ' ', V_RATVALOR, V_RATESITO);
Con il commando CALL è possibile richiamare qualsiasi programma API Standard o altri applicativi.
CASE V_PCXATUTI
WHEN 'a' THEN
SET V_RAUXFATT = 'S';
WHEN 'A' THEN
SET V_RAUXFATT = 'S';
WHEN 'e' THEN
SET V_RAUXFLAV = 'S';
SET V_RAUXFATT = 'S';
WHEN 'E' THEN
SET V_RAUXFLAV = 'S';
SET V_RAUXFATT = 'S';
WHEN 'l' THEN
SET V_RAUXFLAV = 'S';
END CASE;
Qui mostriamo un caso di condizionamento attraverso l‟istruzione CASE.
SUCCESS: RETURN 0;
INS_FAILURE: RETURN 900;
UPD_FAILURE: RETURN 901;
Questo è un‟ esempio di uscita/e dal programma restituendo un codice di ritorno opportunamente valorizzato.
Ultimata la stesura della Procedura si può salvare e compilare con F1 e creare l‟oggetto eseguibile con F2.
2.3.1 Debug procedure
Eseguire una copia della procedura, per poterla modificare e togliere l’attributo “Standard” ed inserire la vista di debug.
Procedura Standard
Figura 2.3-III (RDBS01FM/W1)
Paragrafo-Pagina di Pagine 2-18 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
SET OPTION DBGVIEW=*SOURCE
SP:BEGIN
Procedura modificata per il Debug
Figura 2.3-IV (RDBS01FM/W1)
Utilizzando l’opzione “X” si crea la procedura con viste di debug (Viene sostituito l’oggetto dalla libreria QGPL)
Figura 2.3-V (RDBS01FM/T2CTL)
Attivare il debug con STRDBG PGM(QGPL/RTKA14)
Per per vedere durante il Debug il valore delle variabili utilizzare questa sintassi :

Variabile numerica
EVAL SP.V_ALLARM_ON

Variabile alfanumerica
EVAL *SP.V_RATESITO:S
Paragrafo-Pagina di Pagine 2-19 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
(si usufruisce del prefisso indicato prima di istruzione BEGIN per richiamare la variabile del programma)
Ultimato il debug e corretta la procedura, si crea nuovamente la procedura dopo aver tolto le istruzioni per generare le
viste di debug. (Si utilizza sempre l’opzione “X”)
2.4 Gestione programmi EXIT (HX)
Figura 2.4-I (RCKRM1FM/T2CTL)
I programmi EXIT sono “gruppi di comandi condizionati” eseguiti se considerati eleggibili dalle verifiche descritte di seguito,
verifiche eseguite ogni volta che il controllo passa dal client webgate400 al programma RPG.
Ad ogni ENTER o tasto di funzione premuto (F1…..F24), vengono eseguiti i seguenti due controlli :
1.
2.
Verifica se esistono programmi abilitati per : (A)
o
il file video corrente.
o
il formato record corrente
o
la company corrente
o
la lingua corrente
o
l‟utente corrente
o
il gruppo di utenti correnti
Verifica inoltre se è stato premuto uno dei tasti di funzione previsti per quel programma. (B)
Le informazioni sulla eleggibilità del programma EXIT (condizioni di esecuzione), sono aggiornabili con il tasto di funzione
F9 oppure con la opzione X
Paragrafo-Pagina di Pagine 2-20 di 43
.
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.4-II (RCKRM2FM/W1)
Figura 2.4-III (RCKRM1FM/W1)
Quando il programma risulta elegibile, vengono eseguite le seguenti fasi :
1.
Reperimento delle variabili di tutti i formati record
2.
Esecuzione di tutti i comandi contenuti nel programma non sospesi
… visibili a video (o per cui è stata effettuata una operazione write)
… nelle sequenza indicata (4) dall‟apposito campo fino all‟ultimo della lista o fino al comando contrassegnato con il
flag “Ultimo se valido” (5), svolgendo le seguenti fasi :
Paragrafo-Pagina di Pagine 2-21 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
o
Sostituzione delle variabili contenute nella istruzione SQL di validazione (1) (a questo punto della elaborazione
sono presenti le variabili del video oppure se programma chiamato da API RCKR02, le variabili passate con i
parametri VVAR E NVAR).
o
Esecuzione dell‟istruzione sql di validazione e reperimento delle variabili. (tutte le colonne del primo record). (1)
Se vera
(la istruzione restituisce almeno 1 record),
o
Esecuzione Istruzione SQL Reperimento Variabili (F2) e reperimento delle variabili. (tutte le colonne
del primo record).
o
Visualizzazione dell‟eventuale prompt (2).
o
Sostituzione delle variabili contenute nel comando. (a questo punto sono disponibili :



le variabili del video/parametri
le variabili reperite dalla istruzione SQL di validazione (1).
Le variabili reperite dall‟”istruzione SQL di reperimento variabili”.
o
Esecuzione della formule 1 e 2
o
Esecuzione del comando. (3)
Se falsa
o risposta a prompt non consente prosecuzione legge prossimo comando.
“Sospeso” consente di non cancellare la EXIT ma di sospenderne l‟esecuzione.
“Ultimo se valido” (5) consente di interrompere la catena dei programmi di controllo e di uscire, utile quando si devono
effettuare controlli in cascata le cui condizioni possono essere considerate come in “*OR”.
Nell‟istruzione di SELECT vediamo l‟utilizzo della variabile %T2CTL. Questa è la sintassi da utilizzate per riferirsi alla “table”
che contiene l‟intero formato video T2CTL come pure potrebbe essere %T1 quando ci si vuole riferire direttamente ad una
finestra video normale. Non è necessario definire “Nome Video” e/o “Libreria” per esplicito, è il programma che recepisce
queste variabili e automaticamente le associa alle risorse fisiche corrette nelle librerie dell‟ambiente attivo al momento.
L‟istruzione SQL di validazione, può anche essere di tipo composita, ossia il risultato di più SQL concatenate in cascata tra
loro. Queste istruzioni SQL vanno separate dal carattere “;”.
Sono possibili due modi diversi per codificare il messaggio da esporre all‟operatore: codificando una chiamata al programma
API “RIQIH2” nell‟apposito campo “Comando da eseguire” , oppure indicando in “Prompt Conferma se SQL valido (2)” un
messaggio “USER” codificato in un MSGFile Custom (esempio USRMSG001) con l‟elaborato “EP”.
Nella composizione del testo è possibile inserire variabili reperite con il comando SQL e/o disponibili dal lavoro HX.
I campi da compilare nel caso di messaggio codificato sono :

MSG File. Nome del file Messaggi.
Se non esiste si può creare per esempio con il comando
CRTMSGF MSGF(WGLANGITA/USRMSG001) TEXT('Messaggi Utente')
NB Si consiglia di creare il file messaggi nella libreria già contenente i messaggi della specifica lingua (nel caso in
esempio WGLANGITA) in modo da rendere possibile la gestione multilingua anche delle customizzazioni.
Nella codifica di questi USRMSG potreste seguire le logiche già adottate da EDM per i suoi EDMMSG distinguendo
con 001 i messaggi dedicati allo Spi, 003 per quelli del PSG, 006 per quelli di Dblink e 020 per quelli della GeA.
ATTENZIONE : I files messaggi TXTMSG… sono rigorosamente riservati ai soli TEST di EDM.

ID. Id Messaggio. Se non esiste, creare con il comando

Opzioni. Opzioni disponibili.
WRKMSGF MSGF(WGLANGITA/USRMSG001) oppure con l‟elaborato EP
Possono essere definiti più valori contemporaneamente
Possono essere definiti valori maiuscoli e minuscoli per scegliere su quale pulsante sarà posizionato il focus.
I Valori possibili sono i seguenti :

Se è prevista la opzione di uscita “C” (Esci) e questa viene scelta, il controllo torna al video SENZA passare dal
programma RPG.

Se è prevista la opzione di uscita “I” (Ignora) e questa viene scelta, il controllo passa al prossimo comando
saltando quello corrente.
Se è prevista la opzione di uscita “G” (Go) e questa viene scelta, il comando viene eseguito.


Se è prevista la opzione di uscita “R” (Retry) e questa viene scelta, il comando di validazione viene nuovamente
eseguito.
Esempio :

se il campo Opzioni è valorizzato con 'IGR ' il programma renderà disponibili solo 3 delle risposte disponibili; il
cursore si posizionerà sulla risposta Ignora.
Paragrafo-Pagina di Pagine 2-22 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista

se il campo Opzioni è valorizzato con con 'iRc ' il programma renderà disponibili solo 3 delle risposte disponibili;
il cursore si posizionerà sulla risposta Riprova.
Riportiamo uno stralcio della documentazione per l‟utilizzo dell‟ API – RIQIH2 per la gestione messaggi.
CALL PGM(RIQIH2) PARM(„Testo del messaggio‟ „IGRC‟ „Titolo della Finestra‟ „ „)
#==================================================================================#
!
P A R A M E T R I
!
+----------+----+--+---------------------------------+-------------------------+---+
!TXTMSG
! 250!
!Messaggio Finestra oppure
!
!DFTRIS
!
4!
!Risposte
!A Scelta fra I, G, R e C.! I !
!TITLE
!
30!
!RISPOS
!
1!
Visualizzate
! I !
!Titolo
Finestra
!
! I !
!Risposta
Fornita
!
! O !
+----------+----+--+---------------------------------+-------------------------+---+
Dall‟ interrogazione HX parzializzabile per “Company” , “Lingua” , “Utente” , “Gruppo” per rendere più facile la ricerca, è
possibile procedere con il comando di riga “+”
per dupplicare integralmente la EXIT attribuendogli una sequenza
successiva oppure con il comando “3”
dove viene proposta la copia della EXIT consentendone la modifica e
l‟attribuzione di una nuova sequenza a nostra discrezione. Con “X”
è possibile interrogare le condizioni per cui si
attiva la EXIT, modificarle e/o aggiungerne di nuove con il tasto F6.
Figura 2.4-IV (RCKRM2FM/T2CTL)
NB. Esiste l‟ API “RCKR02” ricercabile con l‟ apposita funzione di menu “EK” che consente di eseguire direttamente da
programma, uno o più programmi EXIT qui descritti.
NB. Se scelta l‟ opzione “LOG” (5) per ogni Programma eseguito, viene emessa una registrazione nel LOG di AS400 visibile
con opzione 10 dai lavori attivi WRKACTJOB, oppure dalle “System Utilities (Strumenti>SystemUtilities>DisplayJobLog)”
dell‟applet, contenente le seguenti informazioni :
1.
Id Programma
2.
Descrizione
3.
Sequenza
4.
Eventuale Messaggio Emesso
5.
Eventuale Risposta Immessa dall‟operatore
6.
SQL di validazione
7.
SQL reperimento Variabili
8.
Comando Eseguito
NB. Le variabili reperite, sono utilizzabili anche nel testo del messaggio emesso dal prompt.
Paragrafo-Pagina di Pagine 2-23 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
2.4.1 Schema di funzionamento
Client webgate400

Pressione ENTER, F1-F24 da Client
webgate400

Scrittura Database Video
Controllo EXIT
se elegibile :

Prompt
Programma 1
o
Comando 1
o
Comando 2
o
Comando 3
se elegibile :

Programma 2
o
Comando 1
o
Comando 2
Programma RPG

Lettura Database Video.

Esecuzione operazioni RPG
Paragrafo-Pagina di Pagine 2-24 di 43
Versione 2 del 22/12/2016
Ogni Comando
 SQL Validazione
 Prompt (se
opzione C torna
a Client)
 SQL Dati
 Formula 1
 Formula 2
 Comando/SQL
Strumenti di Customizzazione – Manuale Sistemista
2.4.2 Utilizzo delle Formule
Dalla “Gestione Comandi di Programmi EXIT – HX” con il tasto “F2-SQL Variabili” è possibile richiamare la funzione che
consente di gestire delle due variabili %FOR1 e %FOR2 oggetto di formule di calcolo più o meno complesse. Queste
variabili possono poi essere riprese all‟interno delle istruzioni SQL o comando da eseguire quando le condizioni sono VERE.
Figura 2.4-V (RCKRM1FM/W3)
Nell‟esempio qui riportato attraverso l‟istruzione SQL viene ricavato il campo “Sconto Prezzo Pieno” dal file CLIAD e su questo
viene applicato un “-5” attraverso la Formula UNO (Variabile %FOR1).
Figura 2.4-VI (RCKRM1FM/W1)
Paragrafo-Pagina di Pagine 2-25 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Il valore ottenuto, viene poi ripreso con la variabile “%FOR1” per aggiornare il campo “Sconto 2” del video T1.
2.4.3 Inner Join
Figura 2.4-VII (RCKRM1FM/W1)
Quando è necessario utilizzare una INNER JOIN per collegare la tabella Video “%T1” con dei data base ponendo delle
condizioni tra i campi, è necessario che la variabile proveniente da T1 venga utilizzata come valore di riferimento perché
l‟istruzione funzioni correttamente, come evidenziato nell‟esempio qui riportato.
2.4.4 Utilizzo funzioni SUF_ in istruzioni SQL
E‟ disponibile una funzione che consente di richiamare una “facility” che consente un inserimento guidato di funzioni SUF_ ed
è richiamabile dall‟editor SQL con il pulsante “ Wizard”.
Figura 2.4-VIII (RFQM04FM/W11)
Dopo aver selezionato la funzione con un doppio click del mouse, viene mostrata una maschera in cui si possono inserire i
parametri da utilizzare. Con un Enter il programma compila il comando ed evidenzia parametri non riconosciuti. Si conferma
con F1 per ritornare all‟istruzione SQL di HX.
Paragrafo-Pagina di Pagine 2-26 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.4-IX (RFQM04FM/W11)
2.4.5 Variabili disponibili
Il programma che gestisce le EXIT, mette a disposizione una serie di variabili che possono essere richiamate all‟interno delle
istruzioni SQL, queste sono :
Variabile
Descrizione
DSYUSER
Utente
DSYGRPID
Gruppo
DSYCOMPID
Company
DSYLANGID
Lingua
DSYJOBNR
JOB Number
DSYAPPLI
Applicazione
DSYIND24
Schiera F1-24 1=ON
DSYK18
ID Univoco JOB Webgate
DSYP18
ID Univoco Livello di chiamata
Note
ESEMPIO : Si vuole vincolare l‟utilizzo di un campo a video di “0I-Anagrafica GeA” ad un solo operatore.
SELECT * FROM %JSTDABDA T1 LEFT OUTER JOIN JFANA00F T2 ON T1.VANTAN=T2.JANTAN AND T1.VANCAN=T2.JANCAN
AND T2.JANSOC='EDM' WHERE T1.VANFAC='1' AND T2.JANFAC<>'1' AND '%DSYUSER'<>'ROBERTO'
Se l‟operatore non è “ROBERTO” viene emesso un messaggio a video e viene impedita la manutenzione del campo JANFAC.
2.5 Manutenzione File Messaggi (EP)
Una volta creati il/i file USGMSG nelle opportune librerie, è possibile inserire i messaggi personalizzati che utilizzeremo nelle
nostre procedure. Con F6 aggiungiamo un nuovo messaggio.
Figura 2.5-I (WGEDTMSGD/T2CTL)
Paragrafo-Pagina di Pagine 2-27 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Con F6 aggiungiamo un nuovo messaggio. Il codice del messaggio è un campo composto formato dai primi tre caratteri
che ne identificano il GRUPPO e dai successivi quattro caratteri che indicano il NUMERO progressivo del messaggio. Lo
standard adottato da EDM utilizza il gruppo per identificare il Modulo Applicativo di appartenenza del messaggio
(alfanumerico) e i successivi quattro caratteri per il progressivo dei messaggi (numerico).
Figura 2.5-II (WGEDTMSGD/T1)
Si compila semplicemente indicando il testo del messaggio e confermando con F1. Ignorate la tabella di destra relativa alla
lista di elementi, ad oggi è solo uso interno EDM per la programmazione.
E‟ possibile tenere traccia delle risposte fornite ai Messaggi visualizzati tramite Window Standard Messaggi. La Funzionalità
può essere attivata per i messaggi codificati in File Messaggi aggiungendo la costante „(%LOG)‟.
Costante Attivazione LOG
I dati del Messaggio e la Risposta selezionata sono rintracciabili attraverso la Visualizzazione LOG.
Per la ricerca del Nr.Messaggio trovato nel LOG si può utilizzare in EP la funzione di scansione oppure,
Paragrafo-Pagina di Pagine 2-28 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Si può personalizzare la Finestra Messaggi per visualizzare anche i campi contenenti i Riferimenti del Messaggio (Nome
File Messaggi VVXMSGNA e ID Messaggio VVXMSGID), campi che vengono compilati direttamente dal programma quando
reperisce il testo del Messaggio.
Riferimenti File Messaggi e
ID Messaggio
2.6 Fast Query (Vedi manuale specifico)
Per questo argomento, fare riferimento al “Manuale Utente” e “Manuale Sistemista – Fast Query”
2.7 Aggiunta Colonne SubFile con Webgate400
Solo se dal profilo Utente “RunTime WEBGATE” si è autorizzati a modificare i formati video e si sta utilizzando la modalità
TABLE di WEBGATE è possibile richiamare la funzione di aggiunta colonne del “Menù” dell‟applet grafica selezionando
“Strumenti” + “Personalizzazioni” + “Aggiunta colonne”. E‟ necessario essere posizionati sulla finestra aperta su cui si vuole
aggiungere la/e colonne. Verrà presentata una prima finestra attraverso la quale andremo a definire dove e come applicare
la personalizzazione che andremo a realizzare che sicuramente sarà per “Formato” come livello minimo e per “Sistema
Informativo” e/o “Utente” oppure “Gruppo” come specializzazione. La selezione va fatta premendo gli appositi pulsanti
che varieranno tonalità di grigio quando selezionati. Si procede poi con “Conferma”.
Qui di seguito mostriamo un esempio della videata che verrà mostrata, in questo caso con già dei record di
personalizzazione inseriti, riferiti all‟elaborato ZR “Interrogazione documenti”.
Paragrafo-Pagina di Pagine 2-29 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.7-I (WGDSAHAND/T1CTL)
F6 per aggiungere una nuova colonna.
Figura 2.7-II (WGDSAHAND/GENERAL)
Va indicato un nome di “Campo”, la “Dimensione”, il numero di “Decimali” se il formato del campo è numerico, il “Tipo
campo” e “Intestazione” che assumerà la colonna aggiunta. Sono disponibili poi dei bottoni, secondo le modalità che
vorremo utilizzare per valorizzare il campo, “Exit Program” , “Formula Matematica” , o “Istruzione SQL”. L‟esempio
seguente è di un campo con definito che ha un istruzione SQL.
Figura 2.7-III (WGDSAHAND/GENERAL)
Paragrafo-Pagina di Pagine 2-30 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
2.7.1
Valorizzazione del campo tramite espressioni SQL
E‟ possibile attivare una funzione di valorizzazione dei campi aggiunti tramite istruzioni SQL. La convenzione di scrittura
prevede la possibilità di parametrizzare la query includendo campi presenti a video utilizzando la forma
&nome_formato.nome_campo. Ove venga omesso il nome_formato si assume che il campo a cui ci si vuole riferire
appartenga al formato corrente su cui stiamo aggiungendo la/e colonne.
Esempio :
SELECT XPREZE FROM CLBAS WHERE
XKKKKK = &XKKKKK
Equivale anche a …….
SELECT XPREZE FROM CLBAS WHERE
XKKKKK = &T21SFL.XKKKKK
Figura 2.7-IV (WGDSAHAND/GENERAL)
Qualora il campo video di riferimento sia espresso in formato alfanumerico, va indicato nell‟istruzione chiuso tra apici (apice
semplice) es. „&T21SFL.DCODAR‟ Il nome del campo video deve corrispondere al nome visualizzato sul campo della
richiesta “Proprietà” sul campo video.
La colonna aggiunta può essere anche composta da più campi (multipli) del file esposti in blocco. In questo caso
SELECT potrebbe essere per esempio :
la
SELECT XZONA1, XAGEN1, XAGEN2 FROM CLBAS WHERE XKKKKK=&T21SFL.XKKKKK
La colonna aggiunta comprenderà tutti e tre i campi.
Questo è sufficiente se abbiamo l‟esigenza di aggiungere una sola colonna, ma se dobbiamo aggiungerne altre, oppure
vogliamo tenere i campi separati a differenza dell‟esempio appena descritto, è deleterio per i tempi di risposta nell‟utilizzo
dell‟applicazione definire più campi ognuno con una sua SELECT se provengono dallo stesso file, è preferibile risolvere
tutto con un‟unica istruzione SQL.
A questo punto si può procedere secondo due modalità :
Modalità 1: Corrispondenza tra Nome_campo aggiunto e Nome _campo della SELECT.
Paragrafo-Pagina di Pagine 2-31 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Definisco il campo con modalità “Master” ossia con una espressione “SELECT” riferita a tutti i campi che voglio esporre.
Attraverso l‟espressione SQL “as” associo al campo fisico che estraggo dal file, il campo ( Nome libero ) che utilizzerò poi per
definire le ulteriori colonne aggiunte. Nell‟esempio riportato XCOSTR è il campo stesso che sto estraendo nella colonna
“Marca” (Master) mentre XCATAL, XNACAD e ESIDI sono campi che finiranno nelle colonne video aggiunte che chiamerò
rispettivamente come nome di campo “CATALOGO” , “CAD” e “GIACENZA”.
Figura 2.7-V (WGDSAHAND/WGGENERAL)
Definisco poi gli altri campi (“slave”), indicandoli con il nome dei campi presi dalla espressione di SELECT assegnata al
“Master” , che come dall‟ esempio saranno “CATALOGO” , “CAD” e “GIACENZA”. Quindi, sempre con la stessa modalità
precedentemente descritta, aggiungo una nuova colonna indicando nel “Campo” il nome campo “as” dichiarato nella SELECT
(es. CATALOGO) corrispondente al campo di data base che voglio esporre, definisco la “Intestazione” della colonna, la
“Dimensione” ed il “Tipo campo” e nella espressione SELECT scriverò il valore convenzionale *SQLF.
Figura 2.7-VI (WGDSAHAND/GENERAL)
Dopo l‟esecuzione della SELECT legata a “MARCA” verranno valorizzati i campi “CATALOGO” , “CAD” e “GIACENZA”.
Paragrafo-Pagina di Pagine 2-32 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Per risolvere eventuali omonimie si può usare questo metodo di codifica dell‟istruzione SQL :
SELECT F1 AS “C1”, SUBSTR(F2, 2, 2) AS “C2”, MAX(F3) AS “C3” FROM FILEX WHERE F4=‟&FMT1.V1‟
Dove F1, F2, F3, F4 sono i campi fisici del database FILEX , C1, C2, C3 il nome dei rispettivi campi delle tre colonne
aggiunte e V1 è il campo a video di confronto.
Modalità 2: Utilizzo dell‟espressione SELECT per creare le corrispondenze tra Nomi_Campo.
Definisco un campo “Master” al quale assegno l‟ espressione SELECT e poi gli altri campi (“slave”), definendoli con nomi
diversi dai campi utilizzati nell‟ espressione di SELECT assegnata al “Master”. Nella espressione SELECT dei campi “slave”
scrivo il nome del campo “Master” e il nome del campo di riferimento nella SELECT, separati da due punti. Esempio :
Aggiungo il campo “MARCA” (Master) con la seguente espressione SQL
Aggiungo il campo “CATALOGO” (“slave”) con l‟ espressione SQL : MARCA:XCATAL
Aggiungo il campo “CAD” (“slave”) con l‟ espressione SQL : MARCA:XNACAD
Dopo l‟esecuzione della SELECT legata a “MARCA” verranno valorizzati i campi “CATALOGO” , “CAD” e “GIACENZA”. Il primo
campo della SELECT è sempre riferito al primo campo “Master” dell‟aggiunta colonne.
2.7.2 Valorizzazione tramite formula
E‟ possibile attivare una funzione di valorizzazione dei campi aggiunti tramite formula.
La convenzione di scrittura prevede la possibilità di parametrizzare la formula includendo campi diversi presenti a video
utilizzando la forma &Nome_Formato_Video.Nome_Campo :
(&T21SFL.DNUMER * T21SFL.DPREZE)
2.7.3 Valorizzazione di campi da Programmi esterni
Per chi è in grado di programmare, è possibile realizzare un programma richiamabile come EXIT PROGRAM il cui risultato
valorizzerà la colonna.
La convenzione sui parametri di chiamata è la seguente:

Valore del campo

Buffer video

Descrizione del buffer video puntatore ad una struttura di tipo WGTDBENTRY_CUSTOM_FIELDS_EXITPGM_PARMS_t.
Standard in linguaggio „C‟
typedef struct {
char WGFLDE[10];
/* Field name . . . . . . . . . */
char WGBUFF[5];
/* Buffer start position. . . . */
char WGFLDB[5];
/* Field length in bytes. . . . */
char WGFLDD[2];
/* Digits . . . . . . . . . . . */
char WGFLDP[2];
/* Decimal positions. . . . . . */
char WGFLDT[1];
/* Field type ADFIMNSWXYEJOG. . */
char WGFTYP[1];
/* Type simple A=char S=zoned . */
char WGCSID[5];
/* CSSID */
} WGTDBENTRY_SIMPLE_FIELD_DESCRIPTION_t;
Paragrafo-Pagina di Pagine 2-33 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
typedef struct {
char WGNOFE[5];
/* Total Number of Entries */
char WGESIZ[5];
/* Size of each entries */
char WGLDIX[5];
/* Index of target field */
char WGOFST[5];
/* Offset from start of this struct to the first element of the list */
WGTDBENTRY_SIMPLE_FIELD_DESCRIPTION_t sfdList[1];
/* Simple field description List */
} WGTDBENTRY_CUSTOM_FIELDS_EXITPGM_PARMS_t;
Standard in linguaggio RPG
DS
WGNOFE
S
50
WGESIZ
S
50
WGLDIX
S
50
WGOFST
S
50
WGFLDE
A
10
/* Field name . . . . . . . . . */
WGBUFF
S
5
/* Buffer start position. . . . */
WGFLDB
S
5
/* Field length in bytes. . . . */
WGFLDD
S
2
/* Digits . . . . . . . . . . . */
WGFLDP
S
2
/* Decimal positions. . . . . . */
WGFLDT
A
1
/* Field type ADFIMNSWXYEJOG. . */
WGFTYP
A
1
/* Type simple A=char S=zoned . */
WGCSID
S
5
/* CSSID */
DS
2.7.4 Trattamento dei campi UNICODE (tipo G)
I campi di tipo G supportati sono quelli che contengono dati in UNICODE.
Questi dati vengono memorizzati nelle tabelle di transito in formato UTF-EBCDIC, per ragioni di efficienza nella fase di
costruzione e di esecuzione delle query, che quindi vengono trattate sempre e comunque nel CCSID 037.
La particolare caratteristica di codifica di UTF-EBCDIC consente di mantenere l‟ordine alfabetico utilizzando una sort
sequenze apposita.
2.7.5
Aggiunta di una colonna LINK e/o Immagine
Tra la possibilità di tipi di campi da poter utilizzare nell‟aggiunta colonna, è possibile inserire campi “Link” che consentono di
agganciare un allegato DBLink attraverso il suo percorso, oppure dei campi “Immagine” che vengono direttamente esposte
a video come potrebbero essere delle fotografie o disegni di articoli.
Figura 2.7-VII (WGDSAHAND/GENERAL)
Paragrafo-Pagina di Pagine 2-34 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Questi campi devono essere definiti con queste caratteristiche :

Deve essere un campo alfanumerico Hidden sufficientemente grande da contenere il percorso dell‟allegato.

Nel riquadro intitolato “Link” si definisce il nome del campo; è un campo aggiunto a tutti gli effetti che non può
essere gestito singolarmente.

Se si definisce un campo di tipo “LINK” che attraverso un‟icona richiama un documento DBLINK si deve definire il
codice, la descrizione e le dimensioni dell‟icona che è associata al “Link” dell‟allegato.

Se si definisce un campo di tipo “IMMAGINE” e quindi il valore della colonna aggiunta è il percorso di un‟immagine, la
si definisce all‟interno del riquadro intitolato “Immagine” indicandone la dimensione in Altezza e Larghezza
A seguire riportiamo un‟ esempio del video con i campi delle colonne aggiunte con “Link Allegato” e “Immagine” e di una
istruzione SQL per ricavare il percorso da DBLINK per l‟immagine e/o per il documento allegato.
select XPALNK from linhe as a inner join links b on a.xkeyun=b.xkeyun and a.xflnam='PARAR' and a.xflk01='*BLNK' and
a.xflk02='*BLNK' and a.xflk03='*BLNK' and a.xflk04='&t21sfl.VVCODAR' and b.xclsdo='ST'
Per rendere più semplice le istruzioni SQL che rintracciano documenti DBLINK sono disponibili anche delle nuove UDF la
WUF_PAL che rende il percorso dell‟allegato Dblink avendo come dato XKEYUN e WUF_PAH che rende il percorso
dell‟allegato Dblink avendo gli estremi del record di categorizzazione (chiave di LINHE).
WUF_PAL(XKEYUN,XTPARE)
Parametro
Formato
Significato
XKEYUN
Alfanumerico
Id Univoco Allegato
XTPARE
Alfanumerico
Tipo Parametro Reso
Valori Disponibili
„P‟ Assunto per difetto = Percorso
documento Pubblico (se esiste PDF o altro)
„E‟ = Percorso Oggetto Editabile.
Esempio dove viene reso il percorso Pubblico
Select XCODAR, XCOCLI, WUF_PAL(XKEYUN,’P’) from OPERA
WUF_PAH(XFLNAM,XFLK01,XFLK02,XFLK03,XFLK04,XFLK05,XFLK06,XFLK07,XFLK08,XFLK09,XFLK10,XCLSDO,X
LIVME,XTPARE)
Paragrafo-Pagina di Pagine 2-35 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Parametro
Formato
Significato
Valori Disponibili
XFLNAM
Alfanumerico
Nome File
XFLK01-10
Alfanumerico
Valore Campo Chiave 1-10
XCLSDO
Alfanumerico
Classe Documento
(opzionale)
XLIVME
Alfanumerico
Livello di modifica
Documento
X.XX (ES. 1.01) = Specifica Revisione
LAST = Ultima Revisione.
DATA lunga 8 rovesciata = Revisione
valida alla data indicata.
XTPARE
Alfanumerico
Tipo Parametro Reso
„P‟ Assunto per difetto = Percorso
documento Pubblico (se esiste PDF o altro)
„E‟ = Percorso Oggetto Editabile.
Esempio dove viene reso il percorso pubblico del documento allegato al file PARAR all‟articolo indicato dal campo XCODAR
per la classe documenti CO.
Select XCODAR, XDSART, WUF_PAH(‘PARAR’,XCODAR,’’,’’,’’,’’,’’,’’,’’,’’,’’,’CO’,’LAST’,’P’) from PARAR
2.7.6 Aggiunta di una colonna ICONA
Tra la possibilità di tipi di campi da poter utilizzare nell‟aggiunta colonna, è possibile inserire campi “ICONA” informativi che
siano da richiamo agli utenti nelle righe di Subfile. Di seguito presentiamo un esempio realizzato sull‟elaborato QC.
Il cliente ha chiesto che nell‟esplosione di distinta vengano segnalati i componenti provenienti da Padre Fittizio.
Figura 2.7-VIII (WGDSAHAND/GENERAL)
La logica di compilazione dei campi è analoga a quanto descritto nel capitolo precedente riguardo alle colonne Link
Immagine, cambia soltanto l‟istruzione SQL che viene lanciata. Quella è libera e dipende dalla condizione che si vuole
controllare, se vera viene emessa l‟ ICONA, se falsa ( non trovo record ) il campo aggiunto rimane vuoto.
Paragrafo-Pagina di Pagine 2-36 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.7-IX (WGDSAHAND/STRSQL)
2.8 Command Services
La manutenzione dei “Command Service” viene lanciata dall‟apposita voce di Menù accedendo con il profilo WEBGATECVT.
Serve per definire “Comandi” da rendere disponibili sulle videate dell‟ applicazione e le condizioni di ambiente necessarie per
la loro esecuzione. Per ambiente si intende l‟insieme delle variabili presenti nel file video sia visibili che invisibili (hidden).
Partendo dal presupposto che un comando (per comodità di riferiamo alla chiamata di un programma tradizionalmente
eseguita con un codice operativo “CALL” all‟interno di un programma RPG) può essere eseguito se sono disponibili i valori
necessari per popolare i suoi parametri obbligatori, in questa videata, sono definiti i metodi per il reperimento di tali valori.
E‟ quindi necessario identificare tutte le variabili che contengono valori di cui sopra e questo avviene compilando la sezione
“Nomi Campi” considerando le seguenti regole :
Un comando diventa eseguibile in un formato video quando :

Esistono tutte le variabili indicate (implicitamente necessarie).

Il campo soddisfa i requisiti (lunghezza, tipo, posizioni decimali)

Il campo, se obbligatorio, non è uguale a zero o bianco.

Il campo soddisfa le regole di selezione indicate (vedere help specifico)
Paragrafo-Pagina di Pagine 2-37 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.8-I (WGCMDD/EC2)
I questo esempio, il comando, sarà disponibile in tutti i display files della libreria CLX che contengono i campi che terminano
per FLAGA oppure FLAG ed i campi che terminano per CODIC o COCLI. Entrambe i campi devono non possono essere
vuoti (Obbligatorio=Y) ed il primo campo dovrà contenere il valore C.
Il comando sarà disponibile cliccando con il tasto destro sul campo o nella command bar e sarà eseguito in modo interattivo
su iSeries (Secondo l‟impostazione del parametro MODO). Prima di eseguire il “Command” sarà lanciato il programma
RQF00C di preparazione ambiente (facoltativo, indicato solo a titolo di esempio).
Il “Comando o Istruzione SQL” può contenere un comando in formato iSeries o in formato PC. Per quanto riguarda
l‟iSeries, le modalità di codifica del comando sono le stesse che si andrebbero ad utilizzare se il programma fosse lanciato da
una riga comandi , mentre per quanto riguarda i comandi PC, valgono le regole definite per il prompt “ESEGUI” di Windows.
I parametri dei comandi eseguiti, possono essere valorizzati dai campi (nominati con i riferimenti %1-%9) specificati nella
apposita sezione “Variabili”.
Oltre ai comandi, si possono inserire anche istruzioni SQL che generano windows indipendenti, contenenti l‟output dell‟SQL.
Esempio di un programma con più parametri
Questo comando dispone di 5 parametri.
CALL PGM(SAMPLE) PARM(„
„ „%1‟ X'%2F' X„0%3F‟ X'00000000236F'
X'00000000236F' „PARM‟)
1.
Parametro lasciato in bianco
2.
Parametro alfanumerico valorizzato dal primo (%1) campo della lista
3.
Parametro numerico lungo 11 (dispari) posizioni valorizzato dal secondo (%2) campo della lista.
4.
Parametro numerico lungo 10 (pari) posizioni valorizzato dal terzo campo della lista.
5.
Parametro numerico lungo 11 posizioni costante.
6.
Parametro numerico lungo 10 posizioni costante.
7.
Parametro alfanumerico costante.
NB In un parametro numerico, le posizioni passate devono sempre risultare pari (compresa la F finale). Notare lo 0 (zero)
aggiunto all‟ inizio del numero o prima della sintassi di sostituzione se la lunghezza del numero è pari.
Esempio di un istruzione SQL
SQLI://SELECT DIGITS(XTIGES) AS "TIPO", XDEDES AS "DESCRIZIONE", DECIMAL(SUM(XESIDI), 10, 3)
AS "GIACENZA" FROM SALPR INNER JOIN DECOD ON DIGITS(XTIGES)=XDECOD WHERE
XDECAM='TIGES' AND XANNOC=0 AND XCODAR='%1' GROUP BY XTIGES, XDEDES
Esempio di un comando per allegati DBLINKS
CALL PGM(RLKM01) PARM(' ' ' ' 'filename' '%1' '%2' '%3' '%4' '*NULL' '*BLNK' ' ' ' ' ' ' ' ')
2.8.1
Comman Services di tipo Drag and Drop
Per comprendere il loro utilizzo, fondiamo la descrizione su un esempio applicativo. Si tratta di copiare uno o più legami di
distinta base da un assieme ad un altro. Il programma (ADDLEG) che eseguirà questa funzione, dovrà avere 3 parametri
(tutti alfanumerici).
Paragrafo-Pagina di Pagine 2-38 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
1.
Codice Articolo Padre Legame da cui copiare (%1)
2.
Codice Articolo Figlio Legame da cui copiare
3.
Codice Articolo Padre su cui copiare il legame (&3)
(%2)
Dal punto di vista operativo, dovrà essere possibile eseguire una selezione multipla su un subfile che visualizzi una lista di
componenti Associati di un Assieme e trascinarla su un altro video che contenga un codice articolo.
Questa azione, comporterà la esecuzione del programma che eseguirà la operazione descritta (utilizzando i 3 parametri) e
quindi la aggiunta dei componenti “draggati” al codice identificato dalla azione “Drop”.
Nell‟ apposito campo, dovrà essere codificato il comando nel modo seguente :
CALL PGM(ADDLEG) PARM(‟*DS‟ „%1‟ „%2‟ „&3‟)
Esistono due differenze tra questo ed altri tipi di Command Service :

Primo parametro = „*DS‟ (lungo 100 posizioni alfanumerico)
E‟ un parametro obbligatorio che contiene il numero totale dei comandi in esecuzione ed il numero del comando corrente
utili in caso di selezione multipla sulle righe di subfile.
Infatti, se l‟utente copierà con una sola operazione 10 componenti da una distinta ad un‟altra, potrebbe essere utile
identificare (per esempio) l‟ultima ricorrenza in modo da emettere un prompt per avvisare della buona riuscita della
operazione oppure un prompt che consenta la modifica dei coefficienti di impiego dei componenti copiati.
La definizione di questo parametro è descritta da una DS da codificare all‟interno di un programma utente.
Pos. DA
Pos. A
1
3
Numero Totale delle ricorrenze
4
6
Numero della ricorrenza corrente
7
9
Codice azione comune :
DLT = Delete
EDT = Modifica
PRT = Stampa
10

100
Riservato
Parametro &3 (Parametro di Drop)
Indica il campo che deve essere trovato nella ubicazione di “drop” per rendere eseguibile il comando.
Quindi i parametri necessari per abilitare la operazione di “drag” sono identificati dal prefisso % ed i parametri necessari
per abilitare la operazione di “drop” sono identificati dal prefisso &.
Segue l‟esempio di command service copia/cancella legami distinta base.
Figura 2.8-II (WGCMDD/EC2)
Paragrafo-Pagina di Pagine 2-39 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Nella sezione tasti e azioni comuni è possibile, per questo tipo di comando, configurare la visualizzazione di una window al
momento del trascinamento che visualizza alcune icone (selezionabili) relative ad azioni comuni quali Cancellazione (Delete),
Stampa (Print) e Modifica Edit. La selezione di una della Icone, manda in esecuzione il comando valorizzando il parametro
*DS nella porzione denominata “codice azione comune” con il valore relativo all‟icona scelta (DLT, EDT, PRT …..).
Caratteristiche di esecuzione del comando :

I comandi eseguiti durante la operazione di Drag and Drop, sono eseguiti sequenzialmente all‟interno di un unico job.
Quindi se il programma oggetto del comando viene chiuso con “return” (obbligatorio) tutte le variabili dello stesso
saranno conservate.

Gli eventuali comandi “PRE” e “POST” saranno eseguiti una sola volta prima del primo comando (ricorrenza) e dopo
l‟ultimo.

Il “Tasto Post”, verrà eseguito una sola volta una volta evasa l‟ultima ricorrenza.
2.8.2
Tips
E‟ consigliabile, per i comandi che prevedono un prompt di conferma, passare un parametro che consenta omettere lo stesso
qualora l‟utente, per questioni di efficienza lo richieda.
In questo caso, sarà sufficiente ridefinire nella sezione custom lo
stesso comando con tale parametro compilato in modo opportuno.
2.9 Sintassi delle Variabili e Campi
Il NOME che si attribuisce ad una variabile, è sempre codificato senza caratteri speciali nel prefisso come ad esempio
CLIENTE, PREZZO, IMPORTO, ARTICOLO.
Quando ci riferiamo invece al “Valore / Contenuto” della variabile, il NOME va prefissato con il carattere % come ad
esempio %CLIENTE, %PREZZO, %IMPORTO, %ARTICOLO.
Nelle condizioni WHERE delle istruzioni SQL, fare attenzione al formato del campo di confronto. Per i campi numerici la
variabile di confronto non ha bisogno di particolari sintassi come ad esempio XPREZE<>%PREZZO mentre per i campi
alfanumerici la variabile di confronto deve essere racchiusa tra apici come XCODIC=‟%CLIENTE‟.
Quando è necessario passare i valori delle variabili a programmi chiamati, si devono adottare degli accorgimenti. Mostriamo
qui attraverso un esempio tutte le possibilità.
CALL PGM(SAMPLE)
PARM(„
„ „%CLIENTE‟ X'%PREZZOF' X„0%IMPORTOF‟ X'00000000236F' X'00000000236F' „COSTANTE‟)
1.
Parametro lasciato in bianco
2.
Parametro alfanumerico valorizzato dalla variabile %CLIENTE
3.
Parametro numerico lungo 11 (dispari) posizioni valorizzato dalla variabile %PREZZO
4.
Parametro numerico lungo 10 (pari) posizioni valorizzato dalla variabile %IMPORTO
5.
Parametro numerico lungo 11 posizioni valorizzato con una costante numerica
6.
Parametro numerico lungo 10 posizioni valorizzato con una costante numerica
7.
Parametro alfanumerico valorizzato con una costante
In un parametro numerico, le posizioni passate devono sempre risultare pari (compresa la F finale). Notare lo 0 (zero)
aggiunto all‟ inizio del numero o prima della sintassi di sostituzione se la lunghezza del numero è pari.
2.10 Monitor Data Base (STRDBMON)
Il comando di avvio del Monitor di database (STRDBMON) da 5250 consente di avviare la raccolta di statistiche sulle
prestazioni del database per un lavoro specifico, per tutti i lavori sul sistema o per un gruppo selezionato di posti di lavoro.
Le statistiche vengono inserite in un file specificato dall'utente. Se il file non esiste, ne viene creato uno basato sul file
QAQQDBMN in libreria QSYS. Se il file esiste, viene verificato il formato di registrazione per assicurare sia la stessa.
Per ogni monitor avviato utilizzando STRDBMON, il sistema genera un ID monitor che può essere utilizzato per identificare
univocamente ogni singolo monitor. L'ID monitor può essere utilizzato nel comando ENDDBMON per identificare quale
monitor deve essere terminato. L'ID del monitor viene restituito nel messaggio informativo CPI436A che viene generato per
ogni comando STRDBMON lanciato. L'ID monitor può anche essere trovato nella colonna QQC101 del record del database
QQQ3018 monitor.
Presentiamo di seguito alcuni esempi di utilizzo del comando
Esempio 1 : Avvio di Monitoraggio di database per tutti i processi
STRDBMON
OUTFILE(QGPL/FILE1) OUTMBR(MEMBER1 *ADD) JOB(*ALL) FRCRCD(10)
Questo comando avvia il monitoraggio del database per tutti i processi del sistema. Le statistiche sulle prestazioni
vengono aggiunte al membro nominato member1 nel file denominato FILE1 nella libreria QGPL. Verranno tenuti 10
record nel buffer prima di forzare la scrittura del file.
Paragrafo-Pagina di Pagine 2-40 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Example 2: Avvio di Monitoraggio del database per un lavoro specifico
STRDBMON
OUTFILE(*LIBL/FILE3) OUTMBR(MEMBER2) JOB(134543/QPGMR/DSP01) FRCRCD(20)
Questo comando avvia il monitoraggio del database per il numero di lavoro 134543. Il nome del lavoro è DSP01 ed è
stato avviato dall'utente denominato QPGMR. Le statistiche sulle prestazioni vengono aggiunte al membro MEMBER2
nel file denominato FILE3. Verranno tenuti 20 record nel buffer prima di forzare la scrittura del file.
Example 3: Avvio di Monitoraggio del database per un lavoro specifico in un file in una libreria in un ASP
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(134543/QPGMR/DSP01)
Questo comando avvia il monitoraggio del database per il numero di lavoro 134543. Il nome del lavoro è DSP01 ed è
stato avviato dall'utente denominato QPGMR. Le statistiche sulle prestazioni vengono aggiunte al membro
DBMONFILE (non essendo stato specificato OUTMBR) nel file DBMONFILE nella libreria LIB41.
Example 4: Avvio di Monitoraggio di database per tutti i processi che iniziano con 'QZDA'
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(*ALL/*ALL/QZDA*)
Questo comando avvia il monitoraggio del database per tutti i numeri lavoro, per tutti gli utenti e per il nome lavoro
che inizia con 'QZDA'. Le statistiche delle prestazioni (record monitor) vengono aggiunte al membro DBMONFILE
(non essendo stato specificato OUTMBR) nel file DBMONFILE nella libreria LIB41.
Example 5: Avvio di Monitoraggio di database per tutti i lavori e Filtraggio istruzioni SQL il cui tempo stimato di
esecuzione è più di 10 secondi
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(*ALL) RUNTHLD(10)
Example 6: Avvio di Monitoraggio del database per il lavoro corrente e applicazione di filtri su un file specifico
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(*) FTRFILE(LIB41/TABLE1)
Questo comando avvia il monitoraggio del database per il lavoro corrente. I record di Monitor sono creati solo per i
comandi SQL che utilizzano LIB41/TABLE1 file.
Example 7: Avvio di Monitoraggio del database per il lavoro corrente e l'utente corrente
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(*) FTRUSER(*CURRENT)
Questo comando avvia il monitoraggio del database per il lavoro corrente. I record di Monitor sono creati solo per
quelle istruzioni SQL che vengono eseguite dall'utente corrente.
Example 8: Avvio di Monitoraggio del database Per lavori che iniziano con 'QZDA' con Filtraggio nel tempo di
esecuzione e file
STRDBMON
OUTFILE(LIB41/DBMONFILE) JOB(*ALL/*ALL/QZDA*) RUNTHLD(10) +
FTRUSER(DEVLPR1) FTRFILE(LIB41/TTT*)
Questo comando avvia il monitor del database per tutti i lavori che hanno il nome che inizia per „QZDA‟
Monitor vengono scritti solo se i comandi SQL rispettano tutte le seguenti condizioni :
o
Il tempo di funzionamento stimato, calcato da Query Optimizer, è pari o supera i 10 Secondi
o
E‟ stato lanciato dall‟utente “DEVLPR1”
o
Utilizza files il cui nome inizia per “TTT” e risiedono nella libreria LIB41
I dati del
Per ulteriori approfondimenti sull‟utilizzo del comando e di tutti i parametri disponibili, si rimanda agli Help in linea di AS400
ed ai manuali IBM di AS400.
2.11 Interrogazione LOG dall‟Applet
E‟ richiamabile in due modi diversi, da “Strumenti” “System Utilities” “Display job Log” oppure direttamente dall‟ icona
posta sulla cornice dell‟applet. Perché sia attiva l‟opzione di scelta, è necessario sia aperto almeno un lavoro (es. “VA”)
I dati visualizzati al richiamo della funzione, si riferiscono al lavoro che in quel momento è attivo.
Nell‟esempio che stiamo facendo vediamo il LOG dell‟elaborato “VA”.
Paragrafo-Pagina di Pagine 2-41 di 43
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Figura 2.11-I (RODM01FM/T2CTL)
Una volta richiamata la funzione, è possibile modificare i criteri di ricerca ed analizzare il LOG di qualsiasi lavoro.
Normalmente rimangono salvati i messaggi fino a tre mesi. All‟ interno del LOG troviamo sia i messaggi di AS400 che i
messaggi scritti dalle procedure SQL (iniziano per Lxxxxxxx) , questi ultimi evidenziati in azzuro.
Figura 2.11-II (RODM01FM/T2CTL)
Non indicando il “Nome Lavoro” ed il “Numero” è possibile analizzare il LOG ad esempio del solo utente, che può anche
essere diverso da quello con cui si è aperto l‟applet. E‟ opportuno impostare anche un‟ intervallo di date per evitare che la
ricerca sia troppo lunga ed i dati esposti siano troppi.
Se si conosce parte del testo del messaggio che si vuole ricercare o il codice del messaggi, è possibile utilizzare i filtri
“Scansione” e/o “Id Messaggio”.
Selezionando anche il “Tipo” (anche più di uno)
Paragrafo-Pagina di Pagine 2-42 di 43
si riduce ulteriormente la lista.
Versione 2 del 22/12/2016
Strumenti di Customizzazione – Manuale Sistemista
Attivando “SOLO Messaggi Speciali” vengono elencati solo i messaggi generati dalle procedure SQL. (quelli evidenziati in
azzurro).
Per analizzare il dettaglio del messaggio selezionare la riga con l‟opzione “5”
Figura 2.11-III (RODM01FM/W1)
Paragrafo-Pagina di Pagine 2-43 di 43
Versione 2 del 22/12/2016