ABAP: Calculo de Digito de verificacion de ID

Buenas Tardes Estimados,

Quisiera saber si alguien ha realizado un programa en ABAP que calcule el digito de verificacion de documentos de identidad (Cedula o NIT) para colombia.

O si SAP tiene alguna funcion que realice este procedimiento.

Agradezco su colaboracion.

Buen día estimado,

Desconozco lo que pides, pero me da la impresión que o es algo que no se encuentra comunmente por que pueda ser privado, o bien es un algortimo que tengas que seguir que quizas lo puedas encontrar en alguna portal de tu pais.

Saludos.

Muchas Gracias por tu respuesta.

Lo se las casuísticas que contienen el DNI colombiano, pero lo que tenes que hace es analizar un STRING, te conviene pasar el dato a una variable string y analizarlo, en Argentina por ejemplo, tenemos el CUIT o CUIL, los primeros 2 caracteres (LV_VARIABLE(2)) identifican algo luego los caracteres del medio es el DNI (LV_VARIABLE+2(8)).

Estimados queria compartir el codigo que me dio una solución a esta solicitud, como lo indica @Atilio_Josue esta información depende de cada país, para mi pais Colombia encontre el siguiente algoritmo para el calculo del digito de verificación.

DATA: BEGIN OF itab_values OCCURS 0,
          val TYPE i,
        END OF itab_values.

  DATA: int TYPE i.

    REFRESH itab_values[].
    CLEAR: v_strlen, v_oper, v_total, int.

    itab_values-val = 71. APPEND itab_values.
    itab_values-val = 67. APPEND itab_values.
    itab_values-val = 59. APPEND itab_values.
    itab_values-val = 53. APPEND itab_values.
    itab_values-val = 47. APPEND itab_values.
    itab_values-val = 43. APPEND itab_values.
    itab_values-val = 41. APPEND itab_values.
    itab_values-val = 37. APPEND itab_values.
    itab_values-val = 29. APPEND itab_values.
    itab_values-val = 23. APPEND itab_values.
    itab_values-val = 19. APPEND itab_values.
    itab_values-val = 17. APPEND itab_values.
    itab_values-val = 13. APPEND itab_values.
    itab_values-val = 7. APPEND itab_values.
    itab_values-val = 3. APPEND itab_values.

    v_strlen = strlen( i_stcd1 ).

    LOOP AT itab_values.
      CLEAR v_oper.
      IF int LT v_strlen.
        v_oper = ( i_stcd1+int(1) ) * itab_values-val.
        ADD v_oper TO v_total.
        ADD 1 TO int.
      ENDIF.
    ENDLOOP.

    v_total = ( v_total MOD 11 ) - 1.

    IF v_total NE 1.

      v_total = 11 - v_total.

    ENDIF.

en la variable v_total se almacena el digito de verificación del documento de identidad o NIT.

2 Me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.