El software de gestión (ERP-CRM) LIBRA amplía su oferta en soluciones de movilidad.

LIBRA sigue ampliando su oferta de soluciones de movilidad especialmente orientadas a directivos de compañías, delegados y agentes comerciales, técnicos de venta o reparación y, en general, a cualquier persona que necesite soluciones de movilidad de alta prestación.

En el año 2010, EDISA comenzó a desarrollar una solución que permitiese operar desde dispositivos de movilidad habituales en el mercado actual, como son iPad, iPhone o dispositivos con sistema operativo Android.

Desde un primer momento, estuvo previsto extender la funcionalidad a otros módulos de LIBRA en los que la movilidad fuese un aspecto importante. En estos momentos, la solución abarca ya un alto número de opciones que se resumen a continuación:

  • CRM.
    • Creación y modificación de clientes potenciales.
  • VENTAS-DISTRIBUCIÓN.
    • Realización de pedidos.
    • Autorización de pedidos.
  • FINANCIERA.
    • Cobros a clientes.
  • OPCIONES AVANZADAS.
    • Acceso al gestor documental.
    • Acceso a los informes realizados con el generador de informes.
    • Visualización de indicadores.
  • MANTENIMIENTO.
    • Apertura de órdenes de taller.
    • Imputación de materiales.
    • Imputación de tiempos.
    • Cierre de las órdenes.
  • ENTORNO.
    • Lectura y envío de mensajes.

Un aspecto importante de la movilidad es la recogida de la firma del usuario. También en esa línea se ofrece -integrado en la solución- la posibilidad de recoger la firma digitalizada sobre el dispositivo móvil.

Si dispone de un dispositivo móvil puede probar nuestra solución en la siguiente dirección  entrando con el usuario y password EDISAWEB :

http:/vigo.edisagalicia.com/demos/libra/menu
Si desea probarlo con la recogida de la firma puede hacerlo en la siguiente dirección entrando con el usuario y password EDISAWEB :

http:/vigo.edisagalicia.com/demos/libra/demofirma

Una vez hecha la firma, entrará en el menú haciendo 'clic' en el logotipo de la parte superior izquierda.[:]


Ejemplo de funciones analíticas para explotar información de Libra I

Este es el primero de una serie de artículos en los que mostraremos casos útiles de uso de funciones analíticas y de funciones avanzadas que nos proporciona Oracle para explotar la información almacenada en Libra.

En este artículo nos vamos a centrar en el uso de Ventanas que permiten analizar el registro que se obtiene con los n registros anteriores y los n registros posteriores.

La mejor forma de verlo es con un ejemplo. Tenemos los siguientes registros de movimientos de almacén de un artículo:

Fecha    Movimiento   Cantidad
-------- ---------- ----------
24/01/04 INV_I           10000
19/07/04 VENT0             -10
15/07/05 VENT0             -12
15/07/05 VENT0              12
15/07/05 VENT0             -12
15/07/05 VENT0              12
15/07/05 VENT0              -1
15/07/05 VENT0               1
24/02/09 SAL_D           -9990
24/02/09 ENT_I              10

Estos registros han sido obtenidos con la siguiente consulta:

SELECT fecha_movim "Fecha", codigo_movimiento "Movimiento", cantidad_unidad1 "Cantidad"
  FROM historico_movim_almacen
 WHERE codigo_articulo = '00000089'
   AND codigo_empresa = '013'
   AND tipo_movimiento != '09'
 ORDER by fecha_movim;

Usando funciones analíticas se podría añadir una columna que muestre el stock resultante del artículo después de haberse realizado el movimiento, para ello es necesario sumar el campo "Cantidad" desde el principio hasta la fila que es obtenida, para ello añadimos la siguiente columna: SUM(cantidad_unidad1) OVER(ORDER BY fecha_movim ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)

Vamos a analizar esta función:

  • SUM(cantidad_unidad1): Se indica que se desea sumar el campo "cantidad_unidad1".
  • OVER(): Se indica que es una función analítica, por lo que SUM(cantidad_unidad1) lo realizará sobre los registros especificados dentro de OVER y no sobre los obtenidos directamente por la SELECT, de manera que no hace falta agrupar por ningún campo.
  • ORDER BY fecha_movim: La suma se realizará de forma ordenada usando el campo "fecha_movim".
  • ROWS BETWEEN: Se indica la ventana de registros sobre los que se desea hacer la suma.
  • UNBOUNDED PRECEDING: Indicamos que se deben sumar todos los registros anteriores, si se cambia UNBOUNDED por un número, por ejemplo 10 PRECEDING  se sumarían sólo los 10 registros anteriores.
  • AND CURRENT ROW: Se indica que sólo debe de sumar hasta la fila actual, es decir, las siguientes filas se ignoran.

