Q-flow 3.0: Web services

Documentos relacionados
Usando Web Services de Q-flow

Web parts de Q-flow para Sharepoint

Iniciar flujo a partir de un archivo XML

Q-flow 3.1: Introducción a Q-flow

Q-flow 3.0: Diseño de formularios personalizados

Q-flow 3.1: Instalación Express

Q-flow 3.0: Sizing. Código del manual: Qf304007ESP Versión: 1.0 Se aplica a: Q-flow 3.04 Última revisión: 5/5/20099

Instructivo fecha. ACL Results Manager Instructivo para publicación de resultados. 3.mar.15. Referencia. Usuarios. Results Manager

Novedades en Q-flow 3.02

Tutorial de Q-flow Diseño de procesos en BPMN

Q-flow 3.1: Diseño de formularios personalizados

Q-flow 3.2 Modelo Organizacional. Urudata Software Canelones 1370 Piso 2 CP11200 Montevideo, Uruguay Teléfono: (598) Fax:

Intellikon 2.2. Código de Manual: Ik22002ESP Versión del Manual: 1.0 Última revisión: 20/12/2005 Se aplica a: Intellikon 2.2.

Introducción a la Programación en MATLAB

Patterns & Practices. Catálogo de templates. HelpDesk. Versión: 2.0. Fecha de publicación Aplica a: Q-flow 3.0 y Q-flow 3.

Guía del usuario de DocuShare Agent

Q-flow 3.5. Tutorial de Q-flow. Urudata Software Canelones 1370 Piso 2 CP11200 Montevideo, Uruguay Teléfono: (598) Fax:

Manual SAAE México 2012 EMPRESAS Manual para Software de Administración de Alumnos y Egresados

Q-flow 3.1: Enterprise Edition

Q-flow 2.2. Código de Manual: Qf22007ESP Versión del Manual: 3.1 Última revisión: 19/8/2005 Se aplica a: Q-flow 2.2. Sizing

Google Groups. Administración de Grupos de Google Apps

Modulo 1 El lenguaje Java

Manual de usuario del Centro de Control

Geolocalización de Sitios de Interés Para Aplicaciones Móviles G-SIAM. Plan de Aseguramiento de Calidad del Software SQAP

Plataforma Helvia. Manual de Administración Administración General. Versión

Formularios. Formularios Diapositiva 1

Q-flow 3.0: Enterprise Edition

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

MÓDULO DE ARCHIVO. 1. ADMINISTRADOR DE ARCHIVO 2. ARCHIVO SGD ORFEO VERSION 3.9.2

Q-flow Patrones básicos de Workflow

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Q-flow 3.5. Instalación Express. Urudata Software Canelones 1370 Piso 2 CP11200 Montevideo, Uruguay Teléfono: (598) Fax:

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

UTILIZACIÓN DE RELOJES

Introducción a los sitios de SharePoint en Office 365

Manual del instalador de Red

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Workflows? Sí, cuántos quiere?

Q-flow 3.3 Diseño de formularios personalizados

Manual de administración Administración General V

Creación y administración de grupos de dominio

Conceptos Generales en Joomla

Creación y administración de grupos locales

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

COMO ACCEDER AL SISTEMA MERCURIO WEB

Manual de usuario. Modulo Configurador V.1.0.1

Curso de Java POO: Programación orientada a objetos

TrytonArDocumentacion Documentation

DOTPROJECT MANUAL BÁSICO

Capitulo 5. Implementación del sistema MDM

Comisión Nacional de Bancos y Seguros

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Manual. Sistema De. Plataforma Virtual. Docente. Estudiante MANUAL MANUAL DE MANUAL. del Usuario. Coordinador. MICROSOFT PowerPoint v2.

MANUAL DE USUARIO INTRANET

Oficina Online. Manual del administrador

Uso del portafolio digital

Programación Orientada a Objetos con Java

Aplicateca API Validador de Móviles Certificados SMS -

COMPARTIR RECURSOS. Pag. 1 de 7

