Top Banner
Unit 8 Modularization Lesson: Modularization - Basics and Overview Figure 118: Options for Using Modularization Units Una unidad de modularización. Es una parte de un programa en el que una función particular es encapsulada. La modularización hace más fácil mantener los programas.
45
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modularizacion SAP

Unit 8

Modularization

Lesson: Modularization - Basics and Overview

Figure 118: Options for Using Modularization Units

Una unidad de modularización. Es una parte de un programa en el que una función particular es encapsulada. La modularización hace más fácil mantener los programas.

Page 2: Modularizacion SAP

Local Program Modularization

Figure 119: Local Program Modularization

Hay dos técnicas para la modularización de programas locales en el lenguaje de programación ABAP:

Subrutinas, también conocidas como form subrutines.

Los métodos de las clases locales Las clases locales, métodos y subrutinas pueden tener el mismo nombre en diferentes programas sin que se produzca en los conflictos.

Page 3: Modularizacion SAP

Global Modularization

Figure 120: Global Modularization

También existen dos técnicas para la modularización global en el lenguaje de programación ABAP:

Módulos de función que se organizan en grupos de funciones

Los métodos de las clases globales

Las unidades de modularización definidas Globalmente pueden ser utilizadas por cualquier número de programas a la vez. Las unidades de modularización definidas globalmente se almacenan de forma centralizada en el repositorio y se carga cuando sea necesario.

Page 4: Modularizacion SAP

Encapsulating Data

Figure 121: Separating Data

Lo ideal sería que las unidades de modularización que son llamados no utilicen los objetos de datos del programa que llama directamente. Este principio es conocido como encapsulación de datos. La encapsulación de datos es una ayuda importante en el desarrollo de código transparente, fuente fácil de mantener.

Page 5: Modularizacion SAP

Data Transports, Parameters and Interface

Figure 122: Data Transports Between the Program and the Modularization Unit

Los parámetros se utilizan para intercambiar datos entre el programa y el módulo. Los parámetros disponibles se determinan cuando se define la unidad de modularización. El número

total de parámetros en una unidad de modularización es llamado la interfaz o firma.

La unidad de modularización (importing parameters), devuelve los datos de la unidad de

modularización de la persona que llama (exporting parameters), o pasa datos a la unidad de

modularización y devuelve los datos después de que ha sido cambiado (parameters changing).

Page 6: Modularizacion SAP

Lesson Summary

Ahora tu deberias ser capaz de: . Nombrar las técnicas básicas de modularización.

Page 7: Modularizacion SAP

Lesson: Modularization with Subroutines La modularización con subrutinas es una de las técnicas más antiguas de programación en ABAP.

Internal Program Modularization with Subroutines

Figure 123: Simple Example of a Subroutine

Una subrutina es una unidad de modularización dentro de un programa.

Parameter Definition for Subroutines

Figure 124: Passing Parameters - Visibility of Global Variables

Si las variables se definieron en el programa principal, estos son visibles a nivel global dentro del programa y se puede cambiar en cualquier punto de todo el programa. Puede usar todas las variables (globales) definidas en el programa principal de una subrutina.

Page 8: Modularizacion SAP

Figure 125: Passing Parameters - Defining an Interface

Usted puede abordar todas las variables (globales) definidas en el programa principal de una subrutina. Sin embargo, con el fin de llamar a una subrutina con los objetos de datos diferentes para cada situación, usted no utiliza variables globales en la subrutina sino los marcadores de posición. Estos son reemplazados por las variables requeridas globales cuando la subrutina se llama. Estos marcadores se llaman parámetros formales y juntos forman la interfaz de subrutina. Usted tiene que declarar la interfaz cuando se define la subrutina.

Page 9: Modularizacion SAP

Figure 126: Ways of Passing Interface Parameters

La manera en que estas variables de programa principal se pasan a los parámetros formales de la subrutina se llama el tipo de paso y se especifica para cada parámetro de la interfaz de la subrutina. Hay tres tipos de paso para subrutinas:

Llamada por valor: Se realiza una copia del parámetro real FORM xyz USING value(F1)… “ Call by Value

