none
Integrar una base de datos SQL Server externo con archivos PDF RRS feed

  • Pregunta

  • Hola

    Tengo una base de datos SQL Server 2008R2 con una tabla que contiene las columnas Id, Nombre_Archivo, Ruta, Archivo, etc...

    En la tabla PDF tengo como ejemplo los siguientes registros:

    id      Nombre_Arcvhivo       Ruta                                     Archivo             etc...

    1       scan_001.pdf            C:\archivos\scan_001.pdf        0x255D..           .....

    2       scan_002.pdf            C:\archivos\scan_002.pdf        0x255A..            ......

         :

    n       scan_00n.pdf            c:\archivos\scan_00n.pdf         0x264E..           .......

     

    El campo Archivo también contiene el archivo pdf como byte (en SharePoint 2010 NO acepta integrarlo con External Content Types en Designer de SharePoint 2010)

    Logre integrar la base de datos de SQL Server a SharePoint 2010 y verlo como lista segun con los procedimientos:

    1.- http://msdn.microsoft.com/en-us/library/ee557243.aspx

    2.- http://msdn.microsoft.com/en-us/library/ee559346.aspx

    La lista en SharePoint 2010, logré ver los registros mostrados segun la tabla PDF excepto la columna Archivo porque es byte y NO se integró a SharePoint

    Quiero abrir el archivo PDF cuando de click en algun registro, ejemplo si doy click al registro con Id 2, que me abra el archivo almacenado en file system segun en la columna Ruta, el archivo PDF scan_002.pdf

    ¿Cómo puedo hacer eso? sin tener que estar subiendo manualmente uno por uno desde SharePoint porque son cientos de miles de registros

    Gracias

    Ernesto

    miércoles, 30 de mayo de 2012 22:43

Respuestas

  • Hola onooka,

    Aquí tienes un ejemplo de como crear documentos de forma programática en bibliotecas de documentos: http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/programmatically-adding-document-to-sharepoint-document-library/. Entonces, lo que haría yo es lo siguiente:

    • O bien cambiar el guardado actual en SQL por guardar los documentos en una biblioteca de documentos de SharePoint.
    • O bien crear un proceso (en SharePoint un Timer Job) que extraiga los documentos de la tabla y los cargue en SharePoint.

    Respecto al External Content Types, no creo que se pueda abrir un PDF como comentas...el dato será interpretado como un binario o como un archivo....haré alguna pruena de todos modos al respecto y te cuento.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 31 de mayo de 2012 15:42

Todas las respuestas

  • Hola,

    ¿Por qué no migras esa estructura con contenidos y todo a una bibliotca de documentos de SharePoint que tenga esas columnas? Con el modelo de objetos de SharePoint no es nada complicado de conseguir. Por otro lado, ¿De dónde vienen los archivos? ¿Qué tamaño tienen?

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 31 de mayo de 2012 6:12
  • Hola Juan Carlos

    Gracias por responder.

    ¿Tendrás alguna liga para verificar como se hace?

    Los archivos los escaneamos físicamente documento por documento (ejemplo: memorandums, oficios, facturas, pólizas, etc.) y por medio de un programa que desarrollamos en Visual Studio.NET con el componente OCR, los capturistas verifican que la indexación sea correcta (es decir, que el OCR haya extraido la información correctamente del archivo PDF) y si no, lo corrigen manualmente; y al Aceptar, se introduce la información a la base de datos SQL Server, por lo que en las columnas etc. ... son columnas que se extrae la información necesaria y se introduce el nombre del archivo que se escaneo, así como la ruta y el archivo PDF mismo en la columna llamado Archivo tipo Byte (SQL Server Varbinary)

    Son archivos pequeños de tamaño entre 500KB a 3MB, por lo que SQL Server Guarda los archivos sin problema. Y además los archivos se encuentran en File system de acuerdo a la ruta indicada en la columna Ruta de la tabla PDF

    Por lo tanto si ya tenemos nuestra Base de Datos de SQL Server con la información y poderlo subir a SharePoint para que los usuarios puedan verlo, entonces sería increible que también pudieran ver el archivo PDF al dar solo un click al registro encontrado

    ¿SharePoint 2010 puede abrir el archivo PDF de un External Content Types haciendo un click al registro deseado?

    Gracias

    Ernesto Ono

    jueves, 31 de mayo de 2012 15:00
  • Hola onooka,

    Aquí tienes un ejemplo de como crear documentos de forma programática en bibliotecas de documentos: http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/programmatically-adding-document-to-sharepoint-document-library/. Entonces, lo que haría yo es lo siguiente:

    • O bien cambiar el guardado actual en SQL por guardar los documentos en una biblioteca de documentos de SharePoint.
    • O bien crear un proceso (en SharePoint un Timer Job) que extraiga los documentos de la tabla y los cargue en SharePoint.

    Respecto al External Content Types, no creo que se pueda abrir un PDF como comentas...el dato será interpretado como un binario o como un archivo....haré alguna pruena de todos modos al respecto y te cuento.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 31 de mayo de 2012 15:42
  • Hola,

    Update en este tema...no he hecho la prueba con PDFs, pero sí con imagenes...si creas un ECT con Designer, al crear la lista externa no mapea las imágenes a ningún tipo de campo equivalente en SharePoint por lo tanto este camino no te sirve...creo que con un conector de Visual Studio se podría solucionar, pero puestos a desarrollar yo me plantearía cualquiera de las alternativas que te comento.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    viernes, 1 de junio de 2012 10:38
  • Hola onooka, propongo las siguientes opciones:

    1. Has considerado RBS?

    Como tienes los archivos en un file sytem, configurar RBS podría ayudarte:

    http://technet.microsoft.com/es-es/library/ee748607.aspx

    http://technet.microsoft.com/es-es/library/ee663474.aspx

    2.  Podrías cambiar la forma en que estás llamando los archivos. Veo que los estás llamando c:\arhivos\... intenta compartir la carpeta y llamarlos así: file:\\servidor\carpeta\archivo.pdf. También podrías hacer un directorio virtual de la ruta con los archivos y llamarlos por http://

    3. Intenta con este Webpart. La verdad no lo he probado y parece de 2007, pero peor intento es el que no se hace... http://networkshare.codeplex.com/

    Espero te ayude,

    Carlos

    viernes, 1 de junio de 2012 16:30
  • Hola,

    RBS se recomienda a partir de cierto tamaño de archivos. Para el caso que se plantea yo creo que no es necesario usar RBS...y en cualquier caso, se use RBS o no, hay que cargar los documentos y sus metadatos en bibliotecas de documentos.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    viernes, 1 de junio de 2012 18:04