Вы находитесь на странице: 1из 52

Temario ABAP Bsico (40 horas) 1. Introduccin a la tecnologa SAP (2 h) 1.1. Qu Introduccin a SAP.

es SAP: La herramienta productiva de las

organizaciones. El nombre de SAP proviene de: Sistemas, Aplicaciones y Productos en Procesamiento de datos. EL nombre SAP es al mismo tiempo el nombre de una empresa y el de un sistema informtico. Este sistema comprende muchos mdulos completamente integrados, que abarca prcticamente todos los aspectos de la administracin empresarial. Cada mdulo realiza una funcin diferente, pero esta diseado para trabajar con otros mdulos. La integracin total de los mdulos ofrece real compatibilidad a lo largo de las funciones de una empresa. Esta es la caracterstica ms importante del sistema SAP y significa que la informacin se comparte entre todos los mdulos que la necesiten y que pueden tener acceso a ella. La informacin se comparte, tanto entre mdulos, como entre todas las reas. SAP establece e integra el sistema productivo de las empresas. Se constituye con herramientas ideales para cubrir todas las necesidades de la gestin empresarial -sean grandes o pequeas- en torno a: administracin de negocios, sistemas contables, manejo de finanzas, contabilidad, administracin de operaciones y planes de mercadotecnia, logstica, etc. SAP proporciona productos y servicios de software para solucionar problemas en las empresas que surgen del entorno competitivo mundial, los desarrollos de estrategias de satisfaccin al cliente, las necesidades de innovacin tecnolgica, procesos de calidad y mejoras continuas, as como, el cumplimiento de normatividad legal impuesta por las instituciones gubernamentales. Los Mdulos de aplicacin son los siguientes:

Gestin

financiera

(FI).

Libro

mayor,

libros

auxiliares,

ledgers

especiales, etc. Controlling (CO). Gastos generales, costes de producto, cuenta de resultados, centros de beneficio, etc. Tesorera (TR). Control de fondos, gestin presupuestaria, etc. Sistema de proyectos (PS). Grafos, contabilidad de costes de proyecto, etc. Gestin de personal (HR). Gestin de personal, clculo de la nmina, contratacin de personal, etc. Mantenimiento (PM). Planificacin de tareas, planificacin de mantenimiento, etc. Gestin de calidad (QM). Planificacin de calidad, inspeccin de calidad, certificado de, aviso de calidad, etc. Planificacin de producto (PP). Fabricacin sobre pedido, fabricacin en serie, etc. Gestin de material (MM). Gestin de stocks, compras, verificacin de facturas, etc. Comercial (SD). Ventas, expedicin, facturacin, etc. Workflow (WF), Soluciones sectoriales (IS), con funciones que se pueden aplicar en todos los mdulos. SAP fue fundada el 1 de Abril 1972 a partir del desarrollo de un paquete de contabilidad financiera que funcionaba en bloques. Continu con el diseo y aplicacin de un sistema financiero en tiempo real, sobre las experiencias que se tena en el programa. Simultneamente, SAP desarroll un sistema de administracin de materiales. Posteriormente el sistema de administracin de materiales se convirti en un paquete estndar, que se financi con los beneficios del sistema financiero contable. Los dos sistemas desarrollados fueron los primeros mdulos de los que se llamo el sistema R, que producto de un nuevo desarrollo, se renombr R/1 seguido de sus sucesores R/2 y R/3.

SAP tambin ofrece diseo y estrategias de procesos, as como, servicios permanentes que ayudan a emigrar los sistemas empresariales de acuerdo con los cambios de las TI. SAP ayuda a sus clientes a dirigirlos durante dichas transiciones, de los entornos de min (SAP R/2 ) a los de cliente-servidor (SAP R/3 ) y de estos a la arquitectura hacia la arquitectura orientada a los servicios (ESA). Asimismo, ofrece estrategias de resistencia al cambio en los sistemas de soluciones de negocios pues se involucra en los procesos de capacitacin de los usuarios finales del sistema.

1.2. NetWeaver).