Llamada por valor y resultado: Lo mismo se aplica para este tipo de paso que para. Llamada por valor, Sin embargo, al final regular de la subrutina, el valor que se cambió a este punto de la copia se escribe de nuevo a la original.

FORM xyz CHANGING value(F2)… “ Call by Value and Result

Llamada por referencia: El parámetro actual se asigna directamente al parámetro formal.

FORM xyz CHANGING f3… “ Call by Reference

Page 10: Modularizacion SAP

Figure 127: Defining and Calling Subroutines

Estructura de una subrutina:

A subroutine is introduced with FORM.

Specify the name and the interface.

Statements.

The ENDFORM.

Figure 128: Typing the Interface Parameters

Un parámetro formal se escribe de forma genérica si se escriba usando TYPE ANY, o no se escribe nada en absoluto. Los parámetros actuales de cualquier tipo pueden ser transferidos a dicho parámetro. En tiempo de ejecución, el tipo del parámetro actual se determina y se asigna al parámetro formal (herencia de tipo) cuando la subrutina se llama.

Page 11: Modularizacion SAP

Figure 129: Typing the Interface Parameter for Structures and Internal Tables

Usted será introducido a las estructuras de las tablas internas en una lección posterior. Los parámetros formales para los objetos de datos siempre se deben tipear a fin de que sus componentes puedan ser accedidos dentro de la subrutina.

Local and Global Data Objects

Figure 130: Visibility of Global and Local Data Objects

Las variables definidas en el programa principal son los objetos de datos globales. Son visibles en el programa principal entero, así como en cada subrutina llamada. Las variables definidas dentro de una subrutina se llaman locales, ya que sólo existen en la subrutina relevante - al igual que los parámetros formales. Los parámetros formales y los objetos de datos locales de una subrutina no pueden tener los mismos nombres.

Page 12: Modularizacion SAP

Figure 131: Syntax Example: Local Auxiliary Variables for Rounding

En el ejemplo anterior, el resultado del cálculo de porcentaje se debe redondear internamente al número entero más cercano con un decimal, pero sin embargo, volvió con dos decimales. Para ello, se crea una variable local con un solo decimal y almacenar el resultado del cálculo del primero. El sistema de ejecución automáticamente redondea el resultado al número entero más cercano de acuerdo con el número disponible de lugares decimales. Cuando a continuación, copiar el resultado en el parámetro de retorno, un cero sólo es necesario añadir la segunda cifra decimal.

Page 13: Modularizacion SAP

Calling Subroutines

Figure 132: Implementing a Subroutine Call

La sentencia PERFORM para llamar a una subrutina puede generarse en el código fuente. En primer lugar, definen la subrutina y guardas el programa principal. En primer lugar, definen la subrutina y guarda el programa principal. La subrutina recién definida aparece en el área de navegación. Mover hasta el punto de llamada deseado en su programa de arrastrar y soltar. Todo lo que tienes que hacer ahora es cambiar los parámetros formales en el código fuente generado con los correspondientes parámetros actuales. (Si lo prefiere, también puede poner en práctica la generación de la llamada con botón Pattern en el Editor de ABAP). La ventaja de generar la llamada es que es imposible perderse o mezclar parámetros.

Page 14: Modularizacion SAP

Modularization Units in the Debugger

Figure 133: Subroutines in Debugging Mode

Si la instrucción actual es una llamada a subrutina, puede ejecutar la subrutina completa sin pasar por la elección de Execute. (F6) Puede utilizar un Single Step para parar en la primera declaración de la subrutina y rastrear sus operaciones en más detalle. (F5) Puede ejecutar el resto de la subrutina sin pasar por la elección de Return. (F7) Todas las funciones de control del depurador (solo paso, ejecutar, regresar, y continuar) también están disponibles en el clásico depurador ABAP con el mismo significado.

Page 15: Modularizacion SAP

Figure 134: Debugging - Call Stack

Bajo la página de Standar Tab en el depurador se puede ver en los programas de la subrutina se llama. La herramienta para esto es la Call Stack..

Lesson Summary Ahora tu deberias ser capaz de:

. Definir subrutinas

. Llamar subrutinas

. Analizar la ejecución de subrutinas en modo Debug.

Page 16: Modularizacion SAP

Lesson: Modularization with Function Modules

