Actions sur les enregistrements d’emplacement SharePoint

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

Avec le SDK Microsoft Dynamics CRM, vous pouvez effectuer les actions suivantes sur les enregistrements d’emplacement Microsoft SharePoint.

  • Création, extraction, mise à jour et suppression des enregistrements d’emplacement

  • Définir un enregistrement d’emplacement de site par défaut

  • Associer un enregistrement d’emplacement de documents à un enregistrement d’entité

  • Récupérer les URL absolues et de collection de sites pour un enregistrement d’emplacement

Création, extraction, mise à jour et suppression des enregistrements d’emplacement

À l’aide des messages du SDK Microsoft Dynamics CRM sur les entités SharePointSite et SharePointDocumentLocation, vous pouvez créer, récupérer, mettre à jour et supprimer des enregistrements. Pour effectuer ces opérations sur l’entité SharePointSite, vous devez disposer du rôle Administrateur système dans Microsoft Dynamics 365. Pour obtenir la liste des messages pris en charge, consultez Messages et méthodes de l’entité SharePointSite et Messages et méthodes de l’entité SharePointDocumentLocation.

Notes

Les opérations effectuées sur les enregistrements d’emplacement SharePoint modifient uniquement les données dans Microsoft Dynamics 365. Il ne crée pas d’emplacements sur le serveur SharePoint, ni ne les met à jour, ni ne les supprime.

L’attribut SharepointSite.ValidationStatus indique le statut de validation de l’URL de site SharePoint. Les valeurs possibles pour cet attribut sont définies dans le groupe d’options Statut de validation (sharepoint_validationstatus).

L’attribut SharepointSite.ValidationStatusErrorCode indique la raison du statut de validation de l’URL de site SharePoint. Les valeurs possibles pour cet attribut sont définies dans le groupe d’options Raison du statut de validation (sharepoint_validationstatusreason).

Les emplacements de stockage dans SharePoint Server sont placés dans une hiérarchie où la collection de sites SharePoint est le conteneur pouvant contenir plusieurs sites, et chaque site peut contenir plusieurs sites ou bibliothèques de documents. Chaque bibliothèque de documents peut contenir plusieurs dossiers de document. Lors de la création d’enregistrements d’emplacement dans Microsoft Dynamics 365, indiquez le chemin d’accès ou l’URL de ces emplacements dans SharePoint Server.

URL absolue des enregistrements d’emplacement SharePoint

Il s’agit de l’URL complète d’un emplacement de stockage dans SharePoint. Vous pouvez spécifier l’URL absolue à l’aide de la propriété SharePointSite.AbsoluteURL ou SharePointDocumentLocation.AbsoluteURL.

Pour créer un enregistrement SharePointSite en spécifiant l'URL absolue :


// Instantiate a SharePoint site object.
// See the Entity Metadata topic in the SDK documentation to determine 
// which attributes must be set for each entity.
SharePointSite spSite = new SharePointSite
{
    Name = "Sample SharePoint Site",
    Description = "Sample SharePoint Site Location record",

    // TODO: Change this URL to a valid SharePoint URL.                        
    AbsoluteURL = "http://www.example.com",
};

// Create a SharePoint site record named Sample SharePoint Site.
_spSiteId = _serviceProxy.Create(spSite);

' Instantiate a SharePoint site object.
' See the Entity Metadata topic in the SDK documentation to determine 
' which attributes must be set for each entity.
Dim spSite As SharePointSite =
 New SharePointSite With {
  .Name = "Sample SharePoint Site",
  .Description = "Sample SharePoint Site Location record",
  .AbsoluteURL = "http://www.example.com"
 }
' TODO: Change this URL to a valid SharePoint URL.                        

' Create a SharePoint site record named Sample SharePoint Site.
_spSiteId = _serviceProxy.Create(spSite)

De même, pour créer un enregistrement d’emplacement de documents SharePoint en spécifiant l’URL absolue :

