Procesos ad hoc
Un proceso que recupera los registros del sistema para llevar a cabo alguna acción sobre ellos necesita un algoritmo que seleccione los registros que se van a procesar y otro para procesarlos. Nos referimos a este tipo de procesos como procesos ad hoc. La plantilla genérica orientada por plug-in de control de lotes de base (F1-PDBG) puede usarse como plantilla.
Los procesos de base implantan la funcionalidad de proceso en segundo plano estándar, que incluye la lógica de proceso en segundo plano en paralelo y la capacidad de crear entradas de tarea para errores. Esto permite que en una implantación se aproveche el soporte predefinido y proporcione plug-ins que incluyen una lógica única para cada caso de uso específico.
En las secciones siguientes se proporciona más información sobre la funcionalidad de los procesos ad hoc. Tenga en cuenta que los procesos de extracción comparten parte de la misma funcionalidad. Consulte Procesamiento de registros de extracción para obtener información adicional específica de los procesos de extracción.
Algoritmo de selección de registros
El primer algoritmo importante que se debe diseñar al implantar un proceso por lotes orientado por plug-in es el algoritmo de selección de registros, conectado a la página de control de lotes. Este tipo de algoritmo debe definir el primer parámetro como el SQL. La tarea por lotes accederá de forma directa al valor del parámetro SQL de los metadatos, en lugar de llamar al algoritmo. Todos los demás parámetros estarán disponibles para que el algoritmo los use para su propia lógica.
Además, al llamar al algoritmo debe devolver la estrategia que se usará (Select de SQL de nivel de thread o Select de SQL de nivel de tarea). Consulte Procesos en segundo plano paralelos para obtener más información sobre las dos estrategias y cuándo se debe utilizar cada una. Al seleccionar la estrategia Select de SQL de nivel de thread, el algoritmo debe devolver el nombre de la clave primaria en el parámetro Campo de clave. Además, el SQL debe incluir una cláusula BETWEEN que incluya las variables de enlace para el ID bajo y alto de los rangos. A continuación se muestra la sintaxis de variable de enlace.
Si la sentencia SQL contiene variables que se determinan en el tiempo de ejecución, debe utilizar parámetros de enlace. La sentencia SQL hace referencia a los parámetros de enlace usando dos puntos (:) y un nombre de parámetro (por ejemplo, :parámetro). La tarea por lotes rellena en el tiempo de ejecución algunas variables proporcionadas por el sistema. Tienen el prefijo f1_.
El sistema soporta los parámetros siguientes de enlace predefinidos:
-
:f1_lowID y :f1_highID - Deben utilizarse en la cláusula BETWEEN para la estrategia Select de SQL de nivel de thread. La tarea por lotes sustituirá el intervalo de ID adecuado según sea necesario.
-
:f1_batchCode y :f1_batchNumber - Son atributos comunes del control de lotes, a los que se hace referencia en un registro para la selección. Tenga en cuenta que el número de ejecución de lote se establece según si la tarea por lotes es una repetición de una ejecución anterior o no.
-
:f1_businessDate - La tarea por lotes rellenará la fecha laborable del lote de entrada si se ha rellenado con un valor distinto de la fecha actual.
Para todos los demás parámetros personalizados, el algoritmo de selección de registros puede devolver uno o más juegos de nombres de campo/nombres de variable/valores, donde el nombre de variable coincida con una variable de enlace del SQL. El nombre de campo incluye información sobre la longitud que asiste a la lógica de enlace SQL para sustituir correctamente los valores. Tenga en cuenta que el nombre de variable no puede comenzar con el prefijo f1.. La tarea por lotes usará el valor devuelto por el algoritmo para establecer el parámetro de enlace en la sentencia SQL. También debe tenerse en cuenta que la lógica enlaza todas las variables como una cadena, por lo que, para variables de fecha el SQL debe incluir la función "TO_DATE".
El hueco de plug-in recibe una lista de parámetros ad hoc para la tarea por lotes como pares de nombre/valor. Si la lista incluye parámetros cuyos valores se van a utilizar en la selección de registros, se puede utilizar el algoritmo para identificar el parámetro de lote relevante, transferido como entrada, y rellenar el nombre de campo y la variable de enlace de salida de forma adecuada.
El producto proporciona un tipo de algoritmo base para este hueco de plug-in que solo define un parámetro del SQL. También incluye parámetros para la estrategia y el nombre de campo de clave. Cualquier proceso por lotes personalizado puede usar este tipo de algoritmo, en el cual el SQL no se basa en ninguna variable de enlace especial que se deba determinar. Solo tiene que crear un algoritmo para el tipo de algoritmo y proporcionar el SQL adecuado. Consulte la descripción del tipo de algoritmo de selección de registros por consulta predefinida (F1-PDB-SR) para obtener más información.
Algoritmo de proceso de registros
El otro algoritmo importante que se debe diseñar al implantar un proceso por lotes orientado por plug-in es el algoritmo de registro de proceso, conectado a la página de control de lotes. Se realiza una llamada a este algoritmo para cada registro seleccionado para el proceso. Este algoritmo recibe toda la información seleccionada del plug-in Seleccionar registros.
Para el proceso por lotes de procesamiento ad hoc, los algoritmos conectados a este hueco se encargan de realizar el trabajo de cada registro en función de la lógica deseada.
En el caso del proceso por lotes de extracción, los algoritmos conectados en el hueco se encargarán de devolver los datos que se deben escribir en el fichero. Muchos de los parámetros de este hueco de plug-in solo se aplican a los procesos de extracción. Para obtener más información sobre la funcionalidad específica de los procesos de extracción, consulte Procesamiento de registros de extracción.
Tenga en cuenta también que a los algoritmos para este hueco de plug-in se les transferirán dos booleanos, isFirst e isLast, para indicar si la unidad de trabajo actual es la primera y/o última de ese thread. Esto permite que el plug-in realice un trabajo adicional si es necesario. Tenga en cuenta que la indicación isFirst está disponible para ambos tipos de procesos por lotes: ad hoc y extracción. Sin embargo, la indicación isLast solo es aplicable al lote de extracción de ficheros. Para el proceso por lotes ad hoc, este valor siempre se definirá como falso. Las extracciones siempre se ejecutarán en una sola transacción de base de datos. En una ejecución en una sola transacción, cualquier error provocará que la ejecución se aborte de modo que se reiniciará desde el principio cuando se vuelva a ejecutar. Esto se realiza para evitar que los ficheros parciales se escriban junto con un valor incorrecto del elemento isLast.
Configuración de un nuevo proceso
Los puntos siguientes resumen los pasos necesarios para implantar un nuevo proceso en segundo plano que actúa sobre los registros del sistema mediante plug-in para una funcionalidad específica:
-
Compruebe el SQL que debe ejecutar el proceso en segundo plano. Tenga en cuenta que todos los datos seleccionados en el SQL están disponibles para transferirse al plug-in que procesa los registros. Si el rendimiento del proceso en segundo plano es importante, asegúrese de consultar con un administrador de base datos cuando diseñe el SQL.
-
Si el SQL no necesita ninguna variable personalizada para sustituir durante la ejecución, cree un algoritmo para el tipo de algoritmo base F1-PDB-SR y configure el SQL. Además, configure la estrategia y el nombre de clave primaria (para la estrategia Select de SQL de nivel de thread).
-
Si el SQL necesita variables personalizadas, debe diseñarse un nuevo script de plug-in y codificarse para rellenar los nombres y valores de variable, mediante la entidad de algoritmo Control de lotes - Seleccionar registros. Además de definir las variables, el algoritmo también debe indicar la estrategia y el nombre de clave primaria (para la estrategia Select de SQL de nivel de thread). Defina el tipo de algoritmo para el script recién creado. El primer parámetro del tipo de algoritmo debe ser el SQL, según se muestra en el tipo de algoritmo base. Tenga en cuenta que los otros parámetros están disponibles para que los use este tipo de algoritmo, si es necesario. Defina el algoritmo, rellenando el SQL según corresponda (usando las variables personalizadas).
-
-
Diseñe la lógica necesaria para procesar cada registro. Si el producto integrable no incluye un plug-in adecuado, cree un script de plug-in donde la entidad de algoritmo sea Control de lotes - Registro de proceso. Tenga en cuenta que el plug-in recibe toda la información seleccionada en el SQL definido en el plug-in Seleccionar registros. Para un proceso ad hoc, el algoritmo debe realizar todos los procesos necesarios, en función del caso de uso de negocio. Tenga en cuenta que el proceso en segundo plano se encarga de validar los registros.
En cualquier caso, si es necesario un nuevo script de procesamiento, defina el algoritmo y el tipo de algoritmo para el script recién creado.
- Cree un control de lotes duplicando la plantilla base F1-PDBG. Introduzca los algoritmos creados antes y configure los parámetros según corresponda. Debe tener en cuenta que, si es necesario, podrá configurar parámetros personalizados y ad hoc en el control de lotes. Tanto los valores de parámetros por lotes base como personalizados están disponibles para los parámetros de plug-in de selección y proceso de registros.