Hilo iniciado por José Antonio Estevan el 4 de enero de 2011
-
AutorEntradas
-
enero 4, 2011 a las 5:00 pm #13806
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.
¿?
febrero 9, 2011 a las 12:34 pm #13807Hola 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
febrero 9, 2011 a las 1:09 pm #13808hola 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!
febrero 9, 2011 a las 1:51 pm #13809La 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!!
abril 20, 2011 a las 9:39 pm #13810hola,
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..
abril 20, 2011 a las 9:51 pm #13811Hola 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 errorerror:: 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…
abril 27, 2011 a las 9:01 am #13812Tras 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 🙂
-
AutorEntradas
- Debes estar registrado para responder a este debate.


