Mostrando entradas con la etiqueta ABAP OO. Mostrar todas las entradas
Mostrando entradas con la etiqueta ABAP OO. Mostrar todas las entradas

sábado, 19 de diciembre de 2015

SAP Class Builder. Definición de clases con ABAP Orientado a Objetos (OO)

Como ya sabéis ABAP permite programar siguiendo el paradigma de la orientación a objetos. Vamos a poder definir clases que nos permitan construir aplicaciones mas robustas y complejas. Quien a trabajado con SAP sabe que muchas transacciones siguen el paradigma de programación estructurada, pero bien es cierto que ABAP nos da la posibilidad de desarrollar nuestras aplicaciones a medida utilizando la orientación a objetos.

SAP nos proporciona la transacción SE24 (Generador de clases) para poder definir y tratar nuestras propias clases (O las estándar que por supuesto también las hay). Si ejecutamos y visualizamos una clase cualquiera veremos algo similar a lo que se muestra en la siguiente imagen.


Lo que vemos es un pantalla donde tenemos diferentes pestañas que contienen toda funcionalidad de la clase (Métodos, Atributos, Eventos, etc.). En el ejemplo que estamos viendo vemos que contamos con tres métodos. Para navegas al código fuente de alguno de ellos solo tenemos que hacer doble clic sobre el. EL resultado lo vemos en la siguiente imagen.


Aquí podremos escribir nuestro propio código que después utilizaremos en nuestros programas. Si en algun momento quisieramos utilizar esta clase en uno de nuestros progrmas tendriamos que hacierlo de la siguiente forma:

  1. Primero definimos un objeto que haga referencia a nuestra clase.

    DATA: p_objeto TYPE REF TO ZCL_TEST.
  2. Llamamos a uno de los métodos que tenemos definidos en la clase para que ejecute su lógica.

    p_objeto->METHOD2.
Es un ejemplo básico y muy sencillo, la cosa se puede ir complicando mas. Seguiremos hablando de este tema en próximos post.



martes, 29 de julio de 2014

ABAP OBJECTS. Introducción

La programación orientada a objetos (POO) es una filosofía de diseño y desarrollo de software donde el modelo informático es un reflejo de las entidades del mundo real. A diferencia de los lenguajes tradicionales, donde existen procedimientos por un lado y datos por el otro, la POO permite a los programadores representar cada entidad del problema como un objeto “encapsulado” que contiene tanto sus datos y cómo los “comportamientos” gestionan sobre ellos.

Valiéndose de un lenguaje y entorno que respete los principios de la teoría de objetos, los objetos se crean a partir de una definición ”abstracta” de los mismos, denominada “clase”, que describe sus características y comportamientos. Los objetos concretos luego serán  “ejemplares” o “instancias” de esa "plantilla" abstracta que es la clase. Por ejemplo, clases y objetos típicos del entorno de negocios son "Clientes", "Materiales", "Ordenes de compra", etc.

La teoría de objetos se estructura alrededor en un conjunto de propiedades y paradigmas conceptuales (que exceden el alcance de este artículo), implementados luego en los distintos entornos de programación. Existen, numerosas y probadas ventajas asociadas a la programación orientada objetos que incluyen el encapsulamiento de la complejidad, la reusabilidad del código, la modularidad, entre otros.

La programación orientada a objetos representó una verdadera revolución en el universo del desarrollo de software, impulsando a programadores, analistas y arquitectos de sistemas a re-aprender su forma de concebir código y aplicaciones. En una primera instancia, lenguajes como C++, y luego JAVA, se convirtieron en los entornos de programación OO más emblemáticos.

En el mundo SAP, el instrumento que disponemos en ABAP para trabajar de acuerdo a este paradigma son los "ABAP Objects".

La introducción de ABAP Objects en el Release 4.6 representó un avance fundamental para incorporar técnicas de programación contemporáneas en un lenguaje tradicionalmente procedural. Sin embargo, la plena materialización del paradigma de objetos en el mundo SAP, llegó recién a partir de la versión 6.10, con el advenimiento del Web Application Server como sucesor de SAP Basis.

El concepto de ABAP Objects representa dos cosas distintas en el mundo SAP. Por un lado, designa a la concepción de toda la plataforma de ejecución como un nuevo paradigma de trabajo. Por otro lado, designa a la nueva extensión del lenguaje ABAP.

El propósito de este “tip”, el primero de la serie de Tutoriales de ABAP Objects, es entender  conceptualmente cómo se refleja el paradigma de objetos en el mundo SAP. No es el propósito de este tutorial definir en detalle la teoría de objectos en su vasta dimensión, sino discutir su implementación en el universo de ABAP Objects.

Los paradigmas de Orientación a Objetos en ABAP Objects

Como se dijo anteriormente, el lenguaje ABAP y el entorno de programación SAP, logra a partir de una nueva versión con extensión orientada a objetos, el diseño de nuevas aplicaciones, basadas en la teoría de objetos.

Comparado con otros, ABAP no es un lenguaje “puro” orientado a objetos. El runtime de ABAP soporta tanto el modelo de programación procedural como el de ABAP Objects en cualquier programa ejecutable, módulos o funciones.

Esto permite la utilización de nuevas técnicas basadas en ABAPsin necesidad de re-escribir todo el código.

Propiedades de un paradigma orientado a objetos

Son precisamente las propiedades del paradigma de objetos lo que le otorga su singularidad y todas las ventajas de modularidad cuando se plasman en la programación.

Encapsulamiento: Es el término que define formalmente la fusión dentro del mismo objeto de sus datos y métodos (comportamiento). Los objetos son tratados como “caja negra”, de manera que sólo sus métodos pueden actuar sobre sus datos, brindando independencia en la implementación de los mismos..

Abstracción: Permite a un objeto comunicarse y desconocer el forma en que se lleva a cabo el mensaje.

Polimorfismo: Capacidad que tienen objetos de distintas clases de responder a un mismo método y obtener diferentes reacciones.

Herencia: Se produce cuando una clase (la subclase) comparte la estructura (atributos) y el comportamiento (métodos) definidos en una o más clases (superclases). (Nota: En ABAP sólo está permitida la herencia simple.)

Obviamente, estas propiedades se ven reflejadas en la implementación de POO que hace ABAP Objects.

Es interesante contrastar las capacidades de ABAP Objects con las de otros lenguajes OO populares, en términos de cómo se ciñe al modelo POO. En la siguiente imagen veremos una comparativa con otros lenguajes.


En el siguiente post detallaremos la sintaxis utilizada por ABAP para trabajar con orientación a objetos.

Integración SAP

Cuando hablamos de SAP como sistema integrado que cubre toda la casuística de nuestro negocio estamos siendo bastante osados. Casi cualquier...