Modification des règles d'objet

Les règles d'objet permettent d'exécuter des procédures telles que la correction automatique de données ou l'ajout de fonctionnalités lorsque des modifications sont apportées à la base de données. Il existe des règles d'objet côté client et côté serveur.

Les règles d'objet sont des méthodes et des déclencheurs qui traitent les données en fonction d'algorithmes prédéfinis. Par exemple, elles effectuent des vérifications de dépendance et de cohérence complexes lors de certains événements, par exemple, avant l'insertion d'un objet ou après la modification d'un objet. Vous pouvez modifier certains aspects des règles par défaut fournis avec les modèles métiers.

Les règles d'objet sont fournies avec Infrastructure Map Server. Cependant, si vous avez une expérience de l'utilisation des déclencheurs PL/SQL, vous pouvez définir vos propres règles d'objet côté serveur via l'utilisation des déclencheurs Oracle et de l'API. Veuillez donc consulter les manuels correspondants.

Remarque : Les modèles métiers d'entreprise SQL Server prennent en charge les règles d'objet côté serveur et côté client. Il existe des règles d'objet prédéfinies côté serveur pour SQL Server (par exemple, la validation de géométrie). Les utilisateurs expérimentés peuvent définir des règles d'objet côté serveur dans SQL Server à l'aide d'Infrastructure Administrator. Toutefois, pour SQL Server, le langage de programmation n'est pas PL/SQL, mais Transact SQL (TSQL), l'équivalent Microsoft. La syntaxe est différente et Infrastructure Administrator ne validera pas la syntaxe.

Les utilisateurs disposant d'un kit de développement .NET (et qui ont des connaissances et de l'expérience en .NET) peuvent créer leurs propres règles d'objet côté client.

La configuration des règles d'objet est stockée dans les tables système TB_RULE_* du modèle métier. Les règles d'objet sont stockées dans la table système TB_RULE_DEF du modèle métier.

Vous pouvez attribuer une règle existante à une classe d'objets, et vous pouvez modifier les propriétés d'une règle existante.

Remarque : Si la langue du produit Infrastructure Map Server ne correspond pas à celle de la base de données Oracle, les règles côté serveur ne fonctionnent pas si les noms de classes d'objets sont copiés dans le texte du déclencheur comme paramètre. Au lieu de cela, la règle sera appliquée à une classe d'objets.
Propriétés des règles d'objet Description
Classe d'objets Nom de la classe d'objets

Côté serveur (PL/SQL)

Côté client (.NET). Les règles d'objet peuvent être côté serveur ou côté client.

Cliquez sur l'onglet correspondant. Vous pouvez uniquement définir des règles d'objet côté serveur.
Règles métier appliquées Liste des règles d'objet actuellement attribuées à la classe d'objets. Les règles d'objet attribuées sont enregistrées dans la table système TB_RULE_BASE.

La table TB_RULE_FCLASSTYPE définit les règles d'objet disponibles en fonction du type de classe d'objets sélectionné. Exemple : la règle d'objet de calcul de la longueur est valide pour les classes d'objets polyligne mais pas pour les classes d'objets point.

Priorité Définit l'ordre d'exécution des règles d'objet. Une règle d'objet associée à une valeur de priorité basse est exécutée avant une règle associée à une valeur élevée.

Exemple : valider la géométrie d'un objet avant de calculer la surface.

Utilisez les flèches vers le haut et vers le bas pour modifier l'ordre et la priorité des règles d'objet.

Définitions de règles métier Répertorie toutes les règles d'objets (TB_RULE_DEF) et les groupes de règles (TB_RULE_GROUP) disponibles pour la classe d'objets active.

Si vous sélectionnez un groupe, toutes les règles incluses dans ce groupe sont ajoutées à la liste Règles métier appliquées.

Remarque : Seules les règles d'objet qui ne font pas partie d'un groupe sont disponibles séparément.
Nouveau groupe Un groupe peut être composé de plusieurs règles d'objet qui définissent par exemple une règle Before et une règle After.

Les règles côté serveur doivent se conformer aux limites des déclencheurs Oracle. En particulier, les déclencheurs de ligne ne peuvent pas interroger ou modifier des tables dans des tâches, sauf pour la ligne modifiée. Par conséquent, la plupart des règles côté serveur sont appliquées en tant que groupe de règles. Un groupe de règles d'objet se compose d'une règle de type Before-Action appliquée sur la ligne qui insère l'attribut ROWID des objets modifiés dans une table temporaire et d'une règle d'instruction de type After-Action qui effectue l'opération.

Vous pouvez ajouter des règles d'objet uniquement si elles n'appartiennent pas encore à un autre groupe de règles. Par ailleurs, il n'est pas possible d'ajouter des règles d'objet système à un nouveau groupe de règles client.

Evénement Evénement auquel répond une règle d'objet.
BI Before Insert (Avant insertion)
BU Before Update (Avant mise à jour)
BD Before Delete (Avant suppression)
AI After Insert (Après insertion)
AU After Update (Après mise à jour)
AD After Delete (Après suppression)

Etapes de ce workflow :