Crear la definición de objeto para el elemento de campaña

Cree una definición de objeto para el nuevo elemento de campaña para recopilar la entrada de la interfaz de usuario del Centro de gestión. Cuando los usuarios de empresa especifican datos sobre el nuevo elemento de campaña en una actividad de marketing, la definición de objeto mantiene los datos en dos tablas: DMELEMENT y DMELEMENTNVP.

Antes de empezar

Revise los temas siguientes para asegurarse de que conoce las definiciones de objeto del Centro de gestión y la clase mktFlowElementObjectDefinition que debe ampliar:

Para obtener información sobre cómo crear paquetes de recursos para series de texto, consulte Definir el texto de la interfaz de usuario en el Management Center.

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

En la herramienta Marketing, cada elemento de campaña debe tener una definición de objeto. Cada definición de objeto amplía la clase mktFlowElementObjectDefinition.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Cree un directorio para almacenar su nueva definición de objeto de elemento de campaña.
    Puede almacenar el archivo en una estructura de directorios parecida a la del ejemplo siguiente: LOBTools/WebContent/config/your_company_name/marketing/objectDefinitions/activityBuilder/
  3. Cree un archivo para la definición de objeto de elemento de campaña:
    Asigne un nombre al archivo utilizando esta sintaxis: campaign_element_nameFlowElementObjectDefinition.def; por ejemplo, CustomLevelOfSupportTargetFlowElementObjectDefinition.def.
  4. Defina la definición de objeto de elemento de promoción.

    El siguiente código XML es un ejemplo simple de una definición de objeto para un nuevo destino. El ejemplo está dividido en cuatro partes, y cada parte se explica en un paso después de la tabla. Su definición de objeto podría requerir más atributos y definiciones hijo. Para obtener una descripción completa de esta clase o esta definición y sus capacidades, consulte la documentación de la clase FlowElementObjectDefinition.

    Ejemplo de definición de objeto para un destino
    1
    <FlowElementObjectDefinition package="mkt"
            definitionName="extCustomLevelOfSupportElementObject"
            objectType="customLevelOfSupportTarget"
            displayName="${extMarketingResources.customLevelOfSupportName}"
            headerIcon="customLevelOfSupportHeaderIcon"
            flowIcon="customLevelOfSupportIcon"
            paletteIcon="customLevelOfSupportPaletteIcon"
            propertiesDefinitionName="extCustomLevelOfSupportProperties"
            summaryClass="extCustomLevelOfSupportSummary"
            elemTemplateType="Target">
    2
    <FlowElementCreateService package="mkt"/>
          <FlowElementUpdateService package="mkt"/>
    3
        <Xml name="template">
            <elemTemplateName>customLevelOfSupportTarget</elemTemplateName>
            <supportLevel>gold</supportLevel>
          </Xml>
    4
    <PropertyDefinition propertyName="supportLevel" displayName="Support Level">
             <PropertyValue displayName="Gold" value="gold"/>
             <PropertyValue displayName="Silver" value="silver"/>
             <PropertyValue displayName="Bronze" value="bronze"/>
          </PropertyDefinition>
      </FlowElementObjectDefinition>
    1. Para la sección 1 del ejemplo, especifique los siguientes atributos para la definición de objeto:
      objectType
      Un nombre exclusivo para este objeto de elemento de campaña. Por convenio, suele ser el mismo nombre que ha utilizado para la definición de plantilla de elemento de campaña asociada, que está almacenado como el valor NAME en la tabla DMELETEMPLATE. No obstante, si este objeto de elemento de campaña se correlaciona con varias definiciones de elemento de campaña, elija un valor descriptivo para este atributo.
      displayName
      El texto de visualización para el elemento de campaña. Puede proporcionar una serie estática o puede proporcionar una referencia a un recurso de su paquete compuesto de recursos personalizado, tal como se muestra en el código de ejemplo. El formato para esta referencia es:

      ${extcustom_resource_bundle_id.name_of_resource_bundle_key.string}

      headerIcon
      El recurso de imagen para el elemento de campaña que se visualiza en la esquina superior izquierda de la vista de propiedades del elemento de campaña. Para utilizar el icono de cabecera genérico entregado con el Centro de gestión, especifique uno de los nombres de imagen siguientes:
      • genericTriggerHeaderIcon
      • genericTargetHeaderIcon
      • genericActionHeaderIcon
      flowIcon
      El recurso de imagen para el elemento de campaña que se visualiza en el área de trabajo del Creador de actividades. Para utilizar el icono de flujo genérico entregado con el Centro de gestión, especifique uno de los nombres de imagen siguientes:
      • genericTriggerIcon
      • genericTargetIcon
      • genericActionIcon
      paletteIcon
      El recurso de imagen para el elemento de campaña que se visualiza en la paleta del Creador de actividades. Para utilizar el icono de paleta genérico entregado con el Centro de gestión, especifique uno de los nombres de imagen siguientes:
      • genericTriggerPaletteIcon
      • genericTargetPaletteIcon
      • genericActionPaletteIcon
      propertiesDefinitionName
      Opcional: El nombre de la definición que se utilizará para visualizar la vista de propiedades de este objeto de elemento de campaña. Si su elemento de campaña requiere entrada de un usuario de empresa, debe crear una definición de vista de propiedades personalizada para la interfaz de usuario, lo que se describe en el procedimiento Crear la vista de propiedades para el elemento de campaña. Puede poner un nombre a su definición de vista de propiedades personalizada ahora o puede actualizar este atributo más adelante, después de que haya creado la definición de vista de propiedades personalizada.
      summaryClass
      Opcional: El nombre de la clase a utilizar para visualizar el resumen de este objeto de elemento de campaña. El texto de resumen se visualiza en el área de trabajo del Creador de actividades, debajo del icono de elemento de campaña. Si su elemento de campaña requiere este texto de resumen, debe crear una clase de resumen personalizada, lo que se describe en el procedimiento Crear el resumen para el elemento de campaña. Puede poner un nombre a su clase de resumen personalizada ahora o puede actualizar este atributo más adelante, después de que haya creado la clase de resumen personalizada.
      elemTemplateType
      El tipo de elemento de campaña; el valor puede ser Destino, Acción o Desencadenante.
    2. Para la sección 2 del ejemplo, añada las siguientes definiciones de servicio hijo:
      • FlowElementCreateService
      • FlowElementUpdateService

      Estos servicios se utilizan cuando los usuarios de empresa crean y actualizan elementos de campaña utilizando el Creador de actividades, y pueden requerir atributos y definiciones wcfServiceParam hijo adicionales, dependiendo de los requisitos del elemento de campaña.

      Si los parámetros hacen referencia a otros parámetros de servicio, como una categoría, necesita definiciones de parámetros de servicio como en los siguientes ejemplos:

      <CreateService baseDefinitionName="mktFlowElementCreateService">
          <ServiceParam
              name = "PROPERTY_categoryIdList"
              objectPath = "ChildCatalogGroup/CatalogGroupAlias"
              propertyName = "catgroupId"
              optional = "false"/>
      </CreateService>
      <UpdateService baseDefinitionName="mktFlowElementUpdateService">
          <ServiceParam
              name = "PROPERTY_categoryIdList"
              objectPath = "ChildCatalogGroup/CatalogGroupAlias"
              propertyName = "catgroupId"
              optional = "false"/>
      </UpdateService>
    3. Por ejemplo, en la sección 3, si es necesario, añada un elemento XML con el atributo de nombre establecido en template. Puede utilizar la plantilla para declarar valores predeterminados para las propiedades de elemento de campaña. El elemento <Xml> debe tener un elemento hijo <elemTemplateName>. El valor de <elemTemplateName> debe coincidir con el valor de la columna NAME de la tabla DMELETEMPLATE para este elemento de campaña. En el código de ejemplo, la plantilla declara un valor predeterminado de gold para la propiedad supportLevel. También puede utilizar la plantilla para declarar objetos hijo para los que se creará una instancia dentro del nuevo objeto de elemento de campaña.
    4. Para la sección 4 del ejemplo, si es necesario, defina las propiedades del elemento de campaña.
      En el código de ejemplo, el objeto de elemento de campaña sólo tiene una propiedad, supportLevel. Los elementos de campaña más complejos pueden tener múltiples propiedades y objetos hijo. Como mínimo, declare definiciones de propiedad para cualquier variable que el usuario de empresa deba proporcionar y que esté definida en la definición de plantilla de elementos de campaña; es decir, dentro de la definición de implementación y de la definición de regla de comportamiento de la plantilla. Su elemento de campaña también podría requerir instancias de:
      • ReferenceObjectDefinition
      • ChildObjectDefinition
      • nameValidador (consulte las subclases de Validador para el componente base)

      Considere la posibilidad de utilizar la definición de objeto de un elemento de campaña similar existente como referencia para su nuevo elemento de regla de precio. Los archivos de definición de objeto existentes se almacenan aquí:

      LOBTools/WebContent/config/commerce/marketing/objectDefinitions/activityBuilder/

  5. Registre la nueva definición de objeto en su definición de objeto padre. Abra el archivo LOBTools/WebContent/config/commerce/marketing/objectDefinitions/activityBuilder/FlowPathElementObjectDefinition.def:
    1. Localice la definición mktBaseFlowPathElementObject.
    2. En esta definición, añada una definición de objeto nueva como hijo insertando una línea parecida a la del siguiente ejemplo (consulte la línea en negrita):
    3. <ChildObjectDefinition definitionName="mktBaseFlowPathElementObject"
      	displayName="${mktMarketingResources.path}"
      	isBaseDefinition="true">
      
      	<!-- ... -->
      	<FlowElementObjectDefinition package="mkt"
      		baseDefinitionName="extCustomLevelOfSupportElementObject"/>
      	<!-- ... -->
      </ChildObjectDefinition>
    4. Guarde y cierre el archivo.