Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:logmodels:registryerrors

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
ada:howto:sicoferp:factory:logmodels:registryerrors [2021/08/19 15:00]
administraidor
ada:howto:sicoferp:factory:logmodels:registryerrors [2021/09/21 12:53] (actual)
administraidor
Línea 213: Línea 213:
 destroy ljson destroy ljson
 </​code>​ </​code>​
 +
 +== Limitaciones ==
 +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. A continuacion se muestra un ejemplo de uso funcional en Appeon/​Powerbuilder que puede ser tomado como referencia.
  
 <code java> <code java>
-/*Ejemplo ​de Uso del API con el Log de Errores*/ +/*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 ​ljson, ljson1 ​ +sailjson ​iuo_json 
-ljson = create sailjson +</​code>​ 
-//add json object array, first item + 
-ljson1 = ljson.addarrayitem( '​errors'​) +<code java> 
-ljson1.setattribute( '​error_code',​ '​-1'​) +/*PASO 2: Incializar el objeto iuo_json antes de utilizarlo*/​ 
-ljson1.setattribute( '​error_description',​ 'Error actualizando base de datos') +iuo_json= create sailjson 
-ljson1.setattribute( '​error_line',​ '​100'​) +</code> 
-ljson1.setattribute( '​error_method',​ '​SystemError'​) + 
-ljson1.setattribute( '​error_tracer',​ ''​) +<code java> 
-//add second item of the array +/* 
-ljson1 = ljson.addarrayitem( '​errors'​) +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_error con los siguientes argumentos 
-ljson1.setattribute( ​'​error_code'​, '​-10'​) +Integer ai_indx 
-ljson1.setattribute( ​'​error_description'​, 'Error general del sistema'​) +String as_error_code 
-ljson1.setattribute( ​'​error_line'​, '​101'​) +String as_error_description 
-ljson1.setattribute( ​'​error_method'​, '​SystemError'​) +String as_error_line 
-ljson1.setattribute( ​'​error_tracer'​, '​SystemOutMemoryError'​) +String as_error_method 
-//Consumir ​Log de Errores con traza en formato json+String as_error_tracer 
 +*/ 
 + 
 +//​Validaciones previas de control 
 +if IsNull(ai_indx) then ai_indx = 0 
 +if IsNull(as_error_code) then as_error_code = ""​ 
 +if IsNull(as_error_description) then as_error_description = ""​ 
 +if IsNull(as_error_line) then as_error_line = ""​ 
 +if IsNull(as_error_method) then as_error_method = ""​ 
 +if IsNull(as_error_tracer) then as_error_tracer= ""​ 
 + 
 +//Registrar las propiedades del error con el indice 
 +iuo_json.setattribute("​error"​ + String(ai_indx) + "​_code"​, as_error_code) 
 +iuo_json.setattribute("​error"​ + String(ai_indx) + "​_description"​, as_error_description) 
 +iuo_json.setattribute("​error"​ + String(ai_indx) + "​_line"​, as_error_line) 
 +iuo_json.setattribute("​error"​ + String(ai_indx) + "​_method"​, as_error_method) 
 +iuo_json.setattribute("​error"​ + String(ai_indx) + "​_tracer"​, as_error_tracer) 
 + 
 +</code> 
 + 
 +<code java> 
 +//En el metodo donde se gestiona el error se consume el API Log de Errores con traza en formato json, se recomienda uitlizar una transacción diferente a la del proceso para que se pueda almacenar el error
 guo_app.of_log_error( ).of_add_log("​EJEMPLO_CODE",​ 10, lson, true, SQLCA) guo_app.of_log_error( ).of_add_log("​EJEMPLO_CODE",​ 10, lson, true, SQLCA)
 +
 +//Por último se debe reiniciar el componente para otro proceso
 +iuo_json = Create sailjson
 +</​code>​
 +
 +<code java>
 +//Invocar el método local of_add_log_error
 +of_add_log_error(1,​ "​-1",​ 'Error actualizando base de datos',​ '​100',​ '​SystemError',​ ''​)
 </​code>​ </​code>​
  
ada/howto/sicoferp/factory/logmodels/registryerrors.1629385233.txt.gz · Última modificación: 2021/08/19 15:00 por administraidor