SharePointDocumentLocation spDocLoc = new SharePointDocumentLocation
{
    Name = "Sample SharePoint Document Location",
    Description = "Sample SharePoint Document Location record",
    AbsoluteUrl = "http://www.example.com/spdocloc"   
};
_spDocLocId = _serviceProxy.Create(spDocLoc);

Les URL absolues sont généralement fournies pour les enregistrements de site SharePoint, car il s’agit du conteneur ou des objets parents sous lesquels vous souhaitez créer d’autres emplacements pour stocker et gérer vos documents.

Notes

L'attribut SharePointDocumentLocation.LocationType détermine si un enregistrement SharePointDocumentLocation pointe vers un dossier SharePoint (0) ou vers un fichier OneNote (1). Lorsque vous créez une instance SharePointDocumentLocation (enregistrement), la valeur de l'attribut SharePointDocumentLocation.LocationType est définie sur 0 par défaut, pour indiquer qu'il pointe vers un dossier SharePoint. Pour plus d'informations sur l'assistance OneNote, voir Intégration de Microsoft Dynamics CRM avec OneNote 2015.

URL relative des enregistrements d’emplacement SharePoint

Il s’agit de l’emplacement associé un enregistrement d’emplacement par rapport à son enregistrement d’emplacement parent sur le serveur SharePoint. Lorsque vous spécifiez une URL relative pour un enregistrement d'emplacement SharePoint, vous devez également spécifier l'objet parent sous lequel il doit être créé.Microsoft Dynamics 365 utilise en interne l'URL de l'objet parent pour déterminer l'URL absolue de l'objet enfant. Par exemple, pour créer un enregistrement pour un emplacement de documents SharePoint sous le site SharePoint créé dans l’exemple précédent, vous devez spécifier les éléments suivants :


// Instantiate a SharePoint document location object.
// See the Entity Metadata topic in the SDK documentation to determine 
// which attributes must be set for each entity.
SharePointDocumentLocation spDocLoc = new SharePointDocumentLocation
{
    Name = "Sample SharePoint Document Location",
    Description = "Sample SharePoint Document Location record",

    // Set the Sample SharePoint Site created earlier as the parent site.
    ParentSiteOrLocation = new EntityReference(SharePointSite.EntityLogicalName, _spSiteId),
    RelativeUrl = "spdocloc",

    // Associate this document location instance with the Fourth Coffee
    // sample account record.
    RegardingObjectId = new EntityReference(Account.EntityLogicalName, _account1Id)
};

// Create a SharePoint document location record named Sample SharePoint Document Location.
_spDocLocId = _serviceProxy.Create(spDocLoc);

' Instantiate a SharePoint document location object.
' See the Entity Metadata topic in the SDK documentation to determine 
' which attributes must be set for each entity.
Dim spDocLoc As SharePointDocumentLocation =
 New SharePointDocumentLocation With {
  .Name = "Sample SharePoint Document Location",
  .Description = "Sample SharePoint Document Location record",
  .ParentSiteOrLocation = New EntityReference(SharePointSite.EntityLogicalName, _spSiteId),
  .RelativeUrl = "spdocloc",
  .RegardingObjectId = New EntityReference(Account.EntityLogicalName, _account1Id)
 }
' Set the Sample SharePoint Site created earlier as the parent site.
' Associate this document location instance with the Fourth Coffee
' sample account record.

' Create a SharePoint document location record named Sample SharePoint Document Location.
_spDocLocId = _serviceProxy.Create(spDocLoc)

L’URL absolue de l’objet enfant (emplacement de documents dans cet exemple) est le suivant : « URL_Parent/URL_Relative ». Par conséquent, dans cet exemple, l’URL absolue de l’emplacement de documents est http://www.example.com/spdocloc.

Les URL relatives sont généralement disponibles lorsque vous souhaitez créer un enregistrement d’emplacement plus bas dans la hiérarchie ou comme enregistrement enfant.

