1 novembre 2012

Mettre a jour les séquences d'attribution du NUDOSS

Depuis HRv7 les NUDOSS sont ne sont plus calculés sur la base de l'horodatage système, mais attribués par une séquence Oracle ou DB2 nommée SEQU{SD}.

Si vous devez purger ou livrer des dossiers par un outil du SGBD (imp, load), ces séquences ne seront pas mises à jour, ce qui peut être source d'erreurs de type "clef en double" lors des futures créations de dossiers :
  • sous Oracle : code erreur SQL 1
  • sous DB2 : code erreur SQL 803
Exemple d'erreur induite :
  • Avec NOZ : 
BQL-BBAD0015-ERREUR D'ACCES (TABLE RELATIONNELLE) : S1/EXECUTE/10/PK/000000000000001
BQL-BBAD0015-ERREUR D'ACCES (TABLE RELATIONNELLE) : S1/EXECUTE/10/PK/000000000000803
  • Avec NRB :  
Zone libre : BML40DD-000000001 / BML40DD-000000803
et message BME-BBAM0016-ERREUR GRAVE DURANT LA MISE A JOUR 

Pour mettre à niveau une séquence, dans un premier temps sélectionnez le plus grand NUDOSS (exemple pour ZY) :
SQL> select max(NUDOSS) from ZY00;
126

Sous DB2 mettez a jour la séquence par un ALTER :
DB2> alter sequence SEQUZY restart with 127

Sous Oracle vous devrez détruire et recréer la séquence :
SQL> drop sequence SEQUZY;
SQL> create sequence SEQUZY start with 127;


10 commentaires:

  1. est ce que tu peux nous expliquer a quoi sert et fonctionne NUDOSS dans les bases HR Access?

    RépondreSupprimer
    Réponses
    1. Le champ NUDOSS sert d'identifiant technique et de clef primaire pour les dossiers HR Access.

      Cela fait partie des connaissances "de base" - je te conseille de consulter "HRa Suite Framework - HRDesign - Concepts" chapitre "La Gestion des Données" et le "HRa Suite Framework - HRDesign - Guide technique tous systèmes" Annexe A "Les tables" pour avoir des informations complètes sur ce sujet.

      Supprimer
    2. L'identifiant interne du dossier est appelé NUDOSS et est géré par HR Design (V5). Il constitue
      l'identifiant principal de la table et permet de retrouver les informations du dossier dans les
      autres tables d'informations.

      Supprimer
  2. Bonjour, sauriez-vous pourquoi lors d'une reprise de données S7->S9 HR Access change le tri (et NULIGN) dans quelques infos ?

    Merci d'avance

    RépondreSupprimer
    Réponses
    1. Que le NULIGN soit recalculé, cela me semble normal (quelle que soit la version HR) ...
      Quant au tri - il tient à la description de l'objet information - ou à ce que l'on code dans la page web, non ?

      Supprimer
  3. Non, plutôt au niveau de l'info (oracle), pas de la page web. Il s'agit de l'info ZX4K (à priori pas de changement de l'objet entre S7 et S9). A la reprise le NULIGN attribué aux occurences a changé le tri, par exemple :
    NULIGN S7 NULIGN S9
    1 5
    2 7
    3 6
    4 8
    Du coup les occurences sont triées différemment. A priori ce n'est pas gênant, mais bon...

    Merci en tout cas pour la réponse.

    RépondreSupprimer
    Réponses
    1. Une table oracle n'a pas de critère de tri explicite - ou alors suivant un "rowid" que tu ne maitrises pas - c'est toi qui dois le spécifier via un "order by" dans ton ordre "select".
      Le NULIGN est aux occurrences ce que le NUDOSS est aux dossiers : un n° identifiant interne. Il est calculé par HR lors de la création d'occurrence à partir du NULMAX de la **TD12 + 1. A ma connaissance - comme pour le rowid Oracle - cet identifiant n'influe pas "directement" sur le tri.

      Supprimer
  4. Bonjour,

    Quel est svp le programme qui s'occupe de l'archivage rappel ? et est-ce que la manière de recharger le PRDB (lors d'une montée de version par exemple, du plus récent au plus ancien ou vice-versa) peut influencer l'archivage rappel ?

    Merci !

    RépondreSupprimer
  5. Je voulais changer un contenue dans champs dans plusieurs enregistrement via sql directement .Quel qu'un me donner comment le faire via HR design Center.

    RépondreSupprimer
  6. Bonjour, dans le même contexte comment faire pour mettre à jour le NUDOSS sous SQLSERVER

    RépondreSupprimer