Roles y Características

TECHNOLOGY FOR SOLUTIONS GuíadePruebaBasic Workflow

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

PROCESO GESTIÓN ADMINISTRATIVA INSTRUCTIVO TÉCNICO ALISTAMIENTO SERVIDORES GESTIÓN DOCUMENTAL

CONSTRUCCIÓN DEL PROCESO PAGO DE FACTURAS. BizAgi Process Modeler

Desarrollo de WebParts

Acronis License Server. Guía del usuario

GESTOR DE LICENCIAS Ayuda

Práctica sobre compartición de instancias remotas.

Clases y Objetos. Informática II Ingeniería Electrónica

Soporte y Requerimientos

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Guí a Ra pida Dropbox.

Manual de Usuario Sistema de Ticket -Help Desk Portal Clientes

Introducción a la programación orientada a objetos

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Árbol Familiar: Fotos, fuentes e historias

Componentes de Integración entre Plataformas Información Detallada

Sección de Introducción.

Capacitación Rational Funcional Tester

Gestión de Oportunidades

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA PRESTASHOP

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

MANUAL EASYCHAIR.

Transcripción:

Q-flow 3.0: Web services Código del manual: Qf303008ESP Versión: 1.0 Se aplica a: Q-flow 3.03 Última revisión: 29/9/2008 i

Q f 3 0 3 008 E S P v 1.0 Q - f l o w 3. 0 Web services Urudata Software Canelones 1370 Piso 2 CP11200 Montevideo, Uruguay Teléfono: (598 2) 900 76 68 Fax: 900 78 56 ii

Q f 3 0 3 008 E S P W e b s e r v i c e s v 1.0 Tabla de Contenido Introducción... 4 Organización de este manual... 4 Convenciones usadas en este manual... 4 Descripción de los web services... 4 WebStart... 4 Métodos de WebStart... 4 Ejemplos de uso de WebStart... 5 WebResponse... 7 Métodos de WebResponse... 7 Ejemplos de uso de WebResponse... 8 WebLists... 9 Métodos de WebLists... 9 Ejemplos de uso de WebLists... 9 WebLinks... 10 Método de WebLinks... 10 WebOperations... 10 Métodos de WebOperations... 10 3

Introducción El propósito de este manual es describir los web services de Q-flow para apoyar a desarrolladores de aplicaciones que los consumen. Este manual contiene solamente información acerca de la interfaz y del comportamiento de los web services. Para obtener información acerca de cómo instalarlos y configurarlos, consulte el manual de instalación de Q-flow. Organización de este manual Q-flow incluye los siguientes web services: WebStart WebResponse WebLists WebLinks WebOperations El manual dedica una sección a cada uno de esos web services. Convenciones usadas en este manual Este manual representa la firma de un método de un web service de la siguiente forma: Nombre_del_método(lista_de_parámetros):Tipo_de_Retorno Los parámetros están separados por comas, y cada parámetro está representado por su tipo seguido de su nombre, como en código C#. Ejemplo: string name. Si un método no retorna nada, el tipo de retorno es void, como en C#. El código de los ejemplos está escrito en el lenguaje C#. Descripción de los web services A continuación, se describe cada uno de los web services de Q-flow. WebStart El web service WebStart tiene métodos que inician workflows. Métodos de WebStart StartFlowNow(Guid templateid, string title, string description):guid inicia un workflow basado en el template indicado por el parámetro templateid. El parámetro title indica el título 4

