, , Conversion d’une OUTQ en PDF par GENERATE_PDF

Depuis la TR4 de la V7R4,vous avez une fonction qui génère un PDF à partir d’un spool.

Voici une requête qui convertit les spools de votre outq en PDF

On va créer une variable globale pour indiquer le répertoire de génération des PDF

CREATE OR REPLACE VARIABLE QGPL.REPERT_PDF VARCHAR(30)DEFAULT ‘/home/PDF/’

Exécution de la requête sur votre outq

SELECT SPOOLED_FILE_NAME, JOB_NAME, FILE_NUMBER ,
SYSTOOLS.GENERATE_PDF(JOB_NAME => JOB_NAME ,
SPOOLED_FILE_NAME => SPOOLED_FILE_NAME ,
SPOOLED_FILE_NUMBER => FILE_NUMBER,
PATH_NAME => REPERT_PDF concat current date concat ‘_’ concat regexp_replace(JOB_NAME, ‘/’,  ») concat ‘_’ concat
SPOOLED_FILE_NAME concat ‘_’ concat FILE_NUMBER concat ‘.pdf’)
FROM QSYS2.OUTPUT_QUEUE_ENTRIES_BASIC WHERE OUTPUT_QUEUE_NAME = ‘votre_outq’

Le résultat vu par un WRKLNK


C’est juste un exemple, à vous de l’ajuster

, 5 choses à savoir sur le CPYF

Vous voulez copier un fichier vers un autre, une des alternatives est d’utiliser SQL, en utilisant une instruction du genre insert into ficcible select * from ficsource.
Il existe d’autres méthodes que les plus anciens connaissent bien, mais les nouveaux un peu moins.
C’est la commande CPYF voici quelques utilisation à connaître

1) Les sélections

Sélection d’un nombre d’enregistrement
Paramètres
FROMRCD
TORCD
exemple les 100 premiers
FROMRCD(1)
TORCD(100)

Sélection sur des valeurs de clé
FROMKEY
TOKEY
exemple les clés de 0001 à 0002
FROMKEY(1 (0001))
TOKEY(1 (00002))

Sélection sur des caractères d’un format
INCCHR RCD Exemple les enregs qui OUI en position 15 INCCHAR(RCD 15 *EQ ‘OUI’)

Sélection des avec des relations
INCREL
Exemple les enregistrements valides et avec une date de référence > ‘20200101’
INCREL((*IF VALIDE *EQ ‘OUI’) (*AND DATEREF *GT ‘20200101’))

2) Les performances

La plupart du temps un CPYF est plus rapide qu’une copie par SQL

Quand on copie un fichier qui a des clés, pour améliorer les performances
on peut indiquer, FROMRCD(1) au lieu de FROMRCD(*START) , la copie se fera sans tenir compte de l’index, et le gain est d’environ la moitié.

3) Les ajustements de zones


Paramètre FMTOPT
utilisez les 2 paramètres suivants pour que vos nouvelles zones soient initialisées et que celle qui ont changé soient recadrées
FMTOPT(*MAP *DROP)

4) Les messages d’erreur


Vous devez monitorer, votre commande CPYF, CPF2800 CPF2900 CPF3100
Avant de copier, vérifier si votre fichier source contient des enregistrements
DCL &nbr *dec 10
RTVMBRD SOURCE NBRRCD(&nbr)
if cond(&nbr *gt 0) then(do)
cpyf …
enddo

5) Formater à l’exécution


Pour améliorer le paramétrage et l’administration vous pouvez construire la commande CPYF dynamiquement

dcl &cmd *char 1024

chgvar &cmd (‘cpyf *bcat ……)
call qcmdexc (&cmd %len(&cmd))

Conclusion :

Le CPYF permet de nombreuses formes de copies et son usage est indispensable !