# Structure des règles

Ce document décrit la structure de la rule XML de ELOas. Normalement, cette structure est modifié par une interface utilisateur graphique. Si l'accès est manuel, cette description peut être utilisée en tant que référence. Cette description sert aussi de référence pour l'implémentation du GUI.

# Structure générale

La structure intégrale est intégrée dans un tag <ruleset>. Celui-ci se compose de deux parties, une entrée <base> au début, suivie par un nombre illimité d'entrées <rule>.

L'entrée <base> contient les informations concernant la recherche des entrées à traiter. Il s'agit plus précisément de la ligne de recherche, du terme de recherche, des limitations de masque et de date.

Les entrées <rule> contiennent une directive de traitement. Chaque règle peut être dotée d'une condition, elle peut modifier la cible de dépôt ou ajuster les contenus des champs. Par ailleurs, une rule peut avoir un contenu JavaScript. Si celui-ci est défini, alors les autres entrées sont ignorées, mais elles peuvent rester avec des valeurs.

Si la condition d'une règle est "OnError", alors il s'agit d'une règle de traitement des erreurs. Après chaque règle peut être effectué un traitement d'erreurs, à la fin doit être entrée une règle de traitement d'erreurs. Cette règle d'erreurs finale est également appelée lorsqu'une erreur apparaît lors du déplacement ou de l'enregistrement. Si une erreur apparaît au sein d'une règle normale lors du traitement, la prochaine règle de traitement d'erreur est appelée le plus tôt possible, puis le traitement est interrompu.

Exemple pour un ruleset simple :

<ruleset>
    <base>
        <name>nom du ruleset</name>
        <search>
            <name>nom du champ de métadonnées dans le code JavaScript</name>
            <value>terme de recherche dans le code JavaScript </value>
            <mask>numéro du masque de document pour la recherche</mask>
        </search>
        <interval>5M</intervalle>
    </base>
    <rule>
        <name>nom de la règle</name>
        <destination mask="masque de classeur"> nouvelle cible dans le code JavaScript Code</destination>
        <index>
            <name>nom du champ de métadonnées dans le code JavaScript</name>
            <value>nouveau contenu du champ de métadonnées dans le code JavaScript</value>
        </index>
    </rule>
    <rule>
        <name>nom de la règle de correction de l'erreur</name>
        <condition>OnError</condition>
    </rule>
</ruleset>

# Toutes les entrées dans le paragraphe <base>

Tag Fonction Exemple
name Nom du ruleset. Ce nom est affiché sur la page de statut, mais il n'est pas traité. Traitement SAP
search Paramètre pour la recherche des documents à traiter. Pour la description, voir le paragraphe suivant Toutes les entrées dans le paragraphe '<search>
masks Si vous souhaitez permuter vers un autre type de masque de dépôt dans le cadre du traitement, alors une liste de tous les numéros de masques cibles possible doit être affichée. Chaque numéro de masque est encadré par un tag <mask>. <mask>3</mask><mask>4</mask>
interval Intervalle de répétition pour le traitement de la recherche. Cet intervalle peut être saisi en minutes (5M) ou en heures (1H). Par ailleurs, il peut être exécuté une fois par jour à une heure précise (15:30), une fois par jour (17:20/SA) ou une fois par mois (22:00/31). Si une journée est entrée lors de l'exécution mensuelle, qui n'existe pas dans le mois actuel (par exemple le 31 au mois de février), alors c'est le dernier jour du mois qui est utilisé. 5M1H15:3017:20/SA22:00/31

Les entrées dans le paragraphe <search> déterminent quels documents doivent être traités. Au début de chaque passage, une recherche est effectuée avec ces paramètres. La liste des résultats est traitée selon les règles.

<search>
<name>nom du champ de métadonnées dans le code JavaScript Code</name>
<value>terme de recherche dans le code JavaScript</value>
<mask>numéro du masque de document pour la recherche</mask>
<max>nombre max. de documents par processus</max>
</search>
Tag Fonction Exemple
name Nom du champ de métadonnées dans le code JavaScript Si le nom est fixe, un texte peut être directement entré entre guillemets. Mais il est également possible d'utiliser une autre expression JavaScript. "ELOOUTL2"
value Terme de recherche dans le code JavaScript. Si la valeur est fixe, un texte peut directement être entré entre guillemets. Mais il est également possible d'utiliser une autre expression JavaScript. "ELO*"
mask Numéro du masque de document pour la recherche Seul un masque de document et non pas un masque de recherche peut être utilisé, étant donné que tous les résultats sont sensés posséder la même définition de masque. 2
max Nombre max. de document par passage lors de la demande au serveur d'indexation. S'ils existent plusieurs résultats, ceux-ci sont traités une fois que tous les autres rulesets ont été passés. Ceci est fait afin d'éviter qu'un ruleset volumineux empêche le traitement de tous les autres rulesets. Au plus 1000 documents par passage sont autorisés. 200
idatexdate La liste des résultats peut être limitée par une plage de date dans la date de dépôt (idate) ou la date de document (xdate). Cette date peut être entrée en valeurs absolues au format de date ISO (YYYYMMTT) ou dans des valeurs relatives au tag actuel (-5). La section se compose d'une date de démarrage dans un tag <from> et d'une date de fin dans un tag <to>. <idate><from>-5</from><to>+0</to></idate>

