Par exemple, le schéma pourrait limiter les enregistrements, les types d'enregistrement ou les zones qu'il est possible de modifier, les personnes qui peuvent effectuer des opérations de mise à jour multi-enregistrement ou empêcher des changements lorsque le nombre d'erreurs atteint sa limite. Parmi les autres possibilités, on compte des limites basées sur le type d'enregistrement, sur un enregistrement de projet associé, sur l'utilisateur en cours ou sur l'appartenance au groupe.
Les variables de session ratl_MultiModifyBatchStatus et ratl_MultiModifyBatchMode sont définies lorsqu'une mise à jour multi-enregistrement effectue une opération sur un enregistrement qui provoque l'exécution d'un point d'ancrage. Comme exemple d'opération, il possible d'utiliser toutes les phases d'action, les actions d'enregistrement d'alias de scripts, les changements de zone, les points d'ancrage des listes d'options, tout point d'ancrage pouvant exécuter des opérations d'édition sur un enregistrement et même un point d'ancrage qui n'est pas inclus dans la mise à jour multi-enregistrement.
L'exemple ci-dessous montre comment vérifier que l'enregistrement en cours est bien l'enregistrement sur lequel la mise à jour multi-enregistrement intervient. L'objectif de cet exemple est d'être utilisé dans un point d'ancrage de contrôle d'accès par action. Après que ce point d'ancrage vérifie si la mise à jour multi-enregistrement est en cours, il vérifie le nombre d'incidents. S'il y a au moins 10 incidents, il utilise une instruction Perl die () afin de provoquer une erreur. La mise à jour multi-enregistrement va poursuivre le traitement de tous les enregistrements dans l'ensemble de résultats de mise à jour multi-enregistrement. Ensuite le point d'ancrage en exemple va marquer tous les enregistrements suivants comme étant en échec.
$result = 1;
# If doing multirecord update, check if it has too many errors.
#
my $mru_id = $session->GetNameValue("ratl_MultiModifyBatchMode");
if ($mru_id ne "") {
my $me = $entity->GetDisplayName();
if ($mru_id eq $me) {
# Yes, currently doing Multi-Record Update on the current record.
my $status = $session->GetNameValue("ratl_MultiModifyBatchStatus");
my ($count, $ordinal, $failures, $ignore) = split('\n', $status, 4);
if ($failures > 10) {
die("Cette mise à jour multi-enregistrement a rencontré trop d'erreurs ($failures). Aucune autre mise à jour n'est autorisée.")
}
}
}