Comment le cache client Business Connectivity Services est-il rempli ?
Dernière modification : lundi 2 novembre 2009
S’applique à : SharePoint Server 2010
Dans le cache, les identités et les données d’instance sont stockées dans des emplacements distincts. Les identificateurs de toutes les instances d’entité appartenant à tous les abonnements installés pour l’utilisateur sur le client sont stockés dans un emplacement central. Les données d’instance d’entité de chaque entité dans un abonnement telles que ID, nom, adresse, etc. sont stockées dans un emplacement distinct. Par exemple, si l’utilisateur a deux abonnements, Client et Comptes, et que chacun possède 10 instances d’entité, les 20 identificateurs sont stockés dans un emplacement en cache de manière centralisée. Les données Client telles que ID, nom, adresse, qui appartiennent à l’abonnement sont stockées dans un emplacement distinct. Les données Comptes sont stockées dans un autre emplacement en cache. Si l’utilisateur modifie l’abonnement pour ajouter une requête qui renvoie 5 des 10 instances d’entité Client utilisées par la première requête dans l’abonnement, le cache ne duplique pas les données de ces instances d’entité à nouveau.
Pour remplir le cache pour un abonnement, le processus de synchronisation BCS fait plusieurs appels à l’application externe. Pour chaque requête définie dans l’abonnement, il effectue un appel Finder à l’application externe. Si Finder retourne la vue complète, aucun appel supplémentaire n’est effectué et le cache est rempli avec les données relatives à chaque instance d’entité. Toutefois, si Finder ne retourne pas de la vue complète, il remplit le cache avec les ID provenant du Finder. Si certains ID existent déjà dans le cache, ils ne sont pas dupliqués. Puis, pour chaque identificateur retourné par la requête, il effectue un appel SpecificFinder pour obtenir les champs renvoyés par la requête.
Il effectue ensuite autant d’appels SpecificFinder qu’il y a d’identités explicites dans l’abonnement et remplit le cache avec les instances d’entité renvoyées par l’instance de la méthode. Enfin, il remplit le cache avec les instances d’entité associées s’il y a des associations activées dans l’abonnement. Pour ce faire, il effectue autant d’appels à l’instance de méthode Associate qu’il y a d’instances d’entité dans le cache pour cet abonnement. Cela renvoie les ID des instances d’entité associées. Il appelle ensuite SpecificFinder sur chacun des ID renvoyés pour extraire les autres champs.
Important
Vous devez envisager la création de deux abonnements, un pour les clients et l’autre pour les commandes au lieu d’utiliser les associations d’abonnement. Cela permet de réduire le nombre d’appels à l’application externe et d’augmenter le débit de l’application.