Esta es la segunda entrega del mini-curso de programación orientada a objetos en ABAP, ahora aplicaremos la teoría que aprendimos en el articulo anterior creando una clase en ABAP. Primero veamos una descripción la clase que vamos a crear.
Para simplificar el ejemplo no utilizaremos consultas de bases de datos. Crearemos una clase Articulo, la cual posee algunas propiedades y métodos que permite realizar compras, ventas y consultar las existencias, precio, código y costo:
Propiedades
- Código
- Costo
- Precio
- Cantidad
Métodos
- Un método para leer el valor de cada propiedad
- Un método para definir el valor de cada propiedad (Excepto la propiedad cantidad que será de solo lectura)
- Un método comprar, con el parámetro cantidad, el cual incrementa la propiedad Cantidad según el parámetro recibido.
- Un método vender, con el parámetro cantidad, el cual resta la propiedad Cantidad según el parámetro recibido y envía un mensaje de confirmación.
Creando la clase Articulo.
Para crear o modificar clases, ingresamos en la transacción SE24, ingresamos el nombre de la clase (Z_ARTICULO, en este caso) y presionamos el botón Crear, en la siguiente pantalla elegimos Clase y presionamos la tecla Enter. En la siguiente pantalla dejamos los parámetros como se muestra en esta imagen:
Luego de dar clic en el botón grabar elige un paquete ($TMP) y después ingresa las propiedades como se muestra a continuación:
Ahora definimos los métodos:
El método Comprar requiere un parámetro de cantidad, para definir los parámetros marcamos el método y presionamos el botón Parámetros, y luego definimos cada uno. Es importante definir correctamente la clase de cada parámetro usando Importing cuando deseamos recibir un parámetro y Exporting cuando deseamos retornar un valor.
Luego regresamos a la definición de métodos presionando el botón Métodos (o F3 para regresar). Para ingresar código a cada método damos doble clic sobre el método deseado e ingresamos el código:
Ahora definamos los métodos que restan, recordando definir los parámetros de la clase apropiada (importing / exporting).
Utilizar la clase en nuestros programas.
Para utilizar nuestra clase Articulo, podemos crear un programa en la transacción SE38, usando el código siguiente:
REPORT Z_ATICULO. "Declarar y crear un objeto de la clase articulo data: articulo type ref to z_articulo. create object articulo. "Variables data: existencia type int4. "Compramos 10 unidades articulo->comprar( exporting cantidad_a_comprar = 10 ). "Consultamos y mostramos la existencia articulo->get_cantidad( importing cantidad_existencia = existencia ). write: / 'Existencia', existencia. "Vendemos 2 unidades articulo->vender( exporting cantidad_a_vender = 2 ). "Consultamos y mostramos la existencia nuevamente articulo->get_cantidad( importing cantidad_existencia = existencia ). write: / 'Existencia', existencia.
La salida de programa será la siguiente:
Disculpa cree la clase como supuestamente viene pero cuando instancio la clase me salen error de que tal no es exportin…y que si es importing ..tu me podrias decir cuales es que debo colocar a cada uno de los metodos
TENGO 10 AÑOS ESPERANDO QUE TE RESPONDAN, TENGO LA MISMA DUDA