¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como usar símbolos de campo no ECC para melhorar o desempenho do programa - Guia completa

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

Olá,

Nas versões do ECC, todos sabemos que precisamos declarar tabelas internas sem headerline e para manipular as tabelas internas precisamos usar áreas de trabalho exclusivas.

Atualmente, estou enfrentando um problema em que foi solicitado o uso de símbolos de campo em vez de áreas de trabalho... Alguém pode me ajudar a como usar os símbolos de campo e também me dizer como isso melhorará o desempenho do programa?

Obrigado e cumprimentos,

Kathir

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

resposta útil...

Terá alguma melhoria de desempenho?

obrigado

Kathir

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

resposta útil...

Você terá alguma melhoria de desempenho?

obrigado

Kathir

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá

DADOS: WA TIPO ITAB.

LOOP NO ITAB INTO WA.

 SE WA-CAMPO = .....
 FIM-SE. 
FIMLOOP.[(codigo]


CAMPO-SÍMBOLOS <WA> TIPO QUALQUER.

LOOP NO ITAB ATRIBUINDO <WA>.
FIMLOOP.

Agora o problema é que você não pode saber o nome dos campos da tabela em tempo de execução, então você não pode escrever:

SE <WA>-CAMPO = .....
FIM-SE.

De qualquer forma, você pode criar um campo-símbolo estruturado como a tabela:

[código]CAMPO-SÍMBOLOS <WA> TIPO ITAB.

LOOP NO ITAB ATRIBUINDO <WA>.
  SE <WA>-CAMPO = .....
  FIM-SE.
FIMLOOP.

Não sei quais são as diferenças de desempenho entre usar um campo-símbolo e usar uma estrutura como área de trabalho.

A diferença entre o campo-símbolo e a área de trabalho é que o campo-símbolo é atribuído diretamente ao registro, então você não precisa fazer uma instrução MODIFY para alterar algo:

LOOP NO ITAB INTO WA.
  WA-CAMPO = 
  MODIFICAR ITAB DE WA.
FIMLOOP.

LOOP NO ITAB ATRIBUINDO <WA>.
  <WA>-CAMPO = 
FIMLOOP.

Esses dois trechos de código ABAP fazem a mesma ação, então provavelmente o campo-símbolo melhora o desempenho porque acessa diretamente o registro sem usar uma estrutura externa como área de trabalho.

Max

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Em geral, a área de trabalho é lenta porque se refere a uma variável. No entanto, o símbolo de campo atua como um ponteiro, sendo muito mais rápido que WA.

Importante: Melhorar o desempenho.

Em um exemplo que vi, ao percorrer uma tabela interna com 100.000 registros, é 25% mais rápido usando um símbolo de campo em comparação com WA.

Por favor, revise os seguintes códigos:

REPORT demo_int_tables_read_assigning .

DATA: BEGIN OF line,
        col1 TYPE i,
        col2 TYPE i,
      END OF line.

DATA itab LIKE HASHED TABLE OF line WITH UNIQUE KEY col1.

FIELD-SYMBOLS <fs> LIKE LINE OF itab.

DO 4 TIMES.
  line-col1 = sy-index.
  line-col2 = sy-index ** 2.
  INSERT line INTO TABLE itab.
ENDDO.

READ TABLE itab WITH TABLE KEY col1 = 2 ASSIGNING <fs>.

<fs>-col2 = 100.

LOOP AT itab INTO line.
  WRITE: / line-col1, line-col2.
ENDLOOP.

A mensagem foi editada por:

Jogdand M B

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

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?