¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo calcular el valor hash de una tabla interna en ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 16 Vistas
0
Cargando...

Introducción


Esto puede no ser una noticia tecnológica innovadora, pero podría beneficiar a alguien que se adentra en las pruebas unitarias de ABAP por primera vez.

De vez en cuando, el resultado del método bajo prueba sería una tabla interna. ¿Y cómo usar esto en la afirmación para las pruebas unitarias? Bueno, calcular el valor hash para toda la tabla interna, y ¡voilà! - la afirmación es posible.


Método para calcular el valor hash


MÉTODOS:
  get_hash_value_for_itab
    IMPORTACIÓN
      it_table TIPO CUALQUIERA TABLA
    EXPORTACIÓN
      ev_hash  TIPO hash160.
MÉTODO get_hash_value_for_itab.
    DATOS: lv_string  TIPO xstring,
          lv_xbuffer TIPO xstring.

    " Limpiar el valor hash
    CLEAR ev_hash.

    " Recorrer la tabla línea por línea
    LOOP EN it_table ASIGNANDO SÍMBOLO-DE-CAMPO(<ls_line>).
      DATOS(lv_index) = 0.
      CLEAR lv_string.

      " Concatenar todas las columnas de la línea en una sola cadena
      HACER.
        ASIGNAR COMPONENTE lv_index DE ESTRUCTURA <ls_line> A SÍMBOLO-DE-CAMPO(<lv_field>) CONVERTIR A TIPO x.
        SI sy-subrc EQ 0.
          CONCATENAR lv_string <lv_field> EN lv_string EN MODO BYTE MODE.
          AÑADIR 1 A lv_index.
        SINO.
          SALIR.
        FIN-SI.
      FIN-HACER.

      " Agregar la cadena de la línea a nuestro buffer
      CONCATENAR lv_xbuffer lv_string EN lv_xbuffer EN MODO BYTE MODE.
    FIN-LOOP.

    " Calcular el valor hash para todo el buffer/tabla
    LLAMAR FUNCIÓN 'CALCULAR_HASH_PARA_CRUDO'
      EXPORTACIÓN
        datos           = lv_xbuffer
      IMPORTACIÓN
        hash           = ev_hash
      EXCEPCIONES
        unknown_alg    = 1
        param_error       
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?