Exemple de modèle BDC
Dernière modification : jeudi 15 avril 2010
S’applique à : SharePoint Server 2010
Le modèle BDC de l’exemple suivant représente un type de contenu externe Customer pour un système externe de type Service Web. Le code qui utilise l’exemple de service Web AdventureWorks fourni avec SDK SharePoint 2010 illustre les opérations suivantes :
Ajout d’un type de contenu externe simple WSCustomer avec un objet Method
Ajout d’un objet MethodInstance pour rendre la Method exécutable au moment de l’exécution
Association des deux types de contenu externe, Customer et Order
Exemple : ajout d’une simple entité avec un objet méthode
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog BDCMetadata.xsd" Name="AdventureWorksWSModel" IsCached="false" xmlns="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
<LobSystems>
<LobSystem Type="Wcf" Name="AdventureWorksWS">
<Properties>
<Property Name="WsdlFetchAuthenticationMode" Type="System.String">PassThrough</Property>
<Property Name="WcfMexDiscoMode" Type="System.String">Disco</Property>
<Property Name="WcfMexDocumentUrl" Type="System.String">http://webserver:90/webservice.asmx?wsdl</Property>
<Property Name="WcfProxyNamespace" Type="System.String">BCSServiceProxy</Property>
<Property Name="WildcardCharacter" Type="System.String">*</Property>
</Properties>
<LobSystemInstances>
<LobSystemInstance Name="AdventureWorksWS">
<Properties>
<Property Name="WcfAuthenticationMode" Type="System.String">PassThrough</Property>
<Property Name="WcfEndpointAddress" Type="System.String">http://webserver:90/webservice.asmx</Property>
<Property Name="ShowInSearchUI" Type="System.String"></Property>
</Properties>
</LobSystemInstance>
</LobSystemInstances>
<Entities>
<Entity Namespace="AdventureWorks” Version="1.0.0.0" EstimatedInstanceCount="10000" Name="WSCustomer" DefaultDisplayName="WSCustomer">
<Properties>
<Property Name="OutlookItemType" Type="System.String">Contact</Property>
</Properties>
<Identifiers>
<Identifier TypeName="System.Int32" Name="CustomerId" />
</Identifiers>
<Methods>
<Method IsStatic="false" Name="GetCustomerById">
<Parameters>
<Parameter Direction="In" Name="customerId">
<TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerId" Name="customerId" />
</Parameter>
<Parameter Direction="Return" Name="GetCustomerById">
<TypeDescriptor TypeName="BCSServiceProxy.SalesCustomer, AdventureWorksWS" Name="GetCustomerById">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Int32" ReadOnly="true" IdentifierName="CustomerId" Name="CustomerId" />
<TypeDescriptor TypeName="System.String" Name="Title" />
<TypeDescriptor TypeName="System.String" Name="FirstName">
<Properties>
<Property Name="OfficeProperty" Type="System.String">FirstName</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="MiddleName" />
<TypeDescriptor TypeName="System.String" Name="LastName">
<Properties>
<Property Name="OfficeProperty" Type="System.String">LastName</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="EmailAddress" />
<TypeDescriptor TypeName="System.String" Name="Phone" />
<TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate" />
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
<MethodInstances>
<!- See below>
</MethodInstances>
</Method>
</Methods>
</Entity>
</Entities>
</LobSystem>
</LobSystems>
</Model>
Exemple : ajout d’une MethodInstance pour rendre l’objet méthode exécutable lors de l’exécution
Dans l’exemple précédent, la Method n’est pas exécutable lors de l’exécution. L’exemple de code suivant montre comment ajouter une MethodInstance pour l’entité Customer précédente afin de rendre la Method exécutable.
<MethodInstances>
<MethodInstance Type="SpecificFinder" ReturnParameterName="GetCustomerById" Default="true" Name="GetCustomerById" DefaultDisplayName="Read Item WSCustomer">
<Properties>
<Property Name="LastDesignedOfficeItemType" Type="System.String">Contact</Property>
</Properties>
</MethodInstance>
</MethodInstances>
Associating Two entities, Customer and Order
Association est un type de MethodInstance. L’exemple de code suivant montre comment associer deux entités. Il part du principe qu’il existe un autre type d’entité nommé Order avec une méthode qui retourne un paramètre appelé 'Orders déjà défini dans le modèle. Ici, le modèle associe les deux entités Customer et Order.
<!—BDC has three types of association operations - AssociationNavigator, Associate and DisAssociate -->
<MethodInstances>
<Association Name="GetOrdersByCustomer" Type="AssociationNavigator" ReturnParameterName="Orders">
<!—Name of the Source entity in the association -->
<Source Name="Customer" Namespace="AdventureWorks">
<!—Name of the destination entity in the association -->
<Destination Name="Order" Namespace=" AdventureWorks">
</Association>
</MethodInstances>
Notes
Dans un souci de brièveté et de finition de cet exemple, les objets LobSystem et LobSystemInstance ne sont pas affichés pour le type de contenu externe.
Voir la rubrique Schéma BDCMetadata pour la documentation sur le schéma du modèle BDC, et la rubrique Business Connectivity Services : XML exemple et exemples de code pour davantage d’exemples.