La SELECT completa quedaría de la siguiente forma:

SELECT fecha_movim "Fecha", codigo_movimiento "Movimiento", cantidad_unidad1 "Cantidad",
       SUM(cantidad_unidad1) OVER(ORDER BY fecha_movim ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) "Stock"
  FROM historico_movim_almacen
 WHERE codigo_articulo = '300300'
   AND codigo_empresa = '013'
   AND tipo_movimiento != '09'
 ORDER by fecha_movim;

El resultado que se obtiene sobre los registros mostrados originalmente es el siguiente:

Fecha    Movimiento   Cantidad      Stock
-------- ---------- ---------- ----------
24/01/04 INV_I           10000      10000
19/07/04 VENT0             -10       9990
15/07/05 VENT0             -12       9978
15/07/05 VENT0              12       9990
15/07/05 VENT0             -12       9978
15/07/05 VENT0              12       9990
15/07/05 VENT0              -1       9989
15/07/05 VENT0               1       9990
24/02/09 SAL_D           -9990          0
24/02/09 ENT_I              10         10

De esta forma también se puede por ejemplo obtener de forma muy rápida una consulta para saber en qué momentos un determinado artículo de Libra se ha quedado sin stock, con la siguiente consulta:

SELECT fecha_movim "Fecha", codigo_movimiento "Movimiento", cantidad_unidad1 "Cantidad"
FROM (
      SELECT fecha_movim, codigo_movimiento, cantidad_unidad1,
             SUM(cantidad_unidad1) OVER(ORDER BY fecha_movim ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) stock
        FROM historico_movim_almacen
       WHERE codigo_articulo = '300300'
         AND codigo_empresa = '013'
         AND tipo_movimiento != '09'
       ORDER by fecha_movim) h
WHERE h.stock = 0;

El resultado de aplicar esta consulta sobre los registros de ejemplo únicamente nos devolverá el siguiente registro:

Fecha    Movimiento   Cantidad      Stock
-------- ---------- ---------- ----------
24/02/09 SAL_D           -9990          0

 


Caso de Exito en la recuperación de base de datos ORACLE

Este tipo de casos lo mejor sería que no existiesen, ya que la pérdida de datos para una empresa es algo que puede generar graves pérdidas, pudiendo incluso condicionar la propia continuidad de la empresa.

Sin embargo, ninguna empresa está exenta de que pueda ocurrir, lo que esta misma semana ha pasado en una de una de nuestras empresas clientes, usuaria de nuestro sistema de gestión empresarial (ERP-CRM) LIBRA:

  • Pérdida del RAID, con la pérdida total de los datos, tanto del disco principal como del espejo.
  • Corrupción de la copia de seguridad disponible en la cinta.
  • Pérdida de los datos de copia en disco, que se hacían en el mismo sistema central.

La mayor parte de las empresas cumplen con la "rutina" de hacer la copia, pero prácticamente ninguna hace una comprobación periódica de que lo que está copiando podría recuperarse en caso de necesidad y son pocas también las que siguen pautas de conservar las copias en varios soportes y en un emplazamiento diferente al del sistema principal.

A continuación se describe el proceso seguido para la recuperación.

  • Se pudo reconstruir parte del RAID, recuperando los datafiles de la base de datos.
  • Un fichero de control de los datafiles estaba corrupto y los otros ficheros de control estaban en un SCN diferente al de los datafiles, por lo que la base de datos no se pudo levantar utilizando los mecanismos de emergencia habituales (Reset logs, recrear ficheros de control, etc)
  • A partir de este punto, la solución planteada fue intentar leer los propios datafiles, aspecto que se consiguió a través de una herramienta de recuperación a la que afortunadamente hemos tenido acceso.

Todo el proceso anterior ha supuesto varios días de parada para la empresa, pero finalmente se han podido recuperar los datos que ha sido lo más importante. La propia empresa nos ha indicado la conveniencia de compartir este caso como experiencia para que a nadie más le ocurra en la medida posible.

En próximas entradas daremos acceso a un documento titulado "buenas prácticas de copia de seguridad", para insistir en este importante aspecto.


