En este post, vamos a explicar de manera muy rapida como podemos utilizar la estructura TRY-CATCH para la gestión de errores (Al estilo de como se hace en JAVA).
Este es un ejemplo muy sencillo donde vamos a insertar un registro en una tabla Z usando try-catch para evitar errores de SQL:
*Intento insertar un registro en la tabla ZEJEMPLO, si hay algún tipo de error de SQL (que generalmente arroja un dump)… manejo la excepción con un mensaje de advertencia.
TRY.
INSERT INTO ZEJEMPLO VALUES WA_ZEJEM.
CATCH CX_SY_DYNAMIC_OSQL_ERROR.
MESSAGE ‘Error al actualizar la tabla ZEJEMPLO’ TYPE ‘I’.
ENDTRY.
Un lugar para compartir conocimiento con todas las personas interesadas en el universo SAP
domingo, 11 de mayo de 2014
WEB DYNPRO. Introducción
En este post vamos a hacer una pequeña introducción a otra de las herramientas de desarrollo que nos proporciona SAP, las WEB DYNPRO.
¿Qué es Web Dynpro?
Web Dynpro ABAP es la tecnología estándar de SAP para el desarrollo de
aplicaciones Web en el entorno ABAP disponible desde SAP AS ABAP 7.0.
La tecnología Web Dynpro ABAP se compone de un entorno de tiempo de
ejecución y otro entorno gráfico de desarrollo con herramientas Web Dynpro
específicas.
Esta tecnología posee una serie de ventajas respecto a las anteriores de
desarrollo Web:
Herramientas de desarrollo específicas y declarativas que reducen el
esfuerzo de desarrollo.
Ofrece un proceso de desarrollo estructurado
Separación entre interfaz de usuario y lógica de negocio (modelo MVC)
Permite reutilización de componentes (facilita mantenimiento)
Integración completa en el entorno de desarrollo ABAP
Navegación e implementación del GUI más fácil con el entorno de desarrollo
Arquitectura MVC
Este estilo de arquitectura de software que separa los datos de una
aplicación, la interfaz de usuario, y la lógica de control en tres componentes
distintos:
- El modelo constituye la interfaz con el
sistema de servicios de fondo y por lo tanto permite el acceso a la Web
Dynpro aplicación a los datos (BBDD).
- La vista es responsable de la representación
de los datos en el navegador (View).
- El controlador se encuentra entre la vista y el modelo. Los formatos de controlador de los datos del modelo que se muestra en la vista, los procesos de las entradas de usuario realizadas por el usuario, y los devuelve al modelo (Clase de asistencia).
* La comunicación entre la vista y el modelo nunca debe ser directa,
siempre a través del controlador.
Estructura de un componente Web Dynpro.
Los componentes Web Dynpro son, en realidad, contenedores de otras
entidades relacionadas con la UI y el programa Web Dynpro. Los principales
componentes son:
- Ventana (Window): Se
trata del un elemento que contiene a su vez una o mas vistas. Además en
estas se puede implementar código ABAP (métodos) o definir atributos
(variables) pertenecientes a esta window.
- Vista (View): Se trata
del elemento que se visualiza por pantalla, que a su vez contendrá otros
elementos gráficos, como son botones, textos, etc. En este componente
también se puede implementar código ABAP (Métodos) o definir atributos
(variables) pertenecientes a esta vista.
- Componente del
controlador (Component Controller): Este elemento es el controlador de la
web dynpro.
Creación de una Web Dynpro
Para la creación de una Web Dynpro accedemos a la transacción SE80:
Y pulsamos INTRO, con lo que nos mostrará la siguiente ventana, donde
además del nombre que deseemos y una descripción, nos permite seleccionar:
- Componente Web Dynpro:
Se trata de la opción para crear un componente Web Dynpro
- Interface componente Web Dynpro: Se trata de un componente de tipo interfaz, que otras Web Dynpro podrán implementar, y adoptaran su comportamiento. Sobre este tema trataremos en otro momento.
Además por defecto, toda web dynpro debe de tener una ventana por defecto
(luego se pueden crear más) y una vista, que por defecto se asigna como
componente de la ventana indicada.
Para poder ejecutar la WD, haría falta crear una Aplicación, pulsando con
el botón derecho sobre el nombre del Componente.
El aspecto que tiene una Web Dynpro es el siguiente:
En la imagen anterior se pueden ver los elementos de los que se compone una
Web Dynpro.
El controlador del componente
Se trata del controlador del componente Web Dynpro. Todo el código,
elementos del contexto, y atributos que definamos en el podrán ser visualizados/accedidos desde
cualquier Vista/Window de la WD.
El COMPONENT CONTROLLER será la primera instancia que se ejecutará en la
creación del componente Web Dynpro.
En el apartado métodos, podremos definir si queremos, alguno de estos como
Interfaz, que nos permitirá que otros componentes externos, puedan ejecutarlos,
pudiendo así, por ejemplo utilizarlos para que nos informen de los valores de
atributos (informándonos a través de los parámetros del método)
Ventanas
Tienen la misión principal de contener las vistas organizadas de modo que
nosotros solicitaremos que se nos visualice una WINDOW, que contendrá las
vistas deseadas organizadas. De este modo las vistas pueden reutilizarse en
varias WINDOWS.
Las ventanas, además de contener las vistas, cuentan con una sección de
métodos, a la que además de contener los propios del controlador, podremos
añadir los nuestros.
Todas las ventanas cuentan con un PLUG de entrada por defecto, que será el
que se ejecute cuando se accede a una ventana.
Las aplicaciones WD, cuentan siempre con una Window por defecto que será la
que se ejecute en primer lugar, entrando por el PLUG definido.

