ABAP Objects - Presentacion

34
yright © 2009 Accenture All Rights Reserved. ABAP Objects

Transcript of ABAP Objects - Presentacion

Page 1: ABAP Objects - Presentacion

Copyright © 2009 Accenture All Rights Reserved.

ABAP Objects

Page 2: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

• El alcance de la presente charla se basa en entender los conceptos básicos de la programación orientada a Objetos. Y ver aspectos de la implementación que se hace en ABAP de esta metodología.

• Se incorporarán algunos ejemplos de la sintaxis y aplicaciones de utilización de ABAP Objets, sin embargo no se realizará un explicación detallada de la misma.

Alcance Charla

Page 3: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

• Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones. En este centro, se trabajaba en simulaciones de naves. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos

• Luego fueron refinados más tarde en Smalltalk, sin embargo la programación orientada a objetos tomo posición debido a la influencia de C++ a mediados de los ochenta.

Nacimiento de Programación OO

Page 4: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Concepto de Objetos

Page 5: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Concepto de Objetos

Características del modelo de programación orientado a Objetos:

Objetos son abstracciones directas del mundo real.Objetos son unidad unidades compuestas por datos y funciones.

Encapsulamiento

Page 6: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Ventajas

Advantages of the Object-Oriented Programming Model over the Procedural Programming Model.

Improved software structure and consistency in the development process.

Reduced maintenance effort and less susceptibility to errors.

Better integration of the customer/user into the analysis, design, and maintenance process.

The options for extending the software are simpler and more secure.

Page 7: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Componentes de Objetos

A continuación se detallan los componentes que interactúan en la teoría de objetos:

Clase: Se entiende por clase a un tipo de datos que especifica un conjunto de objetos que tendrán la misma estructura y el mismo comportamiento. En la clase se definen todos los componentes: atributos, métodos, eventos, etc.Ej: Clase empleado, clase auto, etc.

Objeto: Es la instancia de una clase.Ej: Carlos López, Gol Trend, etc.

Page 8: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Componentes de Objetos

Las clases tienen las siguientes características:

Atributos: Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate, y cuyo valor puede ser alterado por la ejecución de algún método.

Métodos: Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar.

Page 9: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Componentes de Objetos

Ventajas de este nuevo Paradigma

Encapsulamiento: Cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente en una cápsula.

Ocultación Información: Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo está distribuida la información. Esta propiedad de los objetos se denomina ocultación de la información.

Comunicación: Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede es que las peticiones de información a un objeto. deben realizarse a través de mensajes dirigidos a él, con la orden de realizar la operación pertinente.

Page 10: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Checkpoint

¿ Que ventajas consideran que brinda el encapsulamiento?

Facilita la reutilización de clases entre distintas organizaciones. Ya que al ser el objeto una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él. Si el objeto ha sido bien construido, sus métodos seguirán funcionando en el nuevo entorno sin problemas.

Page 11: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

UML (Unified Modeling Language)

UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group) http://www.omg.org

Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema.

Page 12: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

UML (Unified Modeling Language)

Modelos más utilizados

Diagrama de ClasessMuestra las clases y la relaciones que existe entre ellas, lo cual es una visión estatica del modelo.

Diagrama de comportamientoEn particular el diagrama de secuencia en cuales se muestra la interacción entre 2 o más objetos.

Page 13: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

UML (Unified Modeling Language)

Diagrama de Clase

Page 14: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

UML (Unified Modeling Language)

Diagrama de Clases

Page 15: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

UML (Unified Modeling Language)

Diagrama de secuencia

Page 16: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

• Herencia: Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento.

• Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.

Herencia y Polimorfismo

Page 17: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Herencia y Polimorfismo

Nota: Esto se lo conoce con el nombre de Generalization / Specialization.

Page 18: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Creación de Clases en SAP

Ejemplo de Código de creación de clases local en ABAP.

Page 19: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Atributos Globales y Locales

Al diseñar las clases en ABAP (y en cualquier otro lenguaje) es necesario analizar que atributos y métodos serán de carácter publico y cuales de carácter privado.

Tip

Habitualmente los atributos son de tipo privados y solamente son modificados por métodos que acceden a los mismos.

Page 20: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Análisis de Métodos

Los métodos habitualmente reciben parámetros:

TipOne method return value can be defined using the RETURN parameter. It must always be transferred as a value. In this case, you cannot then define the

