Está en la página 1de 14

Unit 7

Basic ABAP Language Elements


Objetivos de la Unidad
Despus de completar esta unidad, usted ser capaz de:
Definir objetos de datos elementales
Usar sentencias bsicas de ABAP con objetos de datos elementales
Ejecutar y analizar los proramas en modo de debuin
Tipos de datos y objetos de datos (Data Types and Data Objects)
Una descripci!n formal de una "ariable se llama un tipo de datos #data type$% Por el contrario, una "ariable o
constante &ue se define concretamente por medio de un tipo de datos se denomina un objeto de datos#data
object$
Using Data Types
El siuiente rfico muestra c!mo se pueden utilizar los tipos de datos:

'os tipos de datos ABAP (e di"iden en dos rupos: completos e incompletos%
'os tipos de datos completos se llaman as) por&ue ya poseen un formato y una lonitud predefinida, y est
compuesto por los siuientes tipos de datos standards:
D
Tipo para fechas(Date), formato: YYYYMMDD, longitud 8 (fijo)
T
Tipo para tiempo(Time), formato: HHMMSS, longitud 6 (fijo)
I
Tipo para nmeros enteros (Integer), longitud 4 (fijo)
F
Tipo para nmeros de coma flotante (Floating), longitud 8 (fijo)
DECFLOAT16
Tipo para nmero DECimal de coma FLOATing, longitud 8 (fijo) disponible desde
AS ABAP 7.02
DECFLOAT34
Tipo para nmero DECimal de coma FLOATing, longitud 16 (fijo) - disponible desde
AS ABAP 7.02
STRING
Tipo para cadena de caracteres de longitud dinmica
XSTRING
Tipo para secuencia de bytes de longitud dinmica (HeXadecimal string)
'os tipos de datos incompletos se llaman as) por&ue es necesario especificar la lonitud de la "ariable, y est
compuesto por los siuientes tipos de datos standards:
C
Tipo para cadena de caracteres (Character) para los cuales la longitud fija debe
ser especificada
N
Tipo para cadena de caracteres numricos (Numerical character) para los cuales la
longitud fija debe ser especificada
X
Tipo para secuencia de bytes (HeXadecimal string) para los cuales la longitud
fija debe ser especificada
P
Tipo para nmeros empaquetados (Packed number) para los cuales la longitud fija
debe ser especificada.
(En la definicin de nmeros empaquetados, tambin se debe especificar la
cantidad de posiciones de los decimales.)
Tipos de datos locales
Utilizando los tipos estndar, se puede declarar tipos de datos locales en el prorama,
'os tipos de datos locales s!lo e*isten en el prorama en cuesti!n, 'a declaraci!n se realiza mediante la
sentencia +,PE( y la lonitud se puede especificar con la adici!n 'E-.+/ o bien entre parntesis a
continuaci!n de la "ariable #lo cual ya se considera obsoleto ya &ue afecta la leibilidad del c!dio del
prorama%
Tipos de datos globales
Un tipo de datos definido en el Diccionario ABAP se llama lobal, ya &ue puede ser utilizado en todo el
sistema #&ue sinifica en todo el sistema de (AP en cuesti!n$%
Una "ez &ue conocemos las distintas formas &ue puede tener un +0P1 DE DA+1 procedemos a crear
2A30AB'E( #1B4E+1( DE DA+1($ &ue se declaran con la sentencia DA+A, y para 5acer referencia al
mismo tipo &ue otro objeto se utiliza la adici!n '06E%

7(e pueden declarar objetos de datos sin especificar el tipo o la lonitud8
Literals !onstants and Te"t #ymbols
(uerencia: (i es posible, e"ite completamente literales cuando se utilicen declaraciones% Utilice constantes y
s)mbolos en "ez de te*to% Esto 5ace &ue sea muc5o ms fcil de mantener su prorama%
#entencias b$sicas ABAP
En esta secci!n usted aprender c!mo llenar los elementos de objetos de datos con "alores y realizar
clculos en ABAP% +ambin se le dar una introducci!n a las construcciones &ue puede utilizar para controlar
el flujo del prorama depende del contenido de los objetos de datos%
Asignaci%n de valores
VALUE (como adicin)
MOVE (=)
CLEAR
!$lculos y e"presiones aritm&ticas
En ABAP se puede proramar expresiones aritmticas y subdi"idirlas indefinidamente normalmente
utilizadas con la sentencia 91:PU+E% 'as operaciones "lidas son:
+ - Adicin
- - Resta
* - Multiplicacin
/ - Divisin
** - Exponenciacin
DIV - divisin Integral sin resto
MOD - El resto despus de la divisin integral
!onditional Branc'es and Logical E"pressions
I! " #A$E%
Loops
Unconditional(inde")controlled loops
*eader)!ontrolled Loops
+ead Loops
!ampos de sistema
,ensajes de Dialogo
+rabajando con el debuer ABAP


Unit 8
,odulari-ation
1bjeti"os de la Unidad
Despus de completar esta unidad, usted ser capaz de:
-ombrar las tcnicas bsicas de modularizaci!n
Definir subrutinas
'lamar subrutinas
Analizar la ejecuci!n de subrutinas en modo de depuraci!n
B;s&ueda de m!dulos de funci!n
Ad&uirir informaci!n sobre la funcionalidad y el uso de m!dulos de funci!n
'lamar :!dulos de funci!n desde su prorama
9rear un rupo de funciones
9reaci!n de un m!dulo de funci!n
E*plicar el papel de BAP0s e identificar sus propiedades especiales
E*plicar los trminos bsicos de la proramaci!n orientada a objetos
1btener informaci!n sobre la funci!n y el uso de las clasificaciones mundiales y sus mtodos
'lamar a mtodos de clases lobales en sus proramas
9reaci!n de clases lobales
9rear y aplicar mtodos simples en clases lobales
Describir c!mo se definen, implementan y utilizan las clases locales
T&cnica de ,odulari-aci%n
/ay dos tcnicas para la modularizaci!n local en un prorama ABAP:
'as subrutinas, tambin conocidas como rutinas form
'os mtodos de las clases locales
#(e puede llamar desde otro prorama, pero esto contradice el principio de encapsulaci!n de datos y
funciones%$
.lobal ,odulari-ation
:!dulos de funci!n &ue se oranizan en rupos de funciones
'os mtodos de las clases lobales
El n;mero total de parmetros en una unidad de modularizaci!n se denomina la interfaz o de la firma%
'os parmetros pueden ser de import, e*port o c5anin
,odulari-ation /it' #ubroutines
Distinto comportamiento de parmetros
+ambin se pueden utilizar estructuras y tablas como parmetros
En la solapa (+A-DA3D en el debu se puede "er en los proramas &ue llaman a la subrutina% 'a
5erramienta para esto es la pila de llamadas #!all #tac0$%
,odulari-ation /it' 1unction ,odules
(i un prorama llama a un m!dulo de funciones, se cara todo el rupo de funci!n correspondiente y se
ejecuta el m!dulo de funci!n% El rupo de funciones permanece carado en la memoria de trabajo 5asta &ue
el prorama &ue realiz! la llamada se cierra%
Por lo tanto, si se llama a un m!dulo de funci!n &ue escribe los "alores de los datos lobales del rupo de
funciones, otros m!dulos de funci!n en el mismo rupo de funciones puede acceder a estos datos cuando se
les llama en la misma ejecuci!n del prorama%
Buscando m!dulos de funci!n
A tra"s del na"eador de objetos #(E<=$
A tra"s del repositorio ABAP #se>?$
A tra"s de la referencia de utilizaci!n
,odulari-aci%n de los m&todos de las clases globales
Principios de Programaci%n Orientada a Objetos
!lasses Attributes and ,et'ods
'a principal diferencia entre las clases lobales y rupos de funci!n es &ue un rupo de funciones con sus
objetos de datos lobales s!lo se puede carar una "ez para el conte*to del prorama para cada prorama
principal, mientras &ue una clase mundial se puede carar tantas "eces como desee% Esto se conoce como la
creaci!n de instancias m;ltiples de la clase% En la prctica, esto sinifica &ue los "alores en los objetos de
datos lobales de un rupo de funciones son las mismas para todas las llamadas de m!dulo de funci!n% Por el
contrario, una clase puede tener "arias instancias #tambin conocido como objetos$, cada uno de los cuales
se almacenan por separado en el conte*to del prorama del prorama principal% Por tanto, cada instancia
puede tener diferentes "alores de los atributos%
Un mtodo de instancia s!lo puede ser llamado si una instancia de clase fue enerado pre"iamente% Por el
contrario, los mtodos estticos se pueden llamar sin instancia pre"ia de la clase%
(eleccione la fic5a Atributos para abrir la lista de las definiciones de los atributos de la clase%
(i s!lo desea utilizar la clase, entonces s!lo a&uellos atributos &ue se identifican como @p;blico@ son de
inters% Usted puede abordar estos directamente fuera de la clase%
9on los mtodos estticos, la clase y el mtodo se separan por @AB@ #flec5a de doble punta$% 9on los mtodos
estticos el campo 0nstancia no necesita ser llenado%
*andling !lass)Based E"ceptions (,anejo de e"cepciones basadas en la clase)
TRY.
cl_bc400_compute=>get_power
EXPORTING
iv_bae = pa_i"t#
iv_power = pa_i"t$
I%PORTING
ev_reult = gv_reult.
&RITE gv_reult.
'(T') c*_bc400_power_too_+ig+ .
&RITE ,%a* -alue .or Power i 4,.
'(T') c*_bc400_reult_too_+ig+ .
&RITE ,Reult value wa too +ig+,.
EN/TRY.
9omo las instancias no tienen nombres, 5ay &ue definir las "ariables de referencia con el fin de ser capaz de
enerar y resol"er instancias de clases% (on indicadores &ue pueden ser diriidas a las instancias
correspondientes%
'as "ariables de referencia se definen mediante:
/(T( gr_re._"ame TYPE RE0 TO cla_"ame.
9uando se inicia el prorama, una "ariable de referencia toda")a tiene su "alor inicial #@no apunta a una
instancia@$% Una "ez &ue se 5a utilizado para crear una instancia, ya no tiene el "alor inicial y apunta a esa
instancia%
Puede utilizar la siuiente instrucci!n para enerar una instancia de la clase &ue se especifica en la definici!n
de las "ariables de referencia:
'RE(TE O12E'T gr_re._"ame.
Posteriormente, la referencia "ariable apunta a la instancia recin creada%
9uando se utiliza 'RE(TE O12E'T, es posible &ue tena &ue proporcionar los parmetros de importaci!n del
mtodo constructor !O2#T+U!TO+ con datos% Este mtodo especial se ejecuta de forma automtica
directamente despus de la creaci!n de la instancia% 9on sus parmetros de importaci!n, &ue mantiene los
atributos correspondientes de la nue"a instancia%
Usted llama a los mtodos de una instancia utilizando la sentencia
9A'' :E+/1D rCrefCnameDBmet5odCname%
En contraste a llamar a un m!dulo de funci!n, el nombre del mtodo por s) solo no basta% Debe especificar la
instancia pertinente, as), ya &ue es posible &ue el prorama tena "arias instancias de esa clase%
!reaci%n de clases globales y m&todos est$ticos
,odulari-aci%n de los m&todos de las clases locales
Para definir un mtodo de instancia en comparaci!n con el mtodo esttico, la declaraci!n :E+/1D( tendr)a
&ue ser utilizado en luar de la 9'A((D:E+/1D(%

También podría gustarte