OPALE - 10.1 - Controle intégrité des ressources IBM-i
Différence entre versions
Ligne 8 : | Ligne 8 : | ||
Le programme lance alors une première requête SQL : | Le programme lance alors une première requête SQL : | ||
− | <blockquote>SELECT mapnam,mapseq FROM maplnk | INNER JOIN mapobj o ON l.objtyp=o.objtyp AND | + | <small><blockquote>SELECT mapnam,mapseq FROM maplnk | 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</blockquote> | + | ((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</blockquote></small> |
Cette première requête donne 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. | Cette première requête donne 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. | ||
Le programme lance ensuite une seconde requête SQL : | Le programme lance ensuite une seconde requête SQL : | ||
− | <blockquote>SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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</blockquote> | + | <small><blockquote>SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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</blockquote></small> |
Cette seconde requête donne la liste des objets où le même nom d’objet est référencé avec un autre numéro. | Cette seconde requête donne la liste des objets où le même nom d’objet est référencé avec un autre numéro. | ||
Le programme lance ensuite une troisième requête SQL : | Le programme lance ensuite une troisième requête SQL : | ||
− | <blockquote>SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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</blockquote> | + | <small><blockquote>SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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</blockquote></small> |
Cette requête donne la liste des objets référencés avec le même numéro mais un texte différent. | Cette requête donne la liste des objets référencés avec le même numéro mais un texte différent. | ||
Ligne 32 : | Ligne 32 : | ||
Pour cela, il lance 2 requêtes SQL : | Pour cela, il lance 2 requêtes SQL : | ||
− | <blockquote>SELECT COUNT(*) FROM maplnk WHERE objnam=’OOO’ AND objtyp=’TTT’ AND (mapnam<>’NNN’ OR mapseq<>’SSS’)</blockquote> | + | <small><blockquote>SELECT COUNT(*) FROM maplnk WHERE objnam=’OOO’ AND objtyp=’TTT’ AND (mapnam<>’NNN’ OR mapseq<>’SSS’)</blockquote></small> |
Avec OOO,TTT,NNN et SSS remplacées par les valeurs du fichier pst. | Avec OOO,TTT,NNN et SSS remplacées par les valeurs du fichier pst. | ||
Ligne 38 : | Ligne 38 : | ||
Une seconde requête SQL : | Une seconde requête SQL : | ||
− | <blockquote>SELECT COUNT(*) FROM maplnk WHERE objnam<>’OOO’ AND objtyp=’TTT’ AND Objnum=NNN AND (mapnam<>’NNN’ OR mapseq<>’SSS’)</blockquote> | + | <small><blockquote>SELECT COUNT(*) FROM maplnk WHERE objnam<>’OOO’ AND objtyp=’TTT’ AND Objnum=NNN AND (mapnam<>’NNN’ OR mapseq<>’SSS’)</blockquote></small> |
Avec OOO,TTT,NNN et SSS remplacées par les valeurs du fichier pst. | Avec OOO,TTT,NNN et SSS remplacées par les valeurs du fichier pst. | ||
Version du 3 mars 2020 à 16:15
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
Pour lancer un contrôle d’intégrité, il faut appeler l’entrée de commandes système et taper :
CALL MAP_C862
Le programme lance alors une première requête SQL :
SELECT mapnam,mapseq FROM maplnk | 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
Cette première requête donne 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.
Le programme lance ensuite une seconde requête SQL :
SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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
Cette seconde requête donne la liste des objets où le même nom d’objet est référencé avec un autre numéro.
Le programme lance ensuite une troisième requête SQL :
SELECT l.objtyp,l.objnam,l.objnum FROM maplnk | 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
Cette requête donne la liste des objets référencés avec le même numéro mais un texte différent.
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 montre une/des erreur(s), 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 fichier qu’il n’existe pas la même ressource affectée à un autre numéro d'objet ou de ressource différente affectée au même numéro d’objet.
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 du fichier pst.
Si une ressource existe (même nom et même type) avec un autre numéro et pour une autre maquette, l’importation s’arrête.
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 du fichier pst.
Si un numéro de ressource existe déjà pour une maquette différente, l’importation s’arrête.
Les ressources de type XPS ne sont pas contrôlées, le numéro de ressource n’étant pas utilisé.