Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:logmodels:message

¡Esta es una revisión vieja del documento!


Fábrica - Modelos Logs - API de Mensajes

Esta sección describe el API de mensajes que debe ser utilizada en las aplicaciones de la compañia.

Tipos de Mensajes

A continuación se listan los tipos de mensajes que deben ser considerados en el log.

  • Mensajes Informativos: Utilizados para informar al cliente sobre procesos, estados, opciones, confirmaciones etc.
  • Mensajes de Advertencias: Utilizados para alertar sobre situaciones en las aplicaciones.
  • Mensajes de Errores: Utilizados para notificar errores generados en los procesos de la aplicaciones.

Que no se considera en el API

  • Textos descriptivos de procesos como (guías, tutoriales).
  • Mensajes asociados a sistemas operativos, maquinas virtuales, bases de datos o errores desconocidos.

¿Donde usar el Servicio?

Este servicio debe consumirse en las generaciones de errores de:

  • Aplicaciones Java
  • Aplicaciones .Net
  • Web Service
  • Integración Supertabla
  • Soluciones que afecten los productos SICOF

Operaciones del API

El API soporta las siguientes operaciones:

  • Consultar mensaje por código interno numérico. Columna: CODIGO_MENSAJE
  • Consultar mensaje por código externo texto. Columna CODIGO
  • Consultar mensaje formateado por código interno numérico y array de (String) literales # (Ejemplo: Mensaje = Hola #1 | Literal #1 = Mundo | Mensaje Formateado = Hola Mundo)
  • Consultar mensaje formateado por código externo texto y array de (String) literales # (Ejemplo: Mensaje = Hola #1 | Literal #1 = Mundo | Mensaje Formateado = Hola Mundo)

Nota: Aplicaciones Powerbuilder

Powerbuilder tiene restricciones para el consumo de servicios Rest por lo tanto en las aplicaciones de esta tecnología se implementará un API para realizar las llamadas.

Diccionario de Datos

