Cómo crear un flujo de trabajo de SharePoint Designer 2013 con un paso de aplicación (extensión del flujo de trabajo de ejemplo que se usó en SPC 2012)

Artículo original publicado el jueves, 22 de noviembre de 2012

foto de jonghwalHola, soy JongHwa Lim, Administrador de programas del equipo de SharePoint Designer.
Hoy quiero mostrarle un flujo de trabajo de ejemplo que ya usamos en una demostración en la conferencia sobre SharePoint de 2012 (o SPC 2012). En esta entrada de blog, pretendo modificarlo y extenderlo para que resulte más realista. En esta entrada encontrará sugerencias para crear flujos de trabajo con SharePoint Designer 2013 (o SPD 2013). Para realizar una explicación detallada, supondremos que ya conoce SharePoint Designer 2013 y el tipo de flujo de trabajo de SharePoint 2013. De no ser así, lea las entradas de blog anteriores para obtener más información sobre estos flujos de trabajo.

Un flujo de trabajo para una empresa de eventos de ocio

Imaginemos que existe una empresa de actividades de ocio denominada Contoso Leisure, que imparte lecciones de equitación, pesca, tiro al plato, parapente y paracaidismo.

imagen

Y supongamos que necesitamos un flujo de trabajo de aprobación que haga lo siguiente:

  • Solicitar la aprobación del grupo de SharePoint del coordinador del evento.
  • Si se rechaza, enviar un mensaje de rechazo al cliente.
  • Si se aprueba, esperar hasta los 5 días anteriores a la fecha del evento o la lección, y enviar un aviso por correo electrónico para el evento.
    • El mensaje de aviso debe contener información sobre el evento, como la información meteorológica y un mapa con indicaciones de ruta. 

En este flujo de trabajo de ejemplo usaremos dos servicios web, aunque solo uno de ellos se controlará con una acción de "Llamar al servicio web HTTP" de SPD. El otro servicio web se incluirá en una variable de cadena y se ubicará en el cuerpo del correo con una etiqueta <IMG>. Para más información, consulte la página de la API de mapas de Bing (https://www.microsoft.com/maps/developers/web.aspx).

Si decide crear el flujo de trabajo usted mismo, se creará el flujo siguiente:

imagen

imagen

imagen

Observe que la fase "Obtener información meteorológica" incluye una acción "Llamar al servicio web HTTP" y, si hace clic en el primer parámetro, verá que se ha usado la dirección URL de la captura de pantalla siguiente. En esta dirección se almacena la clave de servicio web en una lista independiente denominada "Claves del servicio web". Puede obtener una explicación sobre las acciones Servicio web y Obtener elemento de Diccionario, el contenedor de bucle, e información adicional sobre el uso de estos elementos, en una entrada de blog anterior de HyongGuk Kim (https://blogs.technet.com/b/office_sp/archive/2012/10/11/c-243-mo-trabajar-con-un-servicio-web-mediante-la-acci-243-n-llamar-al-servicio-web-http.aspx). 

imagen

Si hace clic en la acción "Establecer variable de flujo de trabajo" de la fase "Enviar aviso por correo electrónico", observará que en la lista "Claves del servicio web" también se almacena el token o la clave del servicio web.

imagen 

Hagámoslo más realista

En la vida real, las claves del servicio web deben administrarse de un modo seguro y, para asegurarlas, las almacenamos en una lista a la que solo pueden acceder las personas con el privilegio Control total. Sin embargo, en este caso, la lógica normal del flujo de trabajo no conseguiría acceder a las claves del servicio web porque se ejecuta con los permisos Iniciador de flujo de trabajo y (valor lógico Y) de la aplicación de flujo de trabajo. Por ello, si el iniciador del flujo de trabajo no dispone de permiso para acceder a la lista que contiene las claves del servicio web, el flujo de trabajo generará errores. Para que la lógica del flujo de trabajo se ejecute solo con el permiso de la aplicación de flujo de trabajo, que es de lectura y escritura para todas las listas de sitios, deberá usar un paso de aplicación.

Paso 1. Conseguir un permiso independiente para asegurar la lista

Como hemos visto, queremos que la lista que contiene las claves del servicio web solo se encuentre disponible para los usuarios con Control total. Para ello, deberá detener la herencia y quitar de la lista a todos los usuarios que no resulten necesarios.

Supongamos que tenemos la lista "Claves del servicio web". Vaya a Configuración de la lista y a la página Permiso para esta lista, para acceder al menú desde el que podrá detener la herencia.

imagen

Tras interrumpir la herencia, elija a los usuarios que no disponen de Control total, tal como se muestra en esta captura de pantalla, y haga clic en el botón Quitar permisos de usuario.

imagen

A partir de este momento, la lista solo contendrá a usuarios con Control total.

imagen

Paso 2. Activar la característica Paso de aplicación

Para usar los pasos de aplicación, active la característica del sitio Los flujos de trabajo pueden usar permisos de la aplicación en Configuración del sitio->Administrar las características del sitio, tal como se muestra en esta captura de pantalla.

imagen

A continuación, se habilitará el botón Paso de aplicación en SPD.

imagen

Paso 3. Agregar el paso de aplicación e incluir la lógica en él

Busque los fragmentos de lógica que hacen referencia a la lista "Claves del servicio web" y ubíquelos en un contenedor del paso de aplicación. Tenemos dos fragmentos de lógica que queremos incluir en el paso de aplicación: una acción para llamar al servicio web HTTP y otra para establecer la variable RouteMap, tal como muestra esta captura de pantalla:  

imagen

imagen

Paso 4. Publicar el flujo de trabajo

Cuando publique el flujo de trabajo, aparecerá el cuadro de diálogo siguiente para explicar el comportamiento que se aplicará.

imagen

Espero que haya disfrutado de este artículo y haya aprendido a usar correctamente los pasos de aplicación. Le espero en el próximo artículo.

Esta entrada de blog es una traducción. Puede consultar el artículo original en How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012).