Procédure : Utiliser Business Connectivity Services avec des flux de travail SharePoint
Dernière modification : vendredi 16 avril 2010
S’applique à : SharePoint Server 2010
Microsoft Business Connectivity Services (BCS) vous permet d’accéder à des données externes dans des flux de travail SharePoint de deux manières :
par le biais de flux de travail sans code créés à l’aide de Microsoft SharePoint Designer 2010 et qui interagissent avec des listes externes ;
par le biais de flux de travail qui contiennent du code (flux de travail avec code) créés dans Microsoft Visual Studio et qui interagissent avec des listes externes ou avec le modèle objet Microsoft SharePoint 2010 ou Business Connectivity Services.
Avant de générer des flux de travail pour vos scénarios, considérez les points suivants :
Il est impossible d’associer des flux de travail à une liste externe. Dans SharePoint Server 2010, bien que les flux de travail opèrent avec des listes externes, ils ne peuvent pas être associés directement à des listes externes. Vous pouvez créer un flux de travail de site ou avoir un flux de travail de liste sur une liste SharePoint, telle qu’une bibliothèque de documents, et le lire ou le mettre à jour à partir d’une liste externe. Vous pouvez également utiliser un élément de liste externe comme destination d’un processus de tâche dans SharePoint Designer ; cependant, le lien vers la tâche n’affichera pas de titre pour l’élément de liste externe.
Les flux de travail qui accèdent au Service BDC (Business Data Connectivity) s’exécutent toujours en tant que compte de service, même lors de l’étape d’emprunt d’identité. Un flux de travail s’exécute toujours en tant que compte de service et est pris en charge uniquement lors de l’utilisation du Service Banque d’informations sécurisé ou de RevertToSelf (qui est désactivé par défaut en raison des implications en matière de sécurité, voir Vue d’ensemble de la sécurité de Business Connectivity Services (SharePoint Foundation 2010) pour plus d’informations). Cette limitation peut aider à protéger SharePoint 2010 du code et des modèles BDC malveillants. L’accès au système principal s’effectuant toujours par le biais d’un seul compte, il est difficile de toujours savoir qui apporte les modifications. Vous pouvez faire en sorte que le flux de travail passe le nom SPUser à une colonne sur la liste externe ou à une activité personnalisée qui utilise les API BDC. Ce scénario est présenté uniquement à titre d’information et ne doit pas être utilisé comme fonctionnalité de sécurité.
Définition d’un flux de travail sans code sur une liste SharePoint afin de mettre à jour une liste externe à l’aide de SharePoint Designer 2010
SharePoint Designer 2010 vous permet de créer des flux de travail qui n’utilisent pas de code (flux de travail sans code) et que vous pouvez attacher à toute liste ou tout site SharePoint. Les activités de flux de travail Créer un élément dans la liste, Mettre à jour l’élément de la liste et Supprimer l’élément de la liste pour les listes SharePoint sont étendus de façon à prendre en charge les listes externes. En outre, vous pouvez utiliser d’autres activités telles que Définir la variable de flux de travail avec des listes externes pour sélectionner une liste ou un élément dans une liste SharePoint. Les flux de travail de liste peuvent être démarrés automatiquement en cas d’ajout ou de modification d’un élément de liste et peuvent contenir une logique conditionnelle pour des actions associées. Le démarrage des flux de travail de site ne nécessite pas de déclencheur.
SharePoint Designer 2010 vous permet de configurer une liste d’activités telles que Créer un élément dans la liste ou Mettre à jour l’élément de liste dans une liste SharePoint afin de lire ou d’écrire des données dans une liste externe. Vous pouvez par exemple créer un flux de travail qui met à jour un élément de liste dans une liste externe chaque fois qu’un élément de liste dans une liste SharePoint par défaut ou un document dans une bibliothèque de documents change. La procédure suivante décrit les étapes nécessaires à la création d’un flux de travail simple qui met à jour le champ Adresse dans une liste externe Clients lorsqu’un document Nouvelles informations de contact est ajouté pour le client dans la bibliothèque de documents Contacts clients.
Pour créer un flux de travail qui met automatiquement à jour une liste externe lorsqu’un nouvel élément est créé dans une bibliothèque de documents
Dans SharePoint Designer 2010, naviguez jusqu’à la bibliothèque de documents Contacts clients.
Dans le Ruban serveur, cliquez sur Nouveau flux de travail de liste.
Spécifiez un nom et une description pour le flux de travail, puis cliquez sur Suivant. Le Concepteur de flux de travail s’ouvre dans SharePoint Designer 2010.
Insérez une action Mettre à jour l’élément de la liste, comme illustré à la Figure 1.
Figure 1. Insertion de l’action Mettre à jour l’élément de la liste
Cliquez sur le lien cette liste, accédez à la liste externe Clients dans le champ Liste, puis sélectionnez-la. Cliquez sur le bouton Ajouter pour ajouter les champs que vous souhaitez mettre à jour dans la liste externe.
Figure 2. Ajoutez les champs à mettre à jour dans la liste externe
Dans la boîte de dialogue Affectation de valeurs, sélectionnez le champ Adresse dans la liste externe que vous souhaitez mettre à jour et le champ Adresse correspondant dans la bibliothèque de documents, puis cliquez sur OK.
Notes
La boîte de dialogue Affectation de valeurs montre tous les champs dans le paramètre de retour du SpecificFinder. Si un Creator ou Updater requiert uniquement un sous-ensemble des champs, sélectionnez uniquement ces champs dans cette boîte de dialogue.
Figure 3. Boîte de dialogue Affectation de valeurs
Spécifiez les champs correspondants dans les listes source et de destination de sorte que SharePoint puisse identifier les éléments correspondants dans la bibliothèque de documents et la liste externe. Pour cela, sélectionnez le champ IDClient de la liste externe et l’Élément actif : ID du client de la bibliothèque de documents (en supposant que ces champs peuvent servir à identifier les éléments correspondants dans les deux listes). Cliquez sur OK.
Figure 4. Spécifiez les champs correspondants dans les listes source et de destination
Vous avez maintenant créé un flux de travail simple qui met à jour une liste externe, comme illustré à la Figure 5.
Figure 5. Flux de travail simple qui met à jour une liste externe
Pour démarrer automatiquement ce flux de travail lorsqu’un élément est créé dans la bibliothèque de documents Contacts clients, cliquez sur le bouton Paramètres du flux de travail dans le Ruban, puis cliquez sur Démarrer automatiquement le flux de travail lorsqu’un élément est créé, comme illustré à la Figure 6.
Figure 6. Options de démarrage de flux de travail
Vous avez maintenant créé un flux de travail qui met automatiquement à jour une liste externe lorsqu’un nouvel élément est créé dans une bibliothèque de documents.
Conseils relatifs à l’utilisation, aux activités et aux erreurs courantes liées aux flux de travail
Utilisez les activités de flux de travail SharePoint intégrées dans les scénarios suivants :
Vous devez lire une petite quantité de colonnes dans une liste externe afin de les utiliser ultérieurement dans votre flux de travail.
La lecture de plusieurs valeurs à partir du même élément de liste externe n’entraîne pas la mise en cache de l’élément. Pour cette raison, l’activité appelle d’abord la méthode Read List (Finder), puis la méthode de lecture d’élément (SpecificFinder) pour chaque colonne lue. La lecture de 10 propriétés dans une liste de 2000 éléments génère donc 20 appels au service BDC et extrait 20 010 éléments du système externe.
Vous devez créer, mettre à jour ou supprimer un élément d’une liste externe.
Vous devez avoir connaissance des points suivants :
La lecture d’une valeur à partir d’un élément qui n’a aucune valeur renvoie null. Dans SharePoint 2010, ceci équivaut à empty, mais dans les listes externes il existe des différences entre null et introuvable.
Après la création d’un élément dans une liste externe, toute modification apportée à cet élément à partir du même flux de travail doit utiliser l’identité BDC renvoyée à partir de Créer un élément dans la liste.
Par défaut, Business Connectivity Services affiche tous les champs SpecificFinder. Par conséquent, si un Creator ou Updater requiert uniquement un sous-ensemble des champs, sélectionnez uniquement les champs requis dans l’interface utilisateur du flux de travail dans SharePoint Designer 2010.
Le seul moyen d’obtenir une identité BDC est à partir d’un Creator. Vous devez utiliser l’identité BDC renvoyée par le Creator si vous souhaitez trouver l’élément externe qui vient d’être créé. Vous ne pouvez pas le trouver à l’aide d’un autre champ. En outre, pour trouver un élément externe que vous venez de mettre à jour, vous ne pouvez pas utiliser l’identité BDC car elle n’est pas renvoyée par l’Updater. La seule solution consiste à le trouver par le biais d’un autre champ.
Si vous créez un flux de travail à utiliser avec un formulaire InfoPath, assurez-vous que les champs corrects dans le modèle de formulaire sont promus comme colonnes SharePoint lors du processus de publication, afin de pouvoir être utilisés dans des actions et conditions de flux de travail.
Création de flux de travail basés sur du code à l’aide de Visual Studio
Visual Studio vous permet de créer des flux de travail avec code qui interagissent avec des données externes par le biais de listes externes ou du modèle objet SharePoint 2010 et du modèle objet Business Connectivity Services. Vous pouvez également créer des activités de flux de travail personnalisées. Pour plus d’informations, voir les rubriques relatives aux flux de travail SharePoint dans le Kit de développement logiciel SDK SharePoint 2010.