OPALE - 10.0 - Utilisation - Repagination d'un fichier spool IBM-i

Différence entre versions

De MappingDoc
(Exécution sur le serveur)
Ligne 1 : Ligne 1 :
 
=Préambule=
 
=Préambule=
Le but de ce use case est la repagination d'un fichier spool IBM-i.
+
Le but de ce use case est la repagination d'un fichier spool IBM i.
  
 
Pour ce fait, nous allons utilisés la commande MAPSORTPAG ensuite la commande MAPRUNRPT (M-Connect). La commande MAPSORTPAG va mettre le contenu du fichier spool IBM-i dans un fichier physique ensuite la commande MAPRUNRPT va lire ce fichier physique et va recréer un fichier spool IBM-i avec la pagination voulu.<br>
 
Pour ce fait, nous allons utilisés la commande MAPSORTPAG ensuite la commande MAPRUNRPT (M-Connect). La commande MAPSORTPAG va mettre le contenu du fichier spool IBM-i dans un fichier physique ensuite la commande MAPRUNRPT va lire ce fichier physique et va recréer un fichier spool IBM-i avec la pagination voulu.<br>
Ligne 21 : Ligne 21 :
 
  MAPSORTPAG SPLF(A000000002) SPLNUM(3) JOB(QPADEV0008) JOBNUM(487312) USER(JDIEU) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
 
  MAPSORTPAG SPLF(A000000002) SPLNUM(3) JOB(QPADEV0008) JOBNUM(487312) USER(JDIEU) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
  
Le spool IBM-i est maintenant en base dans le fichier physique MAP$$SORT/MYPF
+
Le spool IBM i est maintenant en base dans le fichier physique MAP$$SORT/MYPF
  
 
==MAPRUNRPT==
 
==MAPRUNRPT==
  
Cette commande va exécutée un Connect lisant ce fichier physique MYPF et va créer un spool avec une nouvelle pagination.
+
Cette commande exécute un Connect lisant ce fichier physique MYPF et crée un spool avec une nouvelle pagination.
  
 
===Projet Connect===
 
===Projet Connect===
 
====Création du projet Connect====
 
====Création du projet Connect====
 +
 
#Créer une nouvelle projet Connect
 
#Créer une nouvelle projet Connect
#Modifier le nom de format dans les propriétés du projet en cliquant sur '''Proprieties''' et lui donner pour valeur '''NEWPAG'''
+
#Modifier le nom de format dans les propriétés du projet en cliquant sur '''Properties''' et lui donner pour valeur '''NEWPAG'''
 
#Cliquer sur '''Insert table (.def)'''
 
#Cliquer sur '''Insert table (.def)'''
#Aller chercher le .def précédement généré sur le Opale Server (cela aura pour effet créer une table Connect automatiquement)
+
#Aller chercher le .def précédemment généré sur Opale Server (cela aura pour effet créer une table Connect automatiquement)
 
#Cliquer sur le bouton '''Spooled file''' (situé sur la barre verticale à gauche)
 
#Cliquer sur le bouton '''Spooled file''' (situé sur la barre verticale à gauche)
 
#Cliquer sur '''New Block'''
 
#Cliquer sur '''New Block'''
 
#Donner un nom au bloc : '''MYBLOCK'''
 
#Donner un nom au bloc : '''MYBLOCK'''
#Faire un drag and drop du champs '''PRTDTA''' de la table MYPF sur le block
+
#Faire un drag and drop du champ '''PRTDTA''' de la table MYPF sur le bloc
 
#Créer 2 variables dans la table DB : LINE# et TOTLINE (TOTLINE que vous définissez en Input Parameter)
 
#Créer 2 variables dans la table DB : LINE# et TOTLINE (TOTLINE que vous définissez en Input Parameter)
 
#Dans les actions de la table MYPF, entrer les actions pour obtenir ce que vous avez ci-dessous : [[Fichier:OP_S_PAG_2.jpg|vignette|450x450px|alt=|néant]]
 
#Dans les actions de la table MYPF, entrer les actions pour obtenir ce que vous avez ci-dessous : [[Fichier:OP_S_PAG_2.jpg|vignette|450x450px|alt=|néant]]
#Cliquer sur '''Preview''' , taper 10 pour la valeur de DB.TOTLINE et vérifiez que le contenu de votre PF soit écrit avec le bon nombre de ligne
+
#Cliquer sur '''Preview''' , taper 10 pour la valeur de DB.TOTLINE et vérifier que le contenu de votre PF soit écrit avec le bon nombre de lignes
 +
 
 
<u>Exemple de preview</u> :
 
<u>Exemple de preview</u> :
 
[[Fichier:OP_S_PAG_3.jpg|vignette|1000x1000px|alt=|néant]]
 
