Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:logmodels:message

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
Próxima revisión
Revisión previa
ada:howto:sicoferp:factory:logmodels:message [2021/08/20 12:21]
administraidor [Diccionario de Datos]
ada:howto:sicoferp:factory:logmodels:message [2021/09/20 12:47] (actual)
administraidor
Línea 59: Línea 59:
 |22|TITULO|Y|VARCHAR2(256)|Campo que puede ser utilizada por el frontend para visualizar un titulo en el mensaje.|| |22|TITULO|Y|VARCHAR2(256)|Campo que puede ser utilizada por el frontend para visualizar un titulo en el mensaje.||
 |23|OBSERVACIONES|Y|VARCHAR2(4000)|Información complementaria que orienta al usuario sobre la situación notificada en el mensaje. Puede llevar pasos, consejos o indicaciones.|| |23|OBSERVACIONES|Y|VARCHAR2(4000)|Información complementaria que orienta al usuario sobre la situación notificada en el mensaje. Puede llevar pasos, consejos o indicaciones.||
 +
 +==== Proceso de Creación de Mensajes ====
 +Todos los mensajes utilizados en las aplicaciones deben ser registrados en esta tabla. A continuación se describen los campos que deben ser incluidos en la creación segun el tipo de mensaje:
 +
 +^# ^Campo ^Observación ^^  ​
 +|1|CODIGO_MENSAJE|**Requerido**:​ Se debe enviar el siguiente numero disponible en la columna. Puede utilizar la siguiente sentencia para asegurar la condición requerida: SELECT NVL(MAX(CODIGO_MENSAJE),​ 0) + 1 FROM  PRESUP01.MENSAJES_SISTEMA||
 +|2|MENSAJE|**Requerido**:​ El mensaje debe claro y conciso. No debe generar ambiguedades en los usuarios y no debe estar expresado en lenguaje técnico.||
 +|3|INFORMATION|Esta columna debe ser enviada con el valor '​S'​ si el mensaje es **Informativo**. De lo contrario debe ser enviado en '​N'​||
 +|4|STOP|Esta columna debe ser enviada con el valor '​S'​ si el mensaje es de **Error**. De lo contrario debe ser enviado en '​N'​||
 +|5|EXCLAMATION|Esta columna debe ser enviada con el valor '​S'​ si el mensaje es de **Advertencia**. De lo contrario debe ser enviado en '​N'​||
 +|6|QUESTION|Esta columna debe ser enviada con el valor '​S'​ si el mensaje es de **Confirmación**. De lo contrario debe ser enviado en '​N'​||
 +|7|NONE|Esta columna debe ser enviada con el valor '​S'​ si el mensaje no lleva ícono. De lo contrario debe ser enviado en '​N'​||
 +|8|OK|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Aceptar**. De lo contrario debe ser enviado en '​N'​||
 +|9|CANCEL|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Cancelar**. De lo contrario debe ser enviado en '​N'​||
 +|10|YES|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Si**. De lo contrario debe ser enviado en '​N'​||
 +|11|NO|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **No**. De lo contrario debe ser enviado en '​N'​||
 +|12|RETRY|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Reintentar**. De lo contrario debe ser enviado en '​N'​||
 +|13|ABORT|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Abortar**. De lo contrario debe ser enviado en '​N'​||
 +|14|IGNORE|Esta columna debe ser enviada con el valor '​S'​ cuando el mensaje visualiza boton **Ignorar**. De lo contrario debe ser enviado en '​N'​||
 +|15|DEFAULTBUTTON|Esta columna debe ser enviada con uno de los siguientes valores [1, 2, 3] cuando el mensaje visualiza el foco en uno de los botones utilizados. De lo contrario se ignora esta columna.||
 +|16|CODIGO_BASE_DATOS|Solo se utiliza cuando el mensaje está asociado a un Código de error de base de datos. De lo contrario se ignora esta columna.||
 +|17|USUARIO_EMPRESA|Enviar '​PRESUP01'​||
 +|18|CODIGO_MEMPRESA|Enviar '​9999999999'​||
 +|19|FECHA_REGISTRO|Enviar SYSDATE||
 +|20|TIPO_PROCESO|**Requerido**:​ Clasificación del mensaje Ej: Disponiiblidad,​ Compromiso etc.||
 +|21|CODIGO|**Requerido**:​ Código Texto del Mensaje Ej: TERCERO_NOT_FOUND,​ CDP_NO_BALANCE etc.||
 +|22|TITULO|**Requerido**:​ Título del mensaje el cuál es utilizado en la barra de titulo de la ventana.||
 +|23|OBSERVACIONES|Este campo solo es requerido cuando el mensaje requiere gestión y debe presentar información complementaria que oriente al usuario sobre la situación notificada en el mensaje.|| ​
 +
 +=== Reglas para la columna: OBSERVACIONES ===
 +Si un mensaje debe mostrar más información respecto a la situación notificada se debe utilizar esta columna. Sin embargo debe tener presente la siguientes indicaciones:​
 +
 +  * Si el mensaje requiere gestión de un proceso esta columna se debe describir con una serie de pasos de las acciones a realizar.
 +  * Si el mensaje indica una situación puntual esta columna debe indicar la razon de la situación presentada e indicar al usuario la acción a seguir.
 +  * La información debe ser clara y evitar ambiguedades.
 +  * Se Debe utilizar un lenguaje acorde al usuario.
 +
 +=== Reglas para la columna: TIPO_PROCESO ===
 +Esta columna debe contener el nombre de la funcionalidad a la cuál pertenece el mensaje, Ejemplos:
 +
 +  * Disponibilidad
 +  * Compromisos
 +  * Pago Automático
 +  * Centros de Costos
 +  * Cuentas por Cobrar
 +
 +=== Reglas para la columna: CODIGO ===
 +Esta columna representa un código en texto del mensaje. Tener presente las siguientes consideraciones para la generación de los código externos de los mensajes:
 +
 +== Identificador ==
 +Debe empezar con el identificador "​SICOF"​ en mayúsculas seguido por el número de la aplicación de la tabla SICOF.MAE_APLICACIONES columna CODIGO((Si el código es menor a 3 dígitos se deben rellenar con ceros a la izquierda. Ejemplo 1 = 001)), no debe tener espacios ni separadores al comienzo e intermedio del texto y debe finalizar con el separador _ Ejemplos:
 +
 +^Módulo^Identificador^
 +|FUNCIONALIDADES TRANSVERSALES |SICOF000_ |
 +|SISTEMA DE CONTROL PRESUPUESTAL |SICOF001_ |
 +|SISTEMA DE CONTROL DE TESORERIA |SICOF002_ |
 +|SISTEMA DE CONTROL DE CONTABLE |SICOF003_ |
 +|SISTEMA DE COMPRAS |SICOF004_ |
 +|SISTEMA DE NOMINA |SICOF005_ |
 +|SISTEMA DE TALENTO HUMANO |SICOF010_ | 
 +
 +== Regla Nombre ==
 +El nombre del código del error debe ser un resumen del mensaje que se adiciona al identificador,​ este (si aplica) solo puede llevar el separador _ y se deben evitar los caraceres especiales y tildes. Tener en cuenta las siguientes consideraciones:​
 +
 +  * Nombre [[https://​es.wikipedia.org/​wiki/​C%C3%B3digo_mnemot%C3%A9cnico|nemotécnico]]((Un código mnemotécnico (o código nemotécnico) es un sistema sencillo utilizado para recordar una secuencia de datos, nombres, números, y en general para recordar listas de items que no pueden recordarse fácilmente.)) del error((Puede estar en inglés)).
 +  * Resumen del error((Puede estar en inglés)).
 +  * Palabras clave del error((Puede estar en inglés)).
 +
 +== Ejemplo ==
 +Para el mensaje "//No existe el tercero con el nit.//"​ se crearía el CODIGO de la siguiente forma:
 +
 +  * Identificador:​ **SICOF000_** Ya que es una funcionalidad transversal.
 +  * Nombre: **TERCERO_NOT_FOUND**((no existe))
 +
 +Mensaje: No existe el tercero con el nit.
 +Código de Error: SICOF000_TERCERO_NOT_FOUND
 +
 +=== Ejemplo Script de Inserción ===
 +<code sql>
 +--==============================================================================
 +-- Fecha: 10:03 a. m. lunes, 30 de agosto de 2021 - carlos.torres@ada.co
 +-- Crear Mensaje de Error para validar existencia del tercero.
 +--==============================================================================
 +Insert into PRESUP01.MENSAJES_SISTEMA
 +   ​(CODIGO_MENSAJE,​ MENSAJE, INFORMATION,​ STOP, EXCLAMATION, ​
 +    QUESTION, NONE, OK, CANCEL, YES, 
 +    NO, RETRY, ABORT, IGNORE, DEFAULTBUTTON, ​
 +    CODIGO_MEMPRESA,​ FECHA_REGISTRO,​ TIPO_PROCESO,​ CODIGO, ​
 +    TITULO)
 + ​Values
 +   ​((SELECT NVL(MAX(CODIGO_MENSAJE),​ 0) + 1 FROM  PRESUP01.MENSAJES_SISTEMA), ​
 +   '​No existe información del tercero con el Nit #1', '​N',​ '​S',​ '​N', ​
 +    '​N',​ '​N',​ '​S',​ '​N',​ '​N', ​
 +    '​N',​ '​N',​ '​N',​ '​N',​ 1, 
 +    '​9999999999',​ SYSDATE, '​Tercero',​ '​SICOF000_TERCERO_NOT_FOUND', ​
 +    '​Validación del Tercero'​);​
 +COMMIT;
 +</​code>​
 +
 ==== Modo de uso: Powerbuilder - Documentación ==== ==== Modo de uso: Powerbuilder - Documentación ====
 Para visualizar la documentación debe descargar el siguiente repositorio [[http://​adacsc.co:​1443/​svn/​repository/​ADA/​SICOF/​Objetos%20SICOF/​FUENTES/​branches/​branches%2012.5.2.5.0/​doc/​documentacion|Documentación]],​ abrir la pagina Index.html en su navegador web la cual es similar a la siguiente imagen: Para visualizar la documentación debe descargar el siguiente repositorio [[http://​adacsc.co:​1443/​svn/​repository/​ADA/​SICOF/​Objetos%20SICOF/​FUENTES/​branches/​branches%2012.5.2.5.0/​doc/​documentacion|Documentación]],​ abrir la pagina Index.html en su navegador web la cual es similar a la siguiente imagen:
  
-{{ :​ada:​howto:​sicoferp:​factory:​logmodels:​pbdoclogs.png?600 |}} +{{ :​ada:​howto:​sicoferp:​factory:​logmodels:​pbdoc_objetos_sicof.png?600 |}}
  
 En ella encontrará la documentación de las librerias que hacen parte del framework **Objetos SICOF** el cuál se irá actualizando frecuentmente a medida que se documenten las clases. ​ En ella encontrará la documentación de las librerias que hacen parte del framework **Objetos SICOF** el cuál se irá actualizando frecuentmente a medida que se documenten las clases. ​
  
-La Libreria que contiene la funcionalidad de los logs es la librería **sf00util.pbl**+La Libreria que contiene la funcionalidad ​del API de mensajes ​es la librería **sf00util.pbl**
  
 Los Objetos relacionados en el API son: Los Objetos relacionados en el API son:
  
-  * **n_cst_app**:​ Clase contenedora de objetos logs +  * **n_cst_app**:​ Clase contenedora ​del API de mensajes 
-  * **n_cst_log_errores**: Clase para la gestión ​de errores+  * **n_cst_msg**: Clase utilizada ​para la gestion ​de los mensajes que se visualizan en las aplicaciones.
  
 === Ejemplos de Uso === === Ejemplos de Uso ===
-Para facilitar la implementación y uso del API de gestión de errores ​se crea un objeto interno privado en la clase global **guo_app** el cual puede ser accedido por el método **of_log_error()** que devuelve la instancia del objeto. Sin embargo para implementaciones específicas se puede optar por crear y administrar la clase de error **n_cst_log_error** según considere el desarrollador.+Para facilitar la implementación y uso del API de gestión de mensajes ​se crea un objeto interno privado en la clase global **guo_app** el cual puede ser accedido por el método **of_msg()** que devuelve la instancia del objeto. Sin embargo para implementaciones específicas se puede optar por crear y administrar la clase de mensajes ​**n_cst_msg** según considere el desarrollador.
  
 A continuación se listan ejemplos de uso el cuál presenta las forma de utilizar el API, para más información debe consultar la documentación en el repositorio. A continuación se listan ejemplos de uso el cuál presenta las forma de utilizar el API, para más información debe consultar la documentación en el repositorio.
Línea 80: Línea 179:
 <code java> <code java>
 /*Ejemplos de uso utilizando la instancia genérica de la clase guo_app*/ /*Ejemplos de uso utilizando la instancia genérica de la clase guo_app*/
-guo_app.of_log_error( ).of_add_log("EJEMPLO_CODE", 10, true, SQLCA+guo_app.of_msg( ).of_msg_advertencia("Esto es una Advertencia.") 
-guo_app.of_log_error( ).of_add_log("EJEMPLO_CODE", "​ERROR_DB",​ true, SQLCA+guo_app.of_msg( ).of_msg_informacion("Esto es una Información.") 
-guo_app.of_log_error( ).of_add_log("EJEMPLO_CODE",​ 10, ls_args, true, SQLCA) +guo_app.of_msg( ).of_msg_error("Esto es un Error.")
-guo_app.of_log_error( ).of_add_log_text("Ejemplo",​ "​ERROR_DB",​ "​Presupuesto",​ true, SQLCA) +
-guo_app.of_log_error( ).of_add_log_text( sqldbcode, sqlerrtext, dataobject, sqlsyntax, ls_ventana, true, lts_db)+
  
-/*Ejemplo de uso definiendo la clase de error,  +/*Ejemplo de uso utilizando ​el API de mensajes*/ 
-instancia ​el array de formateo de mensaje y  +guo_app.of_msg( ).of_mensajes_sistema(10) 
-registra en el log el mensaje formateado.  +guo_app.of_msg( ).of_mensajes_sistema(10, "Error al insert ​el encabezado") 
-Posteriormente elimina la instancia de la clase de gestión de error. +guo_app.of_msg( ).of_mensajes_sistema('​SICOF000_TERCERO_NOT_FOUND'​)
-"El array de formateo se utiliza cuando el mensaje se genera por expresiones:​  +
-Ejemplo: +
-Mensaje Base = Hola #1 (identificado con el código de mensaje SALUDO_CODE),  +
-se crea un array con un expresión de la siguiente forma  +
-array[1] = "Mundo",​  +
-de esta forma al usar el método of_add_log se genera ​el mensaje: Hola Mundo"+
-*/ +
-n_cst_log_error luo_log_error +
-String ls_args[] +
-ls_args[1] = "​Mundo"​ +
-luo_log_error = Create n_cst_log_error +
-luo_log_error.of_add_log("​SALUDO_CODE",​ 10, ls_args, true, SQLCA) +
-destroy luo_log_error+
  
-/*Ejemplo de uso definiendo la clase de error y  +/*Ejemplo de uso definiendo la clase de mensaje.*/​ 
-registra en el log el mensaje ​por medio de un código de mensaje.  +n_cst_msg luo_msg 
-Posteriormente elimina la instancia de la clase de gestión de error.*/ +luo_msg ​= Create ​n_cst_msg 
-n_cst_log_error luo_log_error +luo_msg.of_msg_advertencia("Esto es una Advertencia.") 
-luo_log_error ​= Create ​n_cst_log_error +luo_msg.of_msg_informacion("​Esto es una Información."​) 
-luo_log_error.of_add_log("EJEMPLO_CODE", 10, true, SQLCA+luo_msg.of_msg_error("​Esto es un Error.") 
-destroy luo_log_error +luo_msg.of_mensajes_sistema(10) 
- +luo_msg.of_mensajes_sistema(10, "Error al insert el encabezado"
-/*Ejemplo de uso definiendo la clase de error y  +luo_msg.of_mensajes_sistema('​SICOF000_TERCERO_NOT_FOUND'​
-registra en el log el mensaje por medio de un código de mensaje.  +destroy ​luo_msg
-Posteriormente elimina la instancia de la clase de gestión de error.*/ +
-n_cst_log_error luo_log_error +
-luo_log_error = Create n_cst_log_error +
-luo_log_error.of_add_log("​EJEMPLO_CODE"​, "ERROR_DB", true, SQLCA+
-destroy ​luo_log_error+
 </​code>​ </​code>​
  
 == Consideraciones == == Consideraciones ==
-  * El API puede ser activada o desactivada por medio de la constante: **LOG_ERRORS** (Solo en aplicaciones SICOF ERP (Appeon/​Powerbuilder)). +  * El API puede ser activada o desactivada por medio de la constante: **API_MESSAGE** (Solo en aplicaciones SICOF ERP (Appeon/​Powerbuilder)) ​siempre y cuando se utilice la implementación de la clase **guo_app**
-  * El desarrollador es el encargado de gestionar la transacción que realiza ​la persistencia+  * El desarrollador es el encargado de gestionar la transacción que realiza ​las consultas e inicialización del objeto
-  * Se automatiza ​el registro de errores en los objetos ​**uo_datawindow** y **uo_datastore** en toda su herencia. +  * Se unifica ​el desarrollo para que la función global ​**f_mensajes_sistema** tome los nuevos cambios sin afectar su definición. 
-  ​Se automatiza ​el registro ​de errores genéricos no controlados lanzados ​por el evento ​**systemerror** de Powerbuilder.+  * Cada módulo (Contabilidad,​ Prespuesto, Tesorería, Compras, Talento ​Nómina) debe implementar el método de inicialización ​**guo_app.of_init_logs(SQLCA)** en el método **of_process_step_init_transaction** de la clase **guo_app** especializada por cada móduloA continuación se muestra una imagen de referencia de la implementación del módulo de presupuesto. Utilice esta guía para implementaciones en otros módulos teniendo presente que la clase **n_cst_app** se especializa con el nombre ​de la aplicación que la contiene. Ejemplo: en presupuesto la clase especializada es **n_cst_app_presupuesto**, ​por lo general la clase esta en la libreria principal que contiene ​el objeto ​**Application**
 + 
 +{{ :​ada:​howto:​sicoferp:​factory:​logmodels:​ejemplo_n_cst_app.png?​600 |}} 
 + 
 +==== Modo de uso: Java ==== 
 +Para las aplicaciones desarrolladas en las tecnologías (Web): 
 + 
 +  * Java  
 +  * .Net 
 +  * PHP
  
-==== Modo de uso: Java (Próximamente) ==== +el log de sesión será implementado por medio de un [[http://10.1.20.89/​doku.php?​id=ada:​howto:​sicoferp:​factory:​integrations:​logs|Servicio Web]] el cual deberá considerar las reglas de [[#Columna: WS|Columna: WS]]
-Para las aplicaciones desarrolladas en la tecnología Java el log de sesión será implementado por medio de un servicio web.+
  
 [[ada:​howto:​sicoferp:​factory:​logmodels|←Volver atras]] [[ada:​howto:​sicoferp:​factory:​logmodels|←Volver atras]]
  
  
ada/howto/sicoferp/factory/logmodels/message.1629462108.txt.gz · Última modificación: 2021/08/20 12:21 por administraidor