HCL Commerce Enterprise

Crear un mandato de tarea de elemento de regla de precio

Cree una nueva interfaz de mandato de tarea y su clase de implementación asociada para su nuevo elemento de regla de precio. Este mandato de tarea realiza el trabajo del elemento de la regla de precio y valida los parámetros.

Antes de empezar

Revise los temas siguientes para asegurarse de que comprende los mandatos de tarea para los elementos de regla de precio, así como la clase de interfaz relevantes:

Por qué y cuándo se efectúa esta tarea

El mandato de tarea de elemento de regla de precio debe ser una clase que implemente la interfaz PriceRuleElementCmd y debe ampliar la clase PriceRuleElementCmdImpl.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Cree un paquete para sus archivos de mandatos de tarea:
    1. Vaya a WebSphereCommerceServerExtensionsLogic > src.
    2. Pulse con el botón derecho del ratón en la carpeta src y luego pulse Nuevo > Paquete.
    3. En el campo Nombre, escriba:

      com.your_company_name.price.rule.commands.element

      Asegúrese de que este nombre de paquete coincide con la información que ha especificado en el XML de ejecución al crear la definición de la plantilla de elementos de regla de precio: consulte el parámetro name para el elemento <class>.

    4. Pulse Finalizar.
  3. En el nuevo paquete, cree una nueva clase de interfaz para su mandato de tarea de elemento de regla de precio que se amplíe de la interfaz PriceRuleElementCmd.

    Asegúrese de que este nombre de clase coincide con la información que ha especificado en el XML de ejecución al crear la definición de la plantilla de elementos de regla de precio: consulte el parámetro name para el elemento <class>.

    A continuación se muestra un ejemplo de mandato de tarea para una condición que determina si el cliente se ha registrado en una fecha específica, o antes o después de dicha fecha, y, por consiguiente, si puede beneficiarse de precios especiales:

    package com.mycompany.commerce.price.rule.commands.element;
    import com.ibm.commerce.price.rule.commands.element.PriceRuleElementCmd;
    public interface RegistrationTimeConditionElementCmd extends PriceRuleElementCmd {
    	public final static String defaultCommandClassName =
    		RegistrationTimeConditionElementCmdImpl.class.getName();
    }
  4. En el nuevo paquete, cree una implementación de mandato de tarea que amplíe la clase PriceRuleElementCmdImpl. Este mandato de tarea debe implementar la interfaz que ha definido en el paso anterior. Asigne a la clase un nombre que utilice la sintaxis: pricerule_element_nameElementCmdImpl; por ejemplo, RegistrationTimeConditionElementCmdImpl.

    Para condiciones y acciones, esta implementación de mandato de tarea debe implementar el método performExecute. La implementación de mandato de tarea también puede implementar el método validateParameters para validar que el elemento tiene todos los parámetros de interfaz de usuario necesarios.

  5. Para los mensajes de error de lado del servidor en el mandato de tarea, cree una nueva clase de claves de mensaje:
    1. Vaya a WebSphereCommerceServerExtensionsLogic > src.
    2. Pulse con el botón derecho del ratón en la carpeta src y luego pulse Nuevo > Paquete.
    3. En el campo Nombre, escriba:

      com.your_company_name.price.rule.logging

    4. Pulse Finalizar.
    5. En el nuevo paquete, cree un archivo de clase que contenga las claves de mensaje, por ejemplo, CustomPriceRuleMessageKeys.java.
      El siguiente es un ejemplo de este tipo de clase:
      package com.mycompany.commerce.price.rule.logging;
      
      public class CustomPriceRuleMessageKeys {
      
      public final static String _ERR_NEW_REGISTERED_TIME_IS_MISSING = "_ERR_NEW_REGISTERED_TIME_IS_MISSING";
      
      }
    6. Guarde el archivo de clase.
  6. Cree un archivo de propiedades para definir el texto del mensaje de error de lado del servidor:
    1. Vaya a WebSphereCommerceServerExtensionsLogic > src.
    2. Pulse con el botón derecho del ratón en la carpeta src y luego pulse Nuevo > Paquete.
    3. En el campo Nombre, escriba:

      com.your_company_name.price.rule.properties

    4. Pulse Finalizar.
    5. En el nuevo paquete, cree un archivo de propiedades para definir el texto del mensaje.

      Utilice un nombre similar al siguiente: WcPriceMessages.properties

      A continuación se muestra un ejemplo de un archivo de propiedades:

      _ERR_NEW_REGISTERED_TIME_IS_MISSING=Specify a date and time in the Date and time field.
    6. Guarde el archivo de propiedades.