Working with Function Modules

Figure 135: Function Group

Un módulo de función es una subrutina con la función correspondiente que se almacena centralmente en la librería de funciones del sistema SAP. Cada módulo de función tiene una interfaz con los parámetros para la importación o exportación de datos. Los módulos de función se asignan a los grupos de funciones. Un grupo de función puede contener los mismos componentes que un programa ejecutable:

Objetos de datos: Son global en relación con el grupo de funciones, es decir, que son visibles

para y se puede cambiar por todos los módulos de función dentro del grupo.

Subrutinas: Estos pueden ser llamados desde todos los módulos de función en el grupo.

Pantallas: Estas pueden ser llamados desde todos los módulos de función en el grupo.

Page 17: Modularizacion SAP

Figure 136: Function module

Las propiedades de un módulo de funciones incluyen, entre otras cosas, una breve descripción y el grupo de funciones al que pertenece. Como es el caso de subrutinas, un módulo de función puede contener su propio tipo local y definiciones de datos de objeto. Estos sólo pueden ser vistos en el módulo de función. La interfaz de un módulo de función puede contener los siguientes elementos:

Import parameter. Los valores o variables del programa de llamada puede ser transferida a ellos cuando el módulo de función es llamada. Los parámetros opcionales no tienen que ser suministrados con los datos durante la llamada.

Export parameter. El programa de llamada acepta la salida del módulo de funciones por medio de la asignación de una “Variable de recepción” a un parámetro de exportación. Los parámetros de exportación son siempre opcionales.

Changing parameter. Puedes transferir las variables del programa de llamada que son cambiado por el módulo de funciones a los parámetros Changing.

Exceptions. Pueden ser incrementados en el módulo de funciones en situaciones de error determinados y proporcionar información sobre el error de procesamiento respectivo en el módulo de funciones. Las excepciones deben ser manejados por el programa de llamada.

En general, los parámetros de interfaz se asignan a los tipos del diccionario ABAP.

Page 18: Modularizacion SAP

Figure 137: Data Objects Within a Function Group

“If a program calls a function module, the entire corresponding function group is loaded and the function module is executed.” El grupo de funciones sigue siendo cargado en la memoria de trabajo hasta que el programa de llamada esté cerrado. Cuando se llama a otro módulo de la función de este grupo, por lo tanto se procesa sin necesidad de ser recargada y con los mismos datos globales del grupo de funciones. Así, si un módulo de función que escribe los valores de los datos globales del grupo de función es llamada, otros módulos de función en el mismo grupo de funciones se pueden acceder a estos datos, cuando son llamados en la ejecución del programa mismo. Además de los datos globales de su grupo de funciones, un módulo de función también puede acceder a sus propios objetos de datos definidos a nivel local, así como sus parámetros de la interfaz. Este último es utilizado para aceptar los datos o devolverlo al programa de llamada.

Page 19: Modularizacion SAP

Searching for Function Modules

Figure 138: Searching for Function Modules

El gráfico de arriba se describen varios escenarios de búsqueda.

Function Module Interface

Figure 139: Function Module Interface

La interfaz del módulo de función consiste en la importación, exportación, cambio de parámetros, y las excepciones

Al igual que con las subrutinas se puede distinguir entre el paso por valor y paso por referencia. No parámetros opcionales deben debe facilitarse con datos cuando el módulo de función se llama.

Page 20: Modularizacion SAP

Documentation and Testing

Figure 140: Documentation and Test Environment

Los módulos de función que están previstos y aprobados para uso en otros programas deben estar documentados. Se hace una distinción entre la documentación del módulo de función que se describe la función del módulo y la documentación del parámetro que le indica cómo los parámetros individuales o excepciones se utilizan.

Si el módulo de funciones provoca una excepción debido a una situación de error, este es mostrado, en su caso, con su mensaje de texto. El tiempo de ejecución también se muestra. Estos valores están sujetos a las mismas restricciones que el análisis de tiempo de ejecución. Por lo tanto, debe repetir las pruebas varias veces utilizando los mismos datos. Además, puede almacenar los datos de prueba en un directorio de datos de prueba y crear secuencias de prueba.

Page 21: Modularizacion SAP

