verifyChkDigitMod10()

La función de sistema SysLib.verifyChkDigitMod10 verifica un dígito de comprobación Modulus-10 en un elemento de carácter que empieza por una serie de enteros.

  SysLib.verifyChkDigitMod10(
    texto anyChar in,
    longitudComprobación SMALLINT in,
    resultado SMALLINT inOut)
texto
Un elemento de carácter que empieza por una serie de enteros. El elemento incluye una posición adicional para el dígito de comprobación, situado inmediatamente a la derecha de los demás enteros.
longitudComprobación
Un elemento que contiene el número de caracteres que desea utilizar del elemento texto, incluida la posición utilizada para el dígito de comprobación. Este elemento tiene 4 dígitos y es de tipo SMALLINT o BIN, sin posiciones decimales.
resultado
Un elemento que recibe un de dos valores:
  • 0, si el dígito de comprobación calculado coincide con el valor de texto
  • 1, si el dígito de comprobación calculado no coincide con el valor

Este elemento tiene 4 dígitos y es de tipo SMALLINT o BIN, sin posiciones decimales.

Puede utilizar SysLib.verifyChkDigitMod10 en una sentencia de invocación de función o como validador de elementos de un formulario de texto.

Ejemplo

En el ejemplo siguiente, myInput es un elemento de tipo CHAR y contiene el valor 1734284; myLength es un elemento de tipo SMALLINT y contiene el valor 7; y myResult es un elemento de tipo SMALLINT:
  SysLib.verifyChkDigitMod10 (myInput, myLength, myResult);

Se utiliza un algoritmo para derivar el dígito de comprobación Modulus-10 y en ningún caso se tiene en cuenta el número de la posición del dígito de comprobación; pero, cuando el algoritmo se ha completado, el valor calculado se compara con el número de la posición del dígito de comprobación.

El algoritmo se describe en relación a los valores de ejemplo:
  1. Multiplique la posición de unidades del número de entrada por 2 y multiplique todas las posiciones alternativas, de derecha a izquierda, por 2:
      8 x 2 = 16
      4 x 2 = 8
      7 x 2 = 14
  2. Añada los dígitos de los productos (16814) a los dígitos del número de entrada (132) que no se hayan multiplicado por 2:
      1 + 6 + 8 + 1 + 4 + 1 + 3 + 2 = 26   
  3. Para obtener el dígito de comprobación, sustraiga la suma del siguiente número más alto que termine en 0:
      30 - 26 = 4

    Si la sustracción produce 10, el dígito de comprobación será 0.

En este ejemplo, el dígito de comprobación calculado coincide con el valor de la posición del dígito de comprobación, y el valor de myResult es 0.

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.