que se le dará al workflow, y el parámetro description indica la descripción. Devuelve el identificador global (Guid) del workflow iniciado. StartFlowNowCorrelativeID(long templatecorrelativeid, string title, string description):guid hace lo mismo que el método anterior, pero en lugar de recibir un parámetro del tipo Guid para identificar el template en el que se debe basar el nuevo workflow, recibe un parámetro de tipo long, que indica el identificador correlativo del template a ser utilizado. StartFlow(FlowMessage flowmessage):guid hace lo mismo que los métodos anteriores, pero recibe un parámetro del tipo FlowMessage para indicar los datos del workflow a ser iniciado. El objeto FlowMessage, además de tener propiedades que representan el título y la descripción del workflow, tiene propiedades que representan los datos de aplicación, roles y archivos adjuntos del workflow. Estas propiedades pueden ser modificadas para inicializar los datos, roles y archivos adjuntos del workflow a iniciar. Para obtener el objeto FlowMessage a utilizar para invocar este método, primero debe invocar el método GetFlowInfoCorrelativeId o el método GetNewFlowInfo. GetNewFlowInfoCorrelativeId(long templatecorrelativeid):flowmessage dado un template indicado por su identificador correlativo, devuelve un objeto de tipo FlowMessage que puede ser utilizado para iniciar un workflow con el método StartFlow. GetNewFlowInfo(Guid templateid):flowmessage dado un template indicado por su identificador global, devuelve un objeto de tipo FlowMessage que puede ser utilizado para iniciar in workflow con el método StartFlow. Ejemplos de uso de WebStart Esta sección contiene algunos ejemplos de cómo usar el web service WebStart. E jempl o que utiliza StartFl ow Now C o rre lativeid Este ejemplo supone que existe un template cuyo identificador correlativo es 1202. WebStart.WebStart wsstart = new WebStart.WebStart(); Guid flowid; flowid = wsstart.startflownowcorrelativeid(1202, "WS Test", "Test"); E jempl o que utiliza StartFl ow Este ejemplo supone que existe un template cuyo identificador correlativo es 1202. Utiliza el método GetNewFlowInfoCorrelativeId para obtener un objeto del tipo FlowMessage. Una vez obtenido ese objeto, se le asigna el título del workflow (FlowName), la descripción del workflow (FlowDescription) y se invoca el método StartFlow pasándole por parámetro el objeto de tipo FlowMessage obtenido y modificado. El resultado es el mismo que el del método anterior. WebStart.FlowMessage flowmsg; WebStart.WebStart wsstart = new WebStart.WebStart(); flowmsg = wsstart.getnewflowinfocorrelativeid(1202); flowmsg.flowname = "WS Test"; flowmsg.flowdescription = "Test"; Guid flowid; flowid = wsstart.startflow(flowmsg); 5

E jempl o con inicialización de da t o s y r o les Este ejemplo obtiene un objeto del tipo FlowMessage por medio de una invocación al método GetNewFlowInfoCorrelativeId. Después, inicializa el dato amount con un valor recibido en un parámetro, y el rol Approver con un valor recibido en otro parámetro. Finalmente, define un nombre y una descripción para el workflow, y lo inicia por medio de una invocación a StartFlow, pasando el objeto de tipo FlowMessage como parámetro. private Guid StartExpenseApprovalFlow(string amount, Guid approver) WebStart.WebStart wsstart = new WebStart.WebStart(); WebStart.FlowMessage flowmsg = wsstart.getnewflowinfocorrelativeid(1202); foreach (WebStart.DataMessage datum in flowmsg.data) if (datum.name == "amount") if (datum.scope == WebStart.ItemScope.Editable) datum.values[0].value = amount; else throw new Exception("El dato debería ser editable."); foreach (WebStart.RoleMessage role in flowmsg.roles) if (role.name == "Approver") if (role.scope == WebStart.ItemScope.Editable) role.members[0].type = WebStart.TemplateRoleMemberType.User; role.members[0].id = approver; else throw new Exception("El rol debería ser editable."); flowmsg.flowname = "WS Test"; flowmsg.flowdescription = "Test"; Guid flowid = wsstart.startflow(flowmsg); return flowid; E jempl o de inicio de w ork fl ow con un arc hi vo adju n t o Este ejemplo inicia un workflow, adjuntándole un archivo que está en el directorio raíz y que se llama ejercicios.pdf. El paso de inicio del template en el que se basa el workflow debe tener el alance configurado para que se pueda agregar archivos adjuntos. De lo contrario, el ejemplo produce un error. 6

