¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo usar símbolos de campo en ECC para mejorar el rendimiento del programa - Guía completa

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

Hola,

En las versiones de ECC, todos sabemos que necesitamos declarar las tablas internas sin headerline, y para manejar las tablas internas necesitamos usar áreas de trabajo exclusivas.

Actualmente tengo un problema en el que se nos ha pedido usar símbolos de campo en lugar de áreas de trabajo... ¿alguien puede ayudarme a cómo usar los símbolos de campo y también decirme cómo mejorará el rendimiento del programa?

Gracias y saludos,

Kathir

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

4 Respuestas

0
Cargando...

respuesta útil...

¿tendrá alguna mejora de rendimiento?

gracias

Kathir

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

respuesta útil...

¿tendrá alguna mejora de rendimiento?

gracias

Kathir

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

Hi

DATA: WA TYPE ITAB.

LOOP AT ITAB INTO WA.

 IF WA-FIELD = .....
 ENDIF. 
ENDLOOP.[(code]


FIELD-SYMBOLS <WA> TYPE ANY.

LOOP AT ITAB ASSIGNING <WA>.
ENDLOOP.

Now the problem is you can't know the name of the fields of the table at runtime, so you can't write:

IF <WA>-FIELD = .....
ENDIF.

Anyway you can create a field-symbols strcturated like the table:

[code]FIELD-SYMBOLS <WA> TYPE ITAB.

LOOP AT ITAB ASSIGNING <WA>.
  IF <WA>-FIELD = .....
  ENDIF.
ENDLOOP.

I don't know which are the differences for the performance between to use a field-symbol and to use a structure as work-area.

The differnce between the field-symbols and work-area is the field-symbol is assigned directly to the record, so u don't need to do a MODIFY statament to change something:

LOOP AT ITAB INTO WA.
  WA-FIELD = 
  MODIFY ITAB FROM WA.
ENDLOOP.

LOOP AT ITAB ASSIGNING <WA>.
  <WA>-FIELD = 
ENDLOOP.

These two pieces of abap code do the same action, so probably the field-symbol improve the performance because it do an access directly to the record without to use an external structure as workarea.

Max

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

Hola,

En general, el área de trabajo es lento porque se refiere a una variable. Sin embargo, el símbolo de campo actúa como un puntero, por lo que es bastante más rápido que WA.

Importante: Mejorará el rendimiento.

En un ejemplo que vi, al recorrer una tabla interna con 100,000 registros es un 25% más rápido usando un símbolo de campo en comparación con WA.

Por favor, revisa los siguientes 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.

El mensaje fue editado 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?