Publicado el Manual Práctico Cotización 2011 necesario para el módulo de nómina -ERP LIBRA

Ya esta disponible en la Web de la Seguridad Social el manual práctico de cotización 2011 que este año se identifica como Cotiza Guía 2011.

Esta disponible en formato pdf y en formato html (fichero comprimido), siendo este último formato el más completo ya que incluye supuestos prácticos de cotización y videos de ayuda.


Instancia es igual a Procesos y Estructuras de memoria

Instancia es igual a Procesos y Estructuras de memoria

La definición de una instancia es sencilla y básica, es un conjunto de estructuras de memoria que manejan los archivos de la base de datos, cuando inicia la instancia, con ella inician procesos de fondo (Background Process), como el LGWR, PMON, etc.

Importante saber que al menos una base de datos activa o mejor dicho que esta corriendo, debe de tener una instancia asociada. De la misma manera, como la instancia existe en memoria y la base de datos existe en disco, una instancia puede existir sin una base de datos y una base de datos puede existir sin una instancia, si no me crees esto, haz la prueba, arranca la instancia en modo nomount y veras que sin existir los datafiles,controlfiles y redo logs puedes iniciar la instancia.

TESTDB >startup nomount

ORACLE instance started.

Total System Global Area 1369989120 bytes
Fixed Size 2158184 bytes
Variable Size 268439960 bytes
Database Buffers 1090519040 bytes
Redo Buffers 8871936 bytes

oracle@localhost [TESTDB] /mount/dba01/oracle/TESTDB/admin
oracle $ ps -eaf | grep TESTDB
oracle 27411 1 0 01:21:35 ? 0:00 ora_pmon_TESTDB
oracle 27448 1 0 01:21:37 ? 0:00 ora_ckpt_TESTDB
oracle 27435 1 0 01:21:37 ? 0:00 ora_dia0_TESTDB
oracle 27439 1 0 01:21:37 ? 0:00 ora_dbw0_TESTDB
oracle 27454 1 0 01:21:37 ? 0:00 ora_mmon_TESTDB
oracle 27415 1 0 01:21:35 ? 0:00 ora_psp0_TESTDB
oracle 27444 1 0 01:21:37 ? 0:00 ora_dbw1_TESTDB
oracle 27431 1 0 01:21:37 ? 0:00 ora_diag_TESTDB
oracle 27446 1 0 01:21:37 ? 0:00 ora_lgwr_TESTDB
oracle 27452 1 0 01:21:37 ? 0:00 ora_reco_TESTDB
oracle 27450 1 0 01:21:37 ? 0:00 ora_smon_TESTDB

Aqui abajo esta una pequeña gráfica de como se conforma una instancia:

Y debido a lo que platicamos arriba, es lo que permite la conflagración para RAC (Real Application Cluster), asi también es importante saber que una instancia no puede tener asociada una sola base de datos a la vez, o sea que no puedes montar dos base de datos en una instancia.

Memoria
La memoria SGA tiene 3 estructuras básicas:Database buffer cache.- Es el área de memoria que almacena copias de los bloques de datos leídos de los data files. También a esta área se le conoce nada mas como Buffer Cache. Esta sección de la memoria tiene tres estados.

    • Sin Usar (Unused).-El buffer esta disponible por que nunca se ha usado o actualmente esta sin usar.
    • Limpia (Clean).-Este buffer fue usado previamente, y ahora contiene una version consistente del bloque de datos en un punto en tiempo. El bloque contiene datos, pero este se puede decir que esta limpio, ya que no se le necesita hacer un checkpoint a los datos.
    • Sucia (Dirty).-El buffer contiene datos que no han sido escrito a disco, Oracle necesita hacer un checkpoint del bloque de datos antes de reusarlo.

Para manejar estos estados, Oracle tiene un algortimo llamado LRU (Least Recently Used), lo que hace este algoritmo es sacar del buffer a los bloques de datos menos usados y que ya se le hayan hecho un checkpoint para asi poder subir al Buffer Cache nuevos datos y evitar sacar del Buffer Cache los datos que se usan con frecuencia.

Shared Pool .- Esta área de memoria guarda SQL analizado (Parsed),parámetros del sistema y el diccionario de datos (Data Dictionary Cache y Library Cache).

Redo Log Buffer.- Esta estructura de memoria en el SGA, que guarda los registros de Redo, estos contienen la información necesaria para reconstruir los cambios hechos por DDLs o DMLs a la base de datos.

