19 juin 2008

Dossiers de demande Opération déphasés de leur Template

Les dossiers "Template" dans ZO existent depuis HRv5 avec la mise en service de HRQuery : les objets Rapport, Mise en page, Population doivent être "mis en exploitation" pour être convertis en dossiers Opération dits "Templates".

Ces Templates contiennent un descriptif du Query en table ZO4C, avec un horodatage de mise a jour stocké en ZO5K.

Les demandes batch ZO avec édition répliquent cette description, avec horodatage de réplication en table ZO4T.

Une page Web de l' "Assistant de Gestion" permet de repérer et mettre a niveau les ZO4C des demandes batch ZO déphasées (menu "Rapports" / "Rafraîchissement général").



Ci dessous un SQL pour repérer les demandes dont la description du template a un horodatage antérieur a celui de l'objet :

SELECT D_4T.NUDOSS, D_00.CDUSER, D_00.CDPHAS, D_00.SUFXDM, D_4T.CDPHAS ,D_4T.CDELMT 
FROM ZO4T D_4T, ZO5K T_5K, ZO00 D_00, ZO00 T_00
WHERE D_00.NUDOSS = D_4T.NUDOSS AND D_00.TISOUM = '0001-01-01-00.00.00'                              -- jointure demande
  AND T_00.NUDOSS = T_5K.NUDOSS AND T_00.TISOUM = '0001-01-01-00.00.00' AND T_00.CDUSER = '********' -- jointure template
  AND D_4T.CDPHAS = T_00.CDPHAS AND D_4T.CDELMT = T_00.CDELMT -- Jointure entre la demande et le template
  AND D_4T.CDPHAS in ('NPQ','NPM','NPP') -- filtre sur le type de template
  AND D_4T.CDELMT LIKE '%'               -- filtre sur le code du template
  AND D_4T.TIMODI < T_5K.TIMODI          -- controle de dephasage
ORDER BY NUDOSS


Rien ne permet en revanche de repérer les demandes batch faisant référence à un type de sortie supprimé... Ci dessous un SQL pour repérer les demande Opération avec un édition faisant reference en ZO3P à un format TYPOUT qui n'existe plus dans le Template :

SELECT ZO00.NUDOSS, ZO00.CDUSER, ZO00.CDPHAS, ZO00.SUFXDM, ZO3P.CDMEPA, TYPOUT FROM ZO3P, ZO00
WHERE ZO00.NUDOSS=ZO3P.NUDOSS AND TISOUM='0001-01-01' AND TYPOUT <> ' '
MINUS
SELECT ZO00.NUDOSS, ZO00.CDUSER, ZO00.CDPHAS, ZO00.SUFXDM, ZO4C.CDMEPA, TYPOUT FROM ZO4C, ZO00
WHERE ZO00.NUDOSS=ZO4C.NUDOSS AND TISOUM='0001-01-01'

