Acceder a la BD de velneo via tcp


([N2] isaacpda) #1

Buenos días a toda la comunidad,
no se si se podrá realizar lo que necesito, me veo con la necesidad de acceder a la base de datos de velneo pero sin usar un proyecto de aplicación ni vmodApache. Necesito desde otra aplicación acceder a la base de datos via tcp (que creo que son las dos formas de hacerlo o vía tcp, o http con vmodApahce, o con el vclient) y recibir los datos, via json, o algo similar. En caso de que sea posible que se que se pueden comunicar, pero no se si tiene algún tipo de limitación, no se si cuando recibo los datos tengo que recibir una linea o un buffer, imaginemos que hago una consulta y esta me retorna 10.000 registros, los recojo en el buffer?+

Gracias
Un saludo,
Isaac Díaz


([N4] bitcodesoft) #2

Puedes utilizar el API rest que viene incluido en vERP, este API utiliza vModApache pero es fácil adaptarlo al protocolo TCP/IP( yo lo tengo adaptado, de esta forma no consume enganches en el servidor), aunque en teoría es mejor utilizar vModApache por rendimiento.
Con el API puedes páginar las peticiones, no recibir 10.000 registros de una tacada.


([N2] isaacpda) #3

Muchas Gracias por tu respuesta, por ahi iban los tiros adaptar el api, para servir los datos en json.

Porque dices que da mejor rendimiento vModApache, he leido por el foro que el rendimiento que saca el tcp de velneo es un “tiro”, justamente me estaba decidiendo por esta alternativa porque pensaba que el rendimiento seria mejor desde tcp, que no desde vmodapache, ya que depende tambien de temas de apache, tipo de servidor que tengas en apache, trafico en la red, ya que hay mas intermediarios.

¿Como recoges los datos con recibir buffer?

Gracias
Isaac


([N1] cristianvg2003) #4

Hola isaacpda,

No se si conoces a Cirrus.js, este projecto básicamente es un webserver creado con el objeto TCP de Velneo y con el podras construir API’s para el accesso a tus datos sin necesidad poner un Apache en medio.

La documentación la encuetras aca => Github
Los descargables aqui => Cirrus Page

Un saludo,


([N2] isaacpda) #5

Hola Cristian, por supuesto que conozco Cirrus, se que has hecho un trabajo increíble con esta aplicación. Hace tiempo intente destriparlo un poco (pero por falta de tiempo no me meti mucho en el tema), y me pareció un tanto complicado, si es cierto que no domino mucho javascript, ademas creo que Cirrus es mas de lo que necesito, yo simplemente quiero hacer una petición via tcp, y que me devuelva ciertos datos desde el vServer, para poder trabajarlos desde una aplicación web, o desde una de escritorio. Quizá sea ahora el momento ideal para meterme con Cirrus y adaptarlo un poco a mis necesidades.

Gracias a todos por las respuestas.

Un saludo,
Isaac


([N1] cristianvg2003) #6

Ahhh bueno aun asi te sirve como punto de referencia, si vez el objeto TCP del vin de Cirrus vas a ver unas 30 lineas de codigo que se encargan de recibir una petición y enviar la respuesta usando el protocolo TCP, para tu caso que es más sencillo en lugar de enviar toda la petición al codigo js de Cirrus podrias enviarsela a un proceso velneo en el que tu sepas que hacer con la petición y en donde armes “a mano” la respuesta correspondiente.

Un saludo,


([N4] ccuesta) #7

Aunque no es un solución muy avanzada y tiene muchas limitaciones, considera el acceso vía ODBC. Funciona bien en consultas simples si no retorna un número elevado de registros.


([N1] cristianvg2003) #8

isaacpda otra posibilidad que habia olvidad mecionar (que mal vendedor que soy) es CirrusRest

Es un plugin para Cirrus que automáticamente crea end-point REST para las tablas de tu proyecto:

aca un poco de data https://medium.com/@cristianvg/liberado-cirrusdat-y-cirrusrest-43cc3b1291f2#.osrb9d5fb


([N2] isaacpda) #9

Hola Cristian, para utilizar tu plugin CirrusRest es necesario instalar cirrus?

Gracias
Isaac


([N1] cristianvg2003) #10

Hola,

Si, CirrusRest es un plugin que funciona encima de Cirrus, realizando una abstracción que permite crear end-points para cada tabla deseada automáticamente.

Un saludo,