sysLib.verifyChkDigitMod11

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


Diagrama de sintaxis sysLib.verifyChkDigitMod11
entrada
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 entrada, 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 entrada
  • 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.verifyChkDigitMod11 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 56621869; myLength es un elemento de tipo SMALLINT y contiene el valor 8; y myResult es un elemento de tipo SMALLINT:
  sysLib.verifyChkDigitMod11 (myInput, myLength, myResult);
Se utiliza un algoritmo para derivar el dígito de comprobación Modulus-11 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 el dígito de la posición de unidades del número de entrada por 2, el de la posición de decenas por 3, el de la posición de centenas por 4, y así sucesivamente, pero deje que myLength – 1 sea el número mayor utilizado como multiplicador; y, si el número de entrada contiene más dígitos, inicie de nuevo la secuencia utilizando 2 como multiplicador:
      6 x 2 = 12
      8 x 3 = 24
      1 x 4 = 4
      2 x 5 = 10
      6 x 6 = 36
      6 x 7 = 42
      5 x 2 = 10  
  2. Sume los productos del primer paso y divida la suma por 11:
      (12 + 24 + 4 + 10 + 36 + 42 + 10) / 11
      = 138 / 11 
      = 12 resto 6 
  3. Para obtener el dígito de comprobación, sustraiga el resto de 11 para obtener el dígito de autocomprobación:
      11 - 6 = 5

    Si el resto es 0 o 1, 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.

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.