[[Fichier:OP_S_PAG_3.jpg|vignette|1000x1000px|alt=|néant]]
Nous pouvons constater que notre spooled file généré comporte bien uniquement 10 lignes. (Valeur spécifiée dans le paramètre TOTLINE lors du lancement de la preview)
+
Nous pouvons constater que notre spooled file généré comporte bien uniquement 10 lignes. (valeur spécifiée dans le paramètre TOTLINE lors du lancement de la preview)
  
 
====Fonctionnement général du projet Connect====
 
====Fonctionnement général du projet Connect====
  
Fenêtre de la table DB. (Ce qui est dans ACTION sera exécuté lors de l'exécution du Connect)
+
Fenêtre de la table DB. (ce qui se trouve dans ACTION sera exécuté lors de l'exécution du Connect)
  
 
[[Fichier:OP_S_PAG_1.jpg|vignette|450x450px|alt=|néant]]
 
[[Fichier:OP_S_PAG_1.jpg|vignette|450x450px|alt=|néant]]
Ligne 52 : Ligne 54 :
  
  
Fenêtre de la table MYPF. (Ce qui est dans MYPF sera exécuté lors de l'exécution du Connect au niveau du '''Execute MYPF''')
+
Fenêtre de la table MYPF. (ce qui se trouve dans MYPF sera exécuté lors de l'exécution du Connect au niveau du '''Execute MYPF''')
  
 
[[Fichier:OP_S_PAG_2.jpg|vignette|450x450px|alt=|néant]]
 
[[Fichier:OP_S_PAG_2.jpg|vignette|450x450px|alt=|néant]]
  
le '''Read MYPF''' va lire la première ligne du fichier physique MYPF. Pour cette ligne en cours, le moteur Connect va :
+
Le '''Read MYPF''' lit la première ligne du fichier physique MYPF. Pour cette ligne en cours, le moteur Connect va :
#Ecriture le BLOC MYBLOC via le '''Write MYPF : MYBLOC'''(Bloc Connect contenant la valeur de l'enregistrement de MYPF en cours)
+
 
 +
#Ecrire le BLOC MYBLOC via le '''Write MYPF : MYBLOC''' (bloc Connect contenant la valeur de l'enregistrement de MYPF en cours)
 
#Incrémenter le compteur de nombre de ligne (Variable DB.LINE# déclaré dans la table DB)
 
#Incrémenter le compteur de nombre de ligne (Variable DB.LINE# déclaré dans la table DB)
 
#Vérifier sa valeur : Si le numéro de ligne en cours est égale à la valeur passé en paramètre pour le nombre de ligne souhaité alors Connecte fera un saut de page (instruction page break) et ensuite on met ce compteur à 0.
 
#Vérifier sa valeur : Si le numéro de ligne en cours est égale à la valeur passé en paramètre pour le nombre de ligne souhaité alors Connecte fera un saut de page (instruction page break) et ensuite on met ce compteur à 0.
Ligne 64 : Ligne 67 :
 
====Exécution du Connect sur le serveur====
 
====Exécution du Connect sur le serveur====
  
Une fois le Connect généré et importé sur le serveur Opale, il faudra exécuter la commande suivante :
+
Une fois le Connect généré et importé sur le serveur Opale, il faut exécuter la commande suivante :
  
 
  MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')
 
  MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')
  
L'exécution de cette commande aura pour effet de lire le contenu du fichier physique MYPF et de créer un nouveau spooled file (MYREPORT) ayant un saut de page toute les 10 lignes.
+
L'exécution de cette commande a pour effet de lire le contenu du fichier physique MYPF et de créer un nouveau spooled file (MYREPORT) ayant un saut de page toutes les 10 lignes.
  
<u>Remarque</u> : Pour avoir un spooled file avec un saut de page toutes les 20 lignes, il faudra changer la valeur TOTLINE à 20.
+
<u>Remarque</u> : Pour avoir un spooled file avec un saut de page toutes les 20 lignes, il faut changer la valeur TOTLINE à 20.
  
 
=Exécution sur le serveur=
 
=Exécution sur le serveur=
  
Afin d'avoir une exécution automatique sur le serveur, il est nécessaire de créer une entrée dans les règle appelant une action incluant les 2 commandes vues ci-dessus :
+
Afin d'automatiser l'exécution sur le serveur, il est nécessaire de créer une entrée dans les règles appelant une action incluant les 2 commandes vues ci-dessus :
  
 
  MAPSORTPAG SPLF(&SPLF) SPLNUM(&SPLNUM) JOB(&JOB) JOBNUM(&JOBNUM) USER(&USER) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
 
  MAPSORTPAG SPLF(&SPLF) SPLNUM(&SPLNUM) JOB(&JOB) JOBNUM(&JOBNUM) USER(&USER) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
 
  MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')
 
  MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')

Version du 10 juillet 2019 à 09:52

Préambule

Le but de ce use case est la repagination d'un fichier spool IBM i.

Pour ce fait, nous allons utilisés la commande MAPSORTPAG ensuite la commande MAPRUNRPT (M-Connect). La commande MAPSORTPAG va mettre le contenu du fichier spool IBM-i dans un fichier physique ensuite la commande MAPRUNRPT va lire ce fichier physique et va recréer un fichier spool IBM-i avec la pagination voulu.
(Exemple : Un saut de page toutes les 20 lignes passées en paramètre de la commande MAPRUNRPT)

Commandes

MAPSORTPAG

Comme évoqué ci-dessus, la commande MAPSORTPAG est utilisée dans ce cas pour mettre en base le contenu du fichier spool.

Prenons pour exemple la repagination du fichier spool suivant :

Spooled file name . . . . . . . > A000000002
Spooled file number . . . . . . > 3
Job name . . . . . . . . . . . . > QPADEV0008
Job number . . . . . . . . . . . > 487312
User . . . . . . . . . . . . . . > JDIEU

Exécution de la commande suivante :

MAPSORTPAG SPLF(A000000002) SPLNUM(3) JOB(QPADEV0008) JOBNUM(487312) USER(JDIEU) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)

Le spool IBM i est maintenant en base dans le fichier physique MAP$$SORT/MYPF

MAPRUNRPT

Cette commande exécute un Connect lisant ce fichier physique MYPF et crée un spool avec une nouvelle pagination.

Projet Connect

Création du projet Connect

  1. Créer une nouvelle projet Connect
  2. Modifier le nom de format dans les propriétés du projet en cliquant sur Properties et lui donner pour valeur NEWPAG
  3. Cliquer sur Insert table (.def)
  4. Aller chercher le .def précédemment généré sur Opale Server (cela aura pour effet créer une table Connect automatiquement)
  5. Cliquer sur le bouton Spooled file (situé sur la barre verticale à gauche)
  6. Cliquer sur New Block
  7. Donner un nom au bloc : MYBLOCK
  8. Faire un drag and drop du champ PRTDTA de la table MYPF sur le bloc
  9. Créer 2 variables dans la table DB : LINE# et TOTLINE (TOTLINE que vous définissez en Input Parameter)
  10. Dans les actions de la table MYPF, entrer les actions pour obtenir ce que vous avez ci-dessous :
  11. Cliquer sur Preview , taper 10 pour la valeur de DB.TOTLINE et vérifier que le contenu de votre PF soit écrit avec le bon nombre de lignes

Exemple de preview :

Nous pouvons constater que notre spooled file généré comporte bien uniquement 10 lignes. (valeur spécifiée dans le paramètre TOTLINE lors du lancement de la preview)

Fonctionnement général du projet Connect

Fenêtre de la table DB. (ce qui se trouve dans ACTION sera exécuté lors de l'exécution du Connect)


Fenêtre de la table MYPF. (ce qui se trouve dans MYPF sera exécuté lors de l'exécution du Connect au niveau du Execute MYPF)

Le Read MYPF lit la première ligne du fichier physique MYPF. Pour cette ligne en cours, le moteur Connect va :

  1. Ecrire le BLOC MYBLOC via le Write MYPF : MYBLOC (bloc Connect contenant la valeur de l'enregistrement de MYPF en cours)
  2. Incrémenter le compteur de nombre de ligne (Variable DB.LINE# déclaré dans la table DB)
  3. Vérifier sa valeur : Si le numéro de ligne en cours est égale à la valeur passé en paramètre pour le nombre de ligne souhaité alors Connecte fera un saut de page (instruction page break) et ensuite on met ce compteur à 0.
  4. Passer au prochain enregistrement de MYPF grâce à l'instruction Next Read

Exécution du Connect sur le serveur

Une fois le Connect généré et importé sur le serveur Opale, il faut exécuter la commande suivante :

MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')

L'exécution de cette commande a pour effet de lire le contenu du fichier physique MYPF et de créer un nouveau spooled file (MYREPORT) ayant un saut de page toutes les 10 lignes.

Remarque : Pour avoir un spooled file avec un saut de page toutes les 20 lignes, il faut changer la valeur TOTLINE à 20.

Exécution sur le serveur

Afin d'automatiser l'exécution sur le serveur, il est nécessaire de créer une entrée dans les règles appelant une action incluant les 2 commandes vues ci-dessus :

MAPSORTPAG SPLF(&SPLF) SPLNUM(&SPLNUM) JOB(&JOB) JOBNUM(&JOBNUM) USER(&USER) KEYLINE(1) KEYCOL(1) KEYLGN(1) CREATE(*NO) LIB(MAP$$SORT) NAME(MYPF)
MAPRUNRPT RPTNAM(NEWPAG) SPOOLFILE(MYREPORT) OUTQ(LIBOUTQ/MYOUTQ)PARM('DB.TOTLINE=10')