Accueil du site > Les articles > Fax et AS/400
Version à imprimer Enregistrer au format PDF

Fax et AS/400

vendredi 6 janvier 2006, par Grégory Jarrige Visites  2306

Cet article a pour objectif de vous présenter un exemple d’utilisation du logiciel de télécopie intégré à l’AS/400.


IBM propose à son catalogue un logiciel de télécopie intégré à l’AS/400.

Si mes renseignements sont bons, ce système est intégré en standard sur tous les AS/400 vendus par IBM (ou en tous les cas sur tous les modèles récents). Si on souhaite l’utiliser, il est possible de l’activer moyennant l’achat d’une licence à IBM.

Je vous épargnerai les détails techniques de l’activation, car je ne m’en suis pas occupé personnellement. Je vous parlerai plutôt de la manière dont vous pouvez l’utiliser et l’intégrer dans vos programmes Adelia et/ou RPG.

Avant d’aller plus loin, signalons simplement que le principe de ce logiciel consiste à prendre un fichier spoule AS/400, et à l’envoyer à un destinataire au moyen d’une commande OS/400, en indiquant à cette commande les paramètres du spoule (nom du spoule, nom du travail, numéro du spoule, ...) et le numéro de fax du destinataire. C’est certes rudimentaire (pas de possibilité d’enrichissement du spoule envoyé tel quel), mais robuste et efficace. Il existe quelques variantes à ce que je viens d’énoncer, mais je n’ai pas utilisé les autres possibilités de ce produit, je vous laisserai donc les découvrir en parcourant la documentation.

Vous trouverez la documentation de ce logiciel sur les URL suivantes :

Facsimile Support Homepage :

www-1.ibm.com/servers/eserver/iseries/fax400/

Facsimile Support Redbook :

www.redbooks.ibm.com/pubs/pdfs/redbooks/sg244636.pdf

Facsimile Support Manuals : Installation Guide

publib.boulder.ibm.com/pubs/html/as400/v5r1/ic2924/books/c4106541.pdf

Facsimile Support Manuals : User’s Guide

publib.boulder.ibm.com/pubs/html/as400/v5r1/ic2924/books/c4106551.pdf

Facsimile Support Manuals : Programmer’s Guide

publib.boulder.ibm.com/pubs/html/as400/v5r1/ic2924/books/c4106561.pdf

Le dernier document (c4106561.pdf) est le plus important, si vous souhaitez développer des programmes s’appuyant sur cette solution de télécopie intégrée.

Avant de continuer, signalons quelques commandes de base de ce logiciel de télécopie, qu’il est nécessaire de connaître :

- CHKFAXSTS : cette commande permet de contrôler l’état des télécopies, selon différents critères dont nous reparlerons

- GO FAX : menu du logiciel de télécopie destiné aux administrateurs

- GO FAXUSR : menu du logiciel de télécopie destiné aux utilisateurs

- SBMFAX : commande d’envoi d’une télécopie à partir d’un spoule. Cette commande utilise de nombreux paramètres, nous y reviendrons également.

Il faut savoir que, pour qu’un utilisateur puisse utiliser la commande SBMFAX, il faut qu’il soit reconnu dans la base des utilisateurs du logiciel de télécopie. S’il n’est pas déclaré dans le logiciel, sa demande d’envoi de télécopie échouera. Pour créer vos utilisateurs, il faut passer par le menu administrateur (GO FAX).

Pour faciliter la vie de nos utilisateurs, nous avons mis à leur disposition 2 options de menus, une pour visualiser la liste des télécopies en erreur, et l’autre pour visualiser la liste des télécopies à envoyer ou en cours d’envoi. Pour ces options de menus, nous aurions pu utiliser la commande CHKFAXSTS directement, mais nous avons préféré l’utiliser au travers d’un petit programme CL (CHKFAXCL) dont je vous donne le source en pièce jointe. Signalons simplement que :

- pour visualiser les télécopies en erreur :

CALL CHKFAXCL ('*ERROR' '*ALL' '*INVIT')

- pour visualiser les télécopies en cours d’envoi et envoyés :

CALL CHKFAXCL ('*NONERROR' '*ALL' '*INVIT')

Je ne dirai rien du premier paramètre, je pense que vous aurez compris à quoi il sert. Le second paramètre permet de demander l’affichage de toutes les télécopies (*ALL) plutôt que les télécopies de l’utilisateur (*CURRENT), et le dernier paramètre permet de demander l’affichage du mode invite (*INVIT), permettant à l’utilisateur de modifier certains des paramètres d’affichage (on aurait pu indiquer "*NOINVIT" si on avait voulu verrouiller les critères d’affichage).