EXPORTING and CHANGING parameters.

Page 21: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Análisis de Métodos

Ejemplo de llamada a Método

Page 22: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Creación de Objetos

A continuación se muestra como se crea un objeto y la invocación a un atributo a nivel de clase.

Page 23: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Atributos de Tipo Tabla

También es posible generar varios que contenga una tabla con otros objetos.

Page 24: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Clases Globales

Hasta aquí, hemos trabajado con clases las cuales viven solamente dentro de la ejecución de un programa.

Sin embargo en muchas ocasiones necesitaríamos que las clases creadas extiendan su existencia y estén disponibles para todos los programas.

Estoy es posible gracias al Class Builder (SE24)

Page 25: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Otras Aplicaciones de Abap Objets

También tendremos la posibilidad de interactuar con objetos con:

• ALV con Objetos

• Implementación de Badis

• Business Objet Builder (SWO1)

• Utilización de objetos CL_ABAP_CHAR_UTILITIES.

Page 26: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

ALV con Objetos

El ALV Grid Control es una herramienta que se puede utilizar para visualizar reportes y un formulario estandarizado. La información listada es presentada en formato de tabla. Es una herramienta con la cual es sencilla trabajar y solo requiere poco pasos de programación .

Page 27: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

ALV con Objetos

Para visualizar un reporte normal, bastaría con realizar los siguiente pasos:

1. Use the fullscreen editor of the Screen Painter to define a custom control area onyour screen.

2. Create an instance of the class CL_GUI_CUSTOM_CONTAINER and transfer the name of the custom control area to the constructor.

3. Create an instance of the class CL_GUI_GUI_ALV_GRID and transfer the reference to the custom control instance to the constructor.

4. Call the method SET_TABLE_FOR_FIRST_DISPLAY of the grid control instance and transfer the internal standard table to it.

If this table has a global row type, you can transfer the name of this global structure to the same method. Then the Grid Control instance automatically creates the field catalog.

Page 28: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

¿Vemos un ejemplo de un ALV con Objetos en SAP?

Ejemplo ALV

Page 29: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Business Add In• Son la versión de las User Exits orientadas al paradigma de

programación en objetos.

• Se activan y se definen a través de las transacciones SE18 y SE19.

• Un BAdI Definition no es otra cosa que la asociación de una interface la cual posteriormente será instanciada en un lugar especifico dentro del código estándar de SAP.

Interface: IF_EX_DMEE_BADI_01

BAdI Definition: DMEE_BADI_01

BAdI Implementation: Z_DMEE_XML_APBULK

Class Implementation: ZCL_IM__DMEE_XML_APBULK

Page 30: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Clases Útiles

CL_ABAP_CHAR_UTILITIES | Utilities for Processing Characters

CL_ABAP_FILE_UTILITIES | Utilities for Files

CL_ABAP_MATCHER | Regular Expressions

CL_ABAP_CONV_IN_CE | Code Page and Endian Conversion

External -> System Format

CL_ABAP_CONV_OUT_CE | Code Page and Endian Conversion

System Format -> External

Page 31: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Enterprise Services

Las nuevas tecnologías de SAP están apuntando a la utilización de Clases como medio de encapsulación de funcionalidades. Tal es el caso de los Enterprise Services.

Las mismas se pueden acceder desde la SE80 agregando en el menu la opción “Enterprise Service Browser”

Namespace: http://sap.com/xi/APPL/Global2

Service Consumer: AutomaticIdentificationLabelByElementsQueryResponse_Out

Proxy name: CO_PKAB_AUTOMATICIDLABELBEQR

Page 32: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Business Objects

Desde el punto de funcionalidades de negocios, SAP agrupa la correcta forma de interactuar con sus objetos de negocio en “business objects”.

Los mismos se acceden desde la transacción SW01. Aquí se puede ver la persistencia de objetos en tablas de base de datos.

Business Object: BUS0002

Method: Display

Page 33: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved.

Links de Referencia

UML® Resource Page: http://www.uml.org/

Curso BC401 ABAP Objects: http://www.saptechnical.com/Tutorials/ALV/Interactive/oops.htm

Nuestros Contactos:[email protected] [email protected]

Page 34: ABAP Objects - Presentacion

Copyright © 2010 Accenture All Rights Reserved. 34

Questions or Comments?