Vistas
Las
vistas son los componentes de la Web Dynpro que utilizaremos para organizar
gráficamente nuestras pantallas.
Las
pestañas, para configurar nuestras vistas son:
Propiedades:
Aquí podemos definir algunas características, con la descripción, o los
componentes, que ya han sido añadidos al componente controller, y que vamos a
utilizar en esta vista.
Layout:
Nos sirve para configurar el aspecto gráfico que tendrá nuestra vista.
Inbound
y Outbound PLUG: Para definir puntos de entrada y salida a la vista (se
definirá más adelante)
Contexto:
Nos permite añadir atributos, estructura o tablas a la vista, para ser
utilizados de forma directa.
Atributos:
Muy útil para definir variables globales a la vista.
Acciones:
Aquí aparecerán todas las acciones que se definan en esta vista. Más adelante
se comentará más sobre esto.
Métodos:
encontramos algunos ya definidos por el controlador de la vista, y podremos
añadir otros propios
Las
vistas, a través de un componentes grafico del layout (ViewContainer UI
Element) que se puede añadir a la vista, podemos hacer, que unas vistas
contengan a otras, consiguiendo así, que construyendo vistas más pequeñas y
reutilizables seamos capaces de hacer un código mas modular y limpio.
Workflow - Introducción II
En este post vamos a continuar con la introducción a los workflows. En este caso vamos a hablar sobre su arquitectura y posteriormente pondremos algunos ejemplos que nos ayudaran a entender lo visto anteriormente.
Ejemplos•
Algunos de los Worflows estándares de SAP para ver
Arquitectura
del Workflow
•
Arquitectura General del Sistema de Workflows
–
Definition tools
•
Componentes para implementer una definición de workflow (Workflow Builder, Business Object
Repository - BOR)
•
En el tiempo de ejecución, la definición del workflow forma las bases
de las ejecuciones de workflows basadas en ello. (workflow instances).
–
Runtime system
•
Componentes de ejecución
•
Controla y coordina el proceso del workflow (workflow manager)
•
Para gestionar la ejecución de los work items individuales (individual
work steps) incluyendo asignaciones a agentes y monitorizando fechas limite
(work item manager)
•
Para evaluar los eventos recibidos vínculos de tablas y para gestionar
los eventos recibidos registrados como un evento (event manager)
•
Para la gestión de los datos requeridos de la ejecución de las tareas
definidas en la definición del workflow.
• Componentes del sistema workflow
–
Business Workplace – Interacción con usuarios en el tiempo de ejecución y provision de
las funciones de aplicación.
–
El workflow manager arranca el tiempo de ejecución del workflow
“en primer lugar” y representa funciones de control para procesos automáticos a
lo largo de los módulos de aplicación de
R/3:
•
Control
•
Monitoring
•
Coordinación
•
Sincronización
–
El workitem manager interactúa con la aplicación llamada en el
método de la tarea.
• Tareas/Workflows
–
Las tareas son los bloques de construcción para los workflows.
–
La clave para tareas y workflows se compone de la siguiente manera:
•
XX (código de dos caracteres que representa el tipo de tarea
•
yyyyyyyy (número de ocho cifras secuencial)
–
Tareas (código TS) y workflows (codigo WS) son independientes de
mandante.
–
Desde la Release 4.5 en adelante, la opción del menú “Crear tarea”
solo ofrece la creación de tareas y workflows estandar (TS y WS).
–
Los códigos para tareas en el sistema son T (tareas de cliente) y WF
(tareas de workflow), pero estas son dependientes de mandante.
–
Existiendo WF y T en un sistema todavía pueden ser ejecutadas. Pero no
deberías, sin embargo, crear nuevos WF y T, por que WF y T no se van a
desarrollar más.
–
Una plantilla de workflow (WS) no puede contener tareas de cliente
(T).
–
Para encontrar el mantenimiento de tareas en el sistema, escoge:
•
SAP EASY ACCESS -> Herramientas -> Business Workflow ->
Desarrollo -> Herramientas de Definición -> Tareas/Grupos de Tareas
• Definición de una tarea (General)
–
Las Tareas identifican una acción que necesita ser ejecutada. Ellas
siempre se refieren a un método de un tipo de objeto.
–
La acción puede ser un paso que el sistema ejecuta independientemente
en fondo. En este caso, ningún representante/agente es asignado.
–
La acción puede ser una tarea de dialogo. En este caso, la tarea tiene
agentes responsables. Encontrará la asignación de los representantes/agentes
escogiendo la opción del menú ‘Additional data -> Maintain agent
assignment’.
–
Las tareas poseen un titulo y una descripción que se muestra en el
work item previsto y en el detalle de la visualización del work item.
–
Una notificación puede ser enviada a la bandeja de entrada de mensajes
cuando el procesamiento del work item está completo.
–
Si el control o monitorización de la fecha limite es activado para un
paso del workflow y Visualizar Texto es activado como reacción, si las
fechas tope no son cumplidas, los textos a enviar deberían ser definidos.
–
Se pueden incluir variables en todos los textos, los cuales son
suministradas con valores desde la interfaz de workflow en el tiempo de
ejecución (runtime).

• Business Objects
–
Tipo de Objeto (en tiempo de definición)
•
Descripción genérica (definición) de los componentes (claves, atributos,
eventos, métodos) de un objeto
–
Objeto (en tiempo de ejecución)
•
Un objeto es un ejemplo de un
tipo de objeto (instancia) con particulares valores atributos.
•
Los valores atributos son entradas en tabla en la base de datos de
R/3, o son determinados desde valores conocidos en el tiempo de ejecución.
•
Puede acceder a un objeto usando una clave de identificación única.
–
Métodos: Funciones permitidas para un objeto.
•
Los métodos encapsulan las funciones familiares y de conjunto del
sistema R/3 haciéndolas accesibles al sistema de workflow.
•
Los métodos del objeto se refieren a la disponibilidad de funciones
ABAP (transacciones, módulos de función, módulos de dialogo, y demás).
• Agentes
–
Un lista de posibles agentes son requeridas para una tarea
(TS). Esta lista contiene los empleados en tu empresa los cuales están
autorizados a recibir este work item (representación de una tarea en el tiempo
de ejecución).
–
Cuando se define la tarea pude crear una "tarea general", o escoger
"Asignación agente - Crear" y crear una relación con un objeto
organizacional. Cualquier usuario del sistema puede ejecutar tareas generales.
–
Los destinatarios del work item son determinados en el tiempo de
ejecución.
–
Liberación de un pedido de compras (20000075)
–
Liberación general de una solicitud de pedido (20000077)
•
Algunos desarrollos propios para ver
–
Envío de notificaciones a compras por exceso de importes (90000001)
–
Liberación de pedidos de nuevas inversiones – grandes reparaciones
(90000006)
–
Envío de notificaciones a responsables de NI – GR (90000007). Este es
un ejemplo de una tarea múltiple aplicada al workflow 90000006.
•
Para ver más Workflows estándares revisar la documentación de cada
módulo en SAP o bien entrar en la ayuda de SAP para Workflows y ver escenarios
de Workflows en aplicaciones (http://help.sap.com)
•
Para mayor información acerca de workflow recomiendo leer el libro
“SAP Practical Workflow, de Alan Rickayzen.”
que puede comprarse en http://www.sap-press.com
o en la pagina de SAP-Shop
•
Algunos sitios web de interés
–
www.workflowing.com - Pagina
con algunos trucos para WF
–
www.e-workflow.org - Información de WF en general
•
322526 - Recomendaciones para el análisis de errores
•
80948 - Idiomas en las tareas
•
27848 - Idiomas en los workitems
•
77607 - Transporte de estructura organizativa con copia de mandante
•
217229 - Para hacer preguntas sobre WF al MIT
•
63480 - Como unir WF con MS
Exchange
Workflow - Introducción
En este post voy a hacer una introducción a los workflows. Es un tema que da para mucho. Iremos ampliandolo.
Definición
Terminología Workflow
Definición
•
Los sistemas de workflow son herramientas que permiten la
implementación técnica de procesos de negocio. Permiten dar soporte y agilizar el proceso
de negocio ganando tiempo. Permite a la gente involucrada llevar a cabo procesos
de negocio complejos independientemente del tiempo y el lugar.
•
El flujo de trabajo es controlado y coordinado activamente por el
sistema de workflow.
El control incluye el monitoreo de pasos de trabajo individuales y el inicio de
procesos para escalar las tareas que lleguen a su fecha de vencimiento.
•
En el sistema SAP, el sistema de workflow se integra completamente con
las funciones de negocio del sistema R/3 a través de sus Business Objects.
•
Adicionalmente el sistema de workflow de SAP permite su integración
con la gestión organizacional lo que permite relacionar personas o
estructuras organizativas a las tareas del workflow.
•
El sistema de workflow cubre todos los aspectos del proceso…

Características
·
Incluyen un numero finito de actividades
·
Las actividades siempre se llevan a cabo de la misma manera
·
Involucran a diferentes personas y departamentos
·
Requieren un alto grado de coordinación
· Los sistemas workflos controlan los procesos basandose en un modelo y son particularmente útiles en organizaciones bien estructuradas.
•
Workflow no es:
–
Un sistema de gestión de documentos (trabaja con ellos)
–
Un sistema de e-mail o groupware (trabaja con ellos)
–
Un sistema de distribución de datos entre sistemas (para ello workflow
utiliza ALE, EDI, WebForms-XML, etc.)
–
Una transacción para secuenciar pantallas
–
Administración de datos temporales
–
Una herramienta que se utilice para realizar funciones no existentes
en el sistema (si no se puede ejecutar la función manualmente en el sistema,
entonces el sistema de workflow tampoco lo hara.
Ventajas
•
Para los usuarios
–
Tan pronto como una tarea aparezca se le enviará electrónicamente a su
inbox
–
La información, explicaciones e instrucciones se envían todas juntas
en un mismo documento
–
El sistema workflow lleva al usuario directamente a la transacción
–
Permite escalar trabajos automáticamente y determina los responsables
y superiores directamente utilizando la estructura organizativa
•
Para la empresa
–
Aumenta la productividad
–
Agiliza los procesos
–
Aumenta la satisfacción de los clientes (mejores flujos de información,
mayor rapidez en responder)
Terminología Workflow
•
Existen 5 preguntas clave para cada parte de un proceso de negocio
•
El workflow controla el flujo del proceso
•
La definición del workflow describe el proceso de negocio a
implementar
•
Cada workflow se compone de una serie de pasos enlazados
–
Cada paso tiene un tipo y un símbolo propio para que sea mas fácil de
leer.
–
Cada paso del workflow procesa datos que se van pasando de paso a paso
a través de contenedores.
•
Un workflow se activa mediante uno o mas eventos. El evento depende
del workflow y debe estar activamente relacionado a él.
•
El workflow se crea y modela mediante el Workflow Builder (SWDD)
•
Una actividad puede ser: Ejecutar una transacción, ejecutar un
reporte, ejecutar un modulo de funciones, ejecutar una tarea en un sistema
remoto, modificar un documento local, etc.
•
Generación y envío de documentos
•
Toma de decisiones
•
Control de flujo
•
Por razones prácticas y por cuestiones de reusabilidad y consistencia
de la lógica implementada, las actividades siempre utilizan tecnología
orientada a objetos.
•
Las actividades pueden ser ejecutadas por el sistema o por una persona
(esto ultimo requerirá de la técnica de determinación de agentes).
•
En tiempo de ejecución la actividad o tarea se denomina workitem, y le
indica al responsable lo que debe hacer, así como también la información
necesaria para ejecutar la actividad.
–
Los objetos consisten en un conjunto de información relacionada que
puede ser accedida mediante una clave o conjunto de claves
–
Los objetos se crean en tiempo de ejecución y son instancias
especificas de un tipo de objeto definido previamente al cual se le ha asignado
valores
–
Los componentes de un objeto son;
•
Atributos (son los campos que identifican el objeto)
•
Métodos (indican operaciones que se pueden aplicar sobre el objeto)
•
Eventos (indican cambios de estado en el objeto: impreso, liberado,
creado, eliminado, etc.)
–
En el workflow se utilizan los métodos de los tipos de objetos para
modelar las actividades
–
A su vez se utilizan los eventos de los tipos de objetos para iniciar,
finalizar o marcar eventos en el workflow.
–
Los tipos de objeto se crean y definen mediante el Business Object
Builder (SWO1)
–
Todas las tareas requieren la definición de agentes posibles.
Los agentes posibles son todas aquellas personas que pueden recibir esa
tarea, excluyendo de esta manera a todos los que nunca la recibirán.
–
Las tareas adicionalmente pueden definirse como tareas generales.
En este tipo de tareas no existe restricciones en cuanto a las personas que
puedan recibirla.
–
Luego se definen los agentes responsables. El agente
responsable es quien recibirá la tarea en su Business Workplace
. Siempre un agente responsable es un
agente posible.
. Siempre un agente responsable es un
agente posible.
–
Los agentes responsables se determinan siempre en tiempo real
mediante papeles.
–
En un papel se definen ciertos criterios mediante los cuales se
determinara en tiempo real quien es el usuario del sistema responsable por
ejecutar la tarea. Existen varios tipos de papeles: por competencias, por
función, por estructura organizativa o por atributos organizativos.
–
En la determinación de agentes juega un papel muy importante la estructura
organizativa de la empresa
–
Los eventos informan al workflow que algo ha sucedido. El workflow a
su vez puede reaccionar al evento si la relación entre ambos esta activada
–
Los eventos los publica el sistema para que puedan ser evaluados por todos
los workflows.
–
Todas las tareas pueden dejar como resultado uno o mas eventos (por
ejemplo la tarea aprobar pedido puede dejar los eventos aprobado, rechazado,
modificado). De esta manera el flujo del workflow puede subdividirse en esa
tarea en tres caminos diferentes.
–
Existe un tipo de paso que implica esperar por un evento y otros pasos
que permiten generar eventos
–
Los eventos se configuran en los tipos de objeto y pueden generarse
por:
•
Por programa (mediante funciones especificas de la API de workflow)
•
Mediante documentos de cambio (Change Documents)
•
Mediante el sistema de mensajes (utilizado en SD y MM)
•
Mediante la gestión de status de documentos (utilizado en PP, PM, QM,
etc.)
•
Mediante el sistema de información logística (alertas)
•
Mediante documentos de cambio del modulo RH
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 ver una de las BADI´s mas utilizadas dentro de SAP. No es otro que la BADI ME_PROCESS_PO_CUST que se utiliza para inc...




















