Formularios de inicio y de asociación de flujo de trabajo (Sharepoint Foundation)
Última modificación: jueves, 08 de abril de 2010
Hace referencia a: SharePoint Foundation 2010
En este artículo
Especificación de formularios de asociación
Procesamiento de formularios de asociación
Especificación de formularios de inicio
Procesamiento de formularios de inicio
Los formularios de inicio y de asociación se muestran para que los usuarios los completen antes de que se inicie realmente cualquier flujo de trabajo. Puede usar estos formularios para que los usuarios establezcan los parámetros y otra información para el flujo de trabajo con antelación. Los formularios de asociación tratan la manera en que el flujo de trabajo se aplica a una determinada lista, biblioteca o tipo de contenido; los formularios de inicio tratan la manera en que el flujo de trabajo se aplica a un elemento de SharePoint específico.
Los formularios de asociación se muestran a los administradores cuando deciden por primera vez agregar, o asociar, un flujo de trabajo a una determinada lista, biblioteca de documentos o tipo de contenido. Puede usar formularios de asociación para permitir al administrador especificar los parámetros, los valores predeterminados y otra información para el flujo de trabajo tal como se aplica a los elementos de la lista, la biblioteca o el tipo de contenido, con los que el administrador está realizando la asociación.
Los formularios de inicio se muestran a los usuarios cuando inician un flujo de trabajo en un elemento específico de SharePoint. Puede usar los formularios de inicio para permitir a los usuarios invalidar o agregar los parámetros de asociación configurados por los administradores, o para especificar los parámetros adicionales o la información sobre el flujo de trabajo tal como se aplica al elemento específico de SharePoint. No todos los flujos de trabajo necesitan formularios de inicio.
El formulario de inicio puede ser el mismo que el formulario de asociación. Por ejemplo, si usa el mismo formulario para cada flujo de trabajo, permite a los administradores configurar ciertos parámetros predeterminados durante la asociación del flujo de trabajo y, posteriormente, permite al usuario que inicia la instancia de flujo de trabajo en un elemento determinado revisar y reemplazar esos parámetros predeterminados.
Especificación de formularios de asociación
Puede especificar un formulario de asociación de flujo de trabajo en la definición XML de la plantilla de flujo de trabajo. Para hacerlo, configure el valor del atributo AssociationURL del elemento Workflow en la página del formulario personalizado que desea usar para la asociación del flujo de trabajo. Por ejemplo:
AssociationURL="MyWkflAssociationPage.aspx"
Nota
Windows SharePoint Services 3.0 admite rutas de acceso absolutas o relativas al servidor en la definición de plantilla de flujo de trabajo. Debe expresar todas las direcciones URL de ruta de acceso en uno de estos formatos. Por ejemplo, puede usar una ruta de acceso absoluta, como "http://site/library/page.aspx" o una ruta de acceso relativa al servidor, como "/layouts/page.aspx". SharePoint Foundation no admite la corrección de vínculos en las definiciones de plantillas de flujo de trabajo.
Para obtener más información sobre las definiciones de flujo de trabajo, consulte Definiciones de flujo de trabajo.
Procesamiento de formularios de asociación
Cuando un administrador selecciona un flujo de trabajo para asociarlo a una determinada lista, biblioteca o tipo de contenido, SharePoint Foundation muestra la página para agregar un flujo de trabajo nuevo. El administrador puede usar esta página para especificar los valores de configuración comunes a todos los flujos de trabajo, como las condiciones de inicio y de definición de flujo de trabajo, y si el flujo de trabajo se ejecuta en los elementos, en las carpetas o en ambos.
Cuando el administrador hace clic en el botón Siguiente en esta página, SharePoint Foundation examina el atributo AssociationURL del elemento Workflow, en la definición de plantilla de flujo de trabajo, para determinar el formulario correcto que se debe cargar.
Para proporcionar los datos personalizados para el formulario de asociación, puede almacenar esta información en el elemento AssocationData. Por ejemplo, puede usar este elemento para almacenar los valores predeterminados que desea pasar al formulario de asociación cuando se muestra. El elemento AssocationData puede contener cualquier código XML válido. Su formulario puede cargar esos datos de asociación de la plantilla de flujo de trabajo.
Dado que la asociación de flujo de trabajo no se crea hasta que el formulario de asociación personalizado se envía, SharePoint Foundation también pasa los siguientes parámetros de consulta al formulario de asociación personalizado:
<input type="hidden" name="WorkflowDefinition" value=<% _STSWriteHTML(Request.Form["WorkflowDefinition"]); %>>
<input type="hidden" name="WorkflowName" value=<% _STSWriteHTML(Request.Form["WorkflowName"]); %>>
<input type="hidden" name="AddToStatusMenu" value=<% _STSWriteHTML(Request.Form["AddToStatusMenu"]); %>>
<input type="hidden" name="AllowManual" value=<% _STSWriteHTML(Request.Form["AllowManual"]); %>>
<input type="hidden" name="RoleSelect" value=<% _STSWriteHTML(Request.Form["RoleSelect"]); %>>
<input type="hidden" name="AutoStartCreate" value=<% _STSWriteHTML(Request.Form["AutoStartCreate"]); %>>
<input type="hidden" name="AutoStartChange" value=<% _STSWriteHTML(Request.Form["AutoStartChange"]); %>>
<input type="hidden" name="GuidAssoc" value=<% _STSWriteHTML(Request.Form["GuidAssoc"]); %>>
El programador de flujo de trabajo debe programar lo que sucede cuando el administrador envía los cambios al formulario. En general, el formulario de asociación de flujo de trabajo personalizado debe realizar las siguientes acciones:
Examinar el valor del parámetro GuidAssoc para determinar si el usuario agregará una nueva asociación de flujo de trabajo o editará una asociación de flujo de trabajo existente.
Si el usuario va a agregar una nueva asociación de flujo de trabajo, el formulario debe llamar al método AddWorkflowAssociation para crear una nueva asociación de flujo de trabajo.
Si el usuario va a editar una asociación de flujo de trabajo existente, el formulario debe llamar al método Update() para actualizar esa asociación de flujo de trabajo.
Crear la lista de tareas para el flujo de trabajo, si no existe todavía.
Usar los datos obtenidos del usuario para configurar las propiedades del objeto SPWorkflowAssociation, según sea apropiado.
Crear la lista de historial de flujo de trabajo, si es necesario.
Especificación de formularios de inicio
Si desea que su flujo de trabajo tenga un formulario de inicio, debe configurar el atributo InstantiationURL del elemento Workflow en la definición de la plantilla de flujo de trabajo. Configure este elemento en el formulario que desea usar para obtener los datos de inicio de flujo de trabajo, según se muestra en el siguiente ejemplo.
InstantiationURL="MyWkflInitiationPage.aspx"
Nota
Windows SharePoint Services 3.0 admite rutas de acceso absolutas o relativas al servidor en la definición de plantillas de flujo de trabajo. Debe expresar todas las direcciones URL de ruta de acceso al formulario en uno de estos formatos. Por ejemplo, puede usar una ruta de acceso absoluta, como "http://site/library/page.aspx" o una ruta de acceso relativa al servidor, como "/layouts/page.aspx". SharePoint Foundation no admite la corrección de vínculos en las definiciones de plantillas de flujo de trabajo.
Para obtener más información sobre las definiciones de flujo de trabajo, consulte Definiciones de flujo de trabajo.
Procesamiento de formularios de inicio
Cuando un usuario inicia un flujo de trabajo sobre un elemento específico, SharePoint Foundation examina el atributo InstantiationURL del elemento Workflow, en la definición de la plantilla de flujo de trabajo, para determinar el formulario correcto que se cargará.
SharePoint Foundation carga el formulario especificado y lo pasa a los siguientes parámetros de consulta en la dirección URL:
List El GUID de la lista a la cual pertenece el elemento.
ID El identificador del elemento de la lista en el que se inicia el flujo de trabajo.
Source La página desde la cual el usuario inició el flujo de trabajo.
TemplateID El GUID de la asociación de flujo de trabajo.
Además, puede programar su formulario para cargar los datos en el formulario de asociación para esta asociación de flujo de trabajo. Esta información se encuentra en la propiedad AssociationData del objeto SPWorkflowAssociation que representa la asociación de flujo de trabajo.
El programador del flujo de trabajo debe programar lo que sucede cuando el usuario envía los cambios a la página. En general, el formulario debe realizar las siguientes acciones:
Ubicar el objeto SPWorkflowManager para el sitio actual.
Usar el objeto SPWorkflowManager para invocar el método StartWorkflow y pasar los objetos SPListItem y SPWorkflowAssociation adecuados. El parámetro eventData permite pasar los datos del formulario de inicio en formato de cadena.
Devolver al usuario a la página de origen desde la que se inició el flujo de trabajo.
Cuando se llama al método M:Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(Microsoft.SharePoint.SPListItem,Microsoft.SharePoint.Workflow.SPWorkflowAssociation,System.String), el administrador del flujo de trabajo crea una instancia de flujo de trabajo en el elemento de SharePoint. El administrador de flujo de trabajo pasa los datos recopilados con el formulario de inicio al evento OnWorkflowActivated del propio flujo de trabajo.
Cualquier flujo de trabajo de SharePoint Foundation debe iniciarse con una actividad OnWorkflowActivated. La actividad OnWorkflowActivated contiene una propiedad, WorkflowProperties, que devuelve un objeto SPWorkflowActivationProperties. Este objeto representa las propiedades iniciales del flujo de trabajo cuando se inicia, tales como el usuario que agregó el flujo de trabajo y la lista y el elemento a los que se agregó el flujo de trabajo. Además, la propiedad AssociationData devuelve un objeto System.Collections.Hashtable que representa los datos personalizados proporcionados por el formulario de inicio del flujo de trabajo.
Vea también
Conceptos
Introducción a los formularios de flujo de trabajo
Formularios de modificación de flujo de trabajo (SharePoint Foundation)
Formularios de tareas de flujo de trabajo (SharePoint Foundation)