Calling Function Modules

Figure 141: Calling a Function Module

Los módulos de función son llama con la instrucción CALL FUNCTION. El nombre del módulo de función sigue en letras mayúsculas y entre comillas simples. En el bloque EXPORTING, el sistema pasa valores a los parámetros de importación del módulo de función. En el bloque IMPORTING de la llamada, los parámetros actuales se asignan a los parámetros de exportación. Usted las puede utilizar para acceder a los resultados de la llamada. Desde la perspectiva del programa de llamada, los valores se exportan a los parámetros de importación del módulo de función y los valores se importan para las variables que reciben que se asignan a los parámetros de exportación del módulo de función.

En la sintaxis de llamada, siempre hay que especificar el nombre del parámetro de la interfaz (parámetro formal) en el lado izquierdo de la asignación del parámetro y el objeto de datos o el valor de la programa de llamada (parámetro actual) en el lado derecho.

Page 22: Modularizacion SAP

Figure 142: Creating Source Code for a Function Module Call

A fin de evitar errores de ortografía, utilice el botón Pattern para generar la llamada cuando se implementa una llamada en el código fuente. Como alternativa, puede mostrar el grupo de funciones en el área de navegación y arrastrar y soltar el módulo de función en el área de edición para generar la llamada en el código fuente. Esto genera la sintaxis de llamada completa, lo que significa que todos los parámetros de la interfaz, así como las excepciones se indican. La información opcional se comenta en la llamada. Después, usted debe llenar los parámetros actuales y, si es necesario, poner en práctica el manejo de excepciones.

Page 23: Modularizacion SAP

Exception Handling

Figure 143: Handling Exceptions

Si los errores de aplicación se producen cuando un módulo de funciones se procesa (por ejemplo, un valor no es adecuado para el cálculo), el módulo de funciones provoca la excepción correspondiente. Esto hace que el procesamiento del módulo de función se cancele y el sistema vuelva al programa llamante. Si la excepción está en la lista (capturado) en el bloque EXCEPTIONS de la llamada, el código de retorno especificado se introduce en el campo del sistema SY-SUBRC del programa de llamada. Al marcar este campo después de la llamada, por lo tanto se puede determinar si, y, en su caso, que se planteó una excepción para que pueda actuar en consecuencia. Si no es una excepción planteada por el módulo de función, la SY-SUBRC del programa de llamada se pone a cero. Usted también tiene la opción de establecer un código de retorno de forma explícita para algunas de las posibles excepciones, y el establecimiento de un código de retorno distinto para todas las excepciones no mencionadas. Para ello, anote las OTHERS a las excepciones formales con el código de retorno deseado.

Page 24: Modularizacion SAP

Creating Function Groups and Function Modules Create function groups

Figure 144: Creating a Function Group

Creating Function Modules

Figure 145: Creating a Function Module

Page 25: Modularizacion SAP

Figure 146: Editing the Source Code

Después de haber definido los parámetros IMPORTING y EXPORTING correspondientes tu puedes cambiar a la pestaña de código fuente con el fin de poner en práctica las funciones del módulo de función. Sugerencia: Tenga en cuenta que el bloque de comentarios directamente en la función de palabra clave se crea automáticamente por el generador de funciones y se cambia cuando se realizan cambios en los parámetros.

Page 26: Modularizacion SAP

Working with BAPIs

Figure 147: Business Objects and BAPIs

El Repositorio de Objetos de Negocios (BOR) en el sistema SAP contiene objetos de negocio. Un objeto de negocio tiene BAPI (Business Application Programming Interfaces) como métodos. Usted puede llamar a estos BAPI para acceder a la tabla correspondiente (s). BAPI por lo general existen para las funciones básicas de un objeto de negocio, tales como:

Creación de un objeto

Recuperar los atributos de un objeto

Cambio de los atributos de un objeto

Listado de los objetos Las funciones de una BAPI son encapsulados en un módulo de función que pueden ser llamados de forma remota. BAPI por lo tanto, pueden ser llamados por los programas ABAP del mismo sistema SAP, así como por programas externos.

Page 27: Modularizacion SAP

Figure 148: Using BAPIs