Sistemas SAP (mySAP Business Suite y SAP

mySAP Business Suite, anteriormente conocida como mySAP.com, es un paquete completo de soluciones empresariales abiertas que enlaza a personas, informacin y procesos involucrados, y por lo tanto mejora la eficacia de las relaciones comerciales. Las diversas soluciones de SAP se combinan en mySAP Business Suite y puede ser desarrollado de forma individual. Para ms informacin sobre todas las soluciones de SAP, consulte http://www.sap.com/solutions. La solucin mySAP ERP se basa en un sistema empresarial SAP R / 3 con funciones de mySAP HR y Finanzas mySAP. Todas las soluciones de SAP, incluyendo mySAP ERP, se basa en SAPNetWeaver. mySAP Business Suite ofrece:

Una completa gama de soluciones de negocio Una infraestructura tecnolgica que combina la apertura y flexibilidad con la madurez y la estabilidad Interfaces para la integracin de productos no-SAP Los componentes que pueden ser adaptados para satisfacer con varias empresas requisitos Numerosas funciones especficas de la industria

2.

Estructura del lenguaje ABAP (10 h) 2.1. Tipos de Datos y Objetos de datos (declaracin). Definicin

Tipos de Datos Completos del estndar ABAP Tipo de Datos


D T I F STRING XSTRING Tipo para fecha(D), formato: YYYYMMDD, longitud 8 (fija) Type for time (T), format: HHMMSS, longitud 6 (fija) Type for integer (I), longitud 4 (fija) Type for floating point number (F), longitud 8 (fija) Tipo para cadena de caracteres de longitud dinmica Tipo para secuencia de bytes de longitud dinmica (cadena HeXadecimal)

Tipos de Datos Incompletos del estndar ABAP Tipo de Datos


C N Tipo para cadena de caracteres (Carcter) para el cual debe ser especificada la longitud fija Tipo para cadenas de caracteres numricas (Numrica) para

Definicin

la cual debe ser especificada la longitud fija X P Tipo para secuencia de bytes (cadena HeXadecimal) para la cual debe ser especificada la longitud fija Tipo para nmeros empaquetados (emPaquetado) para la cual debe ser especificada la longitud fija (En la definicin de un nmero empaquetado, el nmero de puntos decimales debe ser tambin especificado.)

Definicin de Tipos de Datos Local

Global

Declaracin de objetos de Datos Local

Global

Literales, Constantes y Smbolos de Texto

Existen dos opciones para definir smbolos de texto para los programas: . Desde el Editor ABAP, Pasar a Elementos de Texto Smbolos de texto, o . Direccionar el smbolo de texto en el cdigo fuente usando la sintaxis descrita en el dibujo y hacer doble-click en su ID. (Navegacin hacia adelante). Para traducir los smbolos de texto del programa Pasar a Traduccin en el men del Editor ABAP. 9 Comparacin: Tipos de Datos Locales y Globales Los tipos de datos Locales slo pueden ser usados en el programa donde han sido definidos. Por el contrario los tipos Globales, pueden ser usados en todo el sistema. Adems, estos ltimos tambin tienen las siguientes ventajas: . El uso en todo el sistema de los tipos globales incrementa la consistencia del sistema y su reusabilidad reduce la cantidad de mantenimiento requerido.

. En el Diccionario ABAP se tiene la opcin de generar una lista donde han sido usados los tipos de datos globales. Esta lista muestra los objetos del Repositorio que usan el tipo de dato en cuestin. . Adems de la informacin tcnica, los tipos de datos globales pueden tambin contener informacin semntica que corresponde a la descripcin de negocio de los objetos a ser definidos. Pueden tambin ser utilizados para el diseo de la pantalla (por ejemplo, las descripciones cortas en la izquierda del capo de entrada). Los tipos de datos locales deben ser usados slo exclusivamente en el programa donde han sido definidos y si la informacin semntica no importa para la definicin del objeto de datos correspondiente.

Asignacin de valores

Las siguientes dos variantes de sintaxis tienen el mismo efecto:


. MOVE gd_var1 TO gd_var2. . gd_var2 = gd_var1.

La sentencia CLEAR reajusta el contenido de un objeto de datos al valor inicial del tipo relacionado (numricos 0, caracteres (vacio)) Clculos y Expresiones Aritmticas

. . . . . . .

+ Adicin - Substraccin * Multiplicacin / Divisin ** Potenciacin DIV Divisin Integral sin resto MOD Resto despus de una divisin integral

Precaucin: Los parntesis y operadores son palabras claves ABAP y por lo tanto, deben ser separadas de otras palabras por al menos un espacio. Expresiones condicionales y lgicas

En ABAP hay dos formas de ejecutar diferentes secuencias de instrucciones, dependiendo de ciertas condiciones: . En el constructor IF se puede definir cualquier expresin lgica como condicin de validacin. Si la condicin se cumple, el sistema ejecuta el bloque de instrucciones relevante. De otro modo, se valida la condicin especificada en la prxima rama ELSEIF (son posibles varias ramas). Si no se cumple ninguna de las condiciones especificadas, se ejecuta la rama ELSE siempre que exista. Las ramas ELSEIF y ELSE son opcionales. . Se puede usar el constructor CASE para distinguir casos de manera clara. El contenido de los campos especificados en la parte CASE es validados contra los objetos de datos listados en la rama WHEN para ver con cual coincide. Si el contenido del campo coincide, es procesado el bloque de instrucciones respectivo. Si no hay xito en la comparacin, el sistema ejecuta la rama OTHERS si est disponible. Excepto por la primera rama WHEN, todas las dems adiciones son opcionales. Ciclos

Hay cuatro construcciones de ciclos en ABAP. En los ciclos DO y WHILE, el campo de sistema SY-INDEX contiene el nmero de pasadas actuales en el ciclo. Por lo tanto, consultar este campo de sistema slo tiene sentido dentro de un ciclo. En ciclos anidados, SYINDEX siempre contiene el nmero de pasadas del ciclo en el cual se encuentra. Campos de Sistema Son los objetos de datos que se utilizan en el cdigo fuente ABAP, los cuales no es necesario declararlos (por ejemplo, sy-datum, sy-index). El sistema en tiempo de ejecucin usa estos campos de sistema para darle a la aplicacin la informacin sobre el estado actual del sistema.

Precaucin: Para acceder a campos de sistema en los programas, hay que utilizar acceso de lectura nicamente.

Cdigo de retorno de un sistema ABAP

Uno de los campos de sistema ms importantes es el campo sysubrc. Su valor corresponde con el cdigo de retorno del sistema en tiempo de ejecucin ABAP. El valor cero significa que la sentencia fue ejecutada exitosamente. Ejercicio de la Calculadora
*&---------------------------------------------------------------------* *& zag_calculator *&---------------------------------------------------------------------* *& *& Simple calculator *&---------------------------------------------------------------------* REPORT zag_calculator. PARAMETERS: pa_int1 TYPE i, pa_op TYPE c LENGTH 1, pa_int2 TYPE i. DATA gv_result TYPE p LENGTH 16 DECIMALS 2. IF ( OR OR OR AND pa_op = pa_op = pa_op = pa_op = pa_int2 '+' '-' '*' '/' <> 0 ).

CASE pa_op. WHEN '+'. gv_result WHEN '-'. gv_result WHEN '*'. gv_result WHEN '/'. gv_result ENDCASE. * WRITE: 'result'(res), gv_result. = pa_int1 + pa_int2. = pa_int1 - pa_int2. = pa_int1 * pa_int2. = pa_int1 / pa_int2.

WRITE: text-RES, gv_result. ELSEIF ( pa_op = '/' AND pa_int2 = 0 ). * WRITE 'no division by zero!'(dbz). WRITE text-DBZ.

ELSE. * WRITE 'invalid operator!'(iop). WRITE text-IOP.

ENDIF.

Mensajes de Dilogo

Se usa la sentencia MESSAGE para enviar mensajes de dilogo a los usuarios del programa. Cuando se hace esto, se debe especificar los tres dgitos del nmero de mensaje y la clase del mensaje (SE91). MESSAGE Tnum [ WITH F1 F4 ] (los parmetros se definen con & en la clase de mensaje mximo 4) 2.2. Creacin de programas.

Los tipos de programa permitidos en abap son: Programa ejecutable (1) puede iniciarse directamente sin cdigo de transaccin y en fondo. Un programa de sistema invisible controla todos los programas ejecutables. El programa de sistema llama determinados bloques a procesar segn una secuencia establecida y activa la visualizacin de la imagen de seleccin al iniciar el programa y al finalizar da salida a una lista.

Los programas ejecutables permiten trabajar con bases de datos lgicas.


Modulpool (M) para dynpros SAP Screen Painter contiene pasos para procesar mdulos de dynpro de las transacciones y slo puede llamarse mediante un cdigo de transaccin o una funcin de men.

Report de Include (I) contiene un cdigo de programa que no puede ejecutarse por s slo. Esta parte de programa puede incluirse en otro programa mediante INCLUDE.

Pool de subrutinas(S) contiene partes de programa (FORM) que son llamables desde instrucciones PERFORM externas. Grupo de funciones (F) contiene mdulos de funciones. Grupos y mdulos se administrarn en la biblioteca de funciones que fijar tambin el tipo de programa F cuyos atributos no pueden modificarse. Pool de interfaces (J) contiene interfaces. El generador de clases gestiona las interfaces y las clases; los atributos del tipo de programa J no pueden modificarse. Pool de clases (K) contiene clases. El generador de clases gestiona las interfaces y las clases; los atributos del tipo de programa K no pueden modificarse. En primer lugar, abriremos el editor abap, con la transaccin SE38. Primer programa Al aparecer la pantalla inicial del editor, se deja seleccionado Cdigo Fuente, y en nombre de programa colocaremos Z_FIRST_PROG. Recordemos que los nombres de programa SIEMPRE deben comenzar con Y o Z.

Una vez introducido el nombre, presionamos el botn Crear. Aparecer una ventana, en la cual deberemos ingresar los atributos del programa. En ttulo, podemos colocar una descripcin cualquiera: Primer programa, en tipo debemos seleccionar Programa Ejecutable. Finalmente hacemos click en Grabar.

Ahora aparecer una nueva ventana, que en instalaciones reales, cuando realizamos un programa, creamos una orden de transporte, para poder pasar dicho programa posteriormente a los dems ambientes. Como nosotros vamos a trabajar ac con un solo ambiente, (y un solo mandante), presionaremos el botn Objeto

Local. Esto significa que los objetos creados se grabarn en forma local (en nuestra pc) y nunca sern transportados a otros ambientes.

Hecho todo lo anterior, nos aparecer el editor abap. Upload de cdigo Podemos observar que ya aparece una cabecera y la palabra REPORT seguida del nombre que le hemos dado al programa en el paso anterior. Copiemos ahora el cdigo de nuestro primer programa, para empezar a estudiar el mismo. Hacemos click en utilidades->ms utilidades->upload/download->upload.

Seleccionamos el archivo Z_FIRST_PROG.TXT, respectiva, y presionamos abrir.

de

la

carpeta

Veremos que ahora nos aparece el cdigo completo del programa en pantalla. Activacin del programa Para poder ejecutar el report, necesitamos activarlo. Solo el cdigo activo puede ejecutarse. El estado podemos observarlo a la derecha del nombre.

Para activarlo, presionaremos el botn de activacin que aparece en el men.

Haciendo click en el cuadrado de la izquierda de cada lnea, la seleccionamos (vemos que queda resaltada, en este caso marcamos ambas). Finalmente, haciendo click en el botn de la parte inferior, el programa quedar activado (y veremos que a la derecha del nombre del report, el estado paso de inactivo a activo).

Ejecucin de nuestro primer programa Ejecutmoslo para ver que hace, y luego explicaremos el cdigo. Presionando la tecla F8, ejecutamos el programa. Al hacerlo, nos aparecer una pantalla similar a esta:

Escribimos AA en el cuadro (valor de PA_CARR), y presionamos nuevamente F8 (o click en el botn aparecer una pantalla similar a esta: ). El report se ejecuta y

Elementos de texto Naveguemos ahora nuevamente (presionando dos veces el

hacia

el

editor

de

cdigo

botn ). En la pantalla de seleccin (Fig.15), vemos que la etiqueta de la caja de texto para ingresar valores es PA_CARR. Este es el nombre del parmetro, pero no da informacin del valor que hay que ingresar (es nro. de vuelo? Cdigo de aerolnea?). Entonces, podemos modificar este valor, de la siguiente manera:

En el editor Abap, vamos a Pasar a -> Elementos de texto-> Textos de Seleccin.

En la pantalla que aparece seleccionamos la segunda solapa, Textos de seleccin, introducimos el texto que tendr el parmetro PA_CARR. Luego grabamos y activamos. Si ejecutamos nuevamente el programa, veremos que ahora, en la pantalla de seleccin, aparece el texto que introdujimos en el paso anterior. Y ahora, veamos un poco el cdigo del programa. Pantalla de seleccin Para ello, primero veamos algunos aspectos de abap. El lenguaje abap es un lenguaje guiado por eventos. Estos son los que controlan la ejecucin del programa. Veremos que existen varios eventos, que tienen un orden de ejecucin, y que no es necesario que se escriban en un orden determinado. Si la declaramos, la pantalla de seleccin (START-OF-SELECTION) ser la primera en ejecutarse, y en ella ingresaremos los datos y pulsadores necesarios para el programa. Tablas internas Para gestionar datos en los programas, se usan las tablas internas. Las mismas slo existirn en tiempo de ejecucin. Podemos tener dos tipos de tablas internas con cabecera de lnea sin cabecera de lnea. Si declaramos la tabla sin cabecera, deberemos declarar un rea de trabajo, que tendr la misma estructura (definicin de campos) que la tabla interna. Si la tabla tiene cabecera, no es necesario declarar rea de trabajo. Entenderemos mejor esto con los ejemplos que vayamos viendo ms adelante. Ej: Declaracin de tabla con cabecera
DATA: BEGIN OF TABLA OCCURS 0,

COLUMNA1 TYPE C, COLUMNA2 TYPE I, END OF TABLA.

Al colocar el OCCURS 0, la tabla tendr cabecera, y no ser necesario declarar rea de trabajo.
DATA: BEGIN OF TYE_TABLA, COLUMNA1 TYPE C, COLUMNA2 TYPE I, END OF TYE_TABLA.

Aqu estamos declarando una estructura, que es un tipo tabla. A continuacin, declaramos la tabla en referencia al tipo creado:
DATA TABLA TYPE TYE_TABLA WITH HEADER LINE.

En este caso estamos declarando la tabla con cabecera (WITH HEADER LINE).
DATA: TABLA TYPE STANDARD TABLE OF TYE_TABLA. DATA: WA_TABLA TYPE TYE_TABLA.

Aqu estamos declarando en primer lugar, la tabla sin cabecera, y luego el work rea (rea de trabajo WA_TABLA). Procesamiento de tablas internas Podemos realizar las siguientes operaciones sobre tablas internas: Insertar registros Leer registros Modificar registros Ordenar los registros Determinar sus atributos 1- Insertar registros Append: aade registros al final de la tabla interna. Insert: inserta nuevos registros antes de una lnea existente en la tabla interna Collect: aade o modifica registros de la tabla interna en funcin de la clave estndar de la tabla. Es utilizado para calcular totales de campos numricos. 2- Leer registros Read: lee un registro de la tabla interna usando un ndice o clave. Loop-Endloop: se recorre la tabla interna, y se realiza la lectura, registro a registro. SUM: suma los campos numricos de los registros de una tabla interna. 3- Modificar registros

MODIFY: modifica el contenido de un registro WRITE ..TO: modifica el contenido de un registro. DELETE: borra registros de la tabla. 4- Ordenar los registros SORT: Ordena los registros de la tabla, segn criterios indicados 5- Determinar sus atributos Recupera informacin de una tabla interna: numero de registros, etc. Entonces, para recorrer la tabla interna, usamos la instruccin
LOOP AT <intab> ( WHERE <cond> ). ... ENDLOOP.

En cada iteracin coloca la lnea de la tabla que se est procesando en la lnea de cabecera . Podemos usar la condicin WHERE para restringir el proceso de una tabla. Si la tabla no tiene cabecera, debemos usar el area de trabajo.
LOOP AT <intab> INTO <work_area> ( WHERE <cond> ). ... ENDLOOP.

Tratamiento de cortes de control En el tratamiento de un LOOP podemos utilizar cortes de control.


AT FIRST .... ENDAT.

Realiza las instrucciones que hay a continuacin del AT FIRST para la primera entrada de la tabla.
AT LAST .... ENDAT.

Realiza las instrucciones que hay a continuacin del AT LAST para la ltima entrada de la tabla.
AT NEW <campo> .... ENDAT.

Realiza las instrucciones que hay a continuacin del AT NEW para cada inicio de nivel de ruptura.
AT END OF <campo>. ... ENDAT.

Realiza las instrucciones que hay a continuacin del AT END para cada final de nivel de ruptura. Utilizando la instruccin SUM dentro de un AT ... ENDAT se sumaran todos los campos P,I,F de ese nivel de ruptura (para el clculo de subtotales). El resultado lo encontraremos en el rea de trabajo de la tabla.
SORT <intab> BY <c1> <c2>.

LOOP AT <itab>. AT FIRST ... (SUM) ... ENDAT. AT NEW <c1>. ... (SUM) ... ENDAT. AT NEW <c2>. ... (SUM) ... ENDAT. .......... Proceso Normal de la tabla AT END OF <c2>. ... (SUM) ... ENDAT. AT END OF <c1>. ... (SUM) ... ENDAT. AT LAST ... (SUM) ... ENDAT. ENDLOOP.

2.3.

Depuracin de programas.

Trabajar con el depurador de ABAP

Hay varias maneras de iniciar un programa en mode de depuracin desde el Navegador de Objetos: a) En el rea de navegacin para el programa seleccionado, seleccionar el men de contexto (botn derecho sobre el nombre del programa) Ejecutar Debugging. b) En el rea de edicin, seleccionar la lnea de programa desde la cual se desea depurar. Seleccionar el botn Set/Delete breakpoint . Luego, iniciar el programa presionando F8 o en el rea de navegacin a travs del men de contexto Ejecutar Directo.

