¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como calcular o valor hash de uma tabela interna em ABAP

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

Introdução


Isso pode não ser uma notícia tecnológica inovadora, mas pode beneficiar alguém que está entrando em testes unitários ABAP pela primeira vez.

De vez em quando, o resultado do método sob teste seria uma tabela interna. E como usar isso na asserção para os testes unitários? Bem, calcular o valor hash para toda a tabela interna e voilà! - a asserção é possível.


Método para calcular o valor hash


MÉTODOS:
  get_hash_value_for_itab
    IMPORTAÇÃO
      it_table TIPO QUALQUER TABELA
    EXPORTAÇÃO
      ev_hash  TIPO hash160.
MÉTODO get_hash_value_for_itab.
    DADOS: lv_string  TIPO xstring,
          lv_xbuffer TIPO xstring.

    " Limpar o valor hash
    CLEAR ev_hash.

    " Percorrer a tabela linha por linha
    LOOP EM it_table ATRIBUINDO SÍMBOLO-DE-CAMPO(<ls_line>).
      DADOS(lv_index) = 0.
      CLEAR lv_string.

      " Concatenar todas as colunas da linha em uma única cadeia
      FAZER.
        ATRIBUIR COMPONENTE lv_index DE ESTRUTURA <ls_line> A SÍMBOLO-DE-CAMPO(<lv_field>) CONVERTER PARA TIPO X.
        SE sy-subrc EQ 0.
          CONCATENAR lv_string <lv_field> EM lv_string NO MODO BYTE MODE.
          ADICIONAR 1 A lv_index.
        SENÃO.
          SAIR.
        FIM-SE.
      FIM-FAZER.

      " Adicionar a cadeia da linha ao nosso buffer
      CONCATENAR lv_xbuffer lv_string NO lv_xbuffer NO MODO BYTE MODE.
    FIM-LOOP.

    " Calcular o valor hash para todo o buffer/tabela
    CHAMAR FUNÇÃO 'CALCULAR_HASH_PARA_BRUTO'
      EXPORTAÇÃO
        dados           = lv_xbuffer
      IMPORTAÇÃO
        hash           = ev_hash
      EXCEÇÕES
        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?