Rastrear objetos binários grandes (BLOBs) no SharePoint

Saiba como modificar o arquivo de modelo BDC para um conector de indexação BCS de banco de dados para permitir que o rastreador da Pesquisa no SharePoint rastreie dados de objeto binário grande (BLOB) armazenados em um banco de dados do SQL Server.

Rastrear os dados BLOB

O Business Data Connectivity (BDC) service oferece suporte à leitura tipos de dados BLOB, que é útil para transmitir dados BLOB de sistemas externos. Para que isso funcione, você precisará garantir que a tabela de banco de dados que contém os dados externos está configurada para dar suporte a isso. Você adiciona um método StreamAccessor para o arquivo de modelo BDC para o conector de indexação de BCS da fonte de conteúdo externo.

Configurando a tabela de banco de dados do SQL Server para dados BLOB

A tabela de banco de dados Microsoft SQL Server deve ter uma coluna que especifica a extensão ou o tipo MIME dos dados BLOB. Se o esquema de tabela de banco de dados não incluir uma coluna com essas informações, você deve adicioná-lo ao esquema. As tabelas a seguir contêm um exemplo de um esquema de banco de dados de tabela com valores de coluna e de amostra para ela que são armazenadas na tabela de banco de dados.

Tabela 1. Esquema de tabela de banco de dados de exemplo

Nome da Coluna Tipo de dados
Id Int
DisplayName nvarchar (50)
Extensão nvarchar (50)
Dados varbinary (max)
ContentType nvarchar (máx.)

Tabela 2. Exemplo de valores de tabela de banco de dados

Id Nome de exibição Extensão Dados Tipo de Conteúdo
1 Arquivo1 .docx 0x504B … application/vnd.openxmlformats-officedocument.wordprocessingml.document
2 Arquivo2 .doc 0xD... aplicativo/msword
3 Arquivo3 .txt Oxe... texto/simples

Modificando o arquivo de modelo BDC para habilitar o rastreamento de dados 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. Para obter mais informações, consulte Como criar tipos de conteúdo externos e como criar um tipo de conteúdo externo com base em uma tabela de SQL Server.

Após criar o tipo de conteúdo externo do BLOB, você estará pronto para modificar o arquivo de modelo de BDC para habilitar o rastreamento. Você não pode fazer essas modificações no SharePoint Designer. Portanto você deve exportar o arquivo de modelo de BDC e use um editor de XML para fazer essas alterações manualmente.

Para exportar o arquivo de modelo BDC para o tipo de conteúdo externo do BLOB

  1. No SharePoint Designer, clique em Tipos de conteúdo externo no painel de navegação à esquerda para exibir os tipos de conteúdo externos que são definidos em que o repositório de metadados de BDC do aplicativo de serviço do site.
  2. Na lista de Tipos de conteúdo externo, selecione o tipo de conteúdo externo do BLOB. Em seguida, clique em Exportar o modelo BDC no Server ribbon.
  3. Digite um nome na caixa de texto Nome do modelo BDC e, em seguida, clique em OK.
  4. Selecione o local onde deseja salvar o arquivo de modelo (. bdcm) BDC e clique em Salvar.

Para habilitar o rastreamento de tipo de conteúdo externo do BLOB

  1. Em um editor de XML, abra o arquivo de modelo de BDC que você criou na seção anterior.

  2. Crie um novo método que retorna o campo BLOB. Você deve definir uma instância de método do tipo StreamAccessor para este método, conforme mostrado no exemplo a seguir.

    Observação

    [!OBSERVAçãO] O nome da tabela neste exemplo é um anexo.

    <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>
    

    Se o tipo MIME é o mesmo para todos os BLOBs, você pode substituir essa linha de código do exemplo anterior:

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

    com a seguinte linha de código:

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

  3. Reimporte o arquivo de modelo, usando a administração de aplicativo de serviço do Business Connectivity Services da interface do usuário.

  4. Crie a fonte de conteúdo para o tipo de conteúdo externo.

  5. Inicie um rastreamento completo da fonte de conteúdo.

Confira também