Métodos de cálculo

Un método de cálculo implementa una parte de la infraestructura de cálculo. Se utilizan clases de método de cálculo diferentes para las distintas operaciones que son necesarias para realizar un cálculo en la infraestructura de cálculo.

Si se utilizan varios métodos de cálculo en lugar de utilizar un método de cálculo extenso, la personalización de los cálculos resulta más simple. Para personalizar un cálculo, a menudo sólo es necesario modificar o reemplazar uno o dos de los métodos de cálculo.

Los métodos de cálculo utilizan la información que forma parte de los usos de cálculo, los códigos de cálculo y las escalas de cálculo a fin de determinar los importes monetarios para los artículos de pedido. Los métodos de cálculo se clasifican por categorías según la tarea que realizan en la infraestructura de cálculo y la parte de la infraestructura de cálculo a la que pertenece el método de cálculo. Se realizan las tareas siguientes como parte de la infraestructura de cálculo:

Se utilizan métodos diferentes para aplicar, combinar, finalizar, calificar y resumir partes distintas de la infraestructura de cálculo. A los métodos de cálculo se les asigna una subclase para clasificar la forma en que se va a utilizar el método de cálculo. HCL Commerce proporciona las siguientes subclases de método de cálculo, listadas en el orden en que se utilizan dentro de la infraestructura de cálculo:
Tarea Descripción:
Aplicación La aplicación implica guardar los importes calculados en la base de datos de HCL Commerce para utilizarlos en cálculos posteriores.
Inicialización La inicialización implica el restablecimiento de las variables utilizadas en los cálculos y el borrado de los resultados calculados anteriormente.
Combinación La combinación implica la determinación de las relaciones entre los artículos de pedido y los códigos de cálculo, las normas de cálculo o las escalas de cálculo. La combinación también puede implicar la determinación del pedido en el que se aplican los códigos de cálculo a los artículos de pedido.
Calificación La calificación implica la restricción del conjunto de códigos de cálculo, normas de cálculo o escalas de cálculo aplicables utilizando unos criterios que existen fuera de la infraestructura de cálculo. Por ejemplo, es posible que determinados códigos de cálculo sólo se apliquen a clientes que pertenecen a un grupo de miembros específico. La calificación es una subtarea de la combinación.
Cálculo El cálculo implica la determinación de un importe monetario que se aplica a los artículos de pedido.
Búsqueda La búsqueda implica la utilización de un valor para determinar otro valor.
Suma La suma implica la determinación de los totales de los importes monetarios de los artículos de pedido. Una suma es, por ejemplo, determinar los impuestos totales de un pedido sumando los impuestos calculados para cada artículo del pedido.
Finalización La finalización implica cualquier proceso que se produzca después de la aplicación. Marcar los cupones utilizados en un pedido para evitar que dichos cupones se utilicen en otros pedidos es un ejemplo de finalización.
  • InitializeCalculationUsage
  • ApplyCalculationUsage
  • CalculationCodeApply
  • CalculationCodeCombine
  • CalculationCodeQualify
  • CalculationCodeCalculate
  • CalculationRuleCombine
  • CalculationRuleQualify
  • CalculationRuleCalculate
  • MonetaryCalculationScaleLookup
  • QuantityCalculationScaleLookup
  • CalculationRange
  • SummarizeCalculationUsage
  • FinalizeCalculationUsage

La subclase de un método de cálculo indica la interfaz que su mandato correspondiente extiende. Las clases Java que componen la infraestructura de cálculo forman parte del paquete com.ibm.commerce.order.calculation. La tabla siguiente muestra las subclases de método de cálculo y las interfaces relacionadas.

Subclases de método de cálculo e interfaces relacionadas
Subclase de método de cálculo Interfaz
InitializeCalculationUsage com.ibm.commerce.order.calculation.InitializeCalculationUsageCmd
ApplyCalculationUsage com.ibm.commerce.order.calculation.ApplyCalculationUsageCmd
CalculationCodeApply com.ibm.commerce.order.calculation.CalculationCodeApplyCmd
CalculationCodeCombine com.ibm.commerce.order.calculation.CalculationCodeCombineCmd
CalculationCodeQualify com.ibm.commerce.order.calculation.CalculationCodeQualifyCmd
CalculationCodeCalculate com.ibm.commerce.order.calculation.CalculationCodeCalculateCmd
CalculationRuleCombine com.ibm.commerce.order.calculation.CalculationRuleCombineCmd
CalculationRuleQualify com.ibm.commerce.order.calculation.CalculationRuleQualifyCmd
CalculationRuleCalculate com.ibm.commerce.order.calculation.CalculationRuleCalculateCmd
MonetaryCalculationScaleLookup com.ibm.commerce.order.calculation.CalculationScaleLookupCmd
QuantityCalculationScaleLookup com.ibm.commerce.order.calculation.CalculationScaleLookupCmd
CalculationRange com.ibm.commerce.order.calculation.CalculationRangeCmd
SummarizeCalculationUsage com.ibm.commerce.order.calculation.SummarizeCalculationUsageCmd
FinalizeCalculationUsage com.ibm.commerce.order.calculation.FinalizeCalculationUsageCmd

