Hello ,

Hello,

Pour demander une inscription sur le site, merci de remplir le formulaire suivant.

Il sera transmis à Vincent qui fera le nécessaire... à condition bien sûr qu'il vous connaisse ! ;-)

Seul l'email est obligatoire

Loading

Un email vient d'être envoyé à Vincent qui traitera votre demande d'inscription au plus vite.

Saisir votre email. Si celui-ci correspond bien à celui d'un de nos membres un nouveau mot de passe sera généré et vous recevrez un courriel pour vous le communiquer.

Loading

Un email vient de vous être envoyé.

| Mot de passe perdu ? JavaScript nécessaire !
Fermer

Format instruction CPYFRMIMPF

CPYFRMIMPF FROMSTMF('/home/jmdanloup/WWUCUM.CSV') 
TOFILE(JDANLOUP/WWUCUM) MBROPT(*REPLACE) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(';') RRRCDOPT(*REPLACE)
RPLNULLVAL(*FLDDFT)

Restore de ma bibliothèque sur AS400

  1. Créer un savf sur l'AS400 CRTSAVF QGPL/JMDSAVF
  2. Sur le PC
    • commande DOS FTP xxx.xxx.xxx.xxx (adresse IP de l'AS400)
    • login (login AS400)
    • Password (pwd AS400)
    • binary (pour dire de ne pas faire de traduction)
    • PUT c:\xxx\jdanloup_de_ma_clé_usb QGPL/JMDAVF (transfert PC -> AS400)
  3. Sur AS400
    • CRTLIB JDANLOUP
    • RSTOBJ obj(*all) SAVLIB(jdanloup) DEV(*savf) SAVF(qgpl/jmdavf) RSTLIB(jdanloup)

Débugage en mode Batch

  • Holder le job pour pouvoir récupérer son numéro, le profil et son nom
  • Lancer la commande STRSRVJOB et renseigner les paramètres demandés
  • Lancer la commande STRDBG et validez
  • Libérer le job
  • Au moment ou le programme le demande il faut ajouter les BKP comme en interactif
  • La suite est identique au mode interactif
  • A la fin il faut faire un ENDSRVJOB et un ENDDBG

Trouver l'adresse IP d'un AS400

  • Sur une ligne de commande tapez go cfgtcp
  • Option 1 et on trouve son bonheur

Liste des caractères

  | 0 1 2 3 4 5 6 7 8 9 A B C D E F
--+--------------------------------
4 |     â ä @ á ã å \ ñ ° . < ( + !
5 | & { ê ë } í î ï ì ß § $ * ) ; ^
6 | - / Â Ä À Á Ã Å Ç Ñ ù , % _ > ?
7 | ø É Ê Ë È Í Î Ï Ì µ : £ à ' = "
8 | Ø a b c d e f g h i « » ð ý þ ±
9 | [ j k l m n o p q r ª º æ ¸ Æ ¤
A | ` ¨ s t u v w x y z ¡ ¿ Ð Ý Þ ®
B | ¢ # ¥ · © ] ¶ ¼ ½ ¾ ¬ | ¯ ~ ´ ×
C | é A B C D E F G H I ­ ô ö ò ó õ
D | è J K L M N O P Q R ¹ û ü ¦ ú ÿ
E | ç ÷ S T U V W X Y Z ² Ô Ö Ò Ó Õ
F | 0 1 2 3 4 5 6 7 8 9 ³ Û Ü Ù Ú

Comment tester si le contenu d’une colonne alphanumérique contient ou non une valeur numérique en SQL

Le principe est de remplacer par un espace tous les caractères numériques et vérifier ensuite si on a autre chose que des espaces. Si c’est le cas alors le contenu n’est pas numérique.

On teste aussi directement la valeur espace, sans remplacer aucun caractères pour la considérer comme non numérique.

Très pratique dans une requête de masse, pour tester la bascule possible vers une colonne de type numérique.

L’exemple

SELECT COLONNE ,
CASE 
WHEN TRIM(TRANSLATE(COLONNE, ' ', '+-E.0123456789'))>' '
THEN 'N' WHEN TRIM(COLONNE) = ' ' THEN 'N' ELSE 'O' END AS ISNUMERIQUE FROM TABLE

Exporter des données au format UTF-8

  • 1ère étape, exportez vos données vers l’IFS au format correspondant à l’iseries

    - Pour avoir rapidement un exemple, j’utilise la très bonne commande CPYTOIMPF pour obtenir un fichier au format csv. Attention, la commande telle qu’elle est utilisée fonctionne en V5R4 (à cause du *TRAILING).

    CPYTOIMPF FROMFILE(MYBIB/MYFIC)
    TOSTMF('/home/myrep/myfic.csv')
    RCDDLM(*CRLF)
    RMVBLANK(*TRAILING)
    DECPNT(*PERIOD)
    
    Vous devriez avoir un fichier dans l’ifs avec un ID de jeu de caractères 37. Vérifiez le, via la commande WRKLNK et l’option 8 afficher les attributs.
  • 2ème étape, conversion des données vers utf-8

    - utilisation de la commande CPY

    CPY OBJ('/home/myrep/myfic.csv') 
    TOOBJ('/home/myrep/myfic_utf8.csv')
    FROMCCSID(37) 
    TOCCSID(1208) 
    DTAFMT(*TEXT)
    
    Vous devriez avoir un nouveau fichier dans l’ifs avec un ID de jeu de caractères 1208. Vérifiez le, via la commande WRKLNK et l’option 8 afficher les attributs.

Copier un fichier PC XLS vers un fichier AS400

Un exemple qui montre comment copier un fichier PC XLS (au format texte dos dans l’exemple) vers un fichier zoné de l’AS400.

La commande CPYFRMIMPF permet de copier un fichier que vous aurez stocké dans l’IFS, vers un fichier "zoné" de l’AS400.

Le fichier AS400 (dans l’exemple XLSFIC) doit exister et avoir des zones correspondantes avec les zones du fichier PC. Le paramètre FLDDLM (ici *TAB) permet de définir le délimiteur de zone pour le fichier PC.

Il est possible de récupérer les enregistrements n’ayant pas pu être transférés (format non concordant) peuvent être récupérés dans un fichier source (QTEMP/WERROR dans l’exemple). Ce fichier source aura une longueur minimum de Longueur BUFFER + nbZone + 813.

Document joint = CPYFRMIMPF

Message en BREAK

Pour envoyer un message d’avertissement en "break" lors du lancement d’un traitement, on peut utiliser un CL tel que celui ci-dessous. L’avantage d’un tel CL tient au fait qu’il est suffisamment standardisé pour pouvoir être exploité par tous les CL d’une application.

  Source du CL : CMSGWRK :
  /*=======================================================*/
  /* &JOBN CONTIENT LE NOM DU TRAVAIL SOUMIS */
  /* &JOBD CONTIENT LE NOM DE LA JOBD */
  /* &FILE CONTIENT LA DESCRIPTION DE LA FILE DE TRAVAUX */
  /* &DEVN CONTIENT LE NOM DU TRAVAIL ECRAN */
  /*=======================================================*/
  PGM PARM(&JOBN &JOBD)
  
  DCL VAR(&JOBN) TYPE(*CHAR) LEN(10)
  DCL VAR(&JOBD) TYPE(*CHAR) LEN(10)
  DCL VAR(&FILE) TYPE(*CHAR) LEN(20)
  DCL VAR(&DEVN) TYPE(*CHAR) LEN(10)
  RTVJOBA JOB(&DEVN)
  
  IF COND(&JOBD *EQ 'JOBDESJ') THEN(DO)
  CHGVAR VAR(&FILE) VALUE('de jour. ')
  GOTO CMDLBL(MESSAGE)
  ENDDO
  
  IF COND(&JOBD *EQ 'JOBDESN') THEN(DO)
  CHGVAR VAR(&FILE) VALUE('de nuit. ')
  GOTO CMDLBL(MESSAGE)
  ENDDO
  
  CHGVAR VAR(&FILE) VALUE('de travaux. ')
  
  MESSAGE: SNDMSG MSG('Le travail ' *CAT &JOBN *CAT ' est +
  soumis à la file d''attente ' *CAT &FILE) TOMSGQ(&DEVN)
  
  FIN: ENDPGM
  Exemple de CL utilisant le CL CMSGWRK.
  PGM
  DCL VAR(&JOBN) TYPE(*CHAR) LEN(10) VALUE('LST_CLI')
  DCL VAR(&JOBD) TYPE(*CHAR) LEN(10) VALUE('JOBDESJ')
  /* LANCEMENT DU TRAITEMENT */
  SBMJOB CMD(CALL PGM(Pxxx)) JOB(&JOBN) JOBD(&JOBD)
  /* ENVOI DU MESSAGE A L'UTILISATEUR */
  CALL PGM(CMSGWRK) PARM(&JOBN &JOBD)
  FIN: ENDPGM

Suggestion

il serait intéressant de récupérer dans un fichier la JOBD correspondant au CL qui lance le traitement de manière à pouvoir personnaliser le traitement en fonction des clients sans avoir à modifier le source des CL.

Renommer un fichier dans l'IFS


Aprendre à gérer l’IFS pour la cohabitation AS400 / monde windows est indispensable. Voici un programme RPG qui permet de renommer un fichier dans l’IFS.

Technique.

- Elle est basée sur l’appel de l’API Qp0lRenameKeep.
- Trois paramètres : le nom du fichier d’origine ’/home/chemin/oldfichier.txt’ et le nom du nouveau nom de fichier sous la forme ’/home/chemin/newfichier.txt’, un code erreur qui prend la valeur 0 si tous s’est bien déroulé.
- Si vous indiquez un autre répertoire, le fichier est renommé et le répertoire est modifié.
- En cas d’erreur, le programme retourne la valeur 1.
Pour compiler le source.

  CRTBNDRPG PGM(BIB/IFSFILERNM)
  SRCFILE(BIB/QRPGLESRC)
  SRCMBR(IFSFILERNM)
  DBGVIEW(*SOURCE)
  REPLACE(*NO) 

Document joint => IFSFILERNM

Haut de page