Netdata en V4R40 (nouvelles fonctions)

BoTTom |    Changer de couleur
 
 Il existe de nouvelles fonctions Netdata en Version 4 de l'OS :
 
 @DTW_EXIT     sortie anticipée de la macro
 
 @DTW_GETCOOKIE(nom, variable) place dans variable la valeur du cookie
                                dont on a indiqué le nom en 1er argument.
 
 @DTW_rGETCOOKIE(nom) retourne la valeur du cookie dont a indiqué le nom
 
 @DTW_SETCOOKIE(nom, paramètres) place un cookie dont on indique le nom
                                  et les différents paramètres.
 
 @DTW_HTMLENCODE(origine, remplacement)
 
  transforme en code compatible HTML  (<, >,  transformés en code ascii)
 
 @DTW_rHTMLENCODE(origine)
  idem, mais sous forme de fonction
 
 @DTW_DATE et DTW_rDATE    retourne la date du jour
 @DTW_TIME et DTW_rTIME    retourne l'heure


|    Changer de couleur
 
et enfin,
 
 @DTW_SENdMAIL(émetteur , destinataire, texte-du-message, sujet,
               carbon-copy, blind-carbon-copy, répondre-à,
               entreprise-de-l'émetteur)
 
 
 envoi un mail
 
 
 émetteur, destinataire, carbon-copy, blind-carbon-copy, répondre-à
  doivent être donnés sous la forme user@domaine.com
 
 tous les paramètres à partir de carbon-copy sont facultatifs.
 
 
 Pensez aussi à toutes les fonctions intégrées @DTW_UPPERCASE(), ...
 
  et au fait de pouvoir créer vos propres fonctions basées
     sur un appel implicite de programme HLL (RPG, C, ...)
 


|    Changer de couleur
 
 Pour déclarer un appel de programme :
 
 %function(dtw_directcall) verifdate( IN DEC(8)  date   ,
                                      IN CHAR(3) format ,
                                      OUT CHAR(1) ERREUR) {
 
 
           %exec{ VERIFDAT.PGM %}
 %}
 
 IN indique un paramètre envoyé au pgm sans valeur retournée
 OUT  "     une valeur retournée
 INOUT "    un paramètre en "entrée/sortie"
 
 les type admis sont 
  CHAR(x) ou  CHARACTER(x)       alpha, lg fixe
  VARCHAR(x)                     alpha, lg variable
  INT     ou  INTEGER/SMALLINT   binaire 2 ou 4 octets
  REAL/DOUBLE(x,y)               virgule flottante
  NUMERIC(x,y)                   numérique étendu
  DEC(x,y ou  DECIMAL(x,y)       numérique packé


|    Changer de couleur
 
 la clause %EXEC indique l'emplacement et le nom du pgm à appeller :
 
     %EXEC{ /qsys.lib/qgpl.lib/monprog.pgm %}
 
 ou  %EXEC{ monprog.pgm %}
 
 dans ce dernier cas le pgm est recherché dans
     la bibliothèque indiquée par EXEC_PATH dans le fichier INI.
 
 ATTENTION, si vous indiquez DTW_PAD_PGM_PARMS = YES, les paramètres sont
             transmis avec des espaces sur la lg indiquée.
 Sinon, les paramètres alpha sont recu en tant que chaîne de caractère
  à terminaison 0.C'est à dire que le dernier caractère significatif est
  immédiatement suivi d'un zéro hexa (X'00).
 
 Ce sont les chaînes manipulées par le langage C [OPTION(*STR) en RGP4]
 --------------------------------------------------------------------------
 Pour exécuter la fonction (donc le pgm) :
 
 @verifdate(DATCMD, DATFMT, RETOUR)
 


|    Changer de couleur
 
Persistance :
 
 il s'agit de garder la "session" active sur plusieurs macros Net.DATA
 
  - les variables resteront chargées en mémoire (moins de paramètres)
 
  - il sera possible d'envisager COMMIT/ROLLBACK
 
ces fonctions Net.DATA utilisent la persitance des pgm CGI apparue en V4R40.
 
@DTW_STATIC()     indique une macro persistante [Doit être le premier ordre]
 
@DTW_RTVHANDLE(h) génère un handle pour une session (identifiant)
 
ce handle doit être transmis en tant que premier paramètre à Net.DATA
 
     /netdata/$(handle)/chemin/fichier-macro.d2w/section
 
@DTW_ACCEPT(h)    doit doit en tête de chaque section de la même session
                   sauf la dernière,qui va "clore" la session, par :
@DTW_TERMINATE()


|    Changer de couleur
 
le scénario est le suivant (fichier persist01.d2w) :
 
@DTW_STATIC
%DEFINE{
  test =""
  id   =""
%}
 
@DTW_RTVHANDLE(id)
 
%html(affiche){
@DTW_ACCEPT(id)
<HTML>
  <BODY>
  @DTW_ASSIGN(test, "essai")
  voici le contenu de test : $(test), voyez la
    <A HREF="/netdata/$(id)/html/macros/persist02.d2w/suite"> fin </A>
  </BODY>
</HTML>
%}
 


|    Changer de couleur
puis, persist02.d2w
 
@DTW_STATIC()
 
%html(suite) {
@DTW_ACCEPT(id)
  <HTML>
   <BODY>
    re-voici le contenu de test : $(test) , et maintenant la
    <A HREF="/netdata/$(id)/html/macros/persist02.d2w/fin"> fin </A>
   </BODY>
  </HTML>
%}
 
%html(fin) {
@DTW_TERMINATE()
 <HTML>
   <BODY>
    transaction termin&eacute;e
   </BODY>
 </HTML>
%}


|    Changer de couleur
 
 Les PTF Net.DATA DE JUILLET 2001 apportent :
 
 a/ une meilleure gestion de l'historique
 
    DTW_TRACE_LOG_LEVEL =   OFF        : pas de trace
                            APPLICATION: trace au niveau applicatif
                            SERVICE    : trace destinée à la maintenance IBM
 
    DTW_TRACE_LOG_DIR   = répertoire de stockage des fichiers trace
 
    DTW_TRACE_MERGE_RECORD = YES | NO
 
                            YES, NetData ne créé qu'un seul fichier trace
 
                            (NETDATA.TRACE)
 
                            NO, NetData créé un fichier trace par thread
 
                            (NETDATA.TRACE.xxxxxx où xxxxx est l'identifiant
                              du process et du thread)
 


|    Changer de couleur
 
 b/ une meilleure gestion des erreurs
 
    DTW_ERROR_LOG_LEVEL =   OFF        : pas de consignation des erreurs
 
                            INFORMATION: log des messages d'info.
 
                            ERROR      : log des messages d'erreur
 
                            INFORMATION+ERROR : les deux précédents
 
                            ALL        : tous les messages, même ceux
                                          gérés (séquences SQL)
 
    DTW_ERROR_LOG_DIR   = répertoire de stockage des fichiers trace
 
                          (fichier NETDATA.ERROR.LOG)
 
    DTW_DEFAULT_ERROR_MESSAGE "erreur g&eacute;n&eacute;rale Netdata"
 
 
 


|    Changer de couleur
 
c/ il est possible de remonter un fichier du client vers le serveur,
 
   pour cela placez un formulaire contenant :
 
   <FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="ma-macro">
 
     puis une zone de saisie <INPUT TYPE="FILE" name="FICHIER">
 
   l'utilisateur pourra saisir un nom de fichier dans FICHIER et même
     verra apparaitre (dans le formulaire) un bouton "parcourir..."
 
    le fichier sera placé dans le répertoire indiqué par DTW_UPLOAD_DIR
     et sera nommé macro.variable.identifiant.nom-de-fichier 
 
     - macro est le nom de la macro NetData
     - variable est le nom de la variable (ici FICHIER)
     - identifiant est : date/heure/centième + n° de process + N° thread
     - nom de fichier est le nom d'origine du fichier.
 
     (le nom complet [chemin compris] est placé dans FICHIER)
 


|    Changer de couleur
 Principales fonctions Net.Data :
 --------------------------------------------------------------------------
                                (*) disponibles avec les PTF de Juillet 2001
 General Functions
  DTW_ADDQUOTE                        DTW_HTMLENCODE
  DTW_CACHE_PAGE                      DTW_QHTMLENCODE
  DTW_DATE                            DTW_SENDMAIL
  DTW_EXIT                            DTW_SETCOOKIE
  DTW_GETCOOKIE                       DTW_SETENV
  DTW_GETENV                          DTW_TIME
  DTW_GETINIDATA                      DTW_URLESCSEQ
 
 Math Functions                      Word Functions
  DTW_ADD                             DTW_DELWORD
  DTW_DIVIDE                          DTW_SUBWORD
  DTW_DIVREM                          DTW_WORD
  DTW_FORMAT                          DTW_WORDINDEX
  DTW_INTDIV                          DTW_WORDLENGTH
  DTW_MULTIPLY                        DTW_WORDPOS
  DTW_POWER                           DTW_WORDS
  DTW_SUBTRACT                    (*) DTW_EVAL    (comme le COMPUTE COBOL)
 


|    Changer de couleur
 
 String Functions
  DTW_ASSIGN                           DTW_POS
  DTW_CHARTOHEX                        DTW_REPLACE
  DTW_CONCAT                           DTW_REVERSE
  DTW_DELSTR                           DTW_STRIP
  DTW_HEXTOCHAR                        DTW_SUBSTR
  DTW_INSERT                           DTW_TRANSLATE
  DTW_LASTPOS                          DTW_UPPERCASE
  DTW_LENGTH                       (*) DTW_PAD
  DTW_LOWERCASE                    (*) DTW_ISNUMERIC
 
 Table Functions (table NETDATA)
 
  il s'agit de table (zone mémoire à double entrée)
 
  1/ vous manipulez la table afin de la charger (en ligne/colonne)
 
  2/ vous demander à NET.DATA de vous générer des listes à partir de cette
      table en mémoire.
 
 


|    Changer de couleur
 
 manipulation d'une table
 
  DTW_TB_APPENDROW                      DTW_TB_INSERTCOL
  DTW_TB_COLS                           DTW_TB_INSERTROW
  DTW_TB_DELETECOL                      DTW_TB_SETN (attribuer un nom)
  DTW_TB_DELETEROW                      DTW_TB_SETV (     "    une valeur)
  DTW_TB_QUERYCOLNONJ                   DTW_TB_GETN (retrouver le nom)
  DTW_TB_ROWS                           DTW_TB_GETV (   "      la valeur)
  DTW_TB_SETCOLS
  DTW_TB_HTMLENCODE
 
 génération de HTML
 
  DTW_TB_TABLE      génère une table HTML <table> <tr>, etc...</table>.
  DTW_TB_LIST          "   une liste HTML <UL>,<LI> ...
  DTW_TB_DLIST         "    "  liste de définitions (<DL> <DT> ...)
  DTW_TB_SELECT        "    "  liste déroulante     (<SELECT> ...)
  DTW_TB_INPUT_CHECKBOX     "  série de cases à coher
  DTW_TB_INPUT_RADIO        "  série de boutons radio
  DTW_TB_INPUT_TEXT    "    "  série de zones texte (<INPUT type="text"...)
 


|    Changer de couleur
 
 Flat File Interface Functions (fichiers IFS)
 
  DTWF_APPEND                           DTWF_UPDATE
  DTWF_CLOSE                            DTWF_WRITE
  DTWF_DELETE                           DTWF_SEARCH
  DTWF_INSERT                       (*) DTWF_READFILE  > dans une variable
  DTWF_OPEN                         (*) DTWF_WRITEFILE < depuis une variable
  DTWF_READ                         (*) DTWF_COPY
  DTWF_REMOVE                       (*) DTWF_EXISTS
 
 Web Registry Functions (fichiers paramètres)
 
  DTWR_ADDENTRY                        DTWR_LISTSUB
  DTWR_CLEARREG                        DTWR_OPENREG
  DTWR_CLOSEREG                        DTWR_RTVENTRY
  DTWR_CREATEREG                       DTWR_UPDATEENTRY
  DTWR_DELENTRY                        DTWR_LISTREG
  DTWR_DELREG
 
 La Web registry est en fait l'équivalent d'un fichier INI, possédant
  deux colonnes (clé et données), complétement à la charge de Net.Data.


|    Changer de couleur
 
 Persistent Macro Functions (persistence, vue plus haut)
 
  DTW_ACCEPT                            DTW_RTVHANDLE
  DTW_COMMIT                            DTW_STATIC
  DTW_ROLLBACK                          DTW_TERMINATE
 
 
  Pour le détail des ces fonctions ainsi que les codes retour,
   voyez le site:
 
    http://www.as400.ibm.com/tstudio/netdata/docs/doc.htm
 
 
 ainsi que le site Net.Data sur AS/400
 
   http://www.As400.ibm.com/netdata --> LE site Net.Data sur AS/400.
 
   http://www.zebranet.fr           --> site francais avec des exemples.
 
   http://www.ignite400.org         --> forum sur Net.Data,écrit en Net.Data
 





©AF400