Si se quiere depurar una cierta funcin del programa, primero inicie el programa sin el depurador y luego cambie a modo depuracin inmediatamente antes de ejecutar la funcin (ejm. pushbutton). Existen dos maneras de hacer esto: a) Seleccionar Sistema Utilidades Debugging ABAP. b) Escribir /h en el campo de comandos en la barra de herramientas estndar y presionar Enter.

En el Depurador, se puede seleccionar procesamiento de paso a paso para ejecutar el programa instruccin a instruccin. Adems, se pueden ver los objetos de datos y su contenido en la pantalla de variables. Simplemente introducir el nombre del objeto de datos all o copiarlos haciendo doble-click en los objetos de datos correspondientes en el cdigo fuente.

Slo est disponible el depurador clsico para SAP Web Application Server 6.40 y versiones anteriores. Para versiones superiores ambos depuradores, nuevo y clsico se pueden usar. Se puede cambiar fcilmente de depurador ABAP (nuevo/clsico) seleccionando en el men Funcin debugging cambio a funcin debugging clsica. En el depurador clsico solo se puede mostrar el contenido de hasta 8 objetos de datos.

En el depurador nuevo, se pueden fijar breakpoints con un simple click antes de la lnea en el cdigo fuente (en el depurador clsico se hace con doble-click). Se puede fijar un breakpoint para sentencias especficas ABAP: Breakpoints Breakpoint at Statement. Si se selecciona Continue, el programa se ejecuta hasta el siguiente breakpoint. Los breakpoints fijados son vlidos slo para la sesin de depuracin actual. Sin embargo, si se presiona Guardar, los breakpoints se quedarn en el lugar que se colocaron mientras dure la sesin SAP.