L’avantage de l’utilisation de l’URL relative est que si vous décidez de stocker vos documents sur un autre serveur SharePoint, il vous suffit de mettre à jour l’URL absolue de l’enregistrement d’emplacement des objets parent (probablement une collection de sites ou un enregistrement de site) dans Microsoft Dynamics 365, et tous les autres enregistrements de la hiérarchie continuent de fonctionner comme avant car les URL absolues (déterminées automatiquement par Microsoft Dynamics 365) ne sont pas à endommagées. Si vous avez utilisé des URL absolues pour ces enregistrements d’emplacement enfants, vous devez résoudre les URL individuellement.

Définir un enregistrement d’emplacement de site par défaut

Vous pouvez définir un enregistrement d’emplacement de site SharePoint par défaut afin que tous les emplacements de documents créés dans Microsoft Dynamics 365 soient créés automatiquement sous ce site. Pour créer un enregistrement d’emplacement site par défaut, utilisez la propriété SharePointSite.IsDefault, et définissez-la sur true. Vous pouvez définir un enregistrement d’emplacement de site par défaut lors de la création ou de la mise à jour d’un enregistrement d’emplacement de site.

Notes

La création automatique des enregistrements d’emplacement de documents n’est possible que si le site cible est un serveur SharePoint 2010 ou SharePoint 2013 et que le Composant de liste Microsoft Dynamics CRM pour SharePoint Server est installé sur la collection de sites SharePoint cible. Pour plus d’informations sur Composant Liste de Microsoft Dynamics CRM, voir Composant de liste Microsoft Dynamics CRM pour Microsoft SharePoint Server.

Associer un enregistrement d’emplacement de documents à un enregistrement d’entité

Vous pouvez associer un enregistrement d’emplacement de documents à un enregistrement d’entité. Ensuite, tous les documents pour l’enregistrement d’entité sont enregistrés dans cet emplacement sur le serveur SharePoint. Vous pouvez associer un enregistrement d’emplacement de documents SharePoint à une entité à l’aide de la propriété SharePointDocumentLocation.RegardingObjectId. L’exemple suivant montre comment faire cela :


// Instantiate a SharePoint document location object.
// See the Entity Metadata topic in the SDK documentation to determine 
// which attributes must be set for each entity.
SharePointDocumentLocation spDocLoc = new SharePointDocumentLocation
{
    Name = "Sample SharePoint Document Location",
    Description = "Sample SharePoint Document Location record",

    // Set the Sample SharePoint Site created earlier as the parent site.
    ParentSiteOrLocation = new EntityReference(SharePointSite.EntityLogicalName, _spSiteId),
    RelativeUrl = "spdocloc",

    // Associate this document location instance with the Fourth Coffee
    // sample account record.
    RegardingObjectId = new EntityReference(Account.EntityLogicalName, _account1Id)
};

// Create a SharePoint document location record named Sample SharePoint Document Location.
_spDocLocId = _serviceProxy.Create(spDocLoc);

' Instantiate a SharePoint document location object.
' See the Entity Metadata topic in the SDK documentation to determine 
' which attributes must be set for each entity.
Dim spDocLoc As SharePointDocumentLocation =
 New SharePointDocumentLocation With {
  .Name = "Sample SharePoint Document Location",
  .Description = "Sample SharePoint Document Location record",
  .ParentSiteOrLocation = New EntityReference(SharePointSite.EntityLogicalName, _spSiteId),
  .RelativeUrl = "spdocloc",
  .RegardingObjectId = New EntityReference(Account.EntityLogicalName, _account1Id)
 }
' Set the Sample SharePoint Site created earlier as the parent site.
' Associate this document location instance with the Fourth Coffee
' sample account record.

' Create a SharePoint document location record named Sample SharePoint Document Location.
_spDocLocId = _serviceProxy.Create(spDocLoc)

