Procedimiento para usar los Servicios de conectividad empresarial con flujos de trabajo de SharePoint
Última modificación: viernes, 16 de abril de 2010
Hace referencia a: SharePoint Server 2010
Servicios de conectividad empresarial (BCS) de Microsoft permite obtener acceso a datos externos en los flujos de trabajo de SharePoint de dos maneras:
A través de flujos de trabajo sin código creados mediante Microsoft SharePoint Designer 2010 que interactúan con listas externas.
A través de flujos de trabajo que contienen código (flujos de trabajo con código) creados en Microsoft Visual Studio que interactúan con listas externas o con los modelos de objetos Microsoft SharePoint 2010 o Servicios de conectividad empresarial.
Antes de generar flujos de trabajo para los escenarios, considere lo siguiente:
Los flujos de trabajo no se pueden asociar con una lista externa. En SharePoint Server 2010, aunque los flujos de trabajo funcionan con listas externas, no se pueden asociar directamente con las listas externas. Puede crear un flujo de trabajo de sitio o tener un flujo de trabajo de lista en una lista de SharePoint, como una biblioteca de documentos, y hacer que se lea o actualice desde una lista externa. También puede usar un elemento de lista externa como un destino para un proceso de tareas en SharePoint Designer; sin embargo, el vínculo a la tarea no mostrará un título para el elemento de lista externa.
Los flujos de trabajo que obtienen acceso a Servicio de conectividad de datos profesionales (BDC) siempre se ejecutan como una cuenta de servicio, incluso en el paso de suplantación. Un flujo de trabajo siempre se ejecuta como una cuenta de servicio y se admite únicamente cuando se usa Servicio de almacenamiento seguro o RevertToSelf (deshabilitados de manera predeterminada debido a limitaciones de seguridad; para obtener más información, vea el tema acerca de la seguridad de Servicios de conectividad empresarial). Esta limitación puede ayudar a proteger a SharePoint 2010 contra código y modelos BDC malintencionados. Dado que el acceso al sistema back-end siempre es a través de una cuenta, se puede perder la pista de quién está realizando los cambios. Puede hacer que el flujo de trabajo pase el nombre de SPUser a una columna en la lista externa o a una actividad personalizada que usa las API de BDC. Esta situación se presenta únicamente con fines informativos y no debe usarse como una característica de seguridad.
Definición de un flujo de trabajo sin código en una lista de SharePoint para actualizar una lista externa mediante SharePoint Designer 2010
SharePoint Designer 2010 permite crear flujos de trabajo que no usan código (flujos de trabajo sin código) que se puede asociar a cualquier sitio o lista de SharePoint. Las actividades de flujo de trabajo Crear elemento de lista, Actualizar elemento de lista y Eliminar elementos de lista de las listas de SharePoint se amplían para admitir listas de externas. Además, puede usar otras actividades, como Establecer variable de flujo de trabajo con listas externas para elegir una lista o un elemento de una lista de SharePoint. Los flujos de trabajo de la lista se pueden iniciar automáticamente cuando se agrega o modifica un elemento de lista, y pueden incluir lógica condicional para las acciones asociadas. Los flujos de trabajo de sitio no requieren un desencadenador para iniciarse.
Al usar SharePoint Designer 2010, puede configurar una actividad de lista, como Crear elemento de lista o Actualizar elemento de lista en una lista de SharePoint para leer o escribir datos en una lista externa. Por ejemplo, puede crear un flujo de trabajo que actualice un elemento de lista de una lista externa cada vez que cambie un elemento de lista en una lista de SharePoint predeterminada o un documento en una biblioteca de documentos. El siguiente procedimiento le guía a través de los pasos para crear un flujo de trabajo simple que actualiza el campo Dirección en una lista externa Clientes cuando se agrega un documento Nueva información de contacto para el cliente en la biblioteca de documentos Contactos del cliente.
Para crear un flujo de trabajo que actualice automáticamente una lista externa cuando se crea un nuevo elemento en una biblioteca de documentos
En SharePoint Designer 2010, vaya a la biblioteca de documentos Contactos del cliente.
En Cinta de Server, haga clic en Nuevo flujo de trabajo de lista.
Especifique un nombre y una descripción para el flujo de trabajo y haga clic en Siguiente. El Diseñador de flujo de trabajo se abrirá en SharePoint Designer 2010.
Inserte una acción Actualizar elemento de lista, como se muestra en la figura 1.
Figura 1. Insertar la acción Actualizar elemento de lista
Haga clic en el vínculo esta lista y busque y seleccione la lista externa Clientes en el campo Lista. Haga clic en el botón Agregar para agregar los campos que desee actualizar en la lista externa.
Figura 2. Agregar campos para actualizar en la lista externa
En el cuadro de diálogo Asignación de valores, seleccione el campo Dirección de la lista externa que desee actualizar y el campo Dirección que coincida en la biblioteca de documentos y, a continuación, haga clic en Aceptar.
Nota
El cuadro de diálogo Asignación de valores muestra todos los campos en el parámetro de devolución del SpecificFinder. Si un creador o actualizador requiere solo un subconjunto de los campos, seleccione únicamente los campos de este cuadro de diálogo.
Figura 3. Cuadro de diálogo Asignación de valores
Especifique los campos que coincidan en las listas de origen y destino para que SharePoint pueda identificar los elementos coincidentes en la biblioteca de documentos y en la lista externa. Para ello, seleccione el campo CustomerId de la lista externa y el Elemento actual: Id. del cliente de la biblioteca de documentos (suponiendo que estos campos se pueden usar para identificar los elementos que coinciden en ambas listas). Haga clic en Aceptar.
Figura 4. Especificar los campos que coinciden en las listas de origen y destino
Ahora ha creado un flujo de trabajo simple que actualiza una lista externa, como se muestra en la figura 5.
Figura 5. Flujo de trabajo simple que actualiza una lista externa
Para iniciar automáticamente este flujo de trabajo cuando se crea un elemento en la biblioteca de documentos Contactos del cliente, haga clic en el botón Configuración del flujo de trabajo de la cinta de opciones y, a continuación, haga clic en Iniciar flujo de trabajo automáticamente cuando se cree un elemento, como se muestra en la figura 6.
Figura 6. Opciones de inicio de flujo de trabajo
Ha creado correctamente un flujo de trabajo que actualiza automáticamente una lista externa cuando se crea un nuevo elemento en una biblioteca de documentos.
Sugerencias sobre actividades, uso y errores comunes del flujo de trabajo
Use las actividades de flujo de trabajo integradas de SharePoint en estos casos:
Debe leer un pequeño número de columnas en una lista externa para usarlas más adelante en el flujo de trabajo.
La lectura de varios valores del mismo elemento de lista externa no almacena el elemento en caché. Por esto, la actividad llama primero al método Read List (Finder) y, a continuación, al método de lectura de elemento (SpecificFinder) para cada columna que se lee. Por lo tanto, leer 10 propiedades de una lista de 2.000 elementos genera 20 llamadas a BDC y recupera 20.010 elementos del sistema externo.
Debe crear, actualizar o eliminar un elemento de una lista externa.
Es importante tener en cuenta lo siguiente:
La lectura de un valor de un elemento que no tiene ningún valor devuelve null. En SharePoint 2010, esto es lo mismo que empty, pero en las listas de externas, existen diferencias entre null y no encontrado.
Después de crear un elemento en una lista externa, los cambios realizados en ese elemento en el mismo flujo de trabajo deben usar la identidad de BDC que se devuelve de Crear elemento de lista.
De manera predeterminada, los Servicios de conectividad empresarial muestran todos los campos de SpecificFinder. Por lo tanto, si un creador o actualizador requiere solo un subconjunto de los campos, seleccione únicamente los campos requeridos en la interfaz de usuario de flujo de trabajo de SharePoint Designer 2010.
La única forma de obtener una identidad de BDC es a partir de un Creador. Debe usar la identidad de BDC devuelta por el Creador si desea buscar el elemento externo recientemente creado. No puede buscarlo a través de otro campo. Además, para buscar un elemento externo recientemente actualizado, no puede usar la identidad de BDC porque no el actualizador no la devuelve. La única forma es buscarlo con otro campo.
Si está creando un flujo de trabajo para usarlo con un formulario de InfoPath, asegúrese de que los campos correspondientes de la plantilla de formulario se promueven como columnas de SharePoint durante el proceso de publicación para que se puedan usar en acciones y condiciones de flujo de trabajo.
Creación de flujos de trabajo basados en código con Visual Studio
Al usar Visual Studio, puede crear flujos de trabajo de código que interactúan con datos externos a través de listas de externas o el modelo de objetos de SharePoint 2010 y el modelo de objetos de Servicios de conectividad empresarial. También puede crear actividades de flujo de trabajo personalizadas. Para obtener más información, vea los temas de flujo de trabajo de SharePoint en el SDK de SharePoint 2010.