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 ​y 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ódulo. A 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