Mandatos de tarea de elementos de campaña

Cada desencadenante, destino y acción tiene un mandato de tarea asociado denominado mandato de tarea de elemento de campaña. El mandato de tarea realiza el trabajo asociado al elemento de campaña. La definición de plantilla de elemento de campaña debe especificar el mandato de tarea a utilizar.

Los mandatos de tarea sirven para realizar varias funciones, tal como se describe en la tabla siguiente:
Funciones de mandatos de tarea para elementos de campaña
Función del mandato de tarea Método al que se llama en el mandato de tarea ¿Se aplica a desencadenantes? ¿Se aplica a destinos? ¿Se aplica a acciones?
Validar los parámetros del elemento de campaña cuando se activa la actividad de marketing validateParameters Sí, si es necesario. Sí, si es necesario. Sí, si es necesario.
Realizar el trabajo cuando un cliente llega al elemento de campaña en una actividad de marketing performExecute No Sí, obligatorio. Sí, obligatorio.
Enviar desencadenantes para que se procesen una vez al día cuando el tipo de desencadenante es de comprobación diaria.

Por ejemplo, el desencadenante El cliente está en el segmento y el desencadenante El cliente abandona el carro de la compra.

forwardTriggersForProcessing Sí, si es necesario No No

Formato de un mandato de tarea

Un mandato de tarea de elemento de campaña debe ser una clase que implemente la interfaz MarketingCampaignElementTaskCmd.

Para entender el formato de un mandato de tarea, revise el ejemplo de código siguiente. El ejemplo es para un destino personalizado de ejemplo. La finalidad del destino es determinar el nivel de soporte por el que paga un cliente; por ejemplo, nivel oro, plata o bronce.

El código de muestra siguiente es un ejemplo de la clase de interfaz de mandato de tarea que se amplía a partir de la interfaz MarketingCampaignElementTaskCmd:

public interface CustomLevelOfSupportTargetTaskCmd extends MarketingCampaignElementTaskCmd {
  public final static String defaultCommandClassName =
  CustomLevelOfSupportTargetTaskCmdImpl.class.getName();
}
El código de muestra siguiente es un ejemplo de una implementación de mandato de tarea que se amplía a partir de la clase MarketingCampaignElementTaskCmdImpl. Estos fragmentos de código con número a la izquierda se explican más detalladamente después del ejemplo:

public class CustomLevelOfSupportTargetTaskCmdImpl 
 extends MarketingCampaignElementTaskCmdImpl 
 implements CustomLevelOfSupportTargetTaskCmd {
	
private final static String PARAM_SUPPORT_LEVEL = "supportLevel";
private final static String SUPPORT_TYPE_IS_MISSING = "_ERR_SUPPORT_TYPE_IS_MISSING";
private static final Logger LOGGER = LoggingHelper.getLogger(CustomLevelOfSupportTargetTaskCmdImpl.class);
private final static String CLASSNAME = CustomLevelOfSupportTargetTaskCmdImpl.class.getName();

public CustomLevelOfSupportTargetTaskCmdImpl() {}

1 public void performExecute() {
       final String METHOD_NAME = "performExecute";
       if (LoggingHelper.isEntryExitTraceEnabled(LOGGER)) {
         LOGGER.entering(CLASSNAME, METHOD_NAME);
       }	 
       boolean rc = false;   

1a // get the parameters set in the DMELEMENTNVP table
     Hashtable parameters = getElementParameters();
     // example of getting one of the parameters
     String desiredSupportLevel = (String)parameters.get(PARAM_SUPPORT_LEVEL);

1b // determine if the customer meets the criteria of the target
	String actualSupportLevel = getSupportLevel(getRegisteredMemberIdForPersonalizationId());
       if (desiredSupportLevel.equals(actualSupportLevel)) {
         rc = true;
       }

1c // for a target, return true or false as is appropriate
       setReturnValue(rc);
       if (LoggingHelper.isEntryExitTraceEnabled(LOGGER)) {
         LOGGER.exiting(CLASSNAME, METHOD_NAME, result);
	}	
      }	

       public String getSupportLevel(Long memberId) {
         // go to the custom database table
         // and return the support level for the customer
         // TODO…
       }				  

2 public List validateParameters(Map elementParameters) {
      final String METHOD_NAME = "validateParameters";
      	
      if (LoggingHelper.isEntryExitTraceEnabled(LOGGER)) {
        LOGGER.entering(CLASSNAME, METHOD_NAME, elementParameters);
      }	
      	
      List validationErrors = new ArrayList();
      	
      Object supportLevel = elementParameters.get(PARAM_SUPPORT_LEVEL);
      if (supportLevel == null || supportLevel.toString().length() == 0) {
        ApplicationError validateError = new ApplicationError(
         ApplicationError.TYPE_GENERIC_ERROR,
         SUPPORT_TYPE_IS_MISSING,
         null, LOGGER.getResourceBundleName());
         validationErrors.add(validateError);
        }
       	
        if (LoggingHelper.isEntryExitTraceEnabled(LOGGER)) {
          LOGGER.exiting(CLASSNAME, METHOD_NAME, validationErrors);
        }		
        return validationErrors;
      } 
    }
  • 1 Este fragmento de código define el método performExecute, que realiza el trabajo de evaluación para el destino y devuelve true o false:
    • 1a Este fragmento de código llama al método getElementParameters para obtener los parámetros que el mandato de tarea utiliza para finalizar la evaluación. Los parámetros se definen como argumentos en el mandato de tarea de elemento de campaña.
    • 1b Este fragmento de código evalúa si el destino debe devolver true o false. Por ejemplo, si el destino es clientes que tienen el nivel de soporte Oro, el destino devuelve true si el cliente que se evalúa tiene el nivel de soporte Oro.
    • 1c Este fragmento de código informa a los servicios de marketing de si el destino ha devuelto true o false.
  • 2 Este fragmento de código define el método validateParameters para validar los parámetros del destino y devolver cualquier error.

