1. Entra en la Transaccin SU01 (Actualizacin Usuario) con tu usuario y ponle tu direccin de correo electrnico en el campo Correo elec. del bloque Comunicacin de la pestaa Direccin. 2. OBJETO BOR: Entra en la Transaccin SWO1 (Business Object Builder) y crea tu primer Objeto BOR con el nombre Z_BOR_XX, donde XX sea el nmero de tu usuario:
3. CAMPO CLAVE: Crea un campo clave en el objeto BOR de tipo EKKO-EBELN (Nmero del documento de compras). 4. Cambia el status de liberacin del objeto, desde el men superior Tratar->Modificar status de liberacin->Tipo de objeto->En implementado. Verifica que el status tanto del objeto BOR como de la clave cambian de modelado a implementado. 5. ATRIBUTO: Crea una atributo simple para obtener el nombre de la empresa a la que pertenece el nmero del documento de compras de la clave de nuestro objeto. El tipo del atributo es LFA1-NAME1. Una vez creado, ir al programa para definir la lgica con la que se obtendr su valor al instanciar el objeto BOR con un nmero de documento de compras. Si elegimos que se autogenere el cdigo de forma automtica, debemos revisarlo para verificar que obtiene el nombre de la empresa de forma correcta: campo LFA1-NAME1 donde el LFA1-LIFNR = EKKO-LIFNR. Para comprobar lo creado hasta el momento, guarda, verifica y genera tu objeto BOR. A continuacin, ejectalo instancindolo con el nmero de documento de compras 3000000004, cuya empresa 0000005550 tiene como nombre IDES Consumer Products. 6. MTODO: Crea un mtodo que reciba por parmetro de entrada el nombre de un usuario y devuelva su correo electrnico en un parmetro de salida de tipo ADR6- SMTP_ADDR. Para obtener la direccin de correo electrnico lo haremos del siguiente modo: seleccionar USR21-PERSNUMBER (Nmero de persona) y USR21-ADDRNUMBER (N direccin) de la tabla USR21 para el usuario recibido (USR21-BNAME = usuario). Seleccionar el correo electrnico ADR6-SMTP_ADDR (Direccin de correo electrnico) para el ADDRNUMBER = USR21-ADDRNUMBER y el PERSNUMBER = USR21- PERSNUMBER recuperados anteriormente. 7. MTODO: Crea un mtodo que sirva para recuperar las direcciones de correo electrnico de los usuarios de todos los alumnos y los devuelva en un parmetro de varias lneas (estructura) de tipo ADR6-SMTP_ADDR. Para obtener las direcciones de correo electrnico lo haremos del siguiente modo: seleccionar el listado de los usuarios SAP de los alumnos de la tabla ZLISTADO_USR, con ellos seleccionar USR21- PERSNUMBER (Nmero de persona) y USR21-ADDRNUMBER (N direccin) a la tabla USR21 para cada usuario (USR21-BNAME = usuario). Seleccionar el correo electrnico ADR6-SMTP_ADDR (Direccin de correo electrnico) para cada ADDRNUMBER = USR21-ADDRNUMBER y PERSNUMBER = USR21-PERSNUMBER recuperados anteriormente. 8. EVENTO: Crea un evento en tu objeto BOR que sirva para desencadenar una ejecucin del flujo de tu WorkFlow cuando dicho evento sea disparado.
Modelo de WorkFlow: 1. Entra en la Transaccin PFTC y crea un nuevo modelo de WorkFlow asignndole la sigla Z_WF_XX donde XX sea el nmero de tu usuario. Ponle una denominacin, un texto de work tem (precedido de tu nombre de usuario ALUMNOXX:), defnele un parmetro de entrada en el container del tipo de datos de tu objeto BOR y establcele como evento desencadenante el evento que le creaste a tu objeto BOR. Nota: No te olvides de activar el evento para que tu WorkFlow quede a la escucha de que dicho evento sea disparado. 2. Ahora, antes de entrar a implementar tu modelo de WorkFlow, crea una tarea estndar desde la Transaccin PFTC que llame al primer mtodo que has implementado en tu objeto BOR que recupera el correo electrnico de un alumno. Para ello, establcele una sigla a la tarea con el nombre Z_TS_XX donde XX sea el nmero de tu usuario. Ponle una denominacin, un texto de work tem, marca el flag de Ejecucin en proceso de fondo, defnele un parmetro de entrada en el container del tipo de datod USR21-BNAME y un parmetro de salida en el container del tipo de datos ADR6-SMTP_ADDR que almacene el correo recuperad. Una vez definidos los parmetros en el container, debes mapear los parmetros de la propia tarea con los parmetros del mtodo que ejecuta la misma, lo que comnmente se denomina binding de parmetros. 3. Una vez que tengas creada la Tarea Estndar y definido sin errores tu modelo de WorkFlow, accede a la implementacin del modelo a travs del botn WorkFlow Builder en la PFTC bien a travs de la Transaccin SWDD. Crea un primer paso de tipo Actividad que ejecute tu Tarea Estndar creada en el ejercicio anterior y define el flujo de datos (binding) entre el paso del WorkFlow y la tarea. Para esto ltimo, ser necesario que crees un elemento de nombre CORREO en el container del WF de tipo de datos ADR6-SMTP_ADDR para recoger el resultado del correo que nos devolver la Tarea Estndar. En el parmetro de entrada P_USUARIO establcele el elemento estndar del container _WF_INITIATOR para que tome el usuario que lance el WorkFlow. 4. A continuacin en el flujo de tu Modelo de WorkFlow, crea un paso de tipo Condicin que valide que el parmetro CORREO no vaya vaco. 5. Crea en la rama en la que el parmetro CORREOS vaya vaco un paso de tipo Control de proceso cuya funcin sea finalizar el WorkFlow, ya que no se han obtenido destinatarios de correos. 6. Crea en la rama en la que el parmetro CORREO vaya relleno un paso de tipo Enviar correo electrnico y defnele como destinatario el parmetro CORREO de tu container. Define el asunto y cuerpo del correo a enviar usando como variables elementos del container como el documento de compras y nombre de la empresa. En este caso nos generar automticamente una nueva Tarea Estndar para este paso a la que le asignars la sigla Z_TS_XX donde XX sea el nmero de tu usuario. Nota: Antepn tu nombre de usuario en el asunto del correo para una fcil localizacin futura. 7. Tras el envo del correo, crea un paso de tipo Decisin del usuario definindole un ttulo con una variable con el nmero del documento de compras y pon como responsable receptor de la decisin al usuario que lance el WorkFlow con la expresin &_WF_INITIATOR&. Aade las alternativas de decisin Aprobar y Rechazar. 8. Copia el bloque (paso) creado en el ejercicio 5 de tipo Control de proceso y pgalo en la rama de Rechazo del paso de tipo Decisin del usuario. 9. Es el momento de probar una primera ejecucin de tu WorkFlow. Para ello, depralo, actvalo y ejectalo (F8) indicndole como parmetro de entrada el documento de compras nmero 3000000004. Para ver el flujo y log de tu ejecucin, ve a la transaccin SWIA. Comprueba el envo de correos en la transaccin SOST. Verifica la recepcin de la tarea de decisin en tu bandeja de entrada de tu WorkPlace y procede a la aprobacin o rechazo de la misma.
Nota: Recuerda cambiar el status de liberacin del modelo de WorkFlow y de todas las Tareas Estndar que hayas creado avanzndolas por el flujo: No definido Modelado Implementado Liberado
Ejercicios no guiados: 1. Ampla tu modelo de WorkFlow aadindole un segundo nivel de aprobacin que determine los responsables asignados de la aprobacin a travs de una regla de responsables basada en roles y a cuyos responsables se les realice previamente el envo de un correo de aviso de que tiene una tarea pendiente de aprobar. Para llevar a cabo el ejercicio, necesitaras crear una regla de responsables a travs de la Transaccin PFAC. Asgnale la sigla Z_AC_XX donde XX sea el nmero de tu usuario, una descripcin y el tipo Determinacin Responsable: Competencias. Crea un parmetro ALUMNOS en el container de la regla de tipo de datos CHAR01 que sea obligatorio y que servir para devolver como responsables los alumnos pares los impares. Por ltimo, en la pestaa Responsabilid. crea 2 competencias (PARES [ALUMNOS=P] e IMPARES [ALUMNOS=I]) e inserta los alumnos pertinentes en cada caso. Intenta realizar este ejercicio sin mirar los pasos guiados que se detallan a continuacin por si encuentras demasiada dificultad. Pasos guiados: Ahora, antes de entrar a implementar tu modelo de WorkFlow, crea una tarea estndar desde la Transaccin PFTC que llame al mtodo que has implementado anteriormente en tu objeto BOR para recuperar los correos electrnicos de los diferentes alumnos. Para ello, establcele una sigla a la tarea con el nombre Z_TS_XX donde XX sea el nmero de tu usuario. Ponle una denominacin, un texto de work tem, marca el flag de Ejecucin en proceso de fondo, defnele un parmetro de salida en el container del tipo de datos ADR6-SMTP_ADDR que soporte varias lneas para que funcione como tabla y pueda almacenar todos los correos recuperados. Una vez definidos los parmetros en el container, debes mapear los parmetros de la propia tarea con los parmetros del mtodo que ejecuta la misma, lo que comnmente se denomina binding de parmetros. Una vez que tengas creada la Tarea Estndar y definido sin errores tu modelo de WorkFlow, accede a la implementacin del modelo a travs del botn WorkFlow Builder en la PFTC bien a travs de la Transaccin SWDD. Crea un primer paso de tipo Actividad que ejecute tu Tarea Estndar creada en el ejercicio anterior y define el flujo de datos (binding) entre el paso del WorkFlow y la tarea. Para esto ltimo, ser necesario que crees un elemento de nombre CORREOS en el container del WF de tipo de datos ADR6-SMTP_ADDR para recoger el resultado de correos que nos devolver la Tarea Estndar. A continuacin en el flujo de tu Modelo de WorkFlow, crea un paso de tipo Condicin que valide que el parmetro CORREOS no vaya vaco. Crea en la rama en la que el parmetro CORREOS vaya vaco un paso de tipo Control de proceso cuya funcin sea finalizar el WorkFlow, ya que no se han obtenido destinatarios de correos. Crea en la rama en la que el parmetro CORREOS vaya relleno un paso de tipo Enviar correo electrnico y defnele como destinatarios el parmetro CORREOS de tu container. Define el asunto y cuerpo del correo a enviar usando como variables elementos del container como el documento de compras y nombre de la empresa. En este caso nos generar automticamente una nueva Tarea Estndar para este paso a la que le asignars la sigla Z_TS_XX donde XX sea el nmero de tu usuario. Nota: Antepn tu nombre de usuario en el asunto del correo para una fcil localizacin futura. Tras el envo de los correos, crea un paso de tipo Decisin del usuario definindole un ttulo con una variable con el nmero del documento de compras y pon tu propio usuario como responsable receptor de la decisin. Aade las alternativas de decisin Aprobar y Rechazar. Copia el bloque (paso) creado en el ejercicio 5 de tipo Control de proceso y pgalo en la rama de Rechazo del paso de tipo Decisin del usuario. Es el momento de probar una primera ejecucin de tu WorkFlow. Para ello, depralo, actvalo y ejectalo (F8) indicndole como parmetro de entrada el documento de compras nmero 3000000004. Para ver el flujo y log de tu ejecucin, ve a la transaccin SWIA. Comprueba el envo de correos en la transaccin SOST. Verifica la recepcin de la tarea de decisin en tu bandeja de entrada de tu WorkPlace y procede a la aprobacin o rechazo de la misma.