MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Diferencia entre field simbol y variables (foro/showthread.php?t=65245)

calakra 16/11/12 15:11:51

Diferencia entre field simbol y variables
 
Hola a todos!
Soy algo nuevo en esto de abap, y tengo varias dudas al respecto, he tratado de buscar pero no he encontrado mucha informacion, aparte de que el proxy de aqui nos limita variaas paginas.

Mi prgunta es que diferencia existe entre un field.simbol y una variable,
hasta donde se el field-simbol trabaja por referencia y es mas rapido trabajar con los fields,
Pero que diferencias tienen, en el momento de asignar, realizar una operacion, borrar, que diferencias existen.

Espero me puedan ayudar.

Saludos.

SAPING 19/11/12 11:07:55

El fs funcionaria como un puntero..es por eso que es mas rapido..y esa es la diferencia principal entre ambos.
Se asignan con la instruccion ASSIGNING y al realizar una operacion debes tener cuidado porque estas modificando directamente el dato.
Por ejemplo, si usas fs como wa para loopear una tabla, si modificas algun dato del fs, estas modificando el dato mismo de la tabla...no es como si usaras una wa que solo modificas el dato de esta estructura.
Para otra cosa que se utiliza es para tomar el contenido de un campo, por ejemplo, en un module pool... Si estas trabajando, por ejemplo, en una trx std, y ampliaste esta trx con una solapa de datos nueva, en tu logica puedes asignarle el valor de una variable del std: (se ve mejor con un ejemplo)
ej.: (trx ME32K)
CONSTANTS : cl_f3(20) TYPE c VALUE '(SAPMM06E)EKKO-BUKRS'.
FIELD-SYMBOLS: <f2> TYPE ANY .
DATA: lv_bukrs TYPE ekko-bukrs.

ASSIGN (cl_f3) TO <f2>.
IF sy-subrc EQ 0.
lv_bukrs = <f2>.
ENDIF.

Entonces, estas obteniendo para tu Z el valor de EKKO-BUKRS del prog SAPMM06E.


Es bastante util.
Yo basicamente lo uso para eso.
Se que tiene mas funcionalidades pero no las conozco..

Slds.

Rodolfo SAP 21/11/12 16:53:04

Diferencias
 
Un field-symbol te ayuda a depositar el valor dinamicamente de una variable, con esto puede ocupara un field y asignarlo a diferentes variables.

La variable solo almacena el valor que le des.

DATA: variable TYPE i VALUE '9'.

FIELD-SYMBOLS: <mi_field_symbol> TYPE ANY.

DATA: cadena_variable TYPE STRING.

* 1
cadena_variable = 'variable'. "aqui le damos el nombre de la variable en cadena de texto.

* 2
ASSIGN (cadena_variable) TO <mi_field_symbol>. " aqui le decimos al field simbol el nombre de la variable que queremos tome su valor solo mediante el campo que tiene el nombre de la variable.

Es muy util para recorrer tablas ;)


Husos Horarios son GMT. La hora en este momento es 01:38:24.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web