Los métodos que se utilizan en un mandato de tarea de elemento de campaña.

Esta tabla proporciona más detalles sobre métodos típicos utilizados en mandatos de tarea de campaña para desencadenantes, destinos y acciones. Para obtener una lista completa y una descripción de los métodos disponibles para mandatos de tarea, consulte MarketingCampaignElementTaskCmdImpl.
Elemento de campaña Métodos típicos utilizados
Desencadenante
  • forwardTriggersForProcessing: Es necesario solamente para los desencadenantes de comprobación diaria este método busca todos los clientes que se asocian con el desencadenante y envía el desencadenante para que se procese para cada cliente. De forma predeterminada, esto ocurre una vez al día, a las 2:00 de la madrugada. Cada cliente participa en la actividad de diálogo asociada de dicho día.
  • validateParameters: Este método valida que el usuario de empresa establece todos los pares nombre-valor necesarios en la interfaz de usuario, y puede devolver mensajes de error al usuario de empresa. Puede utilizar otros métodos en el método validateParameters para ayudar a validar el elemento de campaña, por ejemplo, validateCategory o validateProduct.
Destino
  • performExecute: Este método evalúa si el cliente cumple los criterios del destino, por ejemplo, si el cliente pertenece al segmento Cliente preferido. Si es así, el método performExecute devuelve true y el cliente pasa el destino y continúa por la actividad de marketing. Si el método performExecute devuelve false, el cliente no pasa el destino. Puede utilizar otros métodos en el método performExecute para identificar el cliente, por ejemplo, getPersonalizationId, getMemberId y getRegisteredMemberIdForPersonalizationId. También puede utilizar otros métodos para obtener la información asociada a la petición actual, por ejemplo getTriggerParameters, getStoreId y getUserDataForElement methods.
  • validateParameters: Este método valida que el usuario de empresa ha establecido todos los pares nombre-valor necesarios en la interfaz de usuario, y puede devolver mensajes de error al usuario de empresa. Puede utilizar otros métodos en el método validateParameters para ayudar a validar el elemento de campaña, por ejemplo, validateCategory o validateProduct.
Acción
  • performExecute: este método realiza la acción para el cliente. Para una actividad web, la acción es mostrar algo al cliente en una zona de e-Marketing. Para una actividad de diálogo, la acción puede ser muchas cosas, como por ejemplo enviar un correo electrónico al cliente o emitir un cupón al cliente.
  • validateParameters: Este método valida que el usuario de empresa establece todos los pares nombre-valor necesarios en la interfaz de usuario, y puede devolver mensajes de error al usuario de empresa. Puede utilizar otros métodos en el método validateParameters para ayudar a validar el elemento de campaña, por ejemplo, validateCategory o validateProduct.