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 arrayfirst 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 obligatoriopero 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_indxthen ai_indx = 0 
 +if IsNull(as_error_codethen as_error_code = ""​ 
 +if IsNull(as_error_descriptionthen as_error_description = ""​ 
 +if IsNull(as_error_linethen as_error_line = ""​ 
 +if IsNull(as_error_methodthen as_error_method = ""​ 
 +if IsNull(as_error_tracerthen 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