OWNER PRESUP01 TABLE MENSAJES_SISTEMA COMMENTS Tabla que contiene los mensajes de los procesos de SICOF
# NAME NULLEABLE TYPE COMMENTS
1CODIGO_MENSAJENNUMBERCódigo Interno del Mensaje (Es unico en la tabla y se asigna de forma manual)
2MENSAJEYVARCHAR2(1024)Descripción del mensaje que se representa puede registrar expresiones de sustitución con la regla #identificador númerico Ej Hola #1
3INFORMATIONYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje es de tipo: Información
4STOPYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje es de tipo: Error
5EXCLAMATIONYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje es de tipo: Advertencia
6QUESTIONYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje es de tipo: Pregunta o Interrogación
7NONEYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje no especifica su tipo: Por lo general se usa Información
8OKYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Aceptar
9CANCELYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Cancelar
10YESYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Si
11NOYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: No
12RETRYYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Reintentar
13ABORTYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Abortar
14IGNOREYCHAR(1)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza boton: Ignorar
15DEFAULTBUTTONYNUMBER(1,0)Bandera que puede ser utilizada por el frontend: indica que el mensaje utiliza un boton por defecto (con foco) es un identificador numérico que se representa de izuiqerda a derecha
16CODIGO_BASE_DATOSYNUMBER(10,0)Código interno de base de datos que está asociado al mensaje
17USUARIO_EMPRESAYVARCHAR2(30)Usuario Empresa
18CODIGO_MEMPRESAYVARCHAR2(50)Código de la emprsa por defecto '9999999999' para entorno uniempresa.
19FECHA_REGISTROYDATEFecha del sistema
20TIPO_PROCESOYVARCHAR2(256)Clasificación del mensaje Ej: Disponiiblidad, Compromiso etc.
21CODIGOYVARCHAR2(128)Es un identificador string unico que puede ser utilizado para identificar el mensaje por lo general inicial con una sigla nemotecnica asociada a la clasificación (TIPO_PROCESO) EJ: Para Disponibilidad seria CDP00001
22TITULOYVARCHAR2(256)Campo que puede ser utilizada por el frontend para visualizar un titulo en el mensaje.
23OBSERVACIONESYVARCHAR2(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
1CODIGO_MENSAJERequerido: 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
2MENSAJERequerido: El mensaje debe claro y conciso. No debe generar ambiguedades en los usuarios y no debe estar expresado en lenguaje técnico.
3INFORMATIONEsta columna debe ser enviada con el valor 'S' si el mensaje es Informativo. De lo contrario debe ser enviado en 'N'
4STOPEsta columna debe ser enviada con el valor 'S' si el mensaje es de Error. De lo contrario debe ser enviado en 'N'
5EXCLAMATIONEsta columna debe ser enviada con el valor 'S' si el mensaje es de Advertencia. De lo contrario debe ser enviado en 'N'
6QUESTIONEsta columna debe ser enviada con el valor 'S' si el mensaje es de Confirmación. De lo contrario debe ser enviado en 'N'
7NONEEsta columna debe ser enviada con el valor 'S' si el mensaje no lleva ícono. De lo contrario debe ser enviado en 'N'
8OKEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Aceptar. De lo contrario debe ser enviado en 'N'
9CANCELEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Cancelar. De lo contrario debe ser enviado en 'N'
10YESEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Si. De lo contrario debe ser enviado en 'N'
11NOEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton No. De lo contrario debe ser enviado en 'N'
12RETRYEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Reintentar. De lo contrario debe ser enviado en 'N'
13ABORTEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Abortar. De lo contrario debe ser enviado en 'N'
14IGNOREEsta columna debe ser enviada con el valor 'S' cuando el mensaje visualiza boton Ignorar. De lo contrario debe ser enviado en 'N'
15DEFAULTBUTTONEsta 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.
16CODIGO_BASE_DATOSSolo se utiliza cuando el mensaje está asociado a un Código de error de base de datos. De lo contrario se ignora esta columna.
17USUARIO_EMPRESAEnviar 'PRESUP01'
18CODIGO_MEMPRESAEnviar '9999999999'
19FECHA_REGISTROEnviar SYSDATE
20TIPO_PROCESORequerido: Clasificación del mensaje Ej: Disponiiblidad, Compromiso etc.
21CODIGORequerido: Código Texto del Mensaje Ej: TERCERO_NOT_FOUND, CDP_NO_BALANCE etc.
22TITULORequerido: Título del mensaje el cuál es utilizado en la barra de titulo de la ventana.
23OBSERVACIONESEste 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. Puede llevar pasos, consejos o indicaciones. De lo contrario se ignora esta columna.

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 del proceso o entidad que representa en mayúsculas, no debe tener espacios ni separadores al comienzo e intermedio del texto y debe finalizar con el separador _ Ejemplos:

MóduloFuncionalidadIdentificador
SISTEMA DE CONTROL PRESUPUESTALADMINISTRACION CONTROL PRESUPUESTALADMINISTRACIONCONTROLPRESUPUESTAL_
SISTEMA DE CONTROL PRESUPUESTALADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE CONTROL PRESUPUESTALANTICIPOSANTICIPOS_
SISTEMA DE CONTROL PRESUPUESTALCOMPROMISOSCOMPROMISOS_
SISTEMA DE CONTROL PRESUPUESTALCONTABILIDADCONTABILIDAD_
SISTEMA DE CONTROL PRESUPUESTALCONTRALORIACONTRALORIA_
SISTEMA DE CONTROL PRESUPUESTALCUENTAS POR COBRARCUENTASPORCOBRAR_
SISTEMA DE CONTROL PRESUPUESTALDISPONIBILIDADESDISPONIBILIDADES_
SISTEMA DE CONTROL PRESUPUESTALINFORMES DE CONTABILIDADINFORMESDECONTABILIDAD_
SISTEMA DE CONTROL PRESUPUESTALMAESTROSMAESTROS_
SISTEMA DE CONTROL PRESUPUESTALMOVIMIENTO RUBROSMOVIMIENTORUBROS_
SISTEMA DE CONTROL PRESUPUESTALORDENES DE PAGOORDENESDEPAGO_
SISTEMA DE CONTROL PRESUPUESTALPAGOS NOMINAPAGOSNOMINA_
SISTEMA DE CONTROL PRESUPUESTALPRESUPUESTO INGRESOSPRESUPUESTOINGRESOS_
SISTEMA DE CONTROL PRESUPUESTALPROGRAMACION PACPROGRAMACIONPAC_
SISTEMA DE CONTROL PRESUPUESTALREINTEGROSREINTEGROS_
SISTEMA DE CONTROL PRESUPUESTALREPORTESREPORTES_
SISTEMA DE CONTROL PRESUPUESTALREPORTES CIERRE VIGENCIAREPORTESCIERREVIGENCIA_
SISTEMA DE CONTROL PRESUPUESTALRESERVASRESERVAS_
SISTEMA DE CONTROL DE TESORERIAADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE CONTROL DE TESORERIABANCOSBANCOS_
SISTEMA DE CONTROL DE TESORERIACAJAS MENORESCAJASMENORES_
SISTEMA DE CONTROL DE TESORERIACOMPROBANTE DE EGRESOCOMPROBANTEDEEGRESO_
SISTEMA DE CONTROL DE TESORERIACOMPROBANTE DE INGRESOCOMPROBANTEDEINGRESO_
SISTEMA DE CONTROL DE TESORERIACONCILIACION BANCARIACONCILIACIONBANCARIA_
SISTEMA DE CONTROL DE TESORERIADEUDA PÚBLICADEUDAPUBLICA_
SISTEMA DE CONTROL DE TESORERIAFONDO DE CONTINGENCIASFONDODECONTINGENCIAS_
SISTEMA DE CONTROL DE TESORERIAINTERFACEINTERFACE_
SISTEMA DE CONTROL DE TESORERIAMAESTROSMAESTROS_
SISTEMA DE CONTROL DE TESORERIAMANTENIMIENTO P.A.C.MANTENIMIENTOPAC_
SISTEMA DE CONTROL DE TESORERIAPAGO ELECTRONICOPAGOELECTRONICO_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Bancos)REPORTESBANCOS_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Comprobantes de Contabilidad)REPORTESCOMPROBANTESDECONTABILIDAD_
SISTEMA DE CONTROL DE TESORERIAREPORTES ESTADISTICOSREPORTESESTADISTICOS_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Pago Electronico)REPORTESPAGOELECTRONICO_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Pagos y Taquillas)REPORTESPAGOSYTAQUILLAS_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Plan Anual de Caja)REPORTESPLANANUALDECAJA_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Rendicion de Cuentas)REPORTESRENDICIONDECUENTAS_
SISTEMA DE CONTROL DE TESORERIAREPORTES (Retencion en la Fuente)REPORTESRETENCIONENLAFUENTE_
SISTEMA DE CONTROL DE CONTABLEADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE CONTROL DE CONTABLEASIENTOS CONTABLESASIENTOSCONTABLES_
SISTEMA DE CONTROL DE CONTABLECONSULTASCONSULTAS_
SISTEMA DE CONTROL DE CONTABLEDETERIORODETERIORO_
SISTEMA DE CONTROL DE CONTABLEMAESTROSMAESTROS_
SISTEMA DE CONTROL DE CONTABLEMEDIOS MAGNETICOS DIANMEDIOSMAGNETICOSDIAN_
SISTEMA DE CONTROL DE CONTABLEPLAN CUENTAS CONTABLESPLANCUENTASCONTABLES_
SISTEMA DE CONTROL DE CONTABLEREPORTESREPORTES_
SISTEMA DE COMPRASACTIVOS FIJOSACTIVOSFIJOS_
SISTEMA DE COMPRASADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE COMPRASCOTIZACIONESCOTIZACIONES_
SISTEMA DE COMPRASINVENTARIOSINVENTARIOS_
SISTEMA DE COMPRASMAESTROSMAESTROS_
SISTEMA DE COMPRASREPORTESREPORTES_
SISTEMA DE COMPRASSOLICITUD DE BIENESSOLICITUDDEBIENES_
SISTEMA DE COMPRASSOLICITUD DE COMPRASOLICITUDDECOMPRA_
SISTEMA DE NOMINAADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE NOMINACONFIGURACIÓNCONFIGURACION_
SISTEMA DE NOMINAINFORMESINFORMES_
SISTEMA DE NOMINANOVEDADESNOVEDADES_
SISTEMA DE NOMINAOPERACIONOPERACION_
SISTEMA DE NOMINAPAGO AUTOMATICO SIIFPAGOAUTOMATICOSIIF_
SISTEMA DE NOMINAPRESTACIONES SOCIALESPRESTACIONESSOCIALES_
SISTEMA DE NOMINASEGURIDAD SOCIALSEGURIDADSOCIAL_
SISTEMA DE NOMINAUTILIDADESUTILIDADES_
SISTEMA DE TALENTO HUMANOADMINISTRADOR DEL SISTEMAADMINISTRADORDELSISTEMA_
SISTEMA DE TALENTO HUMANOAPOYO ESTUDIANTILAPOYOESTUDIANTIL_
SISTEMA DE TALENTO HUMANOAPROVECHAMIENTO TIEMPO LIBREAPROVECHAMIENTOTIEMPOLIBRE_
SISTEMA DE TALENTO HUMANOBECASBECAS_
SISTEMA DE TALENTO HUMANOCONVOCATORIASCONVOCATORIAS_
SISTEMA DE TALENTO HUMANOCUENTAS X COBRARCUENTASXCOBRAR_
SISTEMA DE TALENTO HUMANODOTACIONDOTACION_
SISTEMA DE TALENTO HUMANOENCUESTASENCUESTAS_
SISTEMA DE TALENTO HUMANOESTIMULO EDUCATIVOESTIMULOEDUCATIVO_
SISTEMA DE TALENTO HUMANOEVALUACIONESEVALUACIONES_
SISTEMA DE TALENTO HUMANOEVENTOSEVENTOS_
SISTEMA DE TALENTO HUMANOFORMULARIOSFORMULARIOS_
SISTEMA DE TALENTO HUMANOHOJAS DE VIDAHOJASDEVIDA_
SISTEMA DE TALENTO HUMANOINCENTIVOSINCENTIVOS_
SISTEMA DE TALENTO HUMANOINFORMES ADICIONALESINFORMESADICIONALES_
SISTEMA DE TALENTO HUMANOMOVIMIENTO RUBROSMOVIMIENTORUBROS_
SISTEMA DE TALENTO HUMANOOTROS CREDITOSOTROSCREDITOS_
SISTEMA DE TALENTO HUMANOPROGRAMA DE VIVIENDAPROGRAMADEVIVIENDA_
SISTEMA DE TALENTO HUMANOSALUD OCUPACIONALSALUDOCUPACIONAL_
SISTEMA DE TALENTO HUMANOSEGURIDAD Y SALUD EN EL TRABAJOSEGURIDADYSALUDENELTRABAJO_
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:

