Pause-Café Volubis

pause-café

rendez-vous technique
Pause-Café est une réunion technique
destinée aux informaticiens sur plateforme IBM i.
Elle a lieu 3 à 4 fois par an : en Bretagne et sur internet.

Pause-café #20

Mars 2000





Pour pouvoir envoyer des mail à partir de l'AS/400, vous devez
1/ Avoir une adresse IP sur l'AS/400  (CFGTCP option 1)
2a/ Soit passer par un routeur (implémentant ou pas la fonction de FIREWALL)      sur une LS ou ligne Numeris.
 => Définir les routes (CFGTCP option 2)
                            Work with TCP/IP Routes                                                              Système:   S44R7  Type options, press Enter.    1=Add   2=Change   4=Remove   5=Display
                                                 Type          Route               Subnet              of             Next  Opt     Destination         Mask                Service        Hop   1      132.1.0.0           255.255.0.0         *normal        129.1.1.10            *DFTROUTE           *NONE               *NORMAL        130.1.1.1



2b/ Soit utiliser un serveur SOCKS (Wingate sur PC, par exemple)
 un serveur SOCKS est un mandataire mais travaillant au niveau sockets   (le client na pas besoin d'être configuré de manière particulière)  il existe des versions freeware de SOCKS pour NT et Linux.
 on peut donc faire utiliser un serveur SOCKS à Telnet, FTP, real audio...
 pour configurer l'OS/400 (V4R20) en tant que client SOCKS,    utilisez Opération navigator en cliquant (bouton droit)    sur réseau/protocoles/TCPIP/propriétés...  onglet SOCKS.
Ajoutez (si votre réseau est la classe A 10) les deux lignes suivantes :  #######################################################################   # IP address  !  mask    ! connection   ! server IP adr. ! port       #   # ------------------------------------------------------------------  #   # 10.0.0.0    !255.0.0.0 ! direct       !   none         ! ANY        #   #             !          !              !                !            #   #  0.0.0.0    ! 0.0.0.0  ! SOCKS server !  10.3.1.5      ! ANY        #   #             !          !              !                !            #   ####################################################################### 


3/ attribuer à l'AS/400 un nom , un domaine, des DNS   (CFGTCP option 12)
                        Change TCP/IP Domain (CHGTCPDMN) 
 Indiquez vos choix, puis appuyez sur ENTREE.
 Host name  . . . . . . . . . . .   's44r7480'                                                                                                             Domain name  . . . . . . . . . .   'volubis.intra'                                                                                                                                                                                                                                                                  Host name search priority  . . .   *LOCAL        *REMOTE, *LOCAL, *SAM  Domain name server:                              #########################     Internet address . . . . . . .   '10.3.1.1'    # Indiquez les DNS du   #                                      '10.3.1.5'    #  provider Internet.   #                                                    #########################  4/ enregistrer le nom de votre AS/400 dans la HOST TABLE (utilisée par SMTP)
     CFGCTP option 10


5/ Configurer SMTP
 Vous modifiez les paramètres SMTP par CHGSMTPA 
      AUTOSTART  *YES | *NO     et     AUTOADD    *YES | *NO
      qui indique si l'on souhaite ajouter dans le répertoire système       de manière automatique un ID pour les utilisateurs recevant       des messages et étant inconnus du système (QSMxxxxs de QSMRMTAD)
 Vous pouvez aussi définir un nom de système [CHGSMTPA / MAILROUTER().]   qu'il faut utiliser en tant que routeur de messagerie.
 Et enfin le paramètre FIREWALL(*YES) indique que ce routeur de mail   est un firewall

 Pour résoudre une adresse le système utilise la DNS du domaine et     cherche les enregistrements MX qui identifient un serveur de     messagerie à l'intérieur d'un domaine.


  pour envoyer un message :  API QtmmSendMail
 ou la CDE SNDDST        ----------
  on peut (V4R10) envoyer un message à un utilisateur internet non    enregistré dans le répertoire système.
  on peut aussi envoyer des messages longs [TYPE(*LMSG)]
     il faut la ptf      SF45328 en V3R20  SF45415 en V3R70 SF45226 en V4R10

 la commande SNDDST devient :
    SNDDST TYPE(*LMSG) TOINTNET(user@societe.com)            LONGMSG('votre message')
    dans votre message :  "/N" sera interprété comme un retour chariot                           "/P" comme un changement de paragraphe

      vous devez créer un utilisateur fictif dans le répertoire
      (le redbook propose INTERNET SMTPRTE)

                          Ajout d'un poste au répertoire 
  Indiquez vos choix, puis appuyez sur ENTREE.
    Niveau de service de       messagerie  . . . . .   1                      1=Index utilisateur

    Adresse de prédilection   9                      1=ID util et adresse                                                      2=Nom d'O/R                                                      3=Nom SMTP                                                      9=Autre adresse
      Type d'adresse  . . .   ATCONTXT               F4 pour liste
      Pour l'option 9=Autre adresse:         Nom de zone . . . .   NETUSRID    *IBM       F4 pour liste
 Puis passer la commande CHGDSTA  SMTPRTE(INTERNET SMTPRTE)


Pour recevoir des messages :
 - il est difficile, de recevoir des messages SMTP depuis un terminal,     si cela vous est indispensable, il faut utiliser QRYDST et RCVDST
 - Sinon, faite plutôt travailler POP3
   Il s'agit d'attribuer à chaque utilisateur une boite aux lettre     et démarrer un service répondant aux interrogations de boite aux lettres     (par des produits comme OUTLOOK)

 Vous modifiez les paramètres POP par CHGPOPA 
      AUTOSTART   *YES | *NO
      NBRSRV      nombre de jobs actifs (3)

 Vous démarrez les serveurs par: STRTCPSVR SERVER(*POP | *SMTP)

 les utilisateurs sont enregistrés dans le répertoire système avec
  les paramètres suivants :

                    Modification d'un poste du répertoire
ID util et adresse  . . :   USER      SYSTEME
Indiquez vos modifications, puis appuyez sur ENTREE.
  Niveau de service de     messagerie  . . . . .   2            <--       1=Index utilisateur                                                    2=Messagerie système                                                    3=Autre service de .../...                                              messagerie
   Adresse de prédilection   3           <--        1=ID util et adresse                                                     2=Nom d'O/R                                                     3=Nom SMTP                                                     4=Autre adresse
       Type d'adresse        MIME        <--        F4=Liste ... .../...


  Pour attribuer un nom SMTP, appuyez en plus sur F19


   SMTPAUSRID  SMTP     email                                                                                                                                                                                                      
   SMTPDMN     SMTP     societe.com                                                                                                                                                                                                

 l'adresse de messagerie pour cet utilisateur est alors
           email@societe.com 
 l'identifiant (et le mot de passe) pour relever la boite aux lettres,      est le profil/mot de passe associé à cette entrée du répertoire      système.


IFS admet un nouveau système de fichier QNTC.
 ce dernier représente le cient netbios ou NETSERVER, bref la possibilité   pour l'AS/400, de "voir" les pc de votre LAN.
 pour cela, vous devez configurer d'abord NETSERVER et indiquer comme   domaine le domaine de votre SERVEUR NT.
Ce serveur peut-être un serveur NT sur IPCS (ex FSIOP) ou un serveur NT  autonome sur le LAN (pas de routeur) et accessible en IP (pas NETBEUI)
Pour configurer tout cela :
1/ Configurez WINS sur votre serveur NT (si vous avez des sites distants)
2/ configurez NETSERVER en indiquant a/ le même domaine que le serveur                                      b/ le serveur en tant que serveur WINS 3/ démarrez QSERVER sur l'AS
4/ démarrez NETSERVER (STRTCPSVR *NETSVR)


Utilisez pour vos manipulations, un profil connu des deux machines                                  ayant le MEME mot de passe sur les deux.                                  (hors notion de casse)
pour reconnaitre la serveur "SERVEURNT"
 MKDIR '/QNTC/SERVEURNT'
pour vérifier et visualiser les partages
 WRKLNK '/QNTC/*'
Pratiquement toutes les API IFS sont valides
La plupart des commandes IFS sont admises
  MKDIR, RMVLNK, etc...
  EDTF pour modifier un fichier texte
  SAUF : SAV et RST !


........................................................................... :                           Gestion des liens d'objet                     : :                                                                         : : Répertoire . . . . :   /QNTC                                            : :                                                                         : : Indiquez vos options, puis appuyez sur ENTREE.                          : :   3=Copier   4=Enlever   5=Niveau suivant   7=Rebaptiser                : :   8=Afficher attributs   11=Modifier répertoire en cours...             : :                                                                         : : Opt   Lien objet             Type             Attribut     Texte        :       .                      DDIR                                       :       ..                     DDIR                                       :       PCAF4                  DDIR                                       :       PCNT01                 DDIR                                       :  5    SERVEURNT              DDIR                                       :       SERVEURTSE             DDIR                                       : :.........................................................................:
 Ici, la liste des machines reconnnues
 Il y a aussi un serveur NT simple (non PDC) et des NT Workstation.


........................................................................... :                           Gestion des liens d'objet                     : :                                                                         : : Répertoire . . . . :   /QNTC                                            : :                                                                         : : Indiquez vos options, puis appuyez sur ENTREE.                          : :   3=Copier   4=Enlever   5=Niveau suivant   7=Rebaptiser                : :   8=Afficher attributs   11=Modifier répertoire en cours...             : :                                                                         : : Opt   Lien objet             Type             Attribut     Texte        :       .                      DDIR                                       :       ..                     DDIR                                       :       DSK                    DDIR                                       : :                                                                         : :                                                                         : :                                                                         : :.........................................................................:

  Si vous n'êtes pas reconnu par le contrôleur principal de domaine.


........................................................................... :                           Gestion des liens d'objet                     : :                                                                         : : Répertoire . . . . :   /QNTC                                            : :                                                                         : : Indiquez vos options, puis appuyez sur ENTREE.                          : :   3=Copier   4=Enlever   5=Niveau suivant   7=Rebaptiser                : :   8=Afficher attributs   11=Modifier répertoire en cours...             : :                                                                         : : Opt   Lien objet             Type             Attribut     Texte        :       .                      DDIR                                       :       ..                     DDIR                                       :       save                   DDIR                                       :       CDROM                  DDIR                                       :       DSK                    DDIR                                       :       EXCEL                  DDIR                                       : :.........................................................................:
  Si vous êtes reconnu, vous voyez tous les partages.


  En passant la commande EDTF 'QNTC/nom-serveur/nom-partage/fichier'  :

 Edit File: /QNTC/SERVEURNT/Internet/wwwroot/default.htm  Record . :       1 of      14 by   8            Column:    1 of   97 by  74  Control  :
 CMD ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.      ************Début des données**************      <!doctype html public "-//IETF//DTD HTML//EN">     <HTML>          <HEAD>          <BODY BACKGROUND="/samples/images/backgrnd.gif">          <TITLE>Microsoft Internet Information Server</TITLE>          </HEAD>          <BODY BGCOLOR="FFFFFF">     <CENTER>     <IMG SRC="/samples/images/h_logo.gif" ALIGN="BOTTOM" ALT="Microsoft Inte



Normalement, les partages commencant par "$" sont masqués
 l'AS/400 montre tous les partages , même ceux commencant par $


.......................................................................... :                                                                        : : Si vous avez des machines linux avec SAMBA, vous devez les voir.       : :                                                                        : :  avec MKDIR '/QNTC/linux'                                              : :                                                                        : :                                                                        : :                                                                        : :........................................................................:

Et dernier point, le site de netserver est www.as400.ibm.com/netserver


DB2 suite et suite ...

Rappel:  de nouveaux types de données apparaissent en V4R40 (ptf SF99104)
    les types de données LARGES ou LOB,(jusqu'à 15 Mo).     les DATALINK (ou URL)
CREATE TABLE WEBDB/ARTICLES (  NOART    CHAR (6 ) NOT NULL,  LIBART   CHAR(50) NOT NULL WITH DEFAULT,  PRIX     DEC (7 , 2),  QTESTOCK DEC (5 , 0) NOT NULL WITH DEFAULT,  URL      DATALINK LINKTYPE URL FILE LINK CONTROL             MODE DB2OPTIONS,  IMAGE    BLOB (1M ) NOT NULL WITH DEFAULT, CONSTRAINT ART_PK PRIMARY KEY (NOART))

  Pour les DATALINK,   vous devez lancer un serveur TCP/IP appelé DLFM        pour gérer les contrôles temps réel et la table doit être journalisée

mise en place donnée par la doc:
               PGM

               CRTJRNRCV  JRNRCV(AF400/AF4RCV0001) THRESHOLD(5000) +                             TEXT('RECPTEURURNAL AF400')
               CRTJRN     JRN(AF400/AF4JRN) JRNRCV(AF400/AF4RCV0001) +                             MNGRCV(*SYSTEM) DLTRCV(*YES) +                             TEXT('JOURNAL POUR AF400')
               STRJRNPF   FILE(AF400/AF4URLP1) JRN(AF400/AF4JRN) +                             IMAGES(*AFTER) OMTJRNE(*OPNCLO)

               WRKRDBDIRE  /* pour vérifier le nom RDB */
               STRTCPSVR  SERVER(*DLFM)
               ADDPFXDLFM PREFIX(('/AF4DIR'))
               ADDHDBDLFM HOSTDBLIB((AF400)) HOSTDB(S44R7480)                ENDPGM

mise en place sur les conseils du point service (pbr de CCSID)
               PGM

               CRTJRNRCV  ...                CRTJRN     ...                STRJRNPF   ...
               WRKRDBDIRE  /* pour vérifier le nom RDB */
               STRTCPSVR  SERVER(*DLFM)
               ADDPFXDLFM SRCFILE(DB2SRC) SRCMBR(pfx)
/* le fichier contient "/HTML/TOOL/"                 */
               ADDHDBDLFM SRCFILE(DB2SRC) SRCMBR(hdb)
/* le fichier contient "WEBDB QSYS S44R7480"                      */ /* avec WEBDB, la bibliothèque contenant des tables avec DAtaLink */ /* S44R7480  , le nom RDB                                         */
               ENDPGM


pour insérer des images
   --    -- LES IMAGES PORTENT COMME NOM LE CODE_ARTICLE.GIF    --    update ARTICLES set url =    dlvalue('HTTP://S44R7480/HTML/TOOLS/GIF/' concat noart concat    '.gif', 'URL', 'image au format gif')


Champs BLOB
pgm d'insertion d'images       *       * un champs de type BLOB_FILE contient non pas une image       *  mais le chemin d'une image       *       *  a/ à lire lors d'un insert ou d'un update       *  b/ à écrire lors d'un select       *

      *
      * SEU (janvier 2000) refuse le mot-clé SQLTYPE
      *     ==> forcez, ca passe trés bien à la compil.
      *
     d image           s                   SQLTYPE(BLOB_FILE)
     d articles      e ds
     C/exec sql
     C+ DECLARE C1 CURSOR FOR SELECT noart FROM articles FOR UPDATE
     C+ OF image
     C/end-exec
     C/exec sql
     C+         open c1
     C/end-exec
     c                   dou       sqlcod <> 0
     C/exec sql
     C+         fetch c1 into :noart
     C/end-exec
     c                   if        sqlcod <> 0
     c                   leave
     c                   endif
     c                   eval      image_fo = SQFRD


     c                   eval      image_name = '/html/TOOLS/GIF/' +
     c                              %trimr(noart) + '.gif'
     c                   eval      image_nl = %len(%trim(image_name))
     C/exec sql
     C+         update articles set image = :image
     C+          where current of c1
     C/end-exec
     c                   enddo

     C/exec sql      C+         close c1      C/end-exec      C/exec sql      C+         commit      C/end-exec      c                   eval      *inlr = *on
pgm d'extraction d'images       *       * même principe que ARTIMG_GIF, mais ici les images sont lues dans la       *  base et crées dans IFS.       *


     d Image           s                   SQLTYPE(BLOB_FILE)      d articles      e ds      C/exec sql      C+ DECLARE C1 CURSOR FOR SELECT noart FROM webdb/articles      C/end-exec      C/exec sql      C+         open c1      C/end-exec      c                   dou       sqlcod <> 0      C/exec sql      C+         fetch c1 into :noart      C/end-exec      c                   if        sqlcod <> 0      c                   leave      c                   endif      c                   eval      image_fo = SQFCRT      c                   eval      image_name = '/tmp/' +      c                              %trimr(noart) + '.gif'      c                   eval      image_nl = %len(%trim(image_name))


     C/exec sql
     C+         select image into :image from articles
     C+          where noart = :noart
     C/end-exec
     c                   enddo

     C/exec sql      C+         close c1      C/end-exec      C/exec sql      C+         commit      C/end-exec      c                   eval      *inlr = *on
 pour gérer (voir) les images en Vb, utilisez, par exemple le contrôle    DATA OBJECT (data1, par exemple)
 pour un champs texte, définissez une zone de texte et renseignez                        datasource = data1                         datafield  = noart 
 Et bien faites la même chose en placant sur la feuille un champs image.