# Toutes les entrées dans '<rule>'

Après le paragraphe <base>, suit un nombre illimité de paragraphes <rule\>. Lors du traitement, ceux-ci sont parcourus dans l'ordre de la définition.

Une <rule> peut exister en tant que règle normale et en tant que règle d'erreur. Dans l'exécution normale, les règles d'erreur sont tout simplement passées. En cas d'erreur, la prochaine règle d'erreurs disponible est appelée dans l'ordre, ensuite, le traitement est interrompu pour ce document, cela signifie qu'après une règle d'erreurs, d'autres règles ne sont pas traitées.

La dernière règle dans la chaîne <rule\> doit toujours être une règle d'erreur. Ainsi, il est assuré qu'un traitement des erreurs est disponible dans tous les cas. Par ailleurs, cette règle est également appelée si une erreur apparaît lors du déplacement ou de l'enregistrement.

Tag Fonction Exemple
name Nom de la règle, est utilisé seulement pour une meilleure lisibilité. Compléter l'index
condition Condition d'exécution pour cette règle S'il s'agit d'une règle d'erreur, le texte fixe "OnError" est entré ici. Veuillez utiliser la bonne orthographe, sinon, la règle n'est pas reconnue comme règle d'erreur. KDNR == "123"
La condition d'exécution se trouve en tant que CodeJavaScript. La règle n'est exécutée que si la condition est "true".
destination Nouvelle cible de dépôt du document en tant que chemin de dépôt. L'entrée est en option et peut rester vide, dans ce cas, le document reste à sa position d'origine. S'il existe plusieurs règles avec destination, la première cible est utilisée en tant que nouveau lieu de dépôt, toutes les autres cibles sont entrées en tant que référence en plus. <destination mask="1"> ¶ELO¶Mails¶" + ELOOUTL1</destination>
Si une cible de dépôt n'existe pas encore, elle est créée automatiquement.
Le tag destination peut contenir un attribut complémentaire "mask" qui contient le numéro du masque de classeur pour les nouveaux classeurs créés. Si cet attribut n'existe pas, la valeur "1" est utilisée par défaut, le numéro du masque de classeur dans une archive standard.
mask Nouveau masque de document Si cette entrée existe ou que le numéro de masque est -1, le masque d'origine reste. <mask>20</mask>
Lorsque le masque est modifié, toutes les entrées sont automatiquement adoptées avec le même nom de groupe. C'est également exécuté correctement, si la répartition des champs de métadonnées est différente.
Si le masque de dépôt original contenait des champs que le nouveau masque ne possède pas, ces données sont rejetées automatiquement et sans message d'erreur.
ELOas ne peut pas traiter de documents dont le masque de dépôt utilise le même nom de groupe pour plusieurs entrées, étant donné que le traitement interne et la structure des règles considèrent que l'attribution est univoque.
index Dans une règle, il peut y avoir un nombre quelconque d'entrées d'indexation. Chaque entrée d'indexation contient le nom du champ concerné et une expression JavaScript avec la nouvelle version. <index><name>DOCDATE</name> <value>"20070930"</value></index>
En ce qui concerne les champs avec date ISO et les champs pour la date de dépôt et de document, l'entrée doit également être faite au format de date ISO.
A côté des champs avec les noms de groupe du masque de recherche, sont disponibles tous les noms de groupes des masques de dépôt alternatifs ainsi que des "pseudo"-lignes d'indexation avec des valeurs standards de l'indexation.
NAME : désignation
DOCDATE : date de document
ABLDATE : date de dépôt
ARCHIVINGMODE: Dokumentenstatus 0, 1 oder 2 für "Keine Versionskontrolle", "Versionskontrolle eingeschaltet" oder "Keine Änderung möglich".
ACL : adopter avec "PARENT" l'ACL de la nouvelle cible de dépôt. Avec <droits>:<Name>, vous pouvez définir les autorisations de groupe.
OBJCOLOR : numéro de couleur de l'entrée
OBJDESC : texte complémentaire
OBJTYPE : Type de document ou du classeur de l'entrée. Attention: une attribution erronée peut causer des dysfonctionnements lors du prochain traitement. Les documents peuvent seulement posséder un OBJTYPE entre 254 et 286.
script une règle peut également contenir le code JavaScript à exécuter. Dans ce cas, tous les autres paramètres de cette règle sont ignorés, mais ils doivent également être contenus (par exemple à des fins de documentation).

# Modification des autorisations

Dans le champ de métadonnées pseudo ACL, une autorisation modifiée peut être déposée. Dans le cas le plus simple, l'on entre "PARENT", lors de l'enregistrement, l'autorisation du classeur cible pour cette entrée est adoptée. Il est également possible de déposer une liste d'autorisation complète. Cette liste se compose d'une suite d'autorisations individuelles, séparées par un pilcrow. Chaque autorisation se compose d'un masque d'autorisation (RWDELP – Read, Write, Delete, Edit, List, Permissions), suivi par un double-point et du nom de groupe. Pour les groupes ET, ce n'est pas le nom de groupe simple qui est entré, mais une suite de nom, séparé par un double-point.