Los Watchpoints son breakpoints que dependen del contenido del campo. Si se coloca un watchpoint sin especificar un operador relacional/valor comparativo en un campo y se selecciona Continue, el programa se ejecuta hasta que el contenido del campo cambie. Sin embargo, si se ha especificado el operador relacional y el valor comparativo, luego - una vez que se seleccione Continue el programa ser ejecutado hasta qe la condicin se cumpla. En el depurador clsico se puede asignar como mximo 10 watchpoints. Sin embargo, se pueden enlazar en la misma forma que en el nuevo depurador usando un operador lgico (AND u OR).

Si se quiere cambiar el contenido de un campo durante la depuracin, hacer doble-click en el icono del lpiz en la pantalla de la variable. El valor est listo para edicin. Ahora cambie el valor del campo y presione ENTER para confirmar. Ahora cambia el valor del campo mientras el depurador se est ejecutando. En el depurador clsico se cambia el contenido directamente en la vista del campo. Luego se hace click en el icono del lpiz para aceptar el cambio de valor. 2.4. Llamadas a programas y gestin de memoria.

Para intercambiar datos entre diferentes programas se puede utilizar la memoria SAP y la memoria ABAP/4 Memoria SAP. Es un rea de memoria especfica para cada usuario que se utiliza para almacenar valores que son retenidos durante toda la sesin del usuario. Memoria ABAP/4. Los valores almacenados en la memoria ABAP/4 solamente son retenidos durante la ejecucin de un programa. Esta memoria es utilizada para la transferencia de datos entre dos programa cuando uno de ellos realiza una llamada al otro. Parmetros de memoria SAP En la memoria SAP se pueden almacenar valores asociados a un identificador de tres caracteres, que se mantienen disponibles hasta que finalice la sesin. En los campos de las pantallas existen tres atributos relacionados con los parmetros de memoria:

- Id-parm.: Identificador de parmetro para los valores del campo en la memoria SAP. Si el campo est referenciado al diccionario de datos, se informar con el identificador asociado al dominio del campo del diccionario. - SET Parm.: Al activar este atributo, el sistema almacenar en la memoria SAP el valor que contiene el campo bajo el identificador asociado. - GET Parm.: Al activar este atributo, el campo se inicializar con el valor definido en la memoria SAP bajo el identificador asociado en lugar de utilizar el valor inicial en funcin del tipo de dato del campo. Desde un programa se pueden almacenar y recuperar datos de la memoria SAP con las siguientes sentencias: - SET PARAMETER. La sentencia SET PARAMETER ID <identificador> FIELD <campo> almacena el valor del campo en la memoria SAP asociado al identificador especificado. - GET PARAMETER. La sentencia GET PARAMETER ID <identificador> FIELD <campo> almacena el valor asociado al identificador en la memoria SAP en el campo especificado. Los parmetros de memoria se inicializan al comenzar una sesin con los valores almacenados en los parmetros de usuario, que se mantienen desde la opcin de men Sistema -> Valores prefijados -> Datos propios (SU3).

- Idp: Identificador de parmetro.

- Valor parmetro: Valor asociado al identificador. Sentencias de llamada a programas Para realizar llamadas a otros programas desde un programa se utilizan las siguientes sentencias: SUBMIT <listado> AND RETURN: Realiza una llamada a un listado. Si no se especifica la clusula AND RETURN finalizar el programa actual y se ejecutar el listado sin regresar al programa actual. CALL TRANSACTION <transaccin>: Realiza una llamada a una transaccin. Ej.: Se incluir un pulsador en la pantalla de altas de clientes para ejecutar el listado de visualizacin de facturas de clientes. Se incluye un pulsador en la barra de pulsadores el Status STA_9000 con el cdigo de funcin FACT de tipo E (Comando Exit) y el texto Visualizar clientes asociado a la tecla de funcin F6.

Se aade el procesamiento del cdigo de funcin FACT en el mdulo PAI SALIR_9000, realizando una llamada al listado ZREPO1XX en caso de que se selecciones la funcin Visualizar facturas WHEN 'FACT'. " Visualizar facturas * Se ejecuta el listado de facturas de clientes SUBMIT ZREPO1XX AND RETURN. Se ejecuta el listado de facturas de clientes desde la pantalla de altas de clientes pulsando el botn .

Intercambio de datos a travs de la memoria ABAP/4 Al realizar una llamada a un programa desde otro programa, se pueden intercambiar datos a travs de la memoria ABAP/4 utilizando las siguientes sentencias: EXPORT <objeto> TO MEMORY ID <identificador>. Almacena el objeto en la memoria ABAP/4 asociado al identificador especificado, que puede tener una longitud de 32 caracteres. Cada vez que se exportan datos bajo un mismo identificador se sobrescriben los anteriores. IMPORT <objeto> FROM MEMORY ID <identificador>. Recupera el objeto asociado al identificador especificado de la memoria ABAP/4. FREE MEMORY ID <identificador>. Libera de la memoria ABAP/4 los datos almacenados bajo el identificador especificado. Si no se especifica la clusula ID se liberar toda la memoria ABAP/4.

3.

Diccionario ABAP (16 h) 3.1. Introduccin al Diccionario ABAP.

