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(%