¿Por qué las BAPIS no manejan excepciones? Porque otros sistemas implementan EXCEPCIONES pero no el sy-subrc como lo hace ABAP. Hay métodos estándar en la forma de BAPI con nombres estandarizados. Algunos de las BAPI estándar más importantes se enumeran aquí.

Standard BAPIs

GetList: Devuelve una lista de objetos disponibles que cumplan con los criterios de selección especificados.

GetDetail: Devuelve información detallada (atributos) de un objeto (la clave completa se debe especificar).

Create, Change, Delete, Cancel: Le permite crear, modificar y eliminar objetos

AddItem, RemoveItem: Agrega y quita subobjetos (por ejemplo, el ítem de una orden)

Page 28: Modularizacion SAP

Figure 149: BAPI Explorer

Usted puede utilizar el BAPI Explorer de para listar los objetos de negocio, así como los correspondientes BAPIs con referencia a la aplicación. Para llamar al BAPI Explorer utilice la siguiente ruta en el SAP Easy Access menú : Tools → Business Framework → BAPI Explorer o la transacción BAPI. Una vez que haya encontrado el objeto de negocio requerido o BAPI, puede visualizar los detalles pertinentes a la derecha de la pantalla mediante la selección de la BAPI. Usted puede navegar a su pantalla con el Function Builder, haga doble clic en el módulo de función que se muestra.

Page 29: Modularizacion SAP

Figure 150: Properties of a BAPI Function Module

Los módulos de función para BAPI debe cumplir los siguientes requisitos técnicos:

Naming convention BAPI_<business_object_name>_<method_name>

Remote enabled

Contain neither user dialogs nor messages

Interface parameters are typed with components of structures from the ABAP Dictionary that were created for this BAPI. (Name prefix for such structures: BAPI_)

Must not contain any changing parameters until release 4.6

Raise no exceptions: Errors are reported to the user through the special export parameter RETURN.

Page 30: Modularizacion SAP

Figure 151: BAPI Call in an ABAP Program Si desea utilizar una BAPI dentro del mismo sistema SAP, usted tiene que llamar al módulo de función relevante directamente. Tenga en cuenta las restricciones ya mencionadas.

Page 31: Modularizacion SAP

Lesson Summary Tu ahora deberías ser capaz de:

Buscar módulos de función

Adquirir información sobre la funcionalidad y el uso de módulos de función

Llamar a los módulos de función en su programa

Crear un grupo de funciones

Crear un módulo de función

Explicar el rol de BAPI e identificar sus propiedades especiales

Page 32: Modularizacion SAP

Lesson: Modularization with Methods of Global Classes Principles of Object-Oriented Programming Antes de poder utilizar las clases y métodos globales, es necesario conocer algunos de los términos básicos de programación orientada a objetos.

Classes, Attributes, and Methods

Figure 152: Representation of a Global Class

Al igual que los módulos de funciones, los métodos también tienen una interfaz, conocida como una firma, que comprende importación, exportación y cambio de parámetros y excepciones. Además de los métodos, las clases tienen otros componentes también. Entre otras cosas, también contienen objetos de datos globales, conoce como atributos. De la misma manera que los objetos de datos globales de un grupo de funciones se pueden acceder por todos los módulos de función en el grupo, todos los métodos de una clase pueden acceder a los atributos de dicha clase.

Page 33: Modularizacion SAP

Encapsulating Data, Public and Private Components

Figure 153: Example of the Access Options for a Global Class

Con grupos de funciones, sabemos que los objetos de datos globales que contienen no son visibles fuera del grupo de funciones. Esto se denomina la encapsulación de datos en el grupo de funciones. Los atributos también son normalmente encapsulados en la clase, y por lo tanto sólo se pueden leer o modificar con los métodos de la misma clase. En contraste con los módulos de función, las clases también te permiten hacer que los atributos específicos visibles para los usuarios de la clase. Una distinción por lo tanto entre los atributos públicos y privados. Esta distinción se puede aplicar no sólo a los atributos, sino también a los métodos. Considerando que todos los módulos de función se pueden llamar desde fuera del grupo de funciones, sólo métodos públicos están disponibles fuera de la clase. Los métodos privados sólo pueden ser llamados por otros métodos de la misma clase, por lo que son bastante similares en este aspecto a las subrutinas (las rutinas) dentro de un grupo de funciones.

