Sincronización del calendario APEX con Outlook

Nuestros amigos y seguidores de nuestro blog OracleAPEX, nos preguntan cómo podemos sincronizar, el calendario que APEX nos proporciona con nuestro calendario OUTLOOK de Microsoft.
Pues bien, una de las maneras, más sencillas, que os vamos a explicar en esta nota, es generar un fichero vCalendar, el cual tiene una extensión VCS, con todos los datos necesarios para agendar en Outlook una reunión que tenemos dada de alta en el calendario de nuestra aplicación APEX.

¿Qué es un fichero vCalendar (vcs)?

Los datos guardados en un archivo de eventos vCalendar consta de un conjunto de detalles asociados a ciertos eventos, citas y/o actividades introducidos por el usuario de un calendario compatible.

¿Cómo es la estructura de un fichero vCalendar?

Los ficheros  tipo vCalendar, tienen una estructura  muy concreta,  por lo tanto hay que crear un procedimiento PL/SQL que construya este fichero con los datos de los eventos, fecha de incio de finalización, etc.

Una estructura básica sería como la siguiente:

  • DTSTART (Fecha inicio)
  • DTEND (fecha fin)
  • SUMMARY;CHARSET=ISO-8859-1: (asunto)
  • LOCATION;CHARSET=ISO-8859-1: (lugar)

Ejemplo de código PL/SQL que genera un fichero vCalendar

Aquí os mostramos un código PL/SQL a modo de ejemplo.

Pasaremos un parámetro P_ID_ENTREVISTA, el cual utilizaremos para consultar en base de datos todos los componentes necesarios para construir el fichero.

En este caso concreto, este parámetro no lo vamos a utilizar y vamos a construir el fichero vCalendar  con datos estáticos.

 

 

Implementación en Apex

    1. Crear una página con un calendario de APEX.
    2. Cada elemento agendado, deberá llevarnos a una nueva página, que será el detalle del evento agendado.
    3. En la página de detalle del evento agendado incluir un botón con label “Agendar Outlook“(que más tarde configuraremos) el cual generará el fichero vCalendar (“Agendar Outlook”).outlook1

 

    1. Luego utilizaremos este fichero vCalendar con extensión VCS para subirlo al Outlook.
    2. Crear una nueva página, que a partir de ahora la llamaremos fantasma que  nos servirá de puente para lanzar el proceso PL/SQL que generar el fichero vCalendar
    3. Es esta página fantasma, crear un ítem tipo Hidden que nos servirá como parámetro para pasarlo a nuestro proceso. En nuestro caso el P2_ID_ENTREVISTA.

 

outlook2

 

    1. En esta página fantasma, crear un proceso PL/SQL que se ejecuta “On Load-Before Header” que llamará a nuestro PL/SQL pasando el parámetro P2_ID_ENTREVISTA.outlook3outlook4

 

  1. En la página detalle del calendario, el botón creado “Agendar Outlook”, navegará a la página fantasma, pasándo por parámetro (&P126_ID_ENTREVISTA.) al ítem que hemos creado en la página fantasma (P2_ID_ENTREVISTA).outlook5

 

Cuando pulsemos el botón “Agendar Outlook”, este  pasará a la página fantasma el valor de la id_entrevista necesario para alimentar nuestro fichero vCalendar, técnicamente el botón navega a la página fantasma, pero visualmente nos quedamos en la misma página donde se encuentra el botón.

Para el usuario final simplemente verá cómo se descarga el fichero vCalendar al pulsar el botón sin ninguna navegación

Con esto terminaremos nuestro desarrollo.

Espero que esto os abra el camino como primer paso para la generación de ficheros tipo vCalendar.

3 comments on “Sincronización del calendario APEX con OutlookAdd yours →

  1. Hola,

    Muy bueno el tutorial, gracias por estas aportaciones.

    Aprovechando el tema tratado, me gustaría preguntar una cosa que llevo tiempo queriendo hacer.

    Es posible o sabéis como integrar el calendario de Google dentro de una página de Apex?.

    Lo que quiero conseguir es poder añadir tareas al calendario de Google desde una página de Apex. Según las informaciones que tengo, la BD Oracle EX no te permite esto, pero no sé si habrá un trutico o algo que permita hacer esto.

    Un saludo,

    1. Hola Isaac
      ¿Cómo estas? Soy Amaya Fírvida.
      La manera de incluir tareas dede APEX al google Calendar es con el API Google Calendar

      Previamente debes de realizar algunas tareas para el uso del API Google Calendar:

      1.Solicitar una API KEY
      2.Hacer tu Calendario Público
      3.Obtener tu ID Calendar
      4.Incluir la fullcalendar.js y fullcalendar.css
      5.Incluir Código javascript en APEX

      Espero que aunque tarde te sirva.
      Un saludo Isaac

  2. Gracias por tu respuesta Amaya,
    La idea la tengo clara, lo que pasa es que me falta experiencia para conseguir esto, un tuto de esto sería genial 😀
    Yo sigo probando e investigando cosillas, a ver que consigo.

    Un saludo,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">