Procesos
Existen varios que son obligatorios, como los mencionados aqui abajo, de la misma manera existen muchos procesos que se inician una vez que añades alguna funcionalidad, como el ARCn, que es cuando la base de datos esta en modo archivelog.

PMON.- La funcionalidad de este proceso es la de monitorear que los demás procesos de la instancia estén corriendo, a su vez es responsable de limpiar el Database Buffer Cache y limpiar recursos que el cliente haya utilizado.

SMON.-La tarea principal de este proceso es la de limpieza a nivel sistema, y también una de las tareas principales de este proceso es llevar a cabo la recuperación al iniciar la instancia cuando anteriormente finzalizo de una manera abrupta, como un shutdown abort o un crash del servidor.

CKPT.-Su función es la de actualizar las cabeceras de los control files y de los data files, con información de Checkpoint (SCN, Posición de Checkpoint, etc), a su vez la avisa al DBWn que debe de escribir los bloques del Buffer Cache a disco. Muy importante saber, que el CKPT no escribe los datos, ni al Redo Log ni a los data files.

DBWn.-Este proceso escribe los contenidos sucios del buffer Cache, a este proceso se le conoce como un proceso flojo, ya que por si solo no escribe a disco, este unicamente escribe a disco cuando no hay bloques de datos limpios en el buffer cache o cuando CKPT le informa que debe hacerlo.

LGWR.- De lo que se encarga es de escribir los Redo Log Buffers a disco (Online Redo Log). Este proceso utiliza un método que se le conoce como Fast Commit. Cuando un usuario ejecuta un commit, a la transacción se le asigna un SCN (System Change Number), LGWR pone una marca de commit en el Buffer Cache e inmediatamente escribe a disco, cuando se han escrito estos datos en el Online Redo Log, el proceso actualiza el Buffer Cache haciendo mención de que estos ya se escribieron a disco.

Conclusión
Espero que esta pequeña explicación te ayude a comprender la diferencia entre la Instancia y lo que en Oracle se conoce como Base de Datos. De la misma manera los procesos básicos y memoria basica de la instancia, para los procesos y la memoria existen mas de los mencionados aqui, pero estos son los minimos necesarios en una configuracion de Oracle.

Artículo vía:

http://oracleenespanol.blogspot.com/2011/03/instancia-es-igual-procesos-y.html


Mejora el interface del usuario con las nuevas versiones de LIBRA

Está disponible ya la versión 5.2.2 de LIBRA que incorpora claras ventajas para la empresa.

Un cambio importante a partir de esta versión es que la mayoría de las pantallas se entregan en resolución de 1024 frente a los 800 que se ofrecían hasta ahora.

Eso redunda en una clara mejora para el usuario ya que el hecho de disponer de más espacio en pantalla, permite una mejor visión de los datos.  Campos que hasta ahora se cortaban o se mostraban en lugares no visibles, se muestran ahora completos y perfectamente visibles para el usuario.A modo de ejemplo puede ver en las imágenes adjuntas un ejemplo con la diferencia apreciable en la vista  360º.

Vista 360 º en la resolución 800:

Vista 360 º en la nueva resolución:


9 Cursos de Formación en los Meses de Abril y Mayo

En los meses de Abril y Mayo tendrán lugar 9 cursos sin coste para los clientes, en los que se tratarán los siguientes temas:

- Generador de Informes

- Mejora de la productividad en LIBRA

- Nuevas funcionalidades en el área financiera

En breve se distribuirá el calendario detallado de los cursos que tendrán lugar en Vigo, Ourense y Oviedo.


Disponible entorno 6.0.5

Ya se encuentra disponible la actualización de entorno 6.0.5.

El entorno es el núcleo de Libra, y el disponer un entorno actualizado proprorciona nuevas capacidades de personalización de Libra sin necesidad de actualizar de versión y la posibilidad de que sean ejecutados programas diseñados para versiones posteriores de Libra a la que se está utilizando.

