domingo, 10 de abril de 2016

[Corregido] Error al crear Ordenes de compra, Facturas, Presupuestos y Ordenes de venta luego de migración en VTiger

Luego de una migración en vTiger, uno espera no tener ningun problema. Aún así, nos piden que hagamos backup para estar preparados para nuestros inmerecidos y muy probables problemas de migración.

Listo. Backup de código y base de datos creados. Y comenzamos la migración de vTiger.

Una vez terminados, nos hemos topado con algunos mensajes de advertencia de pequeñas ejecuciones en la base de datos que no se pudieron completar satisfactoriamente, y aunque reintentamos la migración siguen saliendo. Optamos por no prestarle atención y correr a ejecutar nuestra nueva versión de vTiger.

Aunque ya activamos el "log" y "trace" para validar el error, nos encontramos con que es imposible crear una nueva Orden de Compra, Factura, Presupuesto u Orden de compra, y siempre nos aparece el mensaje de:

{"success":false,"error":{"code":"result is not an object","message":"result is not an object"}}

...o en español:

{"success":false,"error":{"code":"El registro al que pretende acceder no existe","message":"El registro al que pretende acceder no existe"}}

No hay nada que temer... pueden consultar durante 2 días, tal como yo lo hice en todos los foros, y seguir cada paso y no encontrar ninguna solución en el universo indexado de Internet... o simplemente vayan directamente en la base de datos y hagan los siguientes dos cambios:

1) En la estructura de la tabla "vtiger_users"

En la estructura de la tabla, asegurarse que existe el campo "is_owner", y debe ser "varchar(5).

2) En los registros la tabla "vtiger_field"

Revisar los registros de los 4 módulos que nos están generando problemas, con las siguientes consultas:

Para Facturas:
SELECT * FROM vtiger_field WHERE tablename = 'vtiger_invoice' ORDER BY columnname

Para Ordenes de venta
SELECT * FROM vtiger_field WHERE tablename = 'vtiger_salesorder' ORDER BY columnname

Para Presupuestos:
SELECT * FROM vtiger_field WHERE tablename = 'vtiger_quotes' ORDER BY columnname

Para Ordens de compra:
SELECT * FROM vtiger_field WHERE tablename = 'vtiger_purchaseorder' ORDER BY columnname

La solución es, simplemente, eliminar el registro duplicado que aparece en cada consulta, y dejar uno de ellos (por ejemplo, he dejado el primero):


Y listo. vTiger vuelve a ser tan eficiente como antes.

Requiere ayuda en su nuevo CRM?  Podemos ayudarle en Solutecia sas.

No hay comentarios:

Publicar un comentario

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...