El diccionario ABAP describe y maneja de manera centralizada todas las definiciones de datos usadas en el sistema. El diccionario ABAP est integrado completamente en el Workbench de desarrollo ABAP. Todos los dems componentes del Workbench pueden tener acceso activamente a las definiciones almacenadas en el diccionario ABAP. El diccionario ABAP soporta la definicin de tipos definidos por el usuario (elementos de datos, estructuras y tipos tabla). Tambin se puede definir la estructura de objetos de base de datos (tablas, ndices y vistas) en el diccionario ABAP. Estos objetos pueden ser automticamente creados en la base de datos con su definicin. El diccionario ABAP tambin provee herramientas para editar campos de pantallas, por ejemplo para asignacin a un campo de una ayuda de entrada (F4 ayuda).

3.2.

Objetos de datos.

El Diccionario de Datos sirve para crear tipos y objetos de datos en SAP, estructuras y bases de datos globales (accesibles desde todos los programas), cada uno identificado con su nombre. Para entrar en el D.D , por men: Herramientas > Workbench Abap 4 > Dictionary, o bien la transaccin SE11. Los objetos ms importantes del Diccionario de Datos (D.D.) son las tablas (no confundir con las tablas internas de los programas). Las tablas del Diccionario se pueden crear, editar, borrar, etc.

Tipos de tablas: Las tipo A son de aplicacin, las C y G son de Customizing (son para parametrizacin), las L para datos temporales o de prueba, y las S y W son del sistema.

Estructuras: son como tablas pero sin entradas, no pueden contener datos, son slo campos. Vistas: Agrupaciones de ciertos campos de tablas, conectados por el mismo objeto, para ver slo esos. Es til para ver en una sola pasada el contenido de varias tablas relacionadas entre s. Elementos de datos: Sirven para crear campos de tablas. Indican qu sentido tiene ese campo. No hace falta crearlos. Se asocian a un dominio, que indica el tipo de dato, valores posibles, Ejemplo: mandt, para el campo del mandante; tambin existen elementos de datos predefinidos para monedas, fechas, idiomas, cantidades, Como todo objeto SAP, antes de poder usarlos hay que activarlos (icono redondo rojo y blanco), para tenerlos disponibles.

Dominios: Indican el formato de los campos de las tablas. Un campo est asociado a un elemento de datos, y ste a un dominio. Se puede dar valores fijos a un dominio, con Pasar a > Valores fijos, o bien se le puede dar rangos de valores. Objetos de bloqueo: Para evitar conflictos de acceso a una tabla por varios usuarios a la vez. Se usan para hacer zonas de exclusin mutua, semforos, ... Objetos matchcode: No se suelen crear, en cambio s se crean nuevos conceptos de bsqueda (IDs: Buscar por nombre, por fechas, por NIF, etc.): se crean dndoles un nmero, descripcin, etc. stos sirven para buscar objetos asociados a un campo. Hay muchos IDs predefinidos. Se pueden definir adems restricciones de bsqueda. Datos definidos en cada campo: En cada campo de una tabla est definido un elemento de datos, el tipo del campo, su longitud, opcionalmente una tabla de verificacin (para chequear que el valor del campo est incluido dentro de los posibles definidos en esta tabla), descripcin del campo, mandante (simula varias mquinas lgicas, pero puede ser una nica mquina fsica, o varias. Pero los datos de una tabla dependen y estn slo dentro de un mandante. Por eso este dato es obligatorio en todas las tablas). Opciones tcnicas de una tabla: clase de datos (se suelen usar APPL0 y APPL1), categora tam. (tamao esperado de la tabla, en n entradas), grabar la tabla en MI (memoria intermedia). Actualizacin de tablas: Hay un flag que permite actualizar la tabla si est marcado. Se puede entrar por men por: Entorno > Generar actualizacin de tabla. Con esta opcin se pueden usar las transacciones SM30 o SM31 para actualizarlas (no se podra hacer si no tuviera permiso de actualizacin y no estuvieran generadas las vistas necesarias para hacerlo). El campo mandante no es actualizable. Si se aaden campos a una tabla hay que volver a generar las vistas y grupo de funciones para que se tengan en cuenta los cambios. Creacin de una tabla: Basta pulsar el botn crear e introducir cliente, sociedad, descripcin breve (campo obligatorio), nombre (debe empezar por Z), ... El resto de caractersticas de la tabla dependern del elemento de datos (de entre los ya predefinidos, como mandt para el mandante. El elemento de datos debe ajustarse al tipo de datos que necesitemos para un campo dado). En el campo de tabla de verificacin el asterisco indica que verifique si se mete dato

vlido. Clv en un campo indica que es clave (pueden ser varios. Dos entradas en una tabla nunca pueden tener igual todos los campos clave). Al grabar la tabla meterla en una clase de desarrollo, como si fuera un programa. Y antes de usarla hay que dar primero las opciones tcnicas (clase de datos APPL1 y tamao 0, por ejemplo) y luego activarla (pulsar el icono circular rojo y blanco). Para permitir actualizaciones, hay que ir por men a Entorno > generar actualizacin de tablas. El tipo de actualizacin puede ser a un nivel, si es que cabe; si no, a 2 niveles. Finalmente pulsar el botn de Proponer imgenes y dar un grupo de funciones (como el ZT01), que tendr su propia clase de desarrollo. Con esto, haciendo SM31 se pueden meter valores en la tabla (aunque no chequear si son datos vlidos si no est activada la verificacin. Para esto, ir por men a Pasar a > Claves externas > Propuesta de verificacin, una vez por cada campo a verificar). 3.3. Dependencias con el Diccionario de Objetos de ABAP.

Los objetos en tiempo de ejecucin son creados para todos los objetos de diccionario ABAP que pueden ser usados como tipos en los programas ABAP. stos son elementos de datos, tipos de tablas y vistas, as como estructuras y tablas. Si un objeto que est activo es modificado, este puede afectar otros objetos que lo usen (directa o indirectamente). Estos objetos que usan otros objetos se denominan objetos dependientes. Por otro lado, ser necesario ajustar los objetos en tiempo de ejecucin de estos objetos dependientes a los cambios. As mismo, un cambio puede en algunos casos convertir a un objeto dependiente en inconsistente. Por esta razn, los objetos dependientes son determinados y activados (si es necesario) cuando un objeto activo es activado. Las versiones activas de los objetos dependientes son activadas nuevamente. En particular, las versiones de objetos nuevas e inactivas que usan el objeto cambiado no son cambiadas. Ejemplo: Cuando se le cambia a un dominio, su tipo de datos, todos los elementos de datos, estructuras y tablas que hacen referencia a este dominio deben ser nuevamente activados. Esta activacin es automticamente disparada cuando el dominio es activado. Esto asegura que todos los objetos en tiempo de ejecucin involucrados sean ajustados a la informacin del tipo cambiado. Si un objeto del diccionario ABAP tiene una tabla como objeto dependiente, su objeto de base de datos as como su objeto en tiempo de ejecucin deben ser ajustados cuando el objeto

dependiente es activado. Antes de realizar algn cambio crtico (tal como cambiar el tipo de datos o eliminar un campo) se debe definir el conjunto de objetos afectados de modo que se pueda estimar las implicaciones de la accin planeada. 3.4. Manejo de objetos de datos en el diccionario.