Importante

  • Se deshabilita por defecto el envío a Excel usando Rep2excel. El cliente debe de ser consciente de que Rep2excel es un producto externo a Libra y a Edisa (http://www.lv2000.com) y que debe de tener licencias de él para poder usarlo, para habilitarlo hay que ir al mantenimiento de Parámetros de Menú (U_MPRMEN) y activar la check "Habilitar rep2excel".
  • Se debe de cubrir en los parámetros generales del menú el campo "Código Instalación E.R.P", el valor que hay introducir ahí es el código que tiene el cliente en el CRM de Edisa. Mientras no se indique ese dato, Libra dará un aviso a los "Superusuarios" al entrar, indicando que debe de introducirlo, pero dejará entrar sin más problemas.

 

Bugs Arreglados

  • Generación de SQL de programas, programas personalizados y plantillas: Se ha arreglado el problema de generación de la sql cuando el NLS_NUMERIC_CHARACTERS está configurado para tener como separador de decimales la coma (p.ej. México).
  • Solucionado ORA-01400 al llamar a un report desde un pl/sql de procesos desde el menú.
  • Daba un ORA-06502 al entrar en Libra en caso de activar Negrita para los campos del registro actual o para todos los campos.
  • Se arregla en paquete PK_EMAIL para que se permita el envío de correos con archivos adjuntos con espacios en el nombre.
  • Alertas: Si se ejecutan varias alertas y no todas tienen indicado el remitente de los correos, las que no tenían remitente se enviaban con el remitente incorrecto, en concreto con él de la anterior alerta ejecutada que tenía remitente.
  • Alertas. No se estaba calculando bien la fecha de próxima ejecución cuando la alerta era mensual.

Novedades

Destacadas

Mejoras en Plug-ins

Se ha añadido la posibilidad de tener plug-ins globales a todos los bloques de un programa o a todos los programas de Libra.

  • Para dar de alta plug-ins globales a un programa hay que añadir el bloque .GLOBALPLUGINS y darlos de alta en ese bloque.
  • Para dar de alta plug-ins globales a todo Libra hay que crear el programa personalizado .GLOBALPLUGINS y darlos de alta en el bloque .GLOBALPLUGINS

También se ha añadido la posibilidad de indicar que el programa llamador no debe de quedar a la espera de que termine el programa llamado. En caso de activar esa opción el programa llamado funciona igual que si el usuario fuese por ventanas y lo abriese desde el menú, es decir, el programa llamador continúa su ejecución, la conexión a la base de datos es distinta para cada programa. El inconveniente principal es que el programa llamado no puede devolver valores al programa llamador y tampoco puede compartir variables de sesión de la base de datos, y como ventaja se evita el mensaje "No se puede iniciar otra llamada a pantalla" cuando el usuario tiene varios programas llamados de forma concurrente.

Desde pl/sql se puede activar este funcionamiento con: :p_esperar_fin_programa_llamado := 'N';

Posibilidad de recuperar la contraseña olvidada por los usuarios

En parámetros generales del menú se puede activar una check para indicar que se permite a los usuarios restablecer su contraseña en caso de que la olvidasen, para ello Libra le enviará a la cuenta de correo electrónico del usuario un código aleatorio de 20 caracteres que deberá de introducir en el programa de cambio de password.

En parámetros generales del menú aparte de activar la check hay que indicar cual es la dirección de correo electrónico de origen del mensaje, el asunto y el texto del mensaje que le llegará al usuario. En el texto del mensaje se puede usar <codigo> que será reemplazado por el código que debe de introducir el usuario, en caso de no tener esa etiqueta el código se concatenará al final del texto.

Aparte de tener activada esa check para que el usuario pueda restablecer su contraseña tienen que darse a mayores las siguientes condiciones:

  • Tener parametrizado el servidor SMTP Genérico en la pestaña de "Notificaciones/Alertas" del menú.
  • Que el usuario tenga cubierta su dirección de correo electrónico.
  • Que el usuario tenga activada la check de que puede cambiar su contraseña.

Varias

  • Cerrar Libra al Cerrar sesión: Se ha añadido un nuevo parámetro en personalizar estética por empresa ó usuario para evitar que el usuario pueda cerrar sesión (es decir, cambiar de usuario), de forma que el cierre de sesión sea equivalente a salir de Libra.
  • Mejora en los programas llamados: Cuando se está en un registro que se ha modificado pero todavía no se ha grabado esa modificación en la base de datos y se llama a otro programa (por ejemplo por plug-in), se le indica al programa llamado que él no puede grabar y qué los cambios los debe de grabar el programa llamador, de esta forma se evita el mensaje de error indicandole al usuario de que el programa llamador tiene cambios no aplicados.
  • Filtrado de opciones de menú según sector de empresa: Las opciones de menú se pueden tipificar y a los tipos de opciones se pueden asociar a un sector de empresa, de manera que esas opciones únicamente aparecerán cuando el usuario se valide en una empresa de ese sector.
  • Se añade la opción de autorizar/desautorizar botones de la botonera que se inicializan y gestionan dentro del fuente del programa, desde una nueva pestaña en el mantenimiento de programas (Botonera).
  • Programa de selección de destino de impresión: Cuando se ejecuta desde pl/sql un report, al abrir la pantalla de selección de impresoras únicamente salían las que estaban marcadas como carro ancho. Ahora por defecto salen todas.
    • Para forzar que únicamente salgan las verticales hay que ejecutar: PKPANTALLAS.SET_VARIABLE_ENV('IMP_TIPO_IMPRESORA', 'V');
    • Para forzar que únicamente salgan las horizontales hay que ejecutar: PKPANTALLAS.SET_VARIABLE_ENV('IMP_TIPO_IMPRESORA', 'H');
  • Generador de Informes: Se ha mejorado la velocidad de carga del menú de informes del usuario.
  • Se ha mejorado el paquete PKNUM2LETRA para incorporar el idioma Mexicano.
  • Se añade el comando plug-in 'WWW' (en PL/SQL) para abrir una página web en el navegador.
  • Check para indicar que se va actualizar Libra y no puede entrar nadie: Se ha añadido la check "Activar Tareas de Mantenimiento del E.R.P" en los parámetros generales del menú. Si se activa, a los usuarios que no son superusuario no se les dejará entrar en Libra ni abrir ningún programa nuevo, se le mostrará un mensaje indicando que no puede entrar en Libra o que debe salir de forma inmediata en caso de estar dentro e intenta abrir un programa nuevo.
  • Mejoras en la gestión de archivos: Se ha añadido la posibilidad de enviar por correo electrónico los archivos almacenados en la base de datos. IMPORTANTE:
    • Requiere recompilar los programas para tener esta opción.
    • Se guarda un log de los archivos descargados y de los enviados por mail.
  • Se añade al paquete PK_EMAIL la posibilidad de enviar correos electrónicos con el texto del cuerpo del mensaje en formato HTML.
  • Mejora en mantenimiento de Listas de Valores: Se añade posibilidad de generar las sqls de las listas de valores de forma masiva.

Para desarrolladores

Mejoras para desarrolladores para gestionar los informes asociados en el mantenimiento de programas

Se ha añadido la posibilidad de por código consultar datos del informe seleccionado:

  • IMP.GET_PROPIEDAD('BREPORT_INFORME_CODIGO_INFORME'): Devuelve el código del informe seleccionado.
  • IMP.GET_PROPIEDAD('BREPORT_INFORME_NOMBRE_INFORME'): Devuelve el nombre del archivo del informe seleccionado.
  • IMP.GET_PROPIEDAD('BREPORT_INFORME_TITULO_INFORME'): Devuelve la etiqueta del informe seleccionado.

Estos datos también se envían a los report en los siguientes parámetros:

  • P_INFORME_NOMBRE_INFORME
  • P_INFORME_CODIGO_INFORME
  • P_INFORME_TITULO_INFORME

Gestión de cuentas POP3

Se pueden configurar cuentas POP3 en el programa U_MPRMEN, luego por PL/SQL se pueden descargar los correos ejecutando de forma periódica mediante las alertas u otro método el siguiente comando:

pk_email.procesar_servidor_pop3('<codigo cuenta pop3');

En la parametrización se puede indicar una función para procesar cada mensaje descargado de la cuenta, esa función debe de devolver el resultado (si es correcto debe devolver OK) y recibe como parámetro el ID del mensaje.

Ejemplo:

CREATE OR REPLACE FUNCTION PRUEBA_GESTION_MENSAJE_EMAIL(p_id_mensaje NUMBER) RETURN VARCHAR2 IS
BEGIN
  RETURN('OK');
END;

Los mensajes quedan almacenados en las tablas:

  • EMAIL_GESTION_CORREOS
  • EMAIL_GESTION_CORREOS_ADJUNTOS

 


Documentación de desarrollo actualizada a versión 6.0.5

Documento de desarrollo actualizado a la versión 6.0.5 del entorno de Libra. Este documento es útil para programadores que deseen realizar programas en Oracle Forms compatibles con Libra, tanto para hacer programas desde cero, como para desarrollar plug-ins para programas del estándar y también para hacer personalizaciones de programas.

 


Privacy Preference Center