Error al crear documento Word

Hilo iniciado por José Antonio Estevan el 4 de enero de 2011

Viendo 7 entradas - de la 1 a la 7 (de un total de 7)
  • Autor
    Entradas
  • #13806
    RangoJosé Antonio Estevan
    José Antonio Estevan
    Participante
    COLABORADOR
    12.848 Rincoins

    No se si alguien se habrá pelead con el API de Microsoft Office desde X++ pero me ocurre algo muy curioso. Como se ve en la imagen, el compilador da error diciendo que no existe una imagen que el editor si encuentra y que en la documentación también aparece, de hecho haciendolo mediante objetos COM como “antiguamente” si funciona, pero usando el Interop no.

     

     

    http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.add%28v=office.11%29.aspx

     

     

     

    ¿?

    #13807
    RangoDaniel Balaguer
    Daniel Balaguer
    Participante
    PARTICIPANTE
    1.248 Rincoins

    Hola José Antonio,

     

    El tema es que ese método está esperando unos parámetros pasados por referencia (byref), por eso el compilador te indica que la clase no contiene esa función.

     

    doc = docs.Add(byref template, byref newtemplate, byref documentType, byref visible);

    Saludos

     

    #13808
    RangoJosé Antonio Estevan
    José Antonio Estevan
    Participante
    COLABORADOR
    12.848 Rincoins

    hola Dani, gracias por responder.

     

    Efectivamente tal como dices se solucionaba ese error pero despues venian otros, y otros, y otros, asi que desistí de usar las clases de .NET y volví al clasico COM que es un autentico tostón (el no tener intellisense ni documentación no facilita la tarea) pero funciona.

     

    Y aún usando COM, cuando ya tenia el codigo perfecto que funcionaba sin problemas, al ir a lanzarlo en el servidor (desde el AOS) mediante un Batch de AX2009 me surgieron nuevos problemas. Y en este estado ando con incidencias a Microsoft a ver como lo arreglan/arreglamos.

     

    Cuando lo consiga lo compartiré porque esta siendo bastante entretenido.

     

    saludos!

    #13809
    RangoDaniel Balaguer
    Daniel Balaguer
    Participante
    PARTICIPANTE
    1.248 Rincoins

    La verdad es que no hay mucha documentación sobre Microsoft.Office.Interop.Word y el clásico COM es bastante tostón como dices.

     

    Yo ahora estoy con el EP y hace raros desde portal… 

     

    Seguiremos investigando… suerte compañero!!

    #13810
    RangoRaul Ocampo
    Raul Ocampo
    Participante
    PARTICIPANTE
    1.149 Rincoins

    hola,

    Tengo el mismo problema, si ya solucionaste, me podrias ayudar con el ¡Como se hace!, no hay mucha informacion… sabes donde puedo encontrar la Informacion acerca del COM… no se que metodos tenga y puedan servir..

    #13811
    RangoRaul Ocampo
    Raul Ocampo
    Participante
    PARTICIPANTE
    1.149 Rincoins

    Hola dani, me ayudas con este error

    wordRange = wordDocument.range(0,0); //esta linea no teine problemas
    wordRange.insertafter(“Arijit Basu”); // esta tampoco
    wordRange = wordDocument.range(6,0); // esta causa un error

    error:: El método ‘range’ en el objeto COM de clase ‘_Document’ devolvió el código de error 0x800A1200 (<desconocido>), lo que significa: El valor está fuera del intervalo.

     

    3 preguntas

    1) por que pasa esto?

    2) como puedo desplazarme por el documento?

    3) tengo una plantilla en un documeto de word, lo que deseo es remplazar ciertos espacios del documento, con informacion que yo le proporciono, se que si logro desplazarme por el documento sin problemas quizas pueda llenar los espacios… como podria hacer esto, dime que funcion puedo utilizar.. agradeceria tu ayuda…

     

    #13812
    RangoJosé Antonio Estevan
    José Antonio Estevan
    Participante
    COLABORADOR
    12.848 Rincoins

    Tras algunas respuesta del soporte de Microsoft me confirmaron que el soporte de Interop en AX todavía no es completo (por ejemplo, no soporta Interfaces .NET  las clases de Word los utilizan en todas partes), así que sólo me quedó la solución COM, mal documentada y dificilmente depurable.

     

    Otro problema que tube es que la instalación final del AOS que ejecutaba ese proceso (debía ejecutarse en Batch) es un Win 2008 Server, y por las nuevas funcionalidades de seguridad de windows, un servicio no puede ejecutar una aplicación externa con interfaz de cliente (si podria llamar a otro servicio, si sobre este tiene permiso), esto me llevó su tiempo hasta que finalmente Microsoft me confirmó este problema y nuevamente tubimos que buscar otra solución.

     

    Finalmente, la solución ha sido programarlo todo con la solución COM mediante trabajos Batch de tipo Cliente, y ejecutar un cliente permanentemente que procese los lotes, igual que se hacía en AX 4. Estos trabajos batch los crea una web de una manera muy sencilla (mediante el conector .NET), el procesador de lotes genera los documentos y los deja en un repositorio documental al que la misma web tiene acceso.

     

    Una odisea de problemas, pero finalmente funcionando de maravilla 🙂

Viendo 7 entradas - de la 1 a la 7 (de un total de 7)
  • Debes estar registrado para responder a este debate.
Carrito de compra