Tablas en el diccionario ABAP Las tablas consisten de columnas (campos) y filas (registros). En el diccionario ABAP la tablas tienen nombres, y atributos generales tales como una clase de entrega y una autorizacin de mantenimiento. Una tabla tiene uno o ms campos claves, designados como primary key. Los campos de tabla son basados comnmente en elementos de datos los cuales son basados en dominios de datos. Los campos de una tabla pueden ser tipificados sin referenciar a un elemento de datos. En ste caso el campo se dice que es de tipo directo. Las tablas tienen ajustes tcnicos que manejan como el sistema debe optimizar el almacenamiento de datos y el acceso a la tabla. Cul es el tamao de tabla esperado? Debe la tabla ser de tipo bfer? Deben ser almacenados en un log los cambios a la tabla? Tablas Transparentes Cuando una tabla es definida en el diccionario ABAP es una tabla transparente. Cuando se active la tabla transparente, es creada en el correspondiente DBMS. La tabla especfica de DBMS tiene el mismo nombre que la tabla transparente en el diccionario ABAP. Los tipos de los campos en la tabla especfica de DBMS son convertidos a cualquiera que sea apropiado a su definicin de tipo de datos en el DBMS.

Los elementos subyacentes de la tabla (tales como orden de los campos, etc.) pueden ser cambiados si es necesario. La tabla transparente en el diccionario ABAP es la representacin independiente de base de datos de esa tabla, y es usada en la programacin ABAP. 4. Mdulos de funciones (12 h)

4.1.

Introduccin a los mdulos de funciones.

Un mdulo de funcin es una subrutina con la correspondiente funcin la cual est almacenada centralmente en la Librera de Funciones del sistema SAP. Cada mdulo de funcin tiene una interfaz para importar o exportar parmetros. El propsito principal de los mdulos de funcin es la reusabilidad. Sin embargo, ellos pertenecen a los llamados componentes reusables. Los mdulos de funcin estn organizados en grupos de funcin. Cada grupo de funcin es una coleccin de mdulos de funcin que tienen funciones similares y/o procesan los mismos datos. Un grupo de funciones puede contener los mismos componentes que un programa ejecutable. stos incluyen: Objetos de datos Estos son globales en relacin a los grupos de funcin, esto es, son visibles y modificables por todos los mdulos de funcin dentro del grupo. Subrutinas Pueden ser llamadas desde todos los mdulos de funcin en el grupo. Pantallas Pueden ser llamadas desde todos los mdulos de funcin en el grupo.

Las propiedades de un mdulo de funcin incluyen, entre otras cosas, la descripcin corta y el grupo de funcin al que pertenece. En el caso de las subrutinas, un modulo de funcin puede contener tipos locales y definiciones de objetos de datos. Esto solo puede ser visto dentro del mdulo de funcin. La interfaz de un mdulo de funcin puede contener los siguientes elementos: . Parmetros import: Reciben los valores o variables del programa que hace la llamada al mdulo de funcin. Los parmetros opcionales no tienen que ser llenados con datos durante la llamada. . Parmetros export: El programa que hace la llamada acepta la salida del mdulo de funcin a travs de la asignacin de una variable receptora. Estos parmetros son siempre opcionales. . Parmetros changing: Es posible pasar las variables del programa que hace la llamada que son cambiados por el mdulo de funcin a los parmetros changing. . Excepciones: Pueden ser activadas por el mdulo de funcin en ciertas situaciones de error y proveer informacin del respectivo error de procesamiento en el mdulo de funcin. Las excepciones deben ser tratadas por el programa que hace la llamada. En general, los parmetros de interfaz son asignados a tipos del diccionario ABAP.

4.2.

Definir y llamar subrutinas.

Una subrutina es una unidad de modularizacin dentro del programa donde una funcin es encapsulada en forma de cdigo fuente. Se pagina una parte de un programa en una subrutina para tener una mejor visin del programa principal y poder usar la secuencia correspondiente de instrucciones muchas veces (ver el grfico anterior). Utilizar subrutinas hace al programa ms orientado a funciones: divide las tareas del programa en sub-funciones, para que as cada subrutina sea responsable de una sub-funcin. Utilizar subrutinas tambin significa que el programa se hace ms fcil de mantener de modo que los cambios a las funciones slo se implementan en la subrutina (y no en varios puntos en el programa principal). Adems, se puede procesar una llamada a una subrutina como una unidad en el depurador mientras se ejecuta el programa y luego ver el resultado. Esto usualmente simplifica encontrar la fuente del error. 4.3. depuracin. Analizar la ejecucin de subrutinas en modo

Si la instruccin actual es una llamada a una subrutina, se puede ejecutar toda la subrutina sin parar seleccionando Ejecutar. Procesando solo paradas una vez que la rutina ha sido completada. Por el contrario, se puede usar paso a paso para detenerse en la primera instruccin de la subrutina y hacer la traza de su operacin con mayor detalle. Si la instruccin actual est ubicada en una subrutina, se puede ejecutar el resto de la subrutina sin detenerse presionando retornar. El procesamiento solo se detiene una vez que la rutina ha sido completada. Todas las funciones de control del depurador (paso a paso, ejecutar, retornar y continuar) estn tambin disponibles en el nuevo depurador ABAP con el mismo significado. 4.4. Buscar mdulos de funciones.

El grfico anterior ilustra los diferentes escenarios de bsqueda: . La bsqueda relacionada con la aplicacin a travs de la Jerarqua de Aplicacin debe ser usada cuando se quiera buscar por mdulo de funcin dentro de uno/varios componentes de aplicacin. . Se usa la bsqueda libre a travs del Sistema de Informacin del Repositorio si se busca por mdulo de funcin independiente del componente de aplicacin. . La bsqueda por programa debe ser usada se el mdulo de funcin que se busca es llamado dentro de un programa existente. Una vez encontrado el modulo de funcin, primero se debe encontrar si ha sido liberado (atributos del modulo de funcin), porque slo tiene permiso para soportar compatibilidad hacia arriba cuando se usan mdulos de funcin liberados. Se recomienda usar slo mdulos de funcin liberados. 4.5. Puede usar Obtener informacin acerca de la funcionalidad y el uso de mdulos la de funciones. del modulo de funcin (botn documentacin

) para conocer su funcionalidad y obtener informacin adicional.

En muchos programas ABAP, una pantalla de confirmacin es mostrada despus que se selecciona Cancelar. En esta pantalla el texto estndar Se perdern los datos es mostrado junto con una variable de texto (ver grfico anterior). El usuario puede seleccionar Si o No.

Si se llama ste mdulo de funcin, el sistema puede pasar los textos de ttulo adicionales al mdulo de funcin usando los parmetros import. El mdulo de funcin pasa una pantalla de su grupo de funciones la cual muestra las lneas de texto y el ttulo y contiene los botones Si y No. El parmetro export ANSWER luego le dice al programa que llama cual botn escogi el usuario. Este dilogo est encapsulado en un modulo de funcin que se puede usar en los programas.

La interfaz del mdulo de funcin est compuesta por los parmetros import, export, y changing, as como de las excepciones. Los parmetros que no sean opcionales deben ser llenados con datos cuando se llame al modulo de funcin. Para saber cules parmetros adicionales van a ser transferidos y cuando, hay que ver la documentacin del mdulo de funcin y los parmetros de interfaz.

Se pueden probar los mdulos de funcin usando el ambiente de test. Una plantilla de entrada permite especificar valores para los parmetros import y changing. Tambin se puede cambiar a modo depuracin. Los valores en los parmetros export y changing son listados despus de la ejecucin. Si el mdulo de funcin lanza una excepcin debido a una situacin de error, se muestra - donde sea aplicable, con su correspondiente mensaje de texto. El tiempo de ejecucin tambin se muestra. Estos valores estn sujetos a las mismas restricciones que el Anlisis en Tiempo de Ejecucin. Por lo tanto se deben repetir las pruebas varias veces utilizando los mismos datos. Adems, se pueden almacenar datos de prueba en un diccionario de datos de prueba y crear secuencias de prueba. 4.6. Llamar mdulos de funciones en su programa.