Page 34: Modularizacion SAP

Multiple Instantiation of Classes

Figure 154: Classes and Objects

La principal diferencia entre las clases y grupos globales de función es que un grupo de funciones con sus objetos de datos globales sólo se pueden cargar a la vez el contexto del programa para cada programa principal, mientras que una clase global se puede cargar tantas veces como desee. Esto se conoce como instanciación múltiple de la clase. Tienes que generar una instancia de la clase de forma explícita en el código fuente ABAP utilizando la sentencia CREATE OBJECT.

Page 35: Modularizacion SAP

Instance Components and Static Components

Los atributos que pueden tener un valor diferente para cada caso se conocen como atributos de la instancia, con el fin de distinguirlos de los atributos estáticos (o atributos de la clase). Loa atributos estáticos existen sólo una vez para cada contexto del programa, sin importar cuántos instancias de la clase se generan cuando se ejecuta un programa. Si los métodos de instancia acceder a un atributo estático, todas las instancias ven el mismo valor. Por encima de todo, un método de instancia puede cambiar el valor y todos los otros casos, entonces verá el nuevo valor. Con los métodos también, se hace una distinción entre los métodos estáticos y métodos de instancia. La principal diferencia es que un método de instancia sólo se puede llamar si una instancia de la clase se ha generado con anterioridad. Por el contrario, los métodos estáticos pueden ser llamados, sin instancia previa de la clase.

Using Methods of Global Classes Como es el caso con los objetos de otro repositorio, la pantalla y el procesamiento de clases globales se incorpora en el Object Navigator. Como de costumbre, usted tiene varias opciones para la apertura de una clase global: En el área de navegación, por ejemplo, elegir la Class / Interface e introduzca el nombre de la clase en el campo de entrada justo debajo del nombre. Por supuesto, también puede mostrar la lista de objetos para un primer paquete y, a continuación, haga doble clic en el nombre de la clase requerida en el subnodo Class Library → Classes..

Attributes of Global Classes

Figure 155: Definition of Attributes

Seleccione la pestaña Atributes para abrir la lista de las definiciones de atributos en la clase. Si sólo desea utilizar la clase, entonces sólo los atributos identificados como Public son de interés. Puede direccionar estos directamente fuera de la clase.

Page 36: Modularizacion SAP

Methods and Their Signature

Figure 156: Definition of Methods

Seleccione la pestaña Methods para abrir la lista de todas las definiciones de método en la clase. Con los métodos también, sólo las entradas identificadas como Public son de interés para el usuario. Sólo estos métodos pueden ser llamados externamente. Todos los otros métodos se utilizan para la modularización de la clase global. Si un método es identificado como un “Método estático”, se le puede llamar directamente, sin la necesidad de generar una instancia de la primera clase (ver más adelante). Con “Métodos de instancia”, por el contrario, primero hay que generar una instancia y luego llamar al método específicamente para esta instancia. En circunstancias normales, el método de instancia accede entonces los atributos de instancia que contienen valores diferentes para las distintas instancias.

Page 37: Modularizacion SAP

Figure 157: Method Parameters

Hay una ventana separada para visualizar los parámetros de un método. Se accede a la lista de métodos, colocando el cursor sobre el método deseado y hacer clic en el botón de Parameters. En contraste con los módulos de función no existe una lista separada para la exportación, importación y cambio de parámetros. El tipo de parámetro se introduce en el lugar Type de columna.

Figure 158: Method Exceptions

Usted también tiene que desplazarse a una ventana de visualización independiente para mostrar las excepciones de un método. Usted acceder a él desde la lista de métodos, colocando el cursor sobre el método deseado y hacer clic en el botón Exceptions.

Page 38: Modularizacion SAP

Con el lanzamiento de Basis 6.10, un concepto nuevo de excepción se introdujo en ABAP, los llamados excepciones basadas en clase. El manejo de estas excepciones es muy diferente al manejo de las excepciones clásicas a partir de módulos de función. Un método puede levantar sólo nuevas excepciones basadas en clase o sólo excepciones clásicas. No es posible mezclar ambos conceptos. Una casilla de verificación te indica que concepto de excepción utiliza el método respectivo.

