jueves, 24 de julio de 2008

abap.estructuras,field string

Field strings

Un Field string, es un conjunto de varios datos, se corresponde a una estructura del Diccionario de SAP, por lo que también se puede corresponder con los datos de una tabla.

Hay dos formas de definir Field strings en SAP.


Field strings con la declaración data.


Sintaxis básica:
data begin of fs1.

data f1[(l)] [type t] [decimals d] [value 'xxx'].
data f2[(l)] [type t] [decimals d] [value 'xxx'].
...
data end of fs1.
Ejemplo:
data begin of totals_1.
data region(7) value 'unknown'.
data debits(15) type p.
data count type i.
data end of totals_1.
En un formato compuesto típico:
data: begin of fs1,

f1[(l)] [type t] [decimals d] [value 'xxx'],
data f2[(l)] [type t] [decimals d] [value 'xxx'],
...
data end of fs1.
Ejemplo:
data begin of totals_1.
data region(7) value 'unknown'.
data debits(15) type p.
data count type i.
data end of totals_1.

Un componente de un string field tambien puede ser un 'like'
Ejemplo:
data begin of fs1.
data region(7) value 'unknown'.
data debits(15) type p.
data count type i.
data end of fs1.
data begin of fs2.
data region(7) value 'unknown'.
data debits(15) type p.
data cosa like fs1.
data count type i.
data end of fs1.
Y se puede incluir un field string en otro fied string, pero cuidado que no puede ser en la forma compuesta porque la sentencia include no es parte de data.

Ejemplo:
data: begin of totals_1,
region(7) value 'unknown',
debits(15) type p,
count type i,
end of totals_1,
totals_2 like totals_1.
data: begin of totals_3,
xregion(7) value 'unknown',
xdebits(15) type p,
xcosas like totals_1.
include structure totals_1.
data: xcount type i,
end of totals_3.


A los componentes de un field string accedemos con la tipica barra "-"
por ejemplo en este ultimo ejemplo, podriamos escribir:

totals_3-xcosas-region = '123'.
write totals_3-xcosas-region.

Usos especiales del field string.
puede usarse el like para definir otro field string igualito.
pueden hacerse asignaciones globales si el field string es todo char.
Ejemplo:
data : begin of localidad,
ciudad(2),
pueblo(3),
end of localiddad.
localidad='12345'.
write: localidad-ciudad,localidad-pueblo.



Field strings con la declaración tables.

Con tables, podemos definir un field string con el mismo nombre y forma que una tabla o estructura del diccionario.
Sintaxis básica:
tables fs1.
fs1 tiene que ser un elemento del diccionario.


Una tabla es siempre global (visivilidad que aun no se muy bien como funciona)
Una tabla es la forma de interacturar con un select de una tabla de la base de datos.



Tipos definidos por el usuario.

Podemos definir tipos y luego usarlos de esta forma:
types t1[(l)] [type t] [decimals d].

or

types t1 like v1.





Tipos definidos por el usuario estructurados.

Podemos definir tipos de estructura y luego usarlos de esta forma:
 1 report ztx0813.
2 types: begin of address,
3 street(25),
4 city(20),
5 region(7),
6 country(15),
7 postal_code(9),
8 end of address.
9
10 data: customer_addr type address,
11 vendor_addr type address,
12 employee_addr type address,
13 shipto_addr type address.



Grupos de tipos(Type Groups). Sentencia type-pools.

Podemos definir varios tipos en el diccionario SAP agrupandolos con un nombre (llamados type Groups) y acceder a ellos
mediante la sentencia type-pools.
A los tipos accederemos de esta forma : grupo_tipo.

 type-pools ztx1.
data: begin of american_sums,
petty_cash type ztx1_dollars,
pay_outs type ztx1_dollars,
lump_sums type ztx1_dollars,
end of american_sums.

Existe un grupo de tipos en el diccionario que se llama ztx1, en los cuales está definido el tipo dollars, por lo que el tipo es en el programa ABAP ztx1_dollars.




xxxxxx

No hay comentarios: