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.
Un lugar para compartir conocimiento con todas las personas interesadas en el universo SAP
martes, 29 de julio de 2014
lunes, 28 de julio de 2014
SAP Fiori. Introducción
SAP Fiori es una nueva tecnología que aporta una colección de aplicaciones sencillas y de fácil uso basadas en la experiencia de los usuarios. El objetivo es mejorar las interfaces de usuario de los flujos más comunes de SAP, basadas en la tecnología UI5.
Una de las características más importantes de SAP Fiori es su Menú Principal (launchpad) personalizable y común para todas las aplicaciones.
Algunos de los beneficios que nos va a proporcionar SAP Fiori son:
Aplicación nativa ya desarrollada por SAP para las plataformas más demandadas iOS y Android. Dicha aplicación es gratuita y de rápida configuración.
Os dejo un video promocional de SAP Fiori donde podeis ver un poco mejor algunas de las facilidades que nos puede aportar.
Una de las características más importantes de SAP Fiori es su Menú Principal (launchpad) personalizable y común para todas las aplicaciones.
Algunos de los beneficios que nos va a proporcionar SAP Fiori son:
- Renueva y mejora los procesos de negocio con mayor utilización por los empleados.
- Proporciona una experiencia sencilla y fácil de utilizar que aumenta la productividad.
- Desde cualquier sitio y cualquier dispositivo.
- Aumenta la eficiencia mediante la adopción de los procesos existentes y la aceleración de las transacciones.
- Le permite aprovechar sus inversiones existentes de SAP, proporcionando valor instantáneo para todos sus empleados.
- SAP Fiori tiene un tiempo de despliegue corto.
Aplicación nativa ya desarrollada por SAP para las plataformas más demandadas iOS y Android. Dicha aplicación es gratuita y de rápida configuración.
Os dejo un video promocional de SAP Fiori donde podeis ver un poco mejor algunas de las facilidades que nos puede aportar.
Tambien os dejo una video con una demo de SAP Fiori:
domingo, 27 de julio de 2014
¿Y si Alemania ha ganado el mundial gracias a SAP?
Os dejo esta noticia que ha aparecido a raíz de la victoria de Alemania en el mundial de futbol de Brasil. Muy interesante. Nos comentan como la Federación Alemana de futbol ha trabajado en colaboración con SAP antes y durante el mundial aplicando técnicas de Big Data, utilizando SAP HANA.
Los resultados han permitido llevar un control de la preparación de cada jugador de forma exhaustiva. El resultado del mundial ya lo conocemos...
Cada día que pasa el Big Data es una realidad mas cercana, y vemos como en este ejemplo, las múltiples aplicaciones que se le puede dar. Este tema dará para hablar mucho en el futuro.
http://www.siliconweek.es/noticias/y-si-alemania-ha-ganado-el-mundial-gracias-sap-62362#
Los resultados han permitido llevar un control de la preparación de cada jugador de forma exhaustiva. El resultado del mundial ya lo conocemos...
http://www.siliconweek.es/noticias/y-si-alemania-ha-ganado-el-mundial-gracias-sap-62362#
jueves, 24 de julio de 2014
SAP Workforce Performance Builder
SAP WPB es una solución que permite crear, publicar y distribuir documentación y ayudas para formar y dar soporte a los usuarios de las soluciones SAP (y no SAP) mediante:
Tiene cuatro componentes principales:
PRODUCER
Registrar, editar e implementar el contenido:
- Ayuda contextual desde las aplicaciones, para los procesos específicos del cliente
- Simulaciones automáticas e interactivas
- Procesos guiados en sistema
- Documentación detallada de procesos
- Cursos eLearning rápido y libros electrónicos
- Scripts de prueba (compatibles con HP Quality Center)
- Gestión de desarrollo de contenidos multi-idioma y multiproyecto
Tiene cuatro componentes principales:
- Producer
- Instant Producer
- Manager
- Navigator
PRODUCER
Registrar, editar e implementar el contenido:
- Cuatro Tipos de Simulaciones (automática, práctica, test y concurrente)
- Documentos de Ayuda
- E-Learning Rápido
- Ayuda del Usuario Sensible al Contexto
- Scripts de prueba compatibles con HP Quality Center
- Excelente reconocimiento de Objetos
- Re-grabación automatizada
- Traducción en 38 Idiomas
INSTANT PRODUCER
Instant Producer permite que cualquier experto en una materia de la organización pueda capturar, editar y publicar conocimiento para el resto.
MANAGER
Puede crear simulaciones y documentos con la misma facilidad que ejecuta una transacción.
MANAGER
- Gestión del Ciclo de Vida del Contenido
- Gestión de Tareas y workflows en proyecto de creación de contenidos
- Gestión de Roles y Permisos
- Gestión de Usuarios
- Web Server para publicar contenidos
- Asignar contenidos obligatorios a determinados usuarios
- Gestión de Informes de Aprendizaje
- Menús lógicos e interfaz intuitiva
- SAP WPB Navigator ofrece una evolución en las soluciones de Soporte para el Usuario Final.
- Navigator propone activamente ayuda, directamente en la ventana de la aplicación cuando el usuario accede al objeto apropiado.
- No se necesita acción del usuario. La información aparece en forma automática.
- Navigator puede recomendar valores válidos, proporcionar ejemplos y posibles entradas para los campos, formularios y tablas.
- Navigator también puede ofrecer mensajes de alertas importantes.
- Navigator es una aplicación de escritorio
- Navigator es un componente opcional
- Reducir los costes de help-desk y soporte al usuario final
- Mejorar rendimiento del usuario y la adopcion de las soluciones
- Reducir los costes de formacion mediante el uso de contenidos online
- Homogeneizar y adaptar la documentacion a los procesos especificos del cliente
- Ofrecer ayuda contextual y procesos guiados desde las aplicaciones
- Facilitar la Gestion del Cambio y agilizar el ROI
- Ayuda contextual para soluciones via SAPGui, WebGui o Enterprise Portals
- Reduce el esfuerzo de actualizacion de contenidos (documento unico)
- Arquitectura muy simple y facil de mantener
- Integracion con Solution Manager y HP Quality Center
- Funciones de Regrabacion automatica (traducir documentos de un idioma a otro sustituyendo tambien las pantallas capturadas - 38 idiomas disponibles)
- Rapida implementacion (12 dias incluyendo instalacion y formacion)
jueves, 17 de julio de 2014
SAPUI5. Arquitectura
En este post vamos a comentar la arquitectura de SAPUI5, como funciona por dentro esta nueva herramienta que nos proporciona SAP.
Ahora voy a describir dos escenarios de ejemplo:
- Las aplicación SAPUI5 se ejecutan en un browser o en un componente browser
- La página de inicio de una aplicación SAPUI5 es una página HTML (por ejemplo: index.html)
- SAPUI5 usa el concepto Modelo-Vista-Controlador para las pantallas y la lógica de la aplicación
- Las aplicaciones SAPUI5 están formadas por:
- Las librerías estándar de SAPUI5
- Ficheros de configuración (Javascript, XML, CSS…)
Las aplicaciones SAPUI5 pueden ser desplegadas en una gran variedad de servers:
- SAP HANA Cloud
- SAP NW ABAP Server
- SAP NW Java Server
- Otros servidores de aplicaciones Java
- Otros servidores web
Ahora voy a describir dos escenarios de ejemplo:
- SAPUI5 en Portal accediendo a servicios ECC publicados en Gateway
Desarrollo
- Desarrollo DCs SAPUI5
- Desarrollo Servicio GW Project
Ejecución
- Inicio sesión contra SAP NW Portal
- Acceso a iView APP SAPUI5
- El navegador descarga recursos HTML+JS aplicación
- APP SAPUI5 consume oDATA/REST GW Services con SSO
- GW accede a BAPIs de negocio en sistema ABAP con SSO
- SAPUI5 en Stack ABAP accediendo a servicios ECC publicados en Gateway
Desarrollo
- Desarrollo SAPUI5 Project
- Desarrollo Servicio GW Project
Ejecución
- Acceso a URL APP SAPUI5
- Inicio sesión contra stack ABAP.
- El navegador descarga recursos HTML+JS aplicación
- APP SAPUI5 consume oDATA/REST GW Services
- GW accede a BAPIs de negocio en sistema ABAP
miércoles, 16 de julio de 2014
SAPUI5. Construcciones de aplicaciones enriquecidas basadas en HTML5
En este post os voy a hablar de SAPUI5. Una nueva tecnología que SAP pone a nuestra disposición.
SAPUI5 es un framework de trabajo para la construcción de frontend . En tiempo de ejecución toda la lógica de vista es llevada a cabo por la parte cliente (desktop, mobile, tablet) en HTML5.
Su principal objetivo es diseñar una UIs ligeras. Sus principales características son:
Beneficios
Como beneficios de esta nueva tecnología podemos destacar los siguientes:
...a un entorno agradable y usable
SAPUI5 dispone de una extensa galería de componentes configurables y extensibles. Os dejo el link para que podais acceder. Podeis encontrar muchisima información y ejcutar diferentes demos que estan disponibles. Es una buena forma de poder "tocar" esta nueva tecnología.
SAPUI5 es un framework de trabajo para la construcción de frontend . En tiempo de ejecución toda la lógica de vista es llevada a cabo por la parte cliente (desktop, mobile, tablet) en HTML5.
Su principal objetivo es diseñar una UIs ligeras. Sus principales características son:
- Uso de estándares HTML5, CSS3, JavaScript.
- Uso y/o extensión de software Opensource jQuery, QUnit, jQueryUI, jQuery Mobile, cubiq, Zynga Scroller, LESS, DataJS, D3, JSZip, Google-Caja JS HTML Sanitizer, MobiScroll, SinonJS, URI.js, Flexis.js.
- Entre cliente y servidor sólo viajan datos de negocio mediante los estándares de comunicación OData, REST, jSON, Atom, XML.
- Entorno de desarrollo sobre Netweaver Developer Studio 7.3, 7.4. Consiste en un plugin de Eclipse.
- Modelo vista controllador – MVC. Define una serie de clases JavaScript genéricas para ello.
Beneficios
Como beneficios de esta nueva tecnología podemos destacar los siguientes:
- Platform – Independent. Desktop, Mobile o Tablet. Look and Feel nativo en cada dispositivo.
- Browser – Independent. Optimizado para diferentes navegadores.
- Deployment Options. NW ABAP, NW JAVA, NW Cloud, servidor WAS Java, servidor WEB.
- Uso de estándares y opensource. HTML5, CSS, JavaScript, jSON, REST, XML, Atom, jQuery, jQueryMobile, etc.
- Curva de aprendizaje. Los recursos necesarios para su uso sólo deben conocer el desarrollo web (sin Java / ABAP).
- Ágil y usable. Parte servidora sólo para servir recursos y datos de negocio. Es muy ágil y ligera con una buena User eXperience.
- Rica en componentes. Dispone de una gran variedad de componentes gráficos y además se permite la extensión de los mismos.
- Personalizable. Existe una variedad de temas o la posibilidad de crear temas propios.
- La nueva apuesta UI de SAP. Existen diferentes productos de SAP basados en esta tecnología o bien la ofrecen como complemento.
- Sin coste adicional. El uso de la suite de productos SAP Netweaver en stacks ABAP, JAVA o Cloud permite su uso sin cargo adicional.
...a un entorno agradable y usable
SAPUI5 dispone de una extensa galería de componentes configurables y extensibles. Os dejo el link para que podais acceder. Podeis encontrar muchisima información y ejcutar diferentes demos que estan disponibles. Es una buena forma de poder "tocar" esta nueva tecnología.
En el siguiente post hablaremos sobre la arquitectura y el entorno de desarrollo.
viernes, 11 de julio de 2014
Novedades SAP. SAP Fiori, Cloud y el soporte al estándar Unicode (SAP GUGO)
El discurso inaugural de Bill McDermott, CEO de SAP, en el SAPPHIRE NOW de Orlando, que se celebró entre los días 3 y 5 de junio, dejó un mensaje claro: la apuesta de SAP por la simplicidad. Como muestra de este esfuerzo de simplificación, el directivo anunció que SAP Fiori y el software SAP Screen Personas se incluirán dentro de las licencias de software de SAP. Para los actuales clientes, SAP proporcionará un crédito de software canjeable para futuras ventas de software. Además, SAP ofrecerá un catálogo de servicios UX (Customer Experience), que incluye diseño, implementación rápida y desarrollo a medida, para mejorar la conexión o engagement con los clientes.
McDermott subrayó que SAP quiere que todos sus clientes dispongan de forma sencilla de una experiencia de primera categoría. Según sus palabras, “a juzgar por el éxito comercial de SAP Fiori, está claro que nuestros clientes están de acuerdo. Algunos clientes y nuestros Grupos de Usuarios creen que no deberíamos cobrar por SAP Fiori. Les hemos escuchado, yo estoy de acuerdo con ellos y ahora SAP Fiori está incluida en el software SAP”.
Otro de las novedades que se presentaron, se produjo en el ámbito Cloud. McDermott anunció SAP Simple Finance, un conjunto de soluciones que corren sobre SAP HANA, que llevarán la simplicidad de la nube SAP a las finanzas. Así, los departamentos financieros podrán ejecutar sus procesos de misión crítica en tiempo real en Cloud. El producto está disponible para 25 sectores en más de 60 países.
Otro anuncio nos llegaba a través de SAP GUGO (Global User Group Organization), que informó a los Grupos de Usuarios de un importante cambio relacionado con el soporte a los sistemas SAP no-Unicode, basados en tecnología SAP NetWeaver.
Unicode es un estándar de la industria orientado a la representación y manipulación consistente de texto expresado en la mayoría de los sistemas de escritura del mundo, y reemplaza a una multitud de formas complejas y propietarias de manejar diferentes conjuntos de caracteres en un sistema. Cualquier sistema informático moderno tiene que soportarlo y, como la mayoría de los proveedores de software, SAP ha habilitado sus sistemas para Unicode desde hace bastantes años. Empezando con SAP NetWeaver 7.0, Unicode se convirtió en la única opción de instalación para los nuevos sistemas.
Actualmente Unicode ha conseguido una amplia adopción entre los clientes de SAP, lo que permite a la compañía anunciar un nuevo paso : las nuevas versiones de SAP NetWeaver y los productos basados en esta solución serán sólo Unicode, por lo que los upgrades de sistemas no-Unicode a versiones superiores a SAP NetWeaver 7.40 sin previa conversión a Unicode no serán soportadas.
Según el comunicado, los actuales sistemas no-Unicode puede convertirse a Unicode con herramientas de SAP y remite a la URL service.sap.com/Unicode para acceder a los procedimientos de conversión, así como a la siguiente dirección para posibles cuestiones: globalization@sap.com.
Al cierre de esta edición, han llegado también vía SAP GUGO más detalles sobre las soluciones de implantación rápida de apps SAP Fiori, una forma sencilla para que los usuarios aprovechen la próxima generación de experiencia de usuario.
De momento, hay cuatro soluciones orientadas a la implantación rápida de apps SAP Fiori, al despliegue rápido de infraestructura SAP Fiori, y las pensadas para implementar rápido SAPUI5 Design y SAP Screen Personas.
Según esta comunicación, cada solución de despliegue rápido incluye en detalle las mejores prácticas para desplegar los servicios de experiencia de usuario de SAP y un enfoque aplicable para los clientes en escenarios cloud, on-premise o híbridos. Tanto si es una única aplicación o una plataforma completa, las empresas pueden desplegar nuevas soluciones o migrar desde las existentes utilizando esta aproximación.
SAP planea capacitar a clientes y partners a través de la plataforma openSAP, que dispone de multitud de cursos online para que se beneficien de la mejora de la experiencia de usuario.
McDermott subrayó que SAP quiere que todos sus clientes dispongan de forma sencilla de una experiencia de primera categoría. Según sus palabras, “a juzgar por el éxito comercial de SAP Fiori, está claro que nuestros clientes están de acuerdo. Algunos clientes y nuestros Grupos de Usuarios creen que no deberíamos cobrar por SAP Fiori. Les hemos escuchado, yo estoy de acuerdo con ellos y ahora SAP Fiori está incluida en el software SAP”.
Otro de las novedades que se presentaron, se produjo en el ámbito Cloud. McDermott anunció SAP Simple Finance, un conjunto de soluciones que corren sobre SAP HANA, que llevarán la simplicidad de la nube SAP a las finanzas. Así, los departamentos financieros podrán ejecutar sus procesos de misión crítica en tiempo real en Cloud. El producto está disponible para 25 sectores en más de 60 países.
Otro anuncio nos llegaba a través de SAP GUGO (Global User Group Organization), que informó a los Grupos de Usuarios de un importante cambio relacionado con el soporte a los sistemas SAP no-Unicode, basados en tecnología SAP NetWeaver.
Unicode es un estándar de la industria orientado a la representación y manipulación consistente de texto expresado en la mayoría de los sistemas de escritura del mundo, y reemplaza a una multitud de formas complejas y propietarias de manejar diferentes conjuntos de caracteres en un sistema. Cualquier sistema informático moderno tiene que soportarlo y, como la mayoría de los proveedores de software, SAP ha habilitado sus sistemas para Unicode desde hace bastantes años. Empezando con SAP NetWeaver 7.0, Unicode se convirtió en la única opción de instalación para los nuevos sistemas.
Actualmente Unicode ha conseguido una amplia adopción entre los clientes de SAP, lo que permite a la compañía anunciar un nuevo paso : las nuevas versiones de SAP NetWeaver y los productos basados en esta solución serán sólo Unicode, por lo que los upgrades de sistemas no-Unicode a versiones superiores a SAP NetWeaver 7.40 sin previa conversión a Unicode no serán soportadas.
Según el comunicado, los actuales sistemas no-Unicode puede convertirse a Unicode con herramientas de SAP y remite a la URL service.sap.com/Unicode para acceder a los procedimientos de conversión, así como a la siguiente dirección para posibles cuestiones: globalization@sap.com.
Al cierre de esta edición, han llegado también vía SAP GUGO más detalles sobre las soluciones de implantación rápida de apps SAP Fiori, una forma sencilla para que los usuarios aprovechen la próxima generación de experiencia de usuario.
De momento, hay cuatro soluciones orientadas a la implantación rápida de apps SAP Fiori, al despliegue rápido de infraestructura SAP Fiori, y las pensadas para implementar rápido SAPUI5 Design y SAP Screen Personas.
Según esta comunicación, cada solución de despliegue rápido incluye en detalle las mejores prácticas para desplegar los servicios de experiencia de usuario de SAP y un enfoque aplicable para los clientes en escenarios cloud, on-premise o híbridos. Tanto si es una única aplicación o una plataforma completa, las empresas pueden desplegar nuevas soluciones o migrar desde las existentes utilizando esta aproximación.
SAP planea capacitar a clientes y partners a través de la plataforma openSAP, que dispone de multitud de cursos online para que se beneficien de la mejora de la experiencia de usuario.
jueves, 10 de julio de 2014
Como enviar Citas para Outlook (Archivos ICS) usando ABAP
En este post os voy a explicar como podemos generar y enviar mediante email citas para que agreguen al nuestro calendario de Outlook. Es algo sencillo y a la vez muy util que nos puede dar mucho juego a la hora de hacer nuestros desarrollos.
Muchas veces nos envian email o nos apuntamos a Webinars que nos permiten agregar el evento a nuestro calendario de Outlook directamente, pues bien, nosotros podemos hacer lo mismo mediante código.
Para realizar este ejemplo vamos a utilizar la clase CL_APPOINTMENT. A continuación os dejo el código de ejemplo:
INCLUDE <cntn01>.
TYPE-POOLS: sccon.
DATA lo_appointment TYPE REF TO cl_appointment.
DATA ls_participant TYPE scspart.
DATA lv_address TYPE swc_object.
DATA ls_address_container LIKE swcont OCCURS 0 WITH HEADER LINE.
DATA lt_text TYPE so_txttab.
DATA ls_text LIKE LINE OF lt_text.
DATA lv_location LIKE scsappt-room.
DATA lo_send_request TYPE REF TO cl_bcs.
DATA lv_sent_to_all TYPE os_boolean.
CREATE OBJECT lo_appointment.
* Add multiple attendees
CLEAR ls_participant.
swc_create_object lv_address 'ADDRESS' space.
swc_set_element ls_address_container 'AddressString' 'email@email.com'.
swc_set_element ls_address_container 'TypeId' 'U'.
swc_call_method lv_address 'Create' ls_address_container.
CHECK sy-subrc = 0.
* * get key and type of object
swc_get_object_key lv_address ls_participant-objkey.
CHECK sy-subrc = 0.
swc_get_object_type lv_address ls_participant-objtype.
CHECK sy-subrc = 0.
MOVE sccon_part_sndmail_with_ans TO ls_participant-send_mail.
ls_participant-comm_mode = 'INT'.
lo_appointment->add_participant( participant = ls_participant ).
* Sample Appointment for All-Day-Event
lo_appointment->set_date( date_from = fini
date_to = ffin ).
* Make appointment appear "busy"
lo_appointment->set_busy_value( sccon_busy_busy ).
* Set Location
lo_appointment->set_location_string( 'Location' ).
* Set Organizer
lo_appointment->set_organizer( sy-uname ).
* "Type of Meeting" (value picked from table SCAPPTTYPE)
lo_appointment->set_type( 'ABSENT' ).
* Make this an all day event
lo_appointment->set_view_attributes( show_on_top = 'X').
* Set Meeting body text
ls_text = 'This is the Body Text of the Appointment'.
APPEND ls_text TO lt_text.
lo_appointment->set_text( lt_text ).
* Set Meeting Subject
lo_appointment->set_title( 'This is the Appointment Subject' ).
* Important to set this one to space. Otherwise SAP will send a not user-friendly e-mail
lo_appointment->save( send_invitation = space ).
* Now that we have the appointment, we can send a good one for outlook by switching to BCS
lo_send_request = lo_appointment->create_send_request( ).
* don't request read/delivery receipts
lo_send_request->set_status_attributes( i_requested_status = 'N'
i_status_mail = 'N' ).
* Send it to the world
lv_sent_to_all = lo_send_request->send( i_with_error_screen = 'X' ).
COMMIT WORK AND WAIT.
Como veis el código es muy sencillo. Si lo ejecutamos veremos como nos llega una cita a nuestro Outllook, o al de las personas que pongamos como destinatarios de la misa.
Como reto o duda que planteo, estoy intentando que en la misma cita puedan ir adjuntos documentos (Por ejemplo PDF). Aun no lo he conseguido, pero os animo a intentarlo y si sois capaces a compartirlo con todo el mundo.
Muchas veces nos envian email o nos apuntamos a Webinars que nos permiten agregar el evento a nuestro calendario de Outlook directamente, pues bien, nosotros podemos hacer lo mismo mediante código.
Para realizar este ejemplo vamos a utilizar la clase CL_APPOINTMENT. A continuación os dejo el código de ejemplo:
INCLUDE <cntn01>.
TYPE-POOLS: sccon.
DATA lo_appointment TYPE REF TO cl_appointment.
DATA ls_participant TYPE scspart.
DATA lv_address TYPE swc_object.
DATA ls_address_container LIKE swcont OCCURS 0 WITH HEADER LINE.
DATA lt_text TYPE so_txttab.
DATA ls_text LIKE LINE OF lt_text.
DATA lv_location LIKE scsappt-room.
DATA lo_send_request TYPE REF TO cl_bcs.
DATA lv_sent_to_all TYPE os_boolean.
CREATE OBJECT lo_appointment.
* Add multiple attendees
CLEAR ls_participant.
swc_create_object lv_address 'ADDRESS' space.
swc_set_element ls_address_container 'AddressString' 'email@email.com'.
swc_set_element ls_address_container 'TypeId' 'U'.
swc_call_method lv_address 'Create' ls_address_container.
CHECK sy-subrc = 0.
* * get key and type of object
swc_get_object_key lv_address ls_participant-objkey.
CHECK sy-subrc = 0.
swc_get_object_type lv_address ls_participant-objtype.
CHECK sy-subrc = 0.
MOVE sccon_part_sndmail_with_ans TO ls_participant-send_mail.
ls_participant-comm_mode = 'INT'.
lo_appointment->add_participant( participant = ls_participant ).
* Sample Appointment for All-Day-Event
lo_appointment->set_date( date_from = fini
date_to = ffin ).
* Make appointment appear "busy"
lo_appointment->set_busy_value( sccon_busy_busy ).
* Set Location
lo_appointment->set_location_string( 'Location' ).
* Set Organizer
lo_appointment->set_organizer( sy-uname ).
* "Type of Meeting" (value picked from table SCAPPTTYPE)
lo_appointment->set_type( 'ABSENT' ).
* Make this an all day event
lo_appointment->set_view_attributes( show_on_top = 'X').
* Set Meeting body text
ls_text = 'This is the Body Text of the Appointment'.
APPEND ls_text TO lt_text.
lo_appointment->set_text( lt_text ).
* Set Meeting Subject
lo_appointment->set_title( 'This is the Appointment Subject' ).
* Important to set this one to space. Otherwise SAP will send a not user-friendly e-mail
lo_appointment->save( send_invitation = space ).
* Now that we have the appointment, we can send a good one for outlook by switching to BCS
lo_send_request = lo_appointment->create_send_request( ).
* don't request read/delivery receipts
lo_send_request->set_status_attributes( i_requested_status = 'N'
i_status_mail = 'N' ).
* Send it to the world
lv_sent_to_all = lo_send_request->send( i_with_error_screen = 'X' ).
COMMIT WORK AND WAIT.
Como veis el código es muy sencillo. Si lo ejecutamos veremos como nos llega una cita a nuestro Outllook, o al de las personas que pongamos como destinatarios de la misa.
Como reto o duda que planteo, estoy intentando que en la misma cita puedan ir adjuntos documentos (Por ejemplo PDF). Aun no lo he conseguido, pero os animo a intentarlo y si sois capaces a compartirlo con todo el mundo.
miércoles, 9 de julio de 2014
Function Builder. Crear secuencias de Funciones
Cuando se está desarrollando en ABAP, en determinadas situaciones resulta necesario ejecutar dos o más funciones en secuencia. La idea en estos casos es que las funciones secuenciadas operen como una unidad, de manera que el output de la precendente sirva de input a la siguiente, y se garantice la ejecución conjunta de las mismas para llegar al resultado deseado.
Entre inumerables ejemplos, un caso clásico son las actualizaciones a las bases de datos. Por ejemplo, si se utiliza una BAPI para dar un alta en una base de datos NO se verá el registro agregado hasta que otra BAPI que ejecute un COMMIT. Si la aplicación requiere la disponibilidad inmediata del registro puede asegurarse la secuencia de BAPIS utilizando una secuencia de funciones que incluya primero el alta, e inmediatamente, el COMMIT.
La transacción SE37 (Function Builder) ofrece la herramienta “Test Sequence” que permite armar y “Testear” secuencias de funciones con este fin.
Ejemplo de Function Module Test Sequence
La idea es dar de alta un registro a una base de datos y hacerlo inmediatamente disponible a la aplicación.
Para ello, se requerirán dos BAPIs en secuencia:
Para realizar este ejemplo debemos seguir los siguientes pasos:
1) Acceder a la transacción SE37. Una vez allí, seleccionar de la barra de menú de SAP, la opción Function Module, luego “Test” y finalmente “Test Sequences”.
2) En la ventana de selección se ingresan las dos BAPIS a secuenciar, en este caso BAPI_FLCUST_CREATEFROMDATA y BAPI_TRANSACTION_COMMIT, obviamente en el orden deseado.
3) Al aceptar con Execute, el sistema abrirá la Initial Screen para esta función.
Debemos los parámetros para la función, que en este caso serán los campos necesarios para el alta de un cliente. Desde la Initial Screen, utilizando el ícono "Details View Edit" se abre la interfaz del "Structure Editor", donde se procederá a completar los datos.
En la pantalla de Structure Editor es conveniente presionar las teclas SHIFT + F7 para tener una mejor visión (vertical!) de los datos y que el ingreso sea más sencillo, como se muestra en la figura anterior.
Finalizada la entrada de datos con el icono de “Aceptar”, se desplegará el registro con los datos de testeo cargados, tal como vemos a continuación. Desde acá, se debe regresar a la Initial Screen de la función, utlizando el botón señalado en la misma figura.
4) Luego desde la Inicial Screen, se procede a su ejecución a través de la tecla F8 (o el ícono correspodiente)
Completada la ejecución, el sistema volverá a la Initial Screen. Sin embargo, se observará en la zona de tablas, la referencia a una nueva entrada con un mensaje. El número ("1" en este caso) informa cuántos mensajes o advertencias se han generado como resultado de la ejecución. Para acceder a la interfaz con el resultado de la ejecución, se deberá hacer click sobre esta referencia.
Allí, se puede verificar que la primera BAPI ejecutada en la secuencia haya operado correctamente, es decir, que el registro haya sido dado de alta. Aparecerá el mensaje correspondiente indicando que el cliente ha sido creado, como se muestra en la figura:
5) Para continuar el procedimiento debemos regresar hasta la Initial Screen de la segunda BAPI (BAPI_TRANSACTION_COMMIT). Presionar el botón "Atrás" dos veces para continuar con el procedimiento.
6) Se observa en la Inicial Screen para esta BAPI , que no hay parámetros para ingresar, ya que el resultado de la ejecución de la primera BAPI está sirviendo como input para esta otra. En la posición del cursor colocar una “x” y luego presionar F8 para ejecutar:
7) Al igual que en el caso anterior, el sistema nos llevará a la pantalla de resultados una vez completada.
De esta manera se ha creado una nueva entrada para el cliente ingresado recientemente en la tabla SCUSTOM utilizando la BAPI BAPI_FLCUST_CREATEFROMDATA para la creación del cliente y BAPI_TRANSACTION_COMMIT para que sea grabada en la Base de Datos.
Entre inumerables ejemplos, un caso clásico son las actualizaciones a las bases de datos. Por ejemplo, si se utiliza una BAPI para dar un alta en una base de datos NO se verá el registro agregado hasta que otra BAPI que ejecute un COMMIT. Si la aplicación requiere la disponibilidad inmediata del registro puede asegurarse la secuencia de BAPIS utilizando una secuencia de funciones que incluya primero el alta, e inmediatamente, el COMMIT.
La transacción SE37 (Function Builder) ofrece la herramienta “Test Sequence” que permite armar y “Testear” secuencias de funciones con este fin.
Ejemplo de Function Module Test Sequence
La idea es dar de alta un registro a una base de datos y hacerlo inmediatamente disponible a la aplicación.
Para ello, se requerirán dos BAPIs en secuencia:
- BAPI_FLCUST_CREATEFROMDATA (que dará de alta un cliente)
- BAPI_TRANSACTION_COMMIT.
Para realizar este ejemplo debemos seguir los siguientes pasos:
1) Acceder a la transacción SE37. Una vez allí, seleccionar de la barra de menú de SAP, la opción Function Module, luego “Test” y finalmente “Test Sequences”.
2) En la ventana de selección se ingresan las dos BAPIS a secuenciar, en este caso BAPI_FLCUST_CREATEFROMDATA y BAPI_TRANSACTION_COMMIT, obviamente en el orden deseado.
3) Al aceptar con Execute, el sistema abrirá la Initial Screen para esta función.
Debemos los parámetros para la función, que en este caso serán los campos necesarios para el alta de un cliente. Desde la Initial Screen, utilizando el ícono "Details View Edit" se abre la interfaz del "Structure Editor", donde se procederá a completar los datos.
En la pantalla de Structure Editor es conveniente presionar las teclas SHIFT + F7 para tener una mejor visión (vertical!) de los datos y que el ingreso sea más sencillo, como se muestra en la figura anterior.
Finalizada la entrada de datos con el icono de “Aceptar”, se desplegará el registro con los datos de testeo cargados, tal como vemos a continuación. Desde acá, se debe regresar a la Initial Screen de la función, utlizando el botón señalado en la misma figura.
4) Luego desde la Inicial Screen, se procede a su ejecución a través de la tecla F8 (o el ícono correspodiente)
Completada la ejecución, el sistema volverá a la Initial Screen. Sin embargo, se observará en la zona de tablas, la referencia a una nueva entrada con un mensaje. El número ("1" en este caso) informa cuántos mensajes o advertencias se han generado como resultado de la ejecución. Para acceder a la interfaz con el resultado de la ejecución, se deberá hacer click sobre esta referencia.
Allí, se puede verificar que la primera BAPI ejecutada en la secuencia haya operado correctamente, es decir, que el registro haya sido dado de alta. Aparecerá el mensaje correspondiente indicando que el cliente ha sido creado, como se muestra en la figura:
5) Para continuar el procedimiento debemos regresar hasta la Initial Screen de la segunda BAPI (BAPI_TRANSACTION_COMMIT). Presionar el botón "Atrás" dos veces para continuar con el procedimiento.
6) Se observa en la Inicial Screen para esta BAPI , que no hay parámetros para ingresar, ya que el resultado de la ejecución de la primera BAPI está sirviendo como input para esta otra. En la posición del cursor colocar una “x” y luego presionar F8 para ejecutar:
7) Al igual que en el caso anterior, el sistema nos llevará a la pantalla de resultados una vez completada.
De esta manera se ha creado una nueva entrada para el cliente ingresado recientemente en la tabla SCUSTOM utilizando la BAPI BAPI_FLCUST_CREATEFROMDATA para la creación del cliente y BAPI_TRANSACTION_COMMIT para que sea grabada en la Base de Datos.
martes, 8 de julio de 2014
Shortcuts. Trucos del teclado en SAP
En este post os voy a hablar de los Shortcuts o atajos de teclado, que son aquellas combinaciones de teclas que desatan alguna acción en SAP y hacen que no haga falta que recurramos al ratón. Evidentemente son una herramienta muy util que nos va a facilitar y agilizar el trabajo muchisimo. Si somos capaces de dominarlas, nos daremos cuenta de los rápido que podemos llegar a trabajar. Os dejo una selección de los mas importantes.
Algunos "atajos" usados en la Barra de Funciones del sistema (de pantallas SAP en general)
La tabla siguiente muestra una lista de los botones (íconos) comunes que se pueden encontrar en la barra de herramientas standard (la barra de Funciones del sistema) de las distintas pantallas de uso general en SAP y el "shortcut" (atajo) correspondiente con su acción asociada:
"Atajos" útiles usados en la edición de programas ABAP
La siguiente es una lista de algunas combinaciones de teclas ("shortcuts") más usadas en la edición de programas ABAP y la tarea que cada una de ellas permite realizar:
Algunos "atajos" usados en la Barra de Funciones del sistema (de pantallas SAP en general)
La tabla siguiente muestra una lista de los botones (íconos) comunes que se pueden encontrar en la barra de herramientas standard (la barra de Funciones del sistema) de las distintas pantallas de uso general en SAP y el "shortcut" (atajo) correspondiente con su acción asociada:
"Atajos" útiles usados en la edición de programas ABAP
La siguiente es una lista de algunas combinaciones de teclas ("shortcuts") más usadas en la edición de programas ABAP y la tarea que cada una de ellas permite realizar:
sábado, 5 de julio de 2014
Informe GARTNER sobre Business Intelligence
En este post os voy a dejar el enlace a una articulo muy interesante sobre plataformas de Business Intelligence. Se trata del estudio de la consultora GARTNER sobde plataformas BI. Publicado recuentemente, en el se hace una revision por las principales herramienta de BI en el mercado, con sus fortalezas y debilidades.
Gartner Inc. es una empresa consultora y de investigación de las tecnologías de la información con sede en Stamford, Connecticut, Estados Unidos.
Gartner divide los fabricantes en cuatro cuadrantes: software nicho, visionarios, aspirantes y lideres. Es lo que se conoce como cuadro mágico de Gartner.
Cada división esta estratégicamente colocada en función de la visión global que puede tener la compañía y la habilidad de ejecución.
Gartner Inc. es una empresa consultora y de investigación de las tecnologías de la información con sede en Stamford, Connecticut, Estados Unidos.
Gartner divide los fabricantes en cuatro cuadrantes: software nicho, visionarios, aspirantes y lideres. Es lo que se conoce como cuadro mágico de Gartner.
Cada división esta estratégicamente colocada en función de la visión global que puede tener la compañía y la habilidad de ejecución.
- Niche players: fabricantes que abordan bien segmentos específicos, pero pierden funcionalidad en otros aspectos.
- Visionaires: Se caracterizan por ser innovadores aunque aún no tengan el nivel adecuado para su implantación.
- Challengers: Ofrecen buenas funcionalidades que pueden limitarse a usos específicos, pero fallan en estrategia coordinada entre todos sus productos, tienen carencia en canales de venta o tienen poca presencia geográfica.
- Leaders: Son proveedores que pueden ofrecer una plataforma a todos los niveles con una propuesta comercial de alcance global.
Como se ve en el artículo hay muchas herramientas BI en el mercado, en mi opinión debemos conocerlas y saber que están ahí. No solo de SAP vive el hombre!!!
Os recomiendo que presteis atención a QlikView, una herramienta que ha crecido exponencialmente en los ultimos años y que se ha hecho un hueco importante en el mercado, su facilidad de implantación y uso hacen de ella una herramienta muy a tener en cuenta.
Hablaremos en próximos post de las herramientas que nos proporciona SAP, sobre todo de BO (Business Objects).
Suscribirse a:
Entradas (Atom)
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...
-
En este post un ejemplo de creación de un ALV con objetos en SAP. Para crear un ALV OO tenemos que crearnos una nueva DYNPRO y dentro de ...
-
En este post vamos a hablar de una utilidad vital dentro de SAP y de cualquier sistema informatico que se precio, LOS MENSAJES. En SAP los...