10.6. Métadata

10.6.1. Utilisation

10.6.1.1. Paramètres

10.6.1.2. Calcul des règles de gestion pour une unité archivistique via API dédiée

Un endpoint (GET /unitsWithInheritedRules) permet le calcul des règles de gestion ainsi que les propriétés associées (de type FinalAction…).

Pour chaque catégorie de règles de gestion (AppraisalRule, ReuseRule…), les règles et les propriétés sont calculées d’une unité archivistique sont héritées des parents. Excepté les cas suivants :

10.6.1.2.1. La prévention d’héritage

L’intégration d’une balise <PreventInheritance> dans le SEDA Si le champ est « true », toutes les règles héritées des parents sont ignorées sur le nœud courant

10.6.1.2.2. L’exclusion d’héritage

L’intégration d’une balise <RefNonRuleId> dans le SEDA indiquant les règles à désactiver à partir de ce niveau.

10.6.1.2.3. La redéfinition de règles ou de propriétés

Le nœud courant peut redéclarer une règle (même identifiant) et/ou une propriété déjà déclarées dans des parents. Dans ce cas, les règles et propriétés des unités parentes ne seront pas héritées.

10.6.1.3. Calcul des règles de gestion pour une unité archivistique (déprécié)

  1. Requête DSL

Pour calculer les règles héritées de l’archive Unit. Il faut ajouter « $rules : 1 » dans le filtre de la requête DSL.

  1. Calculer des règles de gestion pour une unité archivistique

Le serveur vérifie la requête, si son filtre contient « $rules : 1 ». On démarre la procédure de calcul des règles héritées

2.1 Rechercher les règles de gestion des parents et lui même

createSearchParentSelect(List<String> unitList)

2.1 Construire le graphe DAG avec tous les unité archivistique

ArrayNode unitParents = selectMetadataObject(newSelectQuery.getFinalSelect(), null, null);

Map<String, UnitSimplified> unitMap = UnitSimplified.getUnitIdMap(unitParents); UnitRuleCompute unitNode = new UnitRuleCompute(unitMap.get(unitId)); unitNode.buildAncestors(unitMap, allUnitNode, rootList);

2.3 Calculer des règles de gestion et mettre dans le résultat final

unitNode.computeRule(); JsonNode rule = JsonHandler.toJsonNode(unitNode.getHeritedRules().getInheritedRule()); ((ObjectNode)arrayNodeResponse.get(0)).set(UnitInheritedRule.INHERITED_RULE, rule);