Mientras que el concepto clásico de excepción le permite elegir cualquier identificador de excepción, con el concepto de nueva excepción que tiene que especificar los nombres de las clases especiales, las clases de excepción llamados. El concepto de excepción basada en la clase también está disponible para los módulos de función.

Page 39: Modularizacion SAP

Documentation and Testing

Con la documentación de la clase globales, se hace una distinción entre la documentación de la clase como un todo y la documentación de los componentes individuales.

Puedes acceder a la documentación de la clase eligiendo el botón de Class Documentation. Para consultar la documentación de un método individual o atributo, vaya a la lista correspondiente, seleccione el componente deseado con el cursor y a continuación, seleccione el botón Documentation.

Figure 159: The Class Builder Testing Environment

Usted puede probar clases globales activos:

El almacenamiento temporal se asigna para los componentes de la clase. Para los componentes estáticos, se asigna inmediatamente, mientras que para los componentes de la instancia que se asigna después de haber elegido el botón Instance.

El sistema sólo muestra los componentes públicos. Los métodos pueden ser probados utilizando el icono Execute Method.

Si quieres poner a prueba un método estático no es necesario generar una instancia. Esto debería ser posible para ejecutar el método estático inmediatamente.

Si los parámetros de importación de existen éstas aparecerán en la pantalla después de haber elegido Execute.

Después de haber suministrado los parámetros con los valores que puede probar el método, y el resultado del parámetro de exportación se mostrará.

Page 40: Modularizacion SAP

Calling Static Methods

Figure 160: Method Calls Using Drag and Drop

Los métodos son llamados utilizando la sentencia ABAP CALL METHOD. Después de esto tu especificas el método. Hay que distinguir aquí entre un método de instancia o un método estático. Con los métodos estáticos, esta especificación comprende el nombre de la clase y el nombre del método, separados por el selector de componente estática “=>” (flecha de dos puntas). Los parámetros se pasa entonces de una manera muy similar a la llamada módulo de función tanto en un bloque EXPORTING y un bloque IMPORTING.

En el área de navegación, seleccione un nombre de método y arrastrarlo a la zona de edición manteniendo pulsado el botón izquierdo del ratón. En la declaración que se genera de esta manera, usted sólo tendrá que añadir el parámetro actual. Alternativamente, también puede pulsar el botón “Pattern”. A continuación, encontrará la opción Call Method. Aquí se introduce la clase en la Class / Interface y el nombre del método en el Method. Con los métodos estáticos el campo Instance no necesita ser llenado.

Page 41: Modularizacion SAP

Exception Handling

Los métodos pueden levantar excepciones, ya sea clásico o las excepciones basadas en la clase más modernos. Las excepciones clásicas se manejan de la misma manera que ha encontrado con los módulos de función.

Handling Classic Exceptions

cl_bc400_compute=>get_power

EXPORTING

iv_base = pa_int1

iv_power = pa_int2

IMPORTING

ev_result = gv_result

EXCEPTIONS

POWER_VALUE_TOO_HIGH = 1

RESULT_VALUE_TOO_HIGH = 2.

CASE sy-subrc.

WHEN 0.

WRITE gv_result.

WHEN 1.

WRITE ’Max Value for Power is 4’.

WHEN 2.

WRITE ’Result value was too high’.

ENDCASE.

En el bloque EXCEPCTIONS de la llamada al método, un código de retorno se asigna a la excepción. Cuando el método termina con esta excepción clásica, este código de retorno se coloca en el campo del sistema SY-SUBRC. Al consultar SY-SUBRC, el programa de llamada puede reaccionar a la excepción. En comparación, el manejo de excepciones basadas en la clase es mucho más complejo:

Handling Class-Based Exceptions

La llamada se debe enlazar entre la sentencia TRY y ENDTRY. (Véase más arriba). La excepción actual es manejada en un bloque de procesamiento que comienza con la sentencia CATCH < exception class >. Donde < exception class > significa la clase de excepción que se va a manejar. Si la excepción correspondiente se planteó en algún lugar dentro del bloque TRY-ENDTRY, el tratamiento se termina y el sistema pasa directamente al bloque CATCH correspondiente.

