Ejecución automática de Batch processes

Contenido ›› BATCH PROCESS ››
Parent Previous Next



Para configurar que un proceso por lotes sea ejecutado automáticamente por eBavel cada cierto tiempo, los parámetros que se deben agregar son los siguientes:



Nota: Si el mes en el que se está calculando la fecha de ejecución tiene menos días que el día del mes configurado, entonces se tomará el último día del mes, por ejemplo, si se está calculando la fecha en el mes de febrero y en ese año tiene 28 días y el día del mes configurado es 30 entonces la fecha de ejecución calculada sería el 28 de febrero del año correspondiente (También se considera si es año bisiesto ya que el mes de febrero tiene 29 días). Así se llevaría a cabo para cualquier mes que tuviera menos días que el día del mes configurado.

La siguiente fecha de ejecución del batch process es calculada cada vez que se construye la aplicación y se agrega al índice de tareas a ejecutarse en la base de datos fbm000  del servidor de kpionline7, de esta manera el servicio encargado de revisar las tareas que cumplen con la fecha y hora de ejecución revisará este índice y ejecutará el batch process correspondiente, además volverá a calcular la siguiente fecha de ejecución.


IMPORTANTE: Los Batch processes serán ejecutados con el usuario administrador (cla_usuario = 1) del sitio ya que son ejecutados automáticamente por el sistema y no existe un inicio de sesión de usuario.

En la vista aparece el botón de acciones al presionarlo desplegará una lista y al final de ella se mostrarán los procesos Batch que haya configurado





Ejemplos

1. ejemplo de varios Foreach cambiando varios campos (Codigo Php)


foreach(DBForm('Bitacora de ingreso')->Where('Fecha', '<', currentDate())->get() as $eachRow)

{

  $eachRow['Rating'] = "3";

  save($eachRow);

  SendEmail($eachRow['Email'],"Cambio el Rating del siguiente ID ({$eachRow['Id']}) ","Nuevo Rating({$eachRow['Rating']}) ");

}


foreach(DBForm('Bitacora de ingreso')->Where('Fecha', '<', currentDate())->get() as $eachRow1)

{

  $eachRow1['Estatus'] = "En Proceso";

  save($eachRow1);

  SendEmail($eachRow1['Email'],"Cambio el Estatus del siguiente ID ({$eachRow1['Id']}) ","Nuevo Estatus ({$eachRow1['Estatus']}) ");

}

foreach(DBForm('Bitacora de ingreso')->Where('Fecha', '<', currentDate())->get() as $eachRow2)

{

  $eachRow2['Area'] = "Calidad";

  save($eachRow2);

  SendEmail($eachRow2['Email'],"Cambio el Area del siguiente ID ({$eachRow2['Id']}) ","Nueva Area({$eachRow2['Area']}) ");

}


2. Ejemplo con un foreach cambiando varios campos





foreach(DBForm('Bitacora de ingreso')->Where('Rating', '<', 4)->get() as $eachRow2)

{

$eachRow2['Estatus'] = "Pendiente";

$eachRow2['Area'] = "Calidad";

$eachRow2['Rating'] = 5;

save($eachRow2);

SendEmail($eachRow2['Email'],"Cambio Datos del siguiente Registro ID({$eachRow2['Id']}) ","Estatus({$eachRow2['Estatus']}) And Area({$eachRow2['Area']}) And Rating({$eachRow2['Rating']}) ");

}


3. Foreach con un IF





Foreach(DBFORM('Pedido')->Where('Tipo Pedido','=',"Express")->get() as $CadaPedido)

   {

       if (datedif($CadaPedido['Fecha'],currentDate(),'day')==2)

       {

       $CadaPedido['Responsable']="ccabrera@bitam.com";

       save($CadaPedido);

       SendEmail($CadaPedido['Responsable'],"Se le asignó el pedido no.({$CadaPedido['Pedido No']})","Favor de surtirlo");

       }

    }


Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily