Compartir a través de


Introducir objetos binarios grandes (BLOBs) en SharePoint

Aprenda a modificar el archivo modelo BDC para un conector de indexación BCS de la base de datos para permitir que el rastreador de búsqueda en SharePoint rastree datos de objetos grandes binarios (BLOB) almacenados en una base de datos SQL Server.

Rastreo de datos BLOB

El Servicio de conectividad a datos empresariales (BDC) admite la lectura de tipos de datos BLOB, lo que resulta útil a la hora de transmitir datos BLOB desde sistemas externos. Para que esto funcione, es necesario asegurarse de que la tabla de base de datos que contiene los datos externos está configurada para admitirlo. Después agregue un método StreamAccessor al archivo de modelos BDC para el conector de indización de BCS del origen de contenido externo.

Configuración de la tabla de base de datos de SQL Server para datos BLOB

La base de datos Microsoft SQL Server debe tener una columna que especifique la extensión o el tipo MIME de los datos BLOB. Si el esquema de la tabla de la base de datos no incluye una columna con esta información, será necesario agregarla al esquema. Las tablas siguientes contienen un ejemplo de un esquema de tabla de base de datos con esta columna y valores de muestra para ella que están almacenados en la tabla de la base de datos.

Tabla 1. Esquema de tabla de base de datos de muestra

Nombre de columna Tipo de datos
Id Int
DisplayName nvarchar(50)
Extension nvarchar(50)
Data varbinary(MAX)
ContentType nvarchar(MAX)

Tabla 2. Valores de muestra de la tabla de base de datos

Id Nombre para mostrar Extensión Datos Tipo de contenido
1 Archivo 1 .docx 0x504B… application/vnd.openxmlformats-officedocument.wordprocessingml.document
2 Archivo 2 .doc 0xD... aplicación/msword
3 Archivo3 .txt Oxe... texto/sin formato

Modificación del archivo de modelos BDC para habilitar el rastreo de datos BLOB

Después de confirmar que la tabla de base de datos contiene la información de extensión o tipo MIME para los datos BLOB, puede usar Microsoft SharePoint Designer para crear un tipo de contenido externo que esté basado en la tabla que contienen los datos BLOB. Luego puede crear todas las operaciones. Para obtener más información, vea How to: Create External Content Types (Cómo: Crear tipos de contenido externo) y How to: Create an External Content Type Based on a SQL Server Table (Cómo: Crear un tipo de contenido externo basado en una tabla de SQL Server).

Después de crear el tipo de contenido externo BLOB, ya podrá modificar el archivo de modelos BDC para habilitar el rastreo. Estas modificaciones no pueden hacerse en SharePoint Designer. Por lo tanto, es necesario exportar el archivo de modelos BDC y usar un editor de XML para crear los cambios manualmente.

Para exportar el archivo de modelos BDC para el tipo de contenido externo BLOB

  1. En SharePoint Designer, haga clic en Tipos de contenido externo en la navegación izquierda para ver los tipos de contenido externo que están definidos en el almacén de metadatos BDC de la aplicación de servicio de ese sitio.
  2. En la lista Tipos de contenido externo, seleccione el tipo de contenido externo BLOB. Después haga clic en Exportar modelo de aplicaciones en la Cinta de opciones del servidor.
  3. Escriba un nombre en el cuadro de texto Nombre del modelo de aplicaciones y haga clic en Aceptar.
  4. Seleccione la ubicación donde quiere guardar el archivo (.bdcm) de modelo de BDC y haga clic en Guardar.

Para habilitar el rastreo del tipo de contenido externo BLOB

  1. En un editor XML, abra el archivo de modelos de BDC que creó en la sección anterior.

  2. Cree un método nuevo que devuelva el campo BLOB. Tiene que definir una instancia de método de tipo StreamAccessor para este método, tal como se muestra en el ejemplo siguiente.

    Nota:

    [!NOTA] En este ejemplo, el nombre de la tabla es 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 el tipo MIME es el mismo para todos los BLOB, puede reemplazar esta línea de código del ejemplo anterior:

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

    por la siguiente línea de código:

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

  3. Reimporte el archivo de modelos con la UI de administración de la aplicación de servicio Servicios de conectividad empresarial.

  4. Cree el origen de contenido para el tipo de contenido externo.

  5. Inicie un rastreo completo del origen de contenido.

Vea también