OPALE - 10.1
Controle intégrité des ressources IBM-i
Introduction
Le contrôle d’intégrité permet de contrôler l’intégrité des fichiers de liens existants, afin de vérifier que les liens entre maquettes et objets ne soient pas rompu.
Contrôle de l'intégrité via un programme
Il est possible de contrôler l'intégrité des objets ressources (polices, fonds de page etc...) à l'aide du programme suivant :
CALL MAP_C862
Ce programme lance 3 requêtes SQL consécutives permettant de détecter des éventuelles anomalies d'intégrité.
1 - La première requête retourne la liste des formats/séquences Mapping utilisant un objet avec un numéro différent ou un même numéro d’objet avec un nom différent :
SELECT mapnam,mapseq FROM maplnk l INNER JOIN mapobj o ON l.objtyp=o.objtyp AND ( (l.objnam=o.objnam and l.objnum<>o.objnum) OR (l.objnam<>o.objnam and l.objnum=o.objnum) ) WHERE l.objtyp<>’XPS’ GROUP BY l.mapnam, l.mapseq ORDER BY l.mapnam, l.mapseq
2 - La seconde requête retourne la liste des objets dont nom est référencé avec un autre numéro.
SELECT l.objtyp,l.objnam,l.objnum FROM maplnk l INNER JOIN mapobj o ON l.objtyp=o.objtyp AND l.objnam=o.objnam AND l.objnum<>o.objnum WHERE l.objTyp <> 'XPS' GROUP BY l.objtyp, l.objnam, l.objnum ORDER BY l.objtyp, l.objnam, l.objnum
3 - La 3ème requête retourne la liste des objets référencés avec le même numéro mais un nom différent.
SELECT l.objtyp,l.objnam,l.objnum FROM maplnk l INNER JOIN mapobj o ON l.objtyp=o.objtyp AND l.objnam<>o.objnam AND l.objnum=o.objnum WHERE l.objTyp <> 'XPS' GROUP BY l.objtyp, l.objnum, l.objnam ORDER BY l.objtyp, l.objnum, l.objnam
Le résultat de ces 3 requêtes est édité dans un fichier spool appelé CTL_INTEG retenu dans votre file d’attente.
Noter que le type XPS n’est pas analysé puisque le numéro d’objet n’est pas utilisé dans les objets XPS …
Si le listing met en évidence des erreurs, vous devez régénérer le fichier lstobj.txt (Call map_823) et éventuellement régénérer vos maquettes.
Contrôle de l'intégrité à l'importation d'un format
Lors de l'import d'un format, le programme vérifie l'intégrité du fichier .spt et le compare aux ressources existantes (polices, logos et fonds de page).
Le programme contrôle pour toutes les ressources du format à importer, qu'elles ne sont pas déjà présentes avec un autre numéro ou que leur numéro n'est pas déjà présent pour une autre ressource.
Pour cela, il lance 2 requêtes SQL :
SELECT COUNT(*) FROM maplnk WHERE objnam=’OOO’ AND objtyp=’TTT’ AND ( mapnam<>’NNN’ OR mapseq<>’SSS’ )
Avec OOO,TTT,NNN et SSS remplacées par les valeurs trouvées dans fichier .pst du format en cours d'importation.
Une seconde requête SQL :
SELECT COUNT(*) FROM maplnk WHERE objnam<>’OOO’ AND objtyp=’TTT’ AND Objnum=NNN AND ( mapnam<>’NNN’ OR mapseq<>’SSS’ )
Avec OOO,TTT,NNN et SSS remplacées par les valeurs trouvées dans fichier .pst du format en cours d'importation.
Si un numéro de ressource existe déjà pour une maquette différente, l’importation s’arrête.
Le résultat de ces requêtes est édité dans un fichier spool appelé CTL_INTEG retenu dans votre file d’attente.
Les ressources de type XPS ne sont pas contrôlées, le numéro de ressource n’étant pas utilisé.