resposta útil...
Terá alguma melhoria de desempenho?
obrigado
Kathir
Avalados por :
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
resposta útil...
Terá alguma melhoria de desempenho?
obrigado
Kathir
resposta útil...
Você terá alguma melhoria de desempenho?
obrigado
Kathir
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
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
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute