Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:factory:logmodels:transaccionallog [2021/09/20 13:12] administraidor |
ada:howto:sicoferp:factory:logmodels:transaccionallog [2021/09/20 13:38] (actual) administraidor |
||
---|---|---|---|
Línea 181: | Línea 181: | ||
== Limitaciones == | == Limitaciones == | ||
- | Se identifica que actualmente la versión de Appeon presenta problema con el procesamiento de la API Json para estructura complejas como Array por esta razon cada procesamiento del API debe ser realizado a un nivel de complejidad para cada registro que realice operaciones DML. A continuacion se muestra un ejemplo de uso funcional en Appeon/Powerbuilder y que puede ser tomado como referencia. | + | Se identifica que actualmente la versión de Appeon (2013/2016) presenta problemas con el procesamiento del API Json para estructuras complejas como Arrays por esta razon cada procesamiento del API debe ser realizado a un solo nivel de complejidad por cada registro que realice operaciones DML. A continuacion se muestra un ejemplo de uso funcional en Appeon/Powerbuilder que puede ser tomado como referencia. |
<code java> | <code java> | ||
/*PASO 1: Definir un objeto de la clase sailjson en la zona de instancia del componente donde se va utilizar el API como una ventana, objeto no visual, etc*/ | /*PASO 1: Definir un objeto de la clase sailjson en la zona de instancia del componente donde se va utilizar el API como una ventana, objeto no visual, etc*/ | ||
sailjson iuo_json | sailjson iuo_json | ||
+ | </code> | ||
- | /*PASO 2: Incializar el objeto ljson antes de utilizarlo*/ | + | <code java> |
+ | /*PASO 2: Incializar el objeto iuo_json antes de utilizarlo*/ | ||
iuo_json= create sailjson | iuo_json= create sailjson | ||
+ | </code> | ||
+ | <code java> | ||
/* | /* | ||
PASO 3: No es obligatorio, pero se recomienda crear un método local de asignación para simplificar el proceso como ejemplo se define metodo of_add_log_transactional con los siguientes argumentos | PASO 3: No es obligatorio, pero se recomienda crear un método local de asignación para simplificar el proceso como ejemplo se define metodo of_add_log_transactional con los siguientes argumentos | ||
Línea 209: | Línea 213: | ||
//Crear propiedad de la columna con el nuevo valor | //Crear propiedad de la columna con el nuevo valor | ||
iuo_json.setattribute(as_dataobject + "." + as_column + "_NewValue", as_new_value) | iuo_json.setattribute(as_dataobject + "." + as_column + "_NewValue", as_new_value) | ||
+ | </code> | ||
+ | <code java> | ||
//En el metodo de guardado del proceso consumir el API de Log de transacciones con el objeto json | //En el metodo de guardado del proceso consumir el API de Log de transacciones con el objeto json | ||
guo_app.of_log_transactional( ).of_add_log(Date(ldt_fecha), "w_conexion_cliente_fe::guardar", "update", 'TBL_FE_CONEXION_CLIENTE', iuo_json, true, ts_transaccion) | guo_app.of_log_transactional( ).of_add_log(Date(ldt_fecha), "w_conexion_cliente_fe::guardar", "update", 'TBL_FE_CONEXION_CLIENTE', iuo_json, true, ts_transaccion) | ||
Línea 215: | Línea 221: | ||
//Por último se debe reiniciar el componente para otro proceso | //Por último se debe reiniciar el componente para otro proceso | ||
iuo_json = Create sailjson | iuo_json = Create sailjson | ||
+ | </code> | ||
+ | |||
+ | <code java> | ||
+ | //En el evento itemchanged del datawindow consumir el método local of_add_log_transactional | ||
+ | String ls_column, ls_old_data | ||
+ | ls_column = dwo.name | ||
+ | Choose Case ls_column | ||
+ | Case 'codigo_cliente' | ||
+ | ls_old_data = getitemstring(row, ls_column) | ||
+ | of_add_log_transactional(dataobject, ls_column, ls_old_data, data) | ||
+ | End Choose | ||
</code> | </code> | ||