OPALE - 10.1 - Controle intégrité des ressources IBM-i

Différence entre versions

De MappingDoc
(Contrôle de l'intégrité via un programme)
(Contrôle de l'intégrité à l'importation d'un format)
 
(3 révisions intermédiaires par le même utilisateur non affichées)
Ligne 7 : Ligne 7 :
 
'''CALL MAP_C862'''
 
'''CALL MAP_C862'''
  
Ce programme lance 3 requêtes SQL consécutives permettant de détecter des éventuelles anomalies d'intégrité :<br>
+
Ce programme lance 3 requêtes SQL consécutives permettant de détecter des éventuelles anomalies d'intégrité.<br>
 +
 
 +
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
 
  SELECT mapnam,mapseq
  FROM maplnk
+
  FROM maplnk l
 
  INNER JOIN mapobj o  
 
  INNER JOIN mapobj o  
 
  ON  l.objtyp=o.objtyp  
 
  ON  l.objtyp=o.objtyp  
Ligne 20 : Ligne 22 :
 
  GROUP BY l.mapnam, l.mapseq  
 
  GROUP BY l.mapnam, l.mapseq  
 
  ORDER 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 :
+
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  
+
  SELECT l.objtyp,l.objnam,l.objnum
  FROM maplnk
+
  FROM maplnk l
 
  INNER JOIN mapobj o  
 
  INNER JOIN mapobj o  
 
  ON  l.objtyp=o.objtyp  
 
  ON  l.objtyp=o.objtyp  
Ligne 36 : Ligne 36 :
 
  ORDER 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.
 
  
 
+
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.
Le programme lance ensuite une troisième requête SQL :
 
  
 
  SELECT l.objtyp,l.objnam,l.objnum  
 
  SELECT l.objtyp,l.objnam,l.objnum  
  FROM maplnk
+
  FROM maplnk l
 
  INNER JOIN mapobj o  
 
  INNER JOIN mapobj o  
 
  ON l.objtyp=o.objtyp  
 
  ON l.objtyp=o.objtyp  
Ligne 51 : Ligne 49 :
 
  ORDER 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.
Le résultat de ces 3 requêtes est édité dans un fichier spool appelé CTL_INTEG retenu dans votre file d’attente.
 
  
  
Ligne 60 : Ligne 56 :
  
  
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.
+
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===
 
===Contrôle de l'intégrité à l'importation d'un format===
Ligne 66 : Ligne 62 :
  
  
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.  
+
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 :
 
Pour cela, il lance 2 requêtes SQL :
  
SELECT COUNT(*) FROM maplnk WHERE objnam=’OOO’ AND objtyp=’TTT’ AND (mapnam<>’NNN’ OR mapseq<>’SSS’)
+
SELECT COUNT(*)  
 
+
FROM maplnk  
Avec OOO,TTT,NNN et SSS remplacées par les valeurs du fichier pst.
+
WHERE objnam=’OOO’  
 
+
AND objtyp=’TTT’  
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.
+
AND (
[[Fichier:OP S CHECK 1.png|néant|vignette|537x537px]]
+
        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 :
 
Une seconde requête SQL :
  
SELECT COUNT(*) FROM maplnk WHERE objnam<>’OOO’ AND objtyp=’TTT’ AND Objnum=NNN AND (mapnam<>’NNN’ OR mapseq<>’SSS’)
+
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.
+
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.
 
Si un numéro de ressource existe déjà pour une maquette différente, l’importation s’arrête.

Version actuelle datée du 1 juillet 2020 à 14:56

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.

OP S CHECK 1.png

Le résultat de ces requêtes est édité dans un fichier spool appelé CTL_INTEG retenu dans votre file d’attente.

OP S CHECK 2.png


Les ressources de type XPS ne sont pas contrôlées, le numéro de ressource n’étant pas utilisé.