R:Tous¶RW:Gestion opérationnelle¶RWDELP:Administration:Stuttgart:Management

Dans notre exemple, le groupe Tous reçoit un accès en lecture, le groupe Gestion opérationnel, un accès de lecture et d'écriture, et le groupe ET Administration et Stuttgart et Management un accès intégral au document.

Au cas où une autorisation doit être placée sur un utilisateur au lieu d'un groupe, ein "U" doit être adopté en plus dans la liste des autorisations.

UR:Administrator

# Remarques

Lors de la création du code JavaScript, tous les noms de groupe du masque de recherche et des masques de dépôt alternatifs sont créés en tant que variable en majuscules. Ce procédé minimise le risque que les noms de groupe se recoupent avec les désignateurs standards du JavaScript ou de l'environnement runtime d'ELO. En principe, cela peut causer des problèmes, au cas où un des noms de groupe est identique à un désignateur standard ou une des listes de traduction.

var NAME;
var ARCDATE;
var DOCDATE;
var OBJCOLOR;
var OBJDESC;
var OBJTYPE;
var ARCHIVINGMODE;
var ACL;
var EM_PARENT_ID;
var EM_PARENT_ACL;
var EM_SEARCHNAME;
var EM_SEARCHVALUE;
var EM_SEARCHCOUNT;
var EM_SEARCHMASK;
var EM_IDATEFROM;
var EM_IDATETO;
var EM_XDATEFROM;
var EM_XDATETO;
var EM_FOLDERMASK = "1";

Information

Cette liste peut être élargie au cours de la progression du projet, elle peut aussi être complétée par des entrées personnalisées.

Le numéro du masque de dépôt du document actuel peut être modifié par une règle. S'il s'agit d'un numéro de masque ou d'un numéro qui ne se trouve pas dans la liste des masques cibles alternatifs, cela cause une erreur runtime lors de l'enregistrement du document, et non pas directement lors de l'attribution de masque.

Si une règle d'erreur est appelée en raison d'une erreur runtime, alors cela supprime toutes les cibles de dépôt prédéfinies des règles traitées auparavant. Si la règle d'erreur ne possède pas de propre <destination>, le document reste à sa position d'origine, sinon, c'est la cible de la règle d'erreur qui est utilisée.

Le déplacement et l'enregistrement des métadonnées modifiée se font seulement à la fin du traitement de la dernière règle. Si une erreur apparaît, alors la dernière règle d'erreur est appelée et non pas la règle d'erreur appartenant à la règle ayant déterminé la cible (mais ce qui est identique, s'il existe une seule règle d'erreur).

# Exemple de structure

Voici une définition à titre d'exemple, le code créé est affiché: Cette information est faite en vue d'une orientation.

<ruleset>
    <base>
        <name>Mailmaske Thiele</name>
        <search>
            <name>"ELOOUTL2"</name>
            <value>"Thiele*"</value>
            <mask>2</mask>
            <max>2</max>
            <idate>
                <from>"-35"</from>
                <to>"+1"</to>
            </idate>
        </search>
        <masks>
            <mask>12</mask>
            <mask>13</mask>
            <mask>20</mask>
        </masks>
        <interval>1M</interval>
    </base>
    <rule>
        <name>Regel 1</name>
        <destination mask="5">"¶Thiele¶Mails¶" + ELOOUTL1</destination>
        <mask>20</mask>
        <index>
            <name>ADDENTRY</name>
            <value>getObjShort(2)</value>
        </index>
        <index>
            <name>ELOOUTL2</name>
            <value>"!!" + ELOOUTL2</value>
        </index>
        <index>
            <name>DOCDATE</name>
            <value>"20070930"</value>
        </index>
        <index>
            <name>ARCHIVINGMODE</name>
            <value>2</value>
        </index>
        <index>
            <name>ACL</name>
            <value>"PARENT"</value>
        </index>
    </rule>
    <rule>
        <name>Journal-Kopie</name>
        <destination mask="1">"¶Thiele¶Journale¶" + ELOOUTL1</destination>
    </rule>
    <rule>
        <name>Script rule</name>
        <script>
            moveTo(Sord, "¶Ablage¶Ziele1¶" + ELOOUTL1);
            moveTo(Sord, "¶Ablage¶Ziele2¶" + ELOOUTL2);
            moveTo(Sord, "¶Ablage¶Ziele3¶" + ELOOUTL3);
        </script>
    </rule>
    <rule>
        <name>Global Error Rule</name>
        <condition>OnError</condition>
        <destination>"¶Thiele¶Error"</destination>
        <index>
            <name>ELOOUTL2</name>
            <value>"!!" + ELOOUTL2</value>
        </index>
        <index>
            <name>ARCHIVINGMODE</name>
            <value>0</value>
        </index>
    </rule>
</ruleset>
Dernière mise à jour: 26 septembre 2023 à 07:46