private void StartFlowWithAttachment(long templatecorrelativeid) WebStart.WebStart wsstart = new WebStart.WebStart(); WebStart.FlowMessage flowmsg = wsstart.getnewflowinfocorrelativeid(templatecorrelativeid); flowmsg.flowname = "WS Test"; flowmsg.flowdescription = "Test"; flowmsg.attachments = CreateAttachments(); wsstart.startflow(flowmsg); private WebStart.AttachmentMessageBase[] CreateAttachments() WebStart.AttachmentMessage file = new WebStart.AttachmentMessage(); file.content = File.ReadAllBytes("C:\\ejercicios.pdf"); WebStart.AttachmentMessageBase[] attachments = new WebStart.AttachmentMessageBase[1]; attachments[0] = file; attachments[0].name = "ejercicios.pdf"; return attachments; WebResponse El web service WebResponse tiene métodos para responder tareas. Métodos de WebResponse GetTask(Guid FlowId, Guid StepId, Guid ToId):TaskMessage obtiene un objeto que representa la tarea determinada por el identificador de un workflow (FlowId), un paso de ese workflow (StepId) y un destinatario de ese paso (ToId). Una vez obtenido ese objeto, es posible usarlo para responder la tarea que representa por medio de alguno de los otros métodos de ese web service. RespondTask(TaskMessage task):void responde la tarea representada por parámetro. Ese objeto debe haber sido obtenido por medio del método GetTask y ser modificado para indicar la respuesta que se da a la tarea y, opcionalmente, un porcentaje de progreso. RespondTaskNow(Guid FlowId, Guid StepId, Guid ToId, string ResponseKey):void responde una tarea con la respuesta indicada por el parámetro ResponseKey. La tarea que se responde está determinada por el identificador de un workflow (FlowId), un paso de ese workflow (StepId) y un destinatario de ese paso (ToId). RespondTaskNowWithProgress(Guid FlowId, Guid StepId, Guid ToId, string ResponseKey, byte Progress):void responde una tarea con la respuesta indicada por el parámetro ResponseKey, y actualizando el progreso de la tarea con el valor del parámetro Progress. La tarea que se responde está determinada por el identificador de un workflow (FlowId), un paso de ese workflow (StepId) y un destinatario de ese paso (ToId). 7

Ejemplos de uso de WebResponse Esta sección contiene algunos ejemplos de cómo usar el web service WebResponse. E jempl o que utiliza RespondTaskNow Este ejemplo primero utiliza el web service WebLists para obtener las tareas pendientes del usuario actual. Después, utiliza el web service WebResponse para responder la primera de esas tareas. El ejemplo supone que la tarea que contesta admite la respuesta Approve. Si una tarea es contestada utilizando una respuesta que no está prevista, ocurre un error. WebLists.WebLists wslists = new WebLists.WebLists(); WebLists.Task[] tasks = wslists.getcurrentusertasks(); Guid flowid = tasks[0].flowid; Guid stepid = tasks[0].taskid; Guid toid = tasks[0].toid; WebResponse.WebResponse wsresponse = new WebResponse.WebResponse(); wsresponse.respondtasknow(flowid, stepid, toid, "Approve"); E jempl o que utiliza RespondTask Este ejemplo utiliza el web service WebLists para obtener las tareas pendientes del usuario actual. Después, utiliza los datos de la primera tarea obtenida para invocar el web method GetTask, que devuelve un objeto del tipo TaskMessage. Una vez obtenido ese objeto, le carga la respuesta Approved y lo utiliza para invocar el método RespondTask. Eso responde la tarea con la respuesta Approve. El ejemplo supone que la tarea que contesta admite la respuesta Approve. Si una tarea es contestada utilizando una respuesta que no está prevista, ocurre un error. WebLists.WebLists wslists = new WebLists.WebLists(); WebLists.Task[] tasks = wslists.getcurrentusertasks(); Guid flowid = tasks[0].flowid; Guid stepid = tasks[0].taskid; Guid toid = tasks[0].toid; WebResponse.WebResponse wsresponse = new WebResponse.WebResponse(); WebResponse.TaskMessage taskmsg; taskmsg = wsresponse.gettask(flowid, stepid, toid); taskmsg.responsekey = "Approve"; wsresponse.respondtask(taskmsg); En este caso, la tarea que se contesta corresponde a un paso de pregunta. Si se tratara de un paso de tarea, se podría actualizar el progreso, escribiendo una línea como la siguiente: taskmsg.progress = 50; 8