Los mdulos de funcin se llaman usando la sentencia ABAP CALL FUNCTION. El nombre del modulo de funcin se coloca en mayscula y va entre comillas simples. En el bloque EXPORTING, el sistema pasa valores a los parmetros import del mdulo de funcin. En el bloque IMPORTING de la llamada, los parmetros export son asignados recibiendo variables con la cuales se pueden recibir los resultados de la llamada. Desde la perspectiva del programa que hace la llamada, los valores pueden ser exportados a los parmetros import del mdulo de funcin y los valores pueden ser importados por las variables receptoras, las cuales son asignadas a los parmetros export del mdulo de funcin. En la sintaxis de la llamada, siempre hay que especificar el nombre del parmetro de la interfaz (parmetro formal) en el lado izquierdo de la asignacin de parmetro y el objeto de datos o el valor del programa que hace la llamada (parmetro real) en el lado derecho.

Para evitar errores de sintaxis, usar el botn Patrn para generar la llamada cuando se implementa una llamada en el cdigo fuente. De la misma forma, se puede mostrar el grupo de funciones en el rea de navegacin y luego generar la llamada al mdulo de funcin en el cdigo fuente usando "arrastrar y soltar" dentro del rea del editor. Esto genera la sintaxis complete de la llamada, lo cual significa que se listan todos los parmetros de la interfaz as como las excepciones. La informacin opcional esta comentada en la llamada.

Despus, se deben llenar los parmetros reales y, si es necesario, manejar las excepciones.

Si ocurren errores de procesamiento cuando se ejecuta un mdulo de funcin (por ejemplo, el registro de datos a ser ledo no existe), el mdulo de funcin lanza la excepcin correspondiente. Esto produce la cancelacin del procesamiento del mdulo de funcin y el sistema retorna al programa que hizo la llamada. Si la excepcin est listada (manejada) en el bloque EXCEPTIONS de la llamada, el cdigo de retorno especficado es incluido en la variable de sistema sy-subrc del programa que hizo la llamada. Al revisar el valor de esta variable despus de la llamada, se puede determinar, si es aplicable, cual excepcin fue lanzada de modo que se ejecute una accin adecuada al caso. Si no es disparada ninguna excepcin por el mdulo de funcin, a la variable sy-subrc del programa que hizo la llamada se le asigna cero. Tambin se tiene la opcin de asignar un valor de retorno para algunas de las posibles excepciones y darles un valor de cdigo de retorno diferente para todas las excepciones no mencionadas. Para hacer esto, liste la excepcin formal OTHERS con el cdigo de retorno deseado (aleatorio). En la llamada, se deben capturar todas las excepciones y actuar en base a ellas en el programa. Si una excepcin es lanzada y no capturada, un error en tiempo de ejecucin ocurre. 4.7. Crear un grupo de funciones.

Para crear un grupo de funcin iremos por la opcin de men del OBJECT NAVIGATOR Ruta de acceso: (En el men principal de SAP) Herramientas-> Workbench ABAP4-> Resumen -> Object Navigator (SE80).

Seleccionar Grupo de funciones, colocar el nombre del grupo de funciones a crear Ej ZCXX. Aparecer una ventana en la cual se definen los atributos del grupo de funciones.

Grupo de funciones: Nombre del grupo de funciones. Texto breve: Descripcin del grupo de funciones. Ej: Asignacin de nmeros. Responsable: Usuario responsable del grupo de funciones. 4.8. Crear un mdulo de funciones.

Los mdulos de funcin se mantienen utilizando la biblioteca de funciones. Ruta de acceso: (En el men principal de SAP) Herramientas-> Workbench ABAP4-Desarrollo -> Biblioteca funciones (SE37).

Desde esta pantalla se pueden crear, modificar o visualizar todas las partes de un mdulo de funcin marcando las distintas opciones de objetos parciales. Ej.: Se crear una funcin que recibir como parmetro de entrada una sociedad y devolver como parmetro de salida el primer nmero de cliente desocupado en la tabla de clientes ZCLIENXX para esa sociedad.

Para crear un mdulo de funcin se deber especificar el nombre en la pantalla inicial y pulsar el botn de crear opcin Gestin activada. Ej.: Z_OBTENER_NUMERO_CLIENTE_XX. con la

Aparecer una pantalla en la que se debe indicar el grupo de funciones a la que pertenece el mdulo de funcin junto con su la descripcin de la funcin. Ej.: ZCXX.. Devuelve un nmero de cliente libre.

