Por ejemplo, el esquema podría limitar los tipos de registro o registros que se pueden modificar, los campos que se pueden modificar, los usuarios que pueden realizar operaciones de actualización multiregistro o impedir que se realicen cambios adicionales cuando el número de errores alcanza un límite. Otras posibilidades podrían incluir límites basados en el tipo de registro, los registros de proyecto asociados, el usuario actual o la pertenencia a un grupo.
La variable de sesión ratl_MultiModifyBatchStatus y la variable de sesión ratl_MultiModifyBatchMode se establecen cuando la actualización multiregistro realiza una operación en un registro que hace que se ejecute un enganche. Ejemplos de tales operaciones son todas las fases de acción, las acciones de alias de script de registro, los cambios de campo, los enganches de lista de elecciones, cualquier enganche que se pueda ejecutar para operaciones de edición en cualquier registro, e incluso un enganche que no esté incluido en la actualización multiregistro.
En el siguiente ejemplo se muestra cómo comprobar que el registro actual es el registro con el que la actualización multiregistro está trabajando. Este ejemplo está pensado para ser utilizado en un enganche de control de acceso de acción. Después de que el enganche de control de acción comprueba que la actualización multiregistro está en curso, el enganche comprueba el número de anomalías. Si hay 10 o más anomalías, utiliza una sentencia Perl die () para lanzar un error. La actualización multiregistro continuará procesando todos los registros en el conjunto de resultados de actualización multiregistro, y este enganche de ejemplo continuará marcando cada registro posterior con una anomalía.
$result = 1;
# Si realiza una actualización multiregistro, compruebe si tiene demasiados errores.
#
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("This multirecord update has encountered too many errors ($failures). No more updates are allowed.")
}
}
}