E jempl o de respuesta que modifica da t os de aplicación Este ejemplo hace lo mismo que el ejemplo anterior, salvo por el hecho de que modifica un dato de aplicación del workflow al que pertenece la tarea que es contestada. El ejemplo supone que la tarea que contesta admite la respuesta Approve. Si una tarea es contestada utilizando una respuesta que no está prevista, ocurre un error. private void RespondTask(string comentarios) WebLists.WebLists wslists = new WebLists.WebLists(); WebLists.Task[] tasks = wslists.getcurrentusertasks(); Guid flowid = tasks[0].flowid; Guid stepid = tasks[0].taskid; Guid toid = tasks[0].toid; WebResponse.WebResponse wsresponse = new WebResponse.WebResponse(); WebResponse.TaskMessage taskmsg = wsresponse.gettask(flowid, stepid, toid); taskmsg.responsekey = "Approve"; foreach (WebResponse.DataMessage datum in taskmsg.data) if (datum.name == "comentarios") if (datum.scope == WebResponse.ItemScope.Editable) datum.values[0].value = comentarios; else throw new Exception("El dato debería ser editable."); wsresponse.respondtask(taskmsg); WebLists El web service web lists tiene métodos para obtener listas de tareas. Métodos de WebLists GetCurrentUserTasks():Task[] obtiene la lista de tareas del usuario en cuyo contexto se invoca el método. GetFlowTasks(Guid flowid):task[] obtiene la lista de tareas del workflow cuyo identificador es indicado por el parámetro flowid. Ejemplos de uso de WebLists Esta sección contiene un ejemplo de cómo usar el web service WebLists. 9

E jempl o que usa GetCurre n t UserTasks y G etfl ow Tasks Este ejemplo utiliza el método GetCurrentTasks para obtener las tareas pendientes del usuario actual. Después, utiliza GetFlowTasks para obtener todas las tareas del workflow al que pertenece la primera de las tareas obtenidas anteriormente. WebLists.WebLists wslists = new WebLists.WebLists(); WebLists.Task[] tasks = wslists.getcurrentusertasks(); Guid flowid = tasks[0].flowid; tasks = wslists.getflowtasks(flowid); WebLinks El web service WebLinks dispone solamente de un método. Método de WebLinks HasUserPermissionsToSeeLink(Guid linkid):bool: devuelve true si el usuario actual (aquél cuyas credenciales se utilizan para invocar el web service) tiene permiso para ver el vínculo cuyo identificador es el valor del parámetro linkid. WebOperations El web service WebOperations trabaja en conjunto con el paso de sincronización (ver manual del diseñador de procesos del negocio). Un paso de sincronización puede ser configurado para que espere la ocurrencia de una acción externa. La forma de indicarle a Q-flow que la acción externa tuvo lugar es invocar alguno de los métodos del web service WebOperations. Métodos de WebOperations FinalizeWaitingStepsByName(Guid flowid, string templatestepname): void: dado un paso de sincronización, especificado por el identificador del workflow al que pertenece y el nombre del paso, indica que ese paso debe terminar la espera por una acción externa. FinalizeWaitingStepsById(Guid flowid, Guid templatestepid): void: dado un paso de sincronización, especificado por el identificador del workflow al que pertenece y el identificador del paso del template en el que se basa, indica que ese paso debe terminar la espera por una acción externa. 10