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.
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.
public interface CustomLevelOfSupportTargetTaskCmd extends MarketingCampaignElementTaskCmd {
public final static String defaultCommandClassName =
CustomLevelOfSupportTargetTaskCmdImpl.class.getName();
}
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.
- 1a Este fragmento de código llama al método
- 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.
Elemento de campaña | Métodos típicos utilizados |
---|---|
Desencadenante |
|
Destino |
|
Acción |
|