Una vez especificado el grupo de funcin se debern informar los datos de gestin del mdulo de funcin. Clasificacin: Aplicacin: Mdulo al que pertenece el programa ( FI , HHRR ). Ej.: * Multiaplicacin. Texto breve: Descripcin de la funcionalidad del mdulo de funcin. Ej.: Determinacin de nmero de cliente. Forma ejec.: Normal: Mdulo de funcin normal. Apoyo Remote Function Call: Funciones de ejecucin remota. Estas funciones pueden ser ejecutadas desde otros sistemas externos a SAP. Actualizable: Funciones de actualizacin asncrona. Se puede especificar el modo de tratamiento de la tarea de actualizacin (Inicio inmediato, inicio inmediato sin actualizacin posterior, inicio retardado o lanzamiento colectivo. Ej.: Normal. Al finalizar la introduccin de los datos de gestin se deber grabar el mdulo de funcin. Parmetros de la funcin. Parmetros Import. Deberemos indicar la lista de parmetros de entrada de la funcin:

Parmetro: Nombre de los parmetros de entrada. Tipificacin: Tipo de dato del parmetro. Tipo Ref. Tipo de referencia (Slo se indicar una de estas dos ltimas). Valor Propuesto: Valor por defecto cuando se declara como opcional. Flag opc. Indicador de parmetro no obligatorio. Flag. Tras. Indicacin de que el parmetro se recibe por valor/referencia. Parmetros de salida ( Export). Son los parmetros de salida de funcin. Parmetros ( changing ): Parmetros de entrada y salida del mdulo de funcin. Estos parmetros devuelven el valor de salida al finalizar la ejecucin del mdulo de funcin sin errores, manteniendo el valor de entrada en caso contrario. Ej.: Se crea el parmetro import BUKRS con el campo de referencia ZCLIENXX-BUKRS para recibir la sociedad del cliente, y el parmetro export NCLIE con el campo de referencia ZCLIENXX-NCLIE para devolver el nmero de cliente.

Tablas Adems de los parmetros de entrada y salida definidos anteriormente, tambin se pueden traspasar tablas por referencia en la llamada al mdulo de funcin.

Parmetro tabla: Nombre del parmetro de tabla. Tipificacin : Tipo de datos de la tabla Tipo ref.: Estructura de referencia del diccionario de datos para especificar la estructura del parmetro de tabla. Opcional: Si se activa este flag no ser obligatorio informar el parmetro de tabla en la llamada al mdulo de funcin. Excepciones Las excepciones son una serie de errores predefinidos en los mdulos de funcin que pueden devolver como valor de retorno de su ejecucin en la variable del sistema SY-SUBRC. Excepcin: Se indicar un nombre descriptivo para cada posible error predefinido que va a poder retornar el mdulo de funcin. La posicin en la tabla de excepciones se corresponder con el valor que devolver en la variable SY-SUBRC (la primera excepcin definida devolver 1, la siguiente 2, etc.). Por defecto siempre existe la excepcin OTHERS, aunque aparezca definida, que se utiliza para devolver un error genrico y devuelve en la variable SY-SUBRC el valor siguiente al de la ltima excepcin creada. Ej.: Se crea la excepcin SOCIEDAD_INEXISTENTE que ser devuelta cuando la sociedad informada en el parmetro de entrada correspondiente no exista en la tabla estndar de sociedades. Para devolver una excepcin desde el cdigo del modulo de funcin se utiliza la sentencia RAISE <excepcin>, finalizando as la ejecucin de la funcin y devolviendo el cdigo asociado a la excepcin en la variable SY-SUBRC. En caso de devolver una excepcin no se actualiza el valor de salida de los parmetros CHANGING.

Con la clusula RAISING de la instruccin MESSAGE se puede dar la posibilidad de que el mdulo de funcin trate el error mostrando el mensaje de error especificado o que devuelva la excepcin correspondiente sin mostrar el mensaje de error, en funcin de si se especifica la clusula EXCEPTIONS en su llamada. Si no se especifica la clusula, el mdulo de funcin mostrar los mensajes de error que tengan la clusula RAISING, finalizando as la ejecucin del programa que realiza la llamada, en caso contrario se devolvern las excepciones asociadas a los mensajes traspasando el control de los errores al programa que realiza la llamada al mdulo de funcin. Datos globales Las definiciones globales de datos son compartidas por todos los mdulos de funcin de un grupo de funciones. Las definiciones de objetos globales se mantienen a travs de la opcin de men Pasar a -> Datos globales. Nota: Las definiciones globales y el texto fuente del mdulo de funcin se codifican realmente en el editor ABAP/4 utilizando los mismos comandos que en la codificacin de listados. Ej.: Se define la tabla estndar de sociedades T001 en la que se chequear que la sociedad recibida como parmetro es correcta, y la tabla de clientes ZCLIENXX para seleccionar los nmeros de cliente existentes. Include LZCLITOP: FUNCTION-POOL ZCLI. "MESSAGE-ID .. ********************************************************************** ** * Definicin de tablas ********************************************************************** ** TABLES: T001, " Sociedades ZCLIENXX. " Clientes Los parmetros definidos en el mdulo de funcin son locales, por lo tanto slo son visibles en el cuerpo principal de la funcin. Para que puedan ser utilizados en las subrutinas, sin necesidad de pasarlos como parmetros, se debern globalizar utilizando la opcin de men Tratar -> Interfaz -> Globalizar parm. en la pantalla de mantenimiento de parmetros de entrada/salida. Para eliminar la globalizacin se utiliza la opcin de men Tratar -> Interfaz -> Localizar parm..

4.9. depuracin.

Analizar la ejecucin de funciones en modo

Ir al depurador ABAP y probar las diferentes modalidades de depuracin 5. Transporte ABAP. Organizacin de desarrollos

Los proyectos de desarrollo son llevados a cabo en un sistema de desarrollo. Los objetos de desarrollo editados o creados en un proyecto son transportados a los sistemas subsecuentes (prueba y/o produccin) para completar el proyecto. Al inicio del proyecto de desarrollo el gerente de proyectos crea una solicitud de cambio, en la cual l o ella nombra a los empleados de este proyecto, en el Organizador de Transporte o directamente en el workbench ABAP. El Organizador de transporte luego crea una tarea para cada empleado del proyecto en la solicitud de cambio. Cuando un objeto de desarrollo es editado o creado, el empleado relevante asigna este a la solicitud de cambio. El objeto es introducido en la tarea del empleado. As, todos los objetos de repositorio que un empleado maneje durante el desarrollo del proyecto son coleccionados dentro de su tarea.

Organizacin de un proyecto de Desarrollo en la solicitud de cambio

Organizar un proyecto de desarrollo usando una solicitud de cambio (orden de transporte) ofrece las siguientes ventajas: . Cada empleado puede seguir y revisar sus actividades especficas del proyecto. . Los respectivos objetos de desarrollo pueden ser procesados por todos los empleados involucrados en el proyecto. Para los desarrolladores que no pertenecen al equipo de trabajo, los objetos de repositorio permanecen bloqueados hasta que el proyecto culmine (=la orden de transporte sea liberada). . El transporte conjunto de objetos de desarrollo procesado en el proyecto en el momento de la culminacin del proyecto (= liberacin de la orden de transporte) es asegurada automticamente asignando los objetos a la orden de transporte. La ruta de transporte de los paquetes involucrados (en la cual el desarrollo se lleva a cabo) especifica a cual sistema subsecuente sern transportados. A menos que las divisiones funcionales que separan los objetos de repositorio usen paquetes, las rdenes de transporte estn relacionadas con el proyecto y por lo tanto tienen una limitacin con respecto al tiempo estipulado de los objetos involucrados. As, aunque un programa siempre pertenezca a un solo paquete, este puede en distintos momentos pertenecer a diferentes proyectos. Creando Paquetes 1. Recorriendo el Navegador de Objetos. Se tienen dos opciones:

a) En el rea de navegacin, escoger el tipo de objeto Paquete e introduzca el nombre del paquete en el campo de entrada de abajo. (Asegurarse de cumplir con la convencin de nombres Y o Z.) presione Enter. Si el paquete especificado no existe an, el sistema enlaza a un dilogo de creacin de paquete. b) Seleccionar Editar Objeto en la pantalla inicial del Navegador de Objetos. En el cuadro de dilogo, buscar la opcin de especificar un paquete e introduzca el nombre del paquete. Luego, hacer click en el botn de creacin de objeto (F5). Sugerencia: En la version 4.6 de SAP R/3, los paquetes an son llamados clases de desarrollo. Son manejados da la misma manera como se describe aqu. Existe una limitacin menor con respecto a la version 4.6 a/b: All slo se tiene la opcin 1b) para crear un paquete. 2. Crear los atributos del paquete.

Los atributos tienen el siguiente significado (la informacin puede obtenerse usando el campo de ayuda (F1)): Componente de Aplicacin Determinar la ubicacin del paquete dentro de la jerarqua de aplicacin especificando el componente de aplicacin correspondiente. Componente de Software Para desarrollos de cliente componente de software. se debe introducir HOME como

Capa de transporte Si se estn ejecutando desarrollos propios, se debe asignar una capa de transporte para desarrollos de clientes, la cual debe ser especificada ac. La capa de transporte determina si los objetos de este paquete sern transportados a un sistema subsecuente y, si es as, a cual sistema. Tipo de Paquete Se debe escoger entre tres tipos de paquete:

. Paquete Standard (puede contener objetos de repositorio y otros paquetes) . Paquete Principal (slo puede contener otros paquetes) . Paquete de estructura (slo puede contener paquetes principales)

3. Asignar el paquete a la orden de transporte. Se pueden mostrar todas las rdenes de transporte en las cuales se tiene una tarea usando el botn rdenes propias. Simplemente se selecciona la orden relevante haciendo doble click.

Nota: El sistema se encarga de la asignacin exacta para la tarea. Sugerencia: Todos los objetos del repositorio que son creados o modificados deben ser asignados a la orden de transporte del proyecto respectivo.

Вам также может понравиться