Ejemplo

Para el mensaje “No existe el tercero con el nit.” se crearía el CODIGO de la siguiente forma:

  • Identificador: MAESTROTERCEROS_
  • Nombre: NOT_FOUND5)

Mensaje: No existe el tercero con el nit. Código de Error: MAESTROTERCEROS_NOT_FOUND

Ejemplo Script de Inserción

--==============================================================================
-- 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', 'MAESTROTERCEROS_NOT_FOUND', 
    'Validación del Tercero');
COMMIT;

Modo de uso: Powerbuilder - Documentación

Para visualizar la documentación debe descargar el siguiente repositorio Documentación, abrir la pagina Index.html en su navegador web la cual es similar a la siguiente imagen:

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 del API de mensajes es la librería sf00util.pbl

Los Objetos relacionados en el API son:

  • n_cst_app: Clase contenedora del API de mensajes
  • n_cst_msg: Clase utilizada para la gestion de los mensajes que se visualizan en las aplicaciones.

Ejemplos de Uso

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.

/*Ejemplos de uso utilizando la instancia genérica de la clase guo_app*/
guo_app.of_msg( ).of_msg_advertencia("Esto es una Advertencia.")
guo_app.of_msg( ).of_msg_informacion("Esto es una Información.")
guo_app.of_msg( ).of_msg_error("Esto es un Error.")
 