Comment envoyer un spoule AS/400 en télécopie ?

En utilisant la commande SBMFAX. Cette commande offre de nombreux paramètres et j’avoue que nous avons un peu tâtonné avant de trouver les critères les mieux adaptés à nos besoins. A noter qu’en plus du numéro de fax du destinataire, on peut aussi indiquer des paramètres tels que le nom du destinataire (en clair dans un champ texte dédié à cet usage), ainsi que d’autres références.

Nous avons choisi d’utiliser la commande SBMFAX au travers d’un petit programme CL (ENVFAXCL) dont vous trouverez le source dans le fichier texte joint. Dans ce programme CL, vous remarquerez le nombre important de paramètres utilisés.

SBMFAX TYPE(*BCH)            
      OPTION(*SPLEXIST)    
      DSTSELMTH(*EXT)      
      DEST(&NOMCOR)        
      ID(&USR)              
      TEXT(&DESCR)          
      TO(&FAX)              
      FILE(&FICSPOOL)      
      JOB(&NBR/&USR/&JOB)  
      SPLNBR(&NBRSPOOL)    
      FAXD(*ANY)            
      MODE(*FINE)          
      CRTCVRP(*NO)          
      SNDACK(*YES)          
      ACKTYP(*BREAK)        
      SNDTIME(*CURRENT)    
      TRANSFORM(*YES)      
      USRDFNFLD1(&FAX)    
      USRDFNFLD2(&NUMCDE)  

Je pense utile d’insister sur l’importance des paramètres DEST, TEXT, USRDFNFLD1 et USRDFNFLD2 qui pourraient sembler superflus au premier abord. Ces paramètres se sont révélés importants à l’usage, car ils permettent aux utilisateurs de disposer d’informations précieuses quand ils utilisent les options de consultation des télécopies (en erreur ou pas) dont j’ai parlé précédemment. En effet, à partir de ces options, la touche de fonction F11 permet de changer de type d’affichage, et de voir ainsi, soit le nom du destinataire (paramètre DEST), soit le descriptif du document (paramètres TEXT), soit le numéro de fax du destinataire (paramètre USRDFNFLD1), soit le numéro de commande (paramètre USRDFNFLD2) puisque nos utilisateurs utilisent ce système pour envoyer des bons de commandes à leurs fournisseurs.

Pour encapsuler plus facilement le programme ENVFAXCL dans nos programmes Adelia, nous avons choisi de l’utiliser au travers d’une règle de gestion, prénommée SBM_FAX, dont vous trouverez également le source dans le fichier texte joint à cet article.

Concrètement, dans un programme Adelia éditant des bons de commandes fournisseurs, on utilisera cette règle de gestion dans une boucle telle que celle ci-dessous :

POSITIONNER_AV CDEFOU
LIRE_SUIVANT   CDEFOU
TANT_QUE       CDEFOU EXISTE
 *-- ouverture du PRTF associé au programme BONCDE
 OUVRIR BONCDE
 *-- alimentation et édition du bon de commande (j'ai simplifié)
 EDITER BON_COMMANDE
 *-- fermeture du PRTF pour n'avoir qu'un spoule par
 *     commande fournisseur
 FERMER BONCDE
 *-- Envoi de la télécopie
 INSERER_RG SBM_FAX(....)
 *-- Lecture de la commande suivante
 LIRE_SUIVANT   CDEFOU
REFAIRE

Bien sûr, j’ai simplifié l’exemple au maximum, l’objectif était de vous donner l’idée générale, à vous d’adapter ensuite à vos besoins.

Un dernier point : quand nous avons commencé à utiliser cette solution, nous nous heurtions à un problème préoccupant. En effet, nous ne recevions jamais l’accusé de réception indiquant que la télécopie était bien arrivée. Toutes nos télécopies demeuraient à l’état "en cours d’envoi". Nous nous sommes finalement rendus compte que ce problème pouvait être corrigé par la manière d’initialiser le logiciel au démarrage. Nous nous sommes rendus compte par la même occasion, mais sans trop savoir pouquoi, qu’il était indispensable de réinitialiser quotidiennement le logiciel pour obtenir un fonctionnement correct des accusés de réception. C’est pourquoi nous avons écrit un petit programme CL de redémarrage (STRFAXCL), que vous trouverez dans le fichier texte joint à cet article et que nous avons planifié dans le planning de travaux de notre AS/400 de production.

Documents joints