Comment les solutions Services Business Connectivity prennent-elles connaissance des suppressions dans la source de données externe ?
Dernière modification : jeudi 15 avril 2010
S’applique à : SharePoint Server 2010
Le client peut prendre connaissance des suppressions s’il utilise le mode d’opération En ligne lorsqu’il effectue les appels d’instance de méthode et qu’il reçoit une exception ObjectNotFoundException ou ObjectDeletedException. Toutefois, s’il utilise le mode Mis en cache, l’application cliente n’a aucun moyen de savoir si une ou plusieurs instances d’entité ont été supprimées dans l’application externe par un autre utilisateur ou une autre application.
Au cours de l’actualisation du cache, le processus de synchronisation tente d’exécuter toutes les requêtes. Si toutes les requêtes aboutissent pour un abonnement et que l’intervalle d’actualisation de l’abonnement a expiré, le processus supprime toutes les instances d’entité qui n’ont pas été retournées par les requêtes, puisque cela signifie qu’elles n’existent plus dans l’application externe.
Lorsque le processus de synchronisation exécute une opération dans la file d’attente et qu’un appel à SpecificFinder lève une exception ObjectNotFoundException ou ObjectDeletedException, cela signifie qu’un autre utilisateur ou une autre application a supprimé cette instance d’entité dans l’application externe. Dans ce cas, le processus de synchronisation examine la présence d’opérations en attente sur cette instance d’entité dans la file d’attente. En l’absence d’opérations en attente, il marque l’instance d’entité comme étant supprimée. Si une seule opération Delete est en attente, il marque l’opération comme ayant réussi et marque l’instance comme étant supprimée. Si d’autres opérations sont en attente, il marque les opérations comme ayant échoué et marque l’instance d’entité comme InError.