Compartir a través de


Solución de problemas varios

La validación de ceros iniciales no se realiza para los campos que usan el método CheckLeadingZeroesInElement para validar un campo en la directiva de validación de mensajes.

Síntoma

No se devuelve ningún error de validación bre si se envía un mensaje con ceros iniciales en un campo, aunque no se permiten ceros iniciales para el campo y la directiva de validación incluye una regla para el campo que realiza esta validación.

Causa posible

El método CheckLeadingZeroInElement se incluye en una regla de negocios de la directiva de validación para el tipo de mensaje. Este método es desusado. El propósito de la llamada de función es provocar un error en la validación si hay un cero inicial en el elemento proporcionado en la llamada de función. Sin embargo, este método no hace que se produzca un error en la validación, incluso si hay un cero inicial en el campo.

Solución

Si desea comprobar los ceros iniciales, debe implementar el método CheckLeadingZero en lugar del método CheckLeadingZeroInElement . CheckLeadingZero produce un error de validación si hay un cero inicial en la entrada de cadena a la función.

Para implementar el método CheckLeadingZero , debe crear un método personalizado que invoque el método CheckLeadingZero desde la función personalizada y le proporcione como una cadena el valor que se va a validar para ceros iniciales. Esto se debe a que CheckLeadingZero no registra un error, sino que simplemente devuelve un valor Boolean False si la cadena de entrada no es un campo número SWIFT válido o si la entrada de cadena tiene un cero inicial. De lo contrario, devuelve True. Después, el método personalizado puede registrar errores en consecuencia.

La directiva de validación de mensajes devuelve un error si el campo Número swift tiene un cero inicial.

Síntoma

Se devuelve un error de validación bre si se envía un mensaje con ceros iniciales en un campo aunque se permitan ceros iniciales para el campo.

Causa posible

Esto puede ocurrir si se usa uno de los métodos siguientes para validar un campo Número SWIFT en la regla en cuestión, normalmente en la parte Acción de la regla. Esto puede ocurrir en un campo Cantidad, Tasa, Precio o Cantidad.

  • CheckCurrencyAmount

  • CheckValidAmount

  • CheckValidCurrencyAndPriceCode

  • CheckValidSignCurrencyAmount

  • CheckValidSignDateCurrencyAmount

  • CheckValidSignRate

  • IsValidTransactionDetailsCurrencyAmount

Solución

Si alguno de los métodos de la lista anterior, excepto CheckValidSignRate, se usa en la regla de la directiva de validación, habilite ceros iniciales como se describe en Compatibilidad con ceros iniciales en Validaciones de campos de cantidad.

Si el método CheckValidSignRate se usa en la regla que devolvió este error, la única manera de admitir ceros iniciales es quitar esta regla de la directiva de validación. Siga los pasos que se indican a continuación para realizar esto:

  1. En Business Rule Composer, haga clic con el botón derecho en el nodo Versión de la directiva implementada que contiene una regla mediante el método CheckValidSignRate . Haga clic en Anular la implementación.

  2. Haga clic con el botón derecho en el nodo Versión de la misma directiva y, a continuación, haga clic en Copiar.

  3. Haga clic con el botón derecho en el nodo Validation_Policy de la misma directiva y, a continuación, haga clic en Pegar.

  4. Expanda la nueva versión no guardada de la directiva. Haga clic con el botón derecho en la regla que tiene la llamada al método CheckValidSignRate y, a continuación, haga clic en Eliminar.

  5. Haga clic con el botón derecho en el nuevo nodo Versión no guardada de la directiva y, a continuación, haga clic en Guardar. Haga clic con el botón derecho en el mismo nodo y, a continuación, haga clic en Publicar. Haga clic con el botón derecho en el mismo nodo y, a continuación, haga clic en Implementar.

A4SWIFT base de datos requiere archivado

Síntoma

La base de datos A4SWIFT está creciendo demasiado grande.

Causa posible

La tabla Historial de la base de datos A4SWIFT no se archiva automáticamente. En esta tabla se almacenan datos sobre la reparación de mensajes y el nuevo envío, incluidos los que realizaron qué tareas y datos sobre los procesos de orquestación. Esta tabla seguirá creciendo a medida que realice operaciones de reparación de mensajes y nuevo envío.

Solución

Para limitar el crecimiento de la base de datos de A4SWIFT, archive periódicamente los datos de la tabla Historial mediante los procedimientos de archivado estándar.

Consulte también

Solución de problemas: problemas y soluciones