Tablas de base de datos para métodos de cálculo

Los métodos de cálculo se definen en la tabla de base de datos CALMETHOD.

Diagrama de modelo de datos de método de cálculo

Modelo de datos de método de cálculo

Cómo funcionan los métodos de cálculo

Se invocan diversos métodos de cálculo cuando HCL Commerce calcula importes monetarios. Cada subclase de método de cálculo se utiliza para los demás componentes de la infraestructura de cálculo.

Métodos de cálculo para usos de cálculo

Métodos Descripción:
InitializeCalculationUsage Lo puede llamar el mediante el mandato OrderPrepare para inicializar el cálculo de importes monetarios. Un ejemplo de inicialización es eliminar valores calculados anteriormente.
ApplyCalculationUsage Lo puede llamar el mandato OrderPrepare para calcular importe monetarios y aplicarlos a un pedido. También lo pueden invocar los beans de datos para calcular importes monetarios con el fin de visualizarlos. Los ajustes de pedido, los cargos de envío y los impuestos son ejemplos de importes calculados. Las implementaciones predeterminadas de este método de cálculo llaman a los métodos de cálculo CalculationCodeCombine, CalculationCodeCalculate y CalculationCodeApply.
SummarizeCalculationUsage Lo puede llamar el mandato OrderPrepare para resumir los valores calculados y aplicarlos a un pedido. Llenar de datos los cargos de envío o los importes monetarios de ajustes de subpedido o subpedidos es un ejemplo de ello.
FinalizeCalculationUsage Lo puede llamar el mandato OrderProcess para marcar los recursos empleados, como, por ejemplo, cupones.
CalculationCodeApply Lo puede invocar el método ApplyCalculationUsage para aplicar los valores calculados para una lista de artículos de un pedido.
CalculationCodeCombine Lo puede invocar el método ApplyCalculationUsage para identificar relaciones entre artículos de pedido y códigos de cálculo. Las implementaciones predeterminadas del método CalculationCodeCombine utilizan las tablas de base de datos CATENCALCD, CATGPCALCD, ORDICALCD y ORDCALCD y llaman al método CalculationCodeQualify.
CalculationCodeQualify Lo puede llamar el método CalculationCodeCombine para determinar si un código de cálculo es aplicable a una lista de artículos de pedido.
CalculationCodeCalculate Lo puede llamar el método ApplyCalculationUsage a fin de calcular los valores de una lista de artículos de pedido para un código de cálculo determinado.
CalculationRuleCombine Lo puede llamar el método CalculationCodeCalculate para determinar una lista de normas de cálculo y los artículos de pedido asociados que se deben aplicar para un código de cálculo. Las implementaciones predeterminadas del método CalculationRuleCombine llaman al método CalculationRuleQualify y al método CalculationRuleCalculate a fin de encontrar los valores más bajos para cada combinación permitida de normas de cálculo.
CalculationRuleQualify Lo puede llamar el método CalculationRuleCombine para determinar a cuál de los artículos de pedido de una lista se aplica una norma de cálculo.
CalculationRuleCalculate Lo puede llamar el método CalculationRuleCombine para calcular los valores de una lista de artículos de pedido.
MonetaryCalculationScaleLookup Lo puede llamar el método CalculationRuleCalculate para determinar cómo se puede utilizar una escala de cálculo basada en un valor monetario a fin de determinar un rango de cálculo para una lista de artículos de pedido.
QuantityCalculationScaleLookup Lo puede llamar el método CalculationRuleCalculate para determinar cómo se puede utilizar una escala de cálculo basada en una cantidad a fin de determinar un rango de cálculo para una lista de artículos de pedido.
CalculationRange Lo puede llamar el método CalculationRuleCalculate para determinar un valor calculado a partir de un resultado de búsqueda de rango de cálculo.

Flujo general de los métodos de cálculo

El flujo general de los métodos de cálculo, cuando éstos se utilizan como parte del proceso de pedido, es el siguiente:
  1. InitializeCalculationUsage
  2. Llamadas de ApplyCalculationUsage:
    1. Llamadas de CalculationCodeCombine:
      1. CalculationCodeQualify
    2. Llamadas de CalculationCodeCalculate:
      1. Llamadas de CalculationRuleCombine:
        1. CalculationRuleQualify
        2. Llamadas de CalculationRuleCalculate:
          1. CalculationScaleLookup
          2. CalculationRange
    3. CalculationCodeApply
  3. SummarizeCalculationUsage
  4. FinalizeCalculationUsage

Al método ApplyCalculationUsage también lo pueden llamar los beans de datos para calcular importes monetarios utilizados con el fin de visualizarlos fuera del proceso de pedidos.

La figura siguiente ilustra el flujo de los métodos de cálculo llamados por el método ApplyCalculationUsage:

Métodos de cálculo llamados por el método de cálculo ApplyCalculationUsage

Diagrama de métodos de cálculo invocados por el método de cálculo ApplyCalculationUsage