Page 42: Modularizacion SAP

Figure 161: Handling Exceptions with Exception Classes

Si usted genera las llamadas al método por Drag and Drop o usando Pattern, los estados para el manejo de las excepciones basadas en la clase se generan también. A continuación, sólo tiene que convertir estas declaraciones en un comentario y poner en práctica los bloques catch.

Generating Instances and Calling Instance Methods

Figure 162: Creating Objects and Calling Methods

Como las instancias no tienen nombres, usted tiene que definir las variables de referencia a fin de ser capaces de generar y hacer frente a las instancias de clases. Estas son indicadores que pueden ser dirigidas a las instancias correspondientes. Las variables de referencia cada uno tiene un nombre que se puede utilizar para tratar la instancia correspondiente.

Las variables de referencia se definen mediante:

DATA reference_name TYPE REF TO class_name.

Page 43: Modularizacion SAP

Cuando se inicia el programa, una variable de referencia todavía tiene su valor inicial (No apunta a una instancia). Una vez que ha sido utilizado para crear una instancia, ya no tiene el valor inicial y apunta a esa instancia. Usted puede usar el: CREATE OBJECT reference_name.

Sentencia para generar una instancia de la clase que fue especificado en la definición de las variables de referencia. Luego, la variable de referencia apunta a la instancia recién creada. Cuando se utiliza CREATE OBJECT, es posible que tenga que proporcionar los parámetros de importación del método especial CONSTRUCTOR con los datos. Este método especial es ejecutado automáticamente justo después de la creación de la instancia. Con sus parámetros de importación, que mantiene los atributos correspondientes de la nueva instancia. Usted llama a los métodos de una instancia mediante la sentencia: CALL METHOD reference_name->method_name.

A diferencia de llamar a un módulo de función, el nombre del método por sí solo no es suficiente aquí. Usted tiene que especificar la instancia pertinente, así, ya que es posible que el programa tenga varias instancias de esa clase.

Creating Global Classes and Static Methods En esta sección, sobre la base de un ejemplo sencillo, usted aprenderá cómo crear una clase global con un método para encapsular una función para su reutilización. Nos limitaremos a la creación de un método estático aquí.

Creating Global Classes

Figure 163: Creating Global Classes in the Object Navigator

Page 44: Modularizacion SAP

Para crear una clase global, abra el menú contextual de su paquete en el área de navegación y seleccione Crear → Librería de clases → Clases. En el cuadro de diálogo que aparece, ingrese el nombre de la clase, una breve descripción y otras propiedades. Después de haber guardado las entradas, asigne estas a una corrección en la forma habitual. Por otra parte, en el área de navegación se puede elegir la clase / interfaz de la lista desplegable, escriba el nombre de la nueva clase en el campo de abajo, y seleccione Mostrar. Confirme que desea crear esta nueva clase.

Creating a Static Method

Para crear el método estático, todo lo que necesitas hacer es introducir su nombre en la lista de métodos. Usted puede mantener la visibilidad y el tipo de método (estático o de instancia) con la ayuda de entrada correspondiente. Para crear un parámetro para un método, Poder de la forma habitual a la lista de parámetros para el método correspondiente. Cambie a cambiar el modo y escriba el nombre del parámetro en la lista. Utilice la entrada de ayudar a mantener el tipo de parámetro (importación, exportación, ...) y especificar un tipo asociado.

Figure 164: Calling the Source Code Editor

Para implementar el código fuente de un método, seleccione el método en la lista de métodos y elegir el botón de código fuente. Poner en práctica el código fuente de la forma habitual entre la sentencia

METHOD <method_name>. y ENDMETHOD.

Page 45: Modularizacion SAP

Figure 165: Showing the Signature in the Source Code Editor

Mientras que usted está editando el código fuente, puede mostrar la firma para el método. Para ello, seleccione el botón de firma (véase el gráfico).

Lesson Summary Tú ahora deberías saber:

Explicar los términos básicos de programación orientada a objetos

Adquirir información sobre la función y el uso de clases global y sus métodos

Llamar a los métodos de las clases globales en sus programas

Crear clases globales

Crear y aplicar métodos simples en las clases globales