Ingrosso articoli casalinghi, da regalo, per la casa e da giardino. A catalogo oltre 25.000 articoli! TONINELLI SPA

     
TONINELLI tradotto in varie lingue
NavigazioneHome Page

L'AziendaChi siamo
La Storia
Mag.Tradizionale
Mag.Automatico
Lo Show room
Dove Siamo
Cosa dicono

Cosa VendiamoI nostri articoli
Catalogo on-line
Stock e Svendita
Attrezzature usate
FAQ

Modulo ContattoPer Clienti
Per Fornitori
Per webmaster

InformazioniEDI
Clienti
Fornitori
Partners
Privacy
Note Legali

InoltreMappa del Portale
Piadena
 …Offerte lavoro
Scambio Link

Le RubricheGlossario Commerciale
La pentola giusta
Il Galateo a tavola
Il Calice giusto
Ingrosso CasalinghiAppunti di Informatica
Raccolta ricette

  Il CGIDEV2  

  1. Introduzione
  2. Come funziona il CGI Web
  3. Come funziona il Programma in CGIDEV2
  4. Come funziona il Programma in CGIDEV2 parte 2
  5. Come funziona il Programma in CGIDEV2 parte 3

Come funziona il Programma in CGIDEV2

Come detto in precedenza, il file video nel 5250 è definito esternamente, tramite un DSPF e viene incluso nel pgm tramite le specifiche F. In un tipico scenario 5250, viene eseguita l'apertura del file Video, viene elaborata l'informazione che deve apparire a video, poi viene eseguito il Codice Operativo EXFMT, ed il terminale resta in attesa di un evento. Allo scatenarsi dell'evento, il programma puo' far elaborare i dati, e apparire un'altra schermata video oppure uscire dal programma stesso, accendendo *INLR o meno.
Invece il CGI che viene richiamato dal Browser, esegue la lettura delle eventuali variabili di Input, elabora il processo, crea la pagina HTML che dovra' essere visualizzata, e poi esce dal programma, senza chiudere i file con il Seton *inlr. Dopo di che resta in attesa di un altro evento.

A questo punto spero di aver reso l'idea di come interagisce il Browser con il Web, e quindi mi concentro di piu' sullo stile di programmazione

In questa tabella provo a mette a confronto i due ambienti di sviluppo RPG, immaginando che l'IBM chiama KeyWords i Codici Operativi ( tipo EXFMT o READ ), mentre il CGIDEV2 sono procedure.
Sotto un esempio di come vengono identificate le fasi di lettura e scrittura di un fle video e un CGI:

5250 con SDA Metodo Perotti
Gestione della mappa video DSPF Lib/file /web/file.htm
Nome file Video Specifiche F Procedura gethtmlifs
Definizione Mappa Record Section
Lettura campo input CDALFV viene valorizzata dal Dspf CDALFV = zhbgetvar('CDALFV')
Scrittura campo Output CDALFV viene valorizzata dal Dspf updhtmlvar('CDALFV':CDALFv)

Quindi un pgm CGI deve prima di tutto andare a Leggere quale e' il file che contiene le mappe che abbiamo disegnate e sono in formato HTML. Esse possono risiedere sia su As400 in una nostra libreria/sorgente/membro ( si veda il file BOATTXTS nella libreria CGIDEV2), oppure in un file HTML che risiede su IFS. Il mio suggerimento e' di scegliere la seconda opzione, in quanto ci sono migliaia di tools che creano pagine HTML ed è quindi inutile farli a mano o copiarli poi da IFS ad As400. Lo stesso Word, puo' convertire il testo in HTML. Non l'ho mai fatto, però si potrebbe copiare una schermata del nostro programma As400 5250 e copiarlo in Word. Poi convertirlo in HTML ed il gioco è fatto.
Ritornando al nostro esempio, il programma viene chiamato dal Browser e per prima cosa elabora eventuali input e li memorizza in variabili; questo lo fa' il CGIDEV ed a noi poco interessa adesso. Il primo passo e' di andare a leggere il nostro File HTML in modo che poi ci andiamo a scrivere le variabili e la mappa che emetteremo.

