Detalles del desarrollo de la secuencia de evaluación de promociones
La tabla siguiente muestra un ejemplo de datos en una agenda de ejecución de promociones:
| Promociones | Políticas | |||||||
|---|---|---|---|---|---|---|---|---|
| Políticas globales | Grupo G1 | Grupo G2 | ||||||
| Política 1 | Política 2 | Política 3 | Política 4 | Política 5 | Política 6 | Política 7 | ||
| Grupo G1 | Promoción A | X | X | X | X | |||
| Promoción B | X | X | X | X | ||||
| Promoción C | X | X | X | X | ||||
| Promoción D | X | X | X | X | ||||
| Promoción E | X | X | X | X | ||||
| Grupo G2 | Promoción F | X | X | X | X | X | ||
| Promoción G | X | X | X | X | X | |||
La tabla contiene las promociones y las políticas que las rigen. La tabla también muestra cómo se agrupan las promociones, y a qué grupos se aplica cada política. El motor de promociones crea una agenda de ejecución de promociones, basada en la información contenida en la invocation template. La plantilla de invocación se especifica en la llamada al motor de promociones. De forma predeterminada, una plantilla es una lista preconfigurada de grupos de promociones que se evaluarán durante la llamada al motor de promociones.
Cuando se identifica una promoción para evaluación, se evalúan todas las restricciones y condiciones asociadas con la promoción. Se calculan las bonificaciones si la promoción es aplicable al pedido actual. Cuando la evaluación de una promoción se ha completado, se crean uno o más registros de ejecución de promoción (PromotionExecutionRecords), dependiendo de la cantidad de veces que esta promoción se pueda aplicar a este pedido. El motor de promociones, determina si se infringen las políticas de promoción al aplicar esta promoción al pedido encima de otras promociones que ya se han aplicado. Si no se encuentran violaciones de políticas, se añade el registro de ejecución de promociones al resultado y el motor de promociones evalúa la promoción siguiente. Este proceso continúa hasta que se han evaluado todas las promociones de la secuencia. La mayoría de métodos de la clase PromotionContext están definidos para dar soporte a este proceso.