Ejecutando mi batch una vez al día…? Necesito más!

Tweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0Digg thisBuffer this pageEmail this to someone

Hasta hace no mucho, había una cosa que me ponía de los nervios cada vez que me decían que tenía que programar un batch. Como developer, el sólo poder programarlo una vez al día me suponía todo un follón, ya que para poder testera cualquier modificación, tenía que borrarlo de la lista de tareas programadas, volver a compilar, programar de nuevo… vamos, un jaleo.

Si nos ceñimos únicamente a lo que nos propone Salesforce en su interfaz, vemos que efectivamente sólo podemos programarlo una vez al día:

Programando una clase apex

Programando una clase apex

Hasta hace poco, investigando por la documentación de Salesforce, unido a algún que otro sabio consejo de algún compañero, descubrí como se puede programar tantas veces como uno quiera. Para ello, sólo tenéis que seguir los siguientes pasos:

  1. En el menú superior derecho, donde aparece vuestro nombre de usuario, hacemos click en Consola de Desarrollador (o Developer Console, en inglés).
  2. Una vez estemos en ella, pulsamos sobre Debug –> Open Execute Anonymous Window, y una nueva ventana aparecerá.
  3. En esta nueva ventana será donde deberemos escribir nuestros comandos para programar nuestra clase o batch.
Scheduling classes - Developer Console

Programando la ejecución – Developer Console

Podemos  programar las clases, de muchísimas formas diferentes (que si una vez por hora, cada 5 minutos, el último jueves de mes, el último día del mes, etc…). Todas estás formas las podéis encontrar en la documentación oficial de Salesforce, así que no entraré en mucho detalle, pero si que podemos indicar un par de ellas a modo de introducción:

  • Si queremos ejecutar nuestro batch una vez por hora, indicaremos el siguiente comando. Comentar aquí que, si queremos que se ejecute cada cierto intervalo de tiempo, tendremos que añadir diferentes líneas, una para cada tiempo especifico.

  •  Si queremos ejecutar nuestro batch o clase el último viernes de cada mes, a las 22h (10PM):

Espero que os haya sido de utilidad!

Documentación Oficial de Salesforce | Apex Scheduler

, ,

  • Diego Gutierrez

    Para borrar las tareas programadas, hay que ir a: Configuración –> Configuración de Administración –> Supervisión –> Trabajos programados (Setup –> Administration Setup –> Monitoring –> Scheduled jobs ). Hasta donde yo sé, hay que ir borrando uno a uno los distintos trabajos, no hay una forma de automatizar el proceso.

  • Jose Maria Denia

    Hola Diego,

    Muy interesante la entrada. Que tendriamos que hacer para eliminar el bacth que hemos introducido por consola?