Pregunta

Estoy en el proceso de integración de nuestra aplicación web personalizada con empresa de QuickBooks 9. Mi pensamiento es que podría utilizar QuickBooks como mi "base de datos" de clases. Cuando una persona crea una factura, la factura se almacena sólo en QuickBooks. Cuando una persona ve una lista de facturas, en realidad están viendo una lista de facturas de QuickBooks. Quiero para asegurarse de que los datos se almacenan en una única ubicación.

Me di cuenta que podía usar el conector Web QB, pero el problema con esto es que no tendría control sobre cuándo las solicitudes de QB en realidad se procesan (Ese trabajo es de hasta el conector Web).

Así que tengo a mi interfaz de usuario web para que actúe como QuickBooks "cara", pero no tengo ninguna buena manera de llegar ay desde el archivo de QuickBooks ubicada en un servidor interno. Lo que estaba pensando era que podía crear un servicio web WCF e instalarlo en el servidor de QuickBooks. El servicio web a continuación, podría ser mi punto de integración. Mi aplicación web personalizado a continuación, podría consumir el servicio web y, viola, no tengo acceso a mis archivos de QuickBooks.

Mi pregunta es la siguiente: ¿Puede una aplicación WCF conectar y ejecutar QuickBooks? Si no es así, ¿podría crear un servicio de Windows para actuar como mi punto de integración? Si es así, ¿puede mi aplicación web personalizada "consumir" un servicio de Windows?

¿Fue útil?

Solución

Voy a empezar por un aviso de que QuickBooks probablemente no es la mejor opción para una base de datos back-end confiable accesible desde un sitio web remoto. De hecho ... es probablemente una muy, muy mala elección.

Usted debe tener su propia base de datos de la aplicación, y luego si es necesario también el intercambio de datos con QuickBooks, hacerlo fuera del ciclo de vida normal de su aplicación, como un proceso de sincronización separada.

QuickBooks generalmente no es lo suficientemente confiable para el tipo siempre en línea de aplicaciones debido a un número de razones:

    conexiones
  • SDK escamosa
  • Las actualizaciones y el modo de un solo usuario se dejarlo fuera de acceder a QuickBooks
  • Dificultad para establecer conexiones SDK procedentes de procesos no GUI (servicios de Windows y procesos IIS)

Con eso dicho ...

Sí, se podría crear un servicio web WCF, alojarlo en la máquina de QuickBooks, y hacer que sus mensajes de retransmisión de servicios web WCF a / de QuickBooks.

Sí, también se puede crear un servicio de Windows que hace el mismo tipo de cosas.

No implementarlo como un servicio de Windows y No aplicarla dentro de IIS -. En vez implementar como una aplicación de interfaz gráfica de usuario que se ejecuta junto con QuickBooks

Si se intenta poner en práctica las cosas como un servicio de Windows o dentro de IIS, el SDK QuickBooks requiere tener una interfaz gráfica de usuario disponible (los usuarios un suministro de mensajes COM interfaz gráfica de usuario para los eventos de despacho o algo así ...) para procesar las solicitudes, por lo es probable que tengas que usar algo como QBXMLRP2e.exe a horcajadas entre el proceso de QuickBooks y su servicio Windows / IIS-GUI no. Mi experiencia ha sido que es un dolor enorme en el trasero, y requiere limpiando con permisos de DCOM también.

Tengo un ejemplo y alguna documentación en mi QuickBooks integración wiki .

IDN son un buen lugar para hacer preguntas.

Mi recomendación para ti sería ya sea a:

  • Utilice el conector Web y QuickBooks y renunciar a la esperanza de mantener todos sus datos en un solo lugar. Almacenar en caché los datos en una base de datos real, y actualizarlo periódicamente mediante la consulta de QuickBooks. Ya casi termino la construcción de una solución para hacer exactamente esto ahora, y funciona fantástico.

o

  • Utilice un sistema de cuenta diferente. NetSuite es bastante agradable. No estoy seguro de qué más hay por ahí, pero si tuviera que buscaría basado en SQL algo o con un fuerte API SOAP / REST.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top