guo_app.of_msg( ).of_mensajes_sistema(10)
guo_app.of_msg( ).of_mensajes_sistema(10, "Error al insert el encabezado")
 
 
/*Ejemplo de uso definiendo la clase de mensaje.*/
n_cst_msg luo_msg
luo_msg = Create n_cst_msg
luo_msg.of_msg_advertencia("Esto es una Advertencia.")
luo_msg.of_msg_informacion("Esto es una Información.")
luo_msg.of_msg_error("Esto es un Error.")
luo_msg.of_mensajes_sistema(10)
luo_msg.of_mensajes_sistema(10, "Error al insert el encabezado")
destroy luo_msg
Consideraciones
  • 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 las consultas e inicialización del objeto.
  • Se unifica el desarrollo para que la función global f_mensajes_sistema tome los nuevos cambios sin afectar su definición.
  • 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.

Modo de uso: Java

Para las aplicaciones desarrolladas en las tecnologías (Web):

  • Java
  • .Net
  • PHP

el log de sesión será implementado por medio de un Servicio Web el cual deberá considerar las reglas de Columna: WS

←Volver atras

1)
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.
2) , 3) , 4)
Puede estar en inglés
5)
no existe
ada/howto/sicoferp/factory/logmodels/message.1630420807.txt.gz · Última modificación: 2021/08/31 14:40 por administraidor