Anche qui abbiamo due possibilità: leggere un sono file HTML o caricare contemporaneamente più file HTML; questo e' utilissimo e purtroppo inizialmente non l'ho adottato subito, e il consiglio e' di farlo fin da subito!
A cosa serve:
immaginiamo di avere dieci programmi che fanno cosa diverse ma alcune cose sono comuni a tutti: l'intestazione sopra, il logo, il piede sotto, i pulsanti che sono sempre comuni (tipo F3=esci F5=refresh ), i file CSS ed i Javascript etc.etc. Nel mondo As400 solitamente di duplicano queste informazioni e si inseriscono in un file video.
Invece il CGIDEV2 permette di caricare tanti file video. Io ho un file, che si chiama FORALL.HTM, che contiene tutte le informazioni generiche: il top, il bottom, i tasti, i logo. Tutti i pgm che fanno uso di questo file, hanno tutti la stessa grafica. Il logo e' uno per tutti i pgm, i tasti idem, il file CSS degli stili e' sempre quello. Per cui non perdo tempo a convertire un pgm: alcune parti sono già pronte.

L'istruzione che legge il file HTML da utilizzare come mappa video e' questa:
gethtmlifs(path/path/nomefile.htm);
oppure
gethtmlifsmult( path/path/nomefile1.htm path/path/nomefile2.htm path/path/nomefile3.htm);

L'utente ci ha mandato questo URL:
http:// www.toninelli.it/cgi-bin/pub/HCGIP01R.pgm? ACTION=ExeRicerca&tiporic=RicDescr&badec...

Vogliamo reperire le variabili che ci ha mandato:
usiamo la proc. zhbgetvar

Es: per leggere la variabile ACTION faccio
ACTION = zhbgetvar('ACTION'); e conterra' "ExeRicerca"
tiporic = zhbgetvar('tiporic'); e conterra' "RicDescr"
e così via.
Le variabili sono lette e poi vedremo un pgm come devo essere trattate.

A questo punto il pgm deve riempire una mappa che abbiamo preparato (e' necessario un po' di HTML, che sinceramente ci vuole veramente poco:che e' quella che trovate quando cliccate su un articolo del mio catalogo.
I nomi delle variabili sono nomi di fantasia: io uso BAARK per il cd Articolo, BADEC per la descrizione, PZCART per gli imballi e Art_Annullato se l'articolo non e' disponibile. Le variabili devono essere riconosciute dal CGI che andrà a sostituirle prima di spedirlo al browser.
<AS400>Scheda3
<tr><td  align="center" class="evid">
<div align="left">Codice /%BAARK%/<div class="evid blu">/%BADEC%/</div><br>
<div>/%PZCART%/</div><br>
<div class="small red">/%Art_annullato%/</div>

Per valorizzare le variabili, devo usare la procedura del CGIDEV2 updhtmlvar:
updhtmlvar('BAARK':'123456');
updhtmlvar('BADEC':'MUKKA - CF. 2 TZ. COLAZ. C.P. PORC.');
updhtmlvar('PZCART':'Imballi:Vetrinetta => Imballo da pz 108');

poi devo comporre la schermata, e come succede per il 5250 dove se vogliamo comporre più Dspfile usiamo la write e per ultima la EXFMT, qui dobbiamo usare la procedura wrtsection.

Quindi:
wrtsection('Scheda1');
wrtsection('Scheda2');
wrtsection('Scheda3');
etc.


  1. Introduzione
  2. Come funziona il CGI Web
  3. Come funziona il Programma in CGIDEV2
  4. Come funziona il Programma in CGIDEV2 parte 2
  5. Come funziona il Programma in CGIDEV2 parte 3





Azienda specializzata nella vendita all'Ingrosso di Casalinghi, articoli da regalo, da giardino.Oltre 25.000 referenze.
Tutti i documenti sono Copyright 2006 TONINELLI S.p.A. - P.Iva 00312580194