Buenas,
El datos tabla en la función get_cambios_fila no esta teniendo en cuenta el seteo de la propiedad _hacer_trim_datos del persistidor, estaría bueno que lo tenga
//--- Comparacion por igualdad estricta con un cast a string
if (trim((string) $datos_viejos[$campo]) !== trim((string) $datos_nuevos[$campo])) {
$diferencias[$campo] = array('anterior' => $datos_viejos[$campo], 'actual' => $datos_nuevos[$campo]);
}
tene en cuenta que el trim sobre el dato, se hace al momento de guardarlo… ahi solo estas comparando versiones para determinar si hubo cambios o no.
Este metodo se usa desde el persistidor para determinar que cambios se deben llevar a cabo, el valor que termina en la SQL no se trabaja en esta clase.
En particular, la comparacion siempre se hace con trim para evitar que espacios innecesarios terminen dando falsos positivos, no se me ocurre en este momento algun valor en el cual un espacio al ppio o final, pudiera tener una semantica especifica.
Contame que estas queriendo hacer, por ahi se le puede encontrar otra vuelta.
En resumen es un proceso que copia datos de una tabla de guarani (informix) a una tabla postgres y hace falta loguear cualquier cambio que sufrió el registro.
Me esta pasando que no solo no registra los cambios de esos registros sino tampoco los sincroniza.
Esto creo que pasa porque en ejecutar_sql_update de toba_ap_tabla_db en los cambios_reales no vienen los cambios de dichos registros.
Hola Richard, gracias por la solución, te comento que elegimos usar la persistencia de toba porque manejamos relaciones que nos simplifican mucho la lógica.
Saludos.