1 commentaire:

  1. Bonjour,

    Ci-après un ordre sql pour remettre en phase les demandes NPQ par rapport à leur template :
    -- Ordres de mise en phase des demandes ZO utilisant des templates NPQ

    --ZO5C pour les NPQ
    Delete from ZO5C where nudoss in (select nudoss from ZO00 where idrequ <> ' ' and flgjob = '0' and cdphas = 'NPQ');
    INSERT INTO ZO5C SELECT a.NUDOSS, b.NULIGN, b.SOCDOS, b.PGPDOS, b.NULINE, b.CDSTDO, b.VACDST,b.TEPOPU, b.ZONVAR
    FROM ZO5C b, ZO00 a, ZO00 c
    where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0' and a.cdelmt = c.cdelmt and c.idrequ = ' ' and c.flgjob = '0' and c.cdphas = 'NPQ' and b.nudoss = c.nudoss;

    --ZO3P pour les NPQ
    Delete from ZO3P where nudoss in (select nudoss from ZO00 where idrequ <> ' ' and flgjob = '0' and cdphas = 'NPQ');
    INSERT INTO ZO3P SELECT a.NUDOSS, b.NULIGN, b.SOCDOS, b.PGPDOS, b.CDETAT, b.RGETAT, b.CDFORS, b.NUMOUT, b.TEACTS, b.CDMEPA, b.TYPOUT, b.CDLANU, b.CDVOCA, b.CMPMEP, b.CMPARC, b.LIETAT, b.PPSCRI
    FROM ZO3P b, ZO00 a, ZO00 c
    where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0' and a.cdelmt = c.cdelmt and c.idrequ = ' ' and c.flgjob = '0' and c.cdphas = 'NPQ' and b.nudoss = c.nudoss;

    --ZO5Q pour les NPQ
    Delete from ZO5Q where nudoss in (select nudoss from ZO00 where idrequ <> ' ' and flgjob = '0' and cdphas = 'NPQ');
    INSERT INTO ZO5Q SELECT a.NUDOSS, b.NULIGN, b.SOCDOS, b.PGPDOS, b.IDINT , b.NAME , b.FORMAP, b.TYPRES, b.TEMMUL, b.VALUE , b.VALDEF, b.DESTEX
    FROM ZO5Q b, ZO00 a, ZO00 c
    where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0' and a.cdelmt = c.cdelmt and c.idrequ = ' ' and c.flgjob = '0' and c.cdphas = 'NPQ' and b.nudoss = c.nudoss;

    --ZO5S pour les NPQ
    Delete from ZO5S where nudoss in (select nudoss from ZO00 where idrequ <> ' ' and flgjob = '0' and cdphas = 'NPQ');
    INSERT INTO ZO5S SELECT a.NUDOSS, b.NULIGN, b.SOCDOS, b.PGPDOS, b.NULINE, b.ZONVAR
    FROM ZO5S b, ZO00 a, ZO00 c
    where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0' and a.cdelmt = c.cdelmt and c.idrequ = ' ' and c.flgjob = '0' and c.cdphas = 'NPQ' and b.nudoss = c.nudoss;

    --ZO5K-TIMODI pour les NPQ
    UPDATE ZO5K set TIMODI = SYSDATE where nudoss in (select a.nudoss from zo00 a where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0');

    --ZO4T-TIMODI pour les NPQ
    UPDATE ZO4T set TIMODI = SYSDATE where nudoss in (select a.nudoss from zo00 a where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0');

    --ZO4T-TERAFR pour les NPQ
    UPDATE ZO4T set TERAFR = '0' where nudoss in (select a.nudoss from zo00 a where a.idrequ <> ' ' and a.cdphas = 'NPQ' and a.flgjob ='0');

    --Mise à jour ZOTD12
    Update ZOTD12 a set NOMBRE=(select count(0) from ZO5C b where a.nudoss = b.nudoss) where a.nudoss in (select nudoss from zo00 c where c.idrequ <> ' ' and c.flgjob = '0' and c.cdphas = 'NPQ') and a.cdinfo = '5C';
    Update ZOTD12 a set NOMBRE=(select count(0) from ZO3P b where a.nudoss = b.nudoss) where a.nudoss in (select nudoss from zo00 c where c.idrequ <> ' ' and c.flgjob = '0' and c.cdphas = 'NPQ') and a.cdinfo = '3P';
    Update ZOTD12 a set NOMBRE=(select count(0) from ZO5Q b where a.nudoss = b.nudoss) where a.nudoss in (select nudoss from zo00 c where c.idrequ <> ' ' and c.flgjob = '0' and c.cdphas = 'NPQ') and a.cdinfo = '5Q';
    Update ZOTD12 a set NOMBRE=(select count(0) from ZO5S b where a.nudoss = b.nudoss) where a.nudoss in (select nudoss from zo00 c where c.idrequ <> ' ' and c.flgjob = '0' and c.cdphas = 'NPQ') and a.cdinfo = '5S';

    RépondreSupprimer