Partager via


Analyser des objets BLOB (binary large) dans SharePoint

Découvrez comment modifier le fichier de modèle BDC pour un connecteur d’indexation BCS de base de données afin d’activer la recherche dans le robot SharePoint pour analyser les données BLOB (Binary Large Object) stockées dans une base de données SQL Server.

Analyse de données BLOB

Prend en charge les Service Business Data Connectivity (BDC) lecture des types de données BLOB, qui est utile pour transmettre en continu des données BLOB à partir de systèmes externes. Pour ce faire, vous devez vous assurer que la table de base de données contenant les données externes est configurée pour prendre en charge cette. Puis, vous ajoutez une méthode StreamAccessor vers le fichier de modèle BDC pour le connecteur d'indexation BCS de la source de contenu externe.

Configuration de la table de base de données SQL Server pour les données BLOB

La table de base de données Microsoft SQL Server doit contenir une colonne qui indique l'extension ou le type MIME des données BLOB. Si le schéma de table de base de données ne comprend pas de colonne avec ces informations, vous devez l'ajouter au schéma. Les tableaux suivants contiennent un exemple de schéma de table de base de données avec cette colonne et des exemples de valeurs stockées dans la table de base de données.

Tableau 1. Exemple de schéma de table de base de données

Nom de la colonne Type de données
ID Int
DisplayName nvarchar(50)
Extension nvarchar(50)
Data varbinary(MAX)
ContentType nvarchar(MAX)

Tableau 2. Exemples de valeurs de table de base de données

ID Nom complet Extension Données Type de contenu
1 Fichier1 .docx 0x504B… application/vnd.openxmlformats-officedocument.wordprocessingml.document
2 Fichier2 .doc 0xD... application/msword
3 Fichier3 .txt Oxe... text/plain

Modification du fichier de modèle BDC pour activer l'analyse des données BLOB

After you confirm that the database table contains the extension or MIME type information for the BLOB data, you can use Microsoft SharePoint Designer to create an external content type that is based on the table containing the BLOB data. Then, you can create all the operations. Pour plus d’informations, consultez How to: Create External Content Types et How to: Create an External Content Type Based on a SQL Server Table.

Après avoir créé le type de contenu externe BLOB, vous êtes prêt à modifier le fichier de modèle BDC pour activer l'analyse. Vous ne pouvez pas effectuer ces modifications dans SharePoint Designer. Ainsi, vous devez exporter le fichier de modèle BDC et utilisez un éditeur XML pour apporter ces modifications manuellement.

Pour exporter le fichier de modèle BDC pour le type de contenu externe BLOB

  1. Dans SharePoint Designer, cliquez sur Types de contenu externe dans le volet de navigation gauche pour afficher les types de contenu externes qui sont définis dans la mesure où stocker les métadonnées de l'application de service du site BDC.
  2. Dans la liste Types de contenu externe, sélectionnez le type de contenu externe BLOB. Ensuite, cliquez sur Exporter le modèle BDC sur le Ruban Serveur.
  3. Tapez un nom dans la zone de texte Nom du modèle BDC, puis cliquez sur OK.
  4. Sélectionnez l'emplacement où vous voulez enregistrer le fichier de modèle BDC (.bdcm), puis cliquez sur Enregistrer.

Pour activer l’analyse du type de contenu externe BLOB

  1. Dans un éditeur XML, ouvrez le fichier de modèle BDC créé lors de la section précédente.

  2. Créez une méthode qui renvoie le champ BLOB. Vous devez définir une instance de méthode de type StreamAccessor pour cette méthode, comme indiqué dans l'exemple suivant.

    Remarque

    [!REMARQUE] Le nom de la table dans cet exemple est « Attachment ».

    <Method Name="GetData">
      <Properties>
        <Property Name="RdbCommandText" Type="System.String">SELECT Data FROM [dbo].[Attachment] WHERE [Id] = @Id </Property>
        <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral,
          PublicKeyToken=b77a5c561934e089">Text</Property>
      </Properties>
      <Parameters>
        <Parameter Direction="In" Name="@Id">
          <TypeDescriptor TypeName="System.Int32" IdentifierName="Id" Name="Id" />
        </Parameter>
        <Parameter Name="StreamData" Direction="Return">
          <TypeDescriptor TypeName="System.Data.IDataReader, System.Data,
            Version=2.0.3600.0, Culture=neutral,
            PublicKeyToken=b77a5c561934e089"
            IsCollection="true" Name="DataReaderTypeDescriptorName">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data,
                Version=2.0.3600.0,
                Culture=neutral,
                PublicKeyToken=b77a5c561934e089"
                Name="DataRecordTypeDescriptorName">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.SqlTypes.SqlBytes, System.Data,
                    Version=2.0.3600.0,
                    Culture=neutral,
                    PublicKeyToken=b77a5c561934e089" Name="Data" />
                </TypeDescriptors>
              </TypeDescriptor>
            </TypeDescriptors>
          </TypeDescriptor>
         </Parameter>
        </Parameters>
      <MethodInstances>
        <MethodInstance Name="DataAccessor"
          Type="StreamAccessor"
          ReturnParameterName="StreamData"
          ReturnTypeDescriptorName="Data">
          <Properties>
    <!-- If extension field is available-->
            <Property Name="Extension" Type="System.String">Extension</Property>
    <!--If MimeType is available-->
            <Property Name="ContentType" Type="System.String">ContentType</Property>
    <!--If attachments is to be displayed in profile pages, add the following property-->
            <Property Name="MimeTypeField" Type="System.String">ContentType</Property>
          </Properties>
        </MethodInstance>
      </MethodInstances>
    </Method>
    

    Si le type MIME est identique pour tous les objets BLOB, vous pouvez remplacer cette ligne de code dans l'exemple précédent :

    <Property Name="ContentType" Type="System.String">ContentType</Property>

    par la ligne de code suivante :

    <Property Name=" ContentType " Type="System.String">application/vnd.openxmlformats-officedocument.wordprocessingml.document</Property>

  3. Réimportez les fichiers de modèle à l'aide de l'administration l'interface utilisateur de l'application du service Business Connectivity Services.

  4. Créer la source de contenu pour le type de contenu externe.

  5. Lancez une analyse complète de la source de contenu.

Voir aussi