Récupérer les URL absolues et de collection de sites pour un enregistrement d’emplacement

Comme expliqué précédemment, SharePoint Server suit un modèle hiérarchique pour enregistrer les enregistrements. Si vous souhaitez récupérer l’URL (complète) absolue d’un enregistrement d’emplacement dans la hiérarchie et l’URL SiteCollection sous laquelle l’enregistrement d’emplacement est présent. Pour ce faire, vous pouvez utiliser le message RetrieveAbsoluteAndSiteCollectionUrlRequest.

Le message RetrieveAbsoluteAndSiteCollectionUrlRequest s’exécute correctement uniquement si les deux sont vrais :

  • Le Composant de liste Microsoft Dynamics CRM pour SharePoint Server est installé sur la collection de sites SharePoint sur le serveur SharePoint 2010 ou SharePoint 2013 cible. Pour plus d'informations, voir Composant de liste Microsoft Dynamics CRM pour Microsoft SharePoint Server.

  • L’enregistrement d’emplacement pour la collection de sites SharePoint parent existe dans Microsoft Dynamics 365, et la propriété SharePointSite.IsGridPresent a été définie sur true lors de la création de l’enregistrement d’emplacement parent.

Sinon, vous recevez une valeur vide ou une valeur incorrecte pour la propriété SiteCollectionUrl.

Pour plus d'informations, voir RetrieveAbsoluteAndSiteCollectionUrlRequest.

L’exemple suivant montre comment utiliser le message RetrieveAbsoluteAndSiteCollectionUrl :


// Retrieve the absolute URL and the Site Collection URL
// of the SharePoint document location record.
RetrieveAbsoluteAndSiteCollectionUrlRequest retrieveRequest = new RetrieveAbsoluteAndSiteCollectionUrlRequest
{
    Target = new EntityReference(SharePointDocumentLocation.EntityLogicalName, _spDocLocId)
};
RetrieveAbsoluteAndSiteCollectionUrlResponse retriveResponse = (RetrieveAbsoluteAndSiteCollectionUrlResponse)_serviceProxy.Execute(retrieveRequest);

Console.WriteLine("Absolute URL of document location record is '{0}'.", retriveResponse.AbsoluteUrl.ToString());
Console.WriteLine("Site Collection URL of document location record is '{0}'.", retriveResponse.SiteCollectionUrl.ToString());

' Retrieve the absolute URL and the Site Collection URL
' of the SharePoint document location record.
Dim retrieveRequest As RetrieveAbsoluteAndSiteCollectionUrlRequest =
 New RetrieveAbsoluteAndSiteCollectionUrlRequest With {
  .Target = New EntityReference(SharePointDocumentLocation.EntityLogicalName, _spDocLocId)
 }
Dim retriveResponse As RetrieveAbsoluteAndSiteCollectionUrlResponse =
 CType(_serviceProxy.Execute(retrieveRequest), RetrieveAbsoluteAndSiteCollectionUrlResponse)

Console.WriteLine("Absolute URL of document location record is '{0}'.", retriveResponse.AbsoluteUrl.ToString())
Console.WriteLine("Site Collection URL of document location record is '{0}'.", retriveResponse.SiteCollectionUrl.ToString())

Voir aussi

RetrieveAbsoluteAndSiteCollectionUrlRequest
RetrieveAbsoluteAndSiteCollectionUrlResponse
Intégration de Microsoft Dynamics CRM 2015 avec SharePoint
Présentation de l’intégration de SharePoint
Activer la gestion des documents pour les entités
Entités d’intégration SharePoint
Exemple : Activer la gestion des documents pour les entités
Exemple : créer, récupérer, mettre à jour et supprimer un enregistrement d’emplacement SharePoint
Exemple : Récupérer l’URL absolue et de collection de sites pour un enregistrement d’emplacement
Intégration de Microsoft Dynamics CRM avec OneNote 2015

© 2017 Microsoft. Tous droits réservés. Copyright