Crear la definición de objeto para el atributo de segmento de cliente

Cree una definición de objeto nueva para que el nuevo atributo de segmento de cliente recopile la entrada de la interfaz de usuario del Centro de gestión. Cuando los usuarios de empresa especifican datos sobre el nuevo atributo en un segmento de clientes. la definición de objeto mantiene los datos en la tabla de base de datos MGPCONDELE.

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

En la herramienta Marketing, cada atributo de segmento de cliente debe tener una definición de objeto.

Procedimiento

  1. Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
  2. Cree un directorio para almacenar la nueva definición de objeto de segmento de cliente.
    Utilice una estructura de directorios parecida a la del ejemplo siguiente:
    • LOBTools/WebContent/WEB-INF/src/xml/your_company_name/marketing/objectDefinitions/customerSegment/
  3. Cree el archivo para la definición de objeto de atributo de segmento de cliente. Asigne un nombre al archivo utilizando esta sintaxis: attribute_nameObjectDefinition.xml; por ejemplo, LoyaltyPointsObjectDefinition.xml.
  4. Defina la definición del objeto de atributo de segmento de cliente creando una definición de objeto hijo:
    1. Defina la definición de objeto hijo para representar una condición de lista OR o lista AND de atributos de segmento de cliente que:
      • Ampliación desde ChildObjectDefinition.
      • Tiene un baseDefinitionName de CSElementAndOrListConditionObjectDefinition.
      • Tenga un valor objectType exclusivo globalmente.
      • Contenga una o varias definiciones de objeto hijo que tengan un baseDefinitionName con el valor CSElementSimpleConditionObjectDefinition utilizado para representar una condición simple de segmento de cliente.
      A continuación se proporciona un ejemplo:
      <Definitions> 
         <ChildObjectDefinition
            definitionName = "LoyaltyPointsListObjectDefinition"
            objectType = "LoyaltyPointsList"
            baseDefinitionName = "CSElementAndOrListConditionObjectDefinition">
            <ChildObjectDefinition
               objectType = "LoyaltyPointsCondition"
               baseType = "CSElementSimpleConditionObjectDefinition">
               <Xml name = "template">
                  <conditionVariable>loyalty</conditionVariable>
               </Xml>
               <PropertyDefinition
                  propertyName = "conditionValue"
                  required = "true"
                  type = "integer"
                  displayName = "Number of points"/>
            </ChildObjectDefinition>
         </ChildObjectDefinition>
      </Definitions>
    2. Defina otra definición de objeto hijo que:
      • Ampliación desde ChildObjectDefinition.
      • Tenga un valor objectType exclusivo globalmente.
      • Es un objeto singleInstance.
      • Tiene un templateTypeProperty definido.
      • Tiene un idProperty de elementName.
      • Tiene un elemento Xml denominado template.
      • Tenga uno o varios elementos ObjectTemplate hijo definidos.
      • Contiene una definición hijo basada en CSElementAndOrListConditionDefinition.
      A continuación se muestra un ejemplo que añade esta nueva definición de objeto hijo como elemento hijo del elemento Definitions:
      <ChildObjectDefinition
         definitionName = "extLoyaltyPointsObjectDefinition"
         objectType = "LoyaltyPoints"
         singleInstance = "true"
         templateTypeProperty = "template"
         idProperty = "elementName">
         <Xml name = "template">
            <elementName>LoyaltyPoints</elementName>
            <template>ignore</template>
         </Xml>
         <ChildObjectDefinition baseDefinitionName = "LoyaltyPointsListObjectDefinition"/>
         <ObjectTemplate templateType = "ignore"
            displayName = "Ignore customer loyalty points">
            <Xml name = "template"/>
         </ObjectTemplate>
         <ObjectTemplate templateType = "lessThan"
            displayName = "Number of points is less than or equal to the following number">
            <Xml name = "template">
               <object objectType = "LoyaltyPointsList">
                  <elementName>loyalty</elementName>
                  <conditionUsage>orListCondition</conditionUsage>
                  <object objectType = "LoyaltyPointsCondition">
                     <conditionOperator><=</conditionOperator>
                  </object>
               </object>
            </Xml>
         </ObjectTemplate>
         <ObjectTemplate templateType = "greaterThan"
            displayName = "Number of points is greater than or equal to the following number">
            <Xml name = "template">
               <object objectType = "LoyaltyPointsList">
                  <elementName>loyalty</elementName>
                  <conditionUsage>orListCondition</conditionUsage>
                  <object objectType = "LoyaltyPointsCondition">
                     <conditionOperator>&gt;=</conditionOperator>
                  </object>
               </object>
            </Xml>
         </ObjectTemplate>
         <ObjectTemplate templateType = "between"
            displayName = "Number of points is within the following range">
            <Xml name = "template">
               <object objectType = "LoyaltyPointsList">
                  <elementName>loyalty</elementName>
                  <conditionUsage>andListCondition</conditionUsage>
                  <object objectType = "LoyaltyPointsCondition" name="upperBound">
                     <conditionOperator><=</conditionOperator>
                  </object>
                  <object objectType = "LoyaltyPointsCondition" name="lowerBound">
                     <conditionOperator>&gt;=</conditionOperator>
                  </object>
               </object>
            </Xml>
          </ObjectTemplate>
      <ChildObjectDefinition>
  5. Añada una referencia al nuevo archivo de definición de objeto donde quiera que se utilice.
  6. Registre el nuevo objeto con la definición de objeto de lista AND del segmento de cliente:
    1. Abra el archivo LOBTools/WebContent/WEB-INF/src/xml/commerce/marketing/objectDefinitions/customerSegment/TopAndListObjectDefinition.xml.
    2. Añada una instancia del nuevo objeto de instancia única de condición de segmento de cliente insertando un elemento parecido al del ejemplo siguiente (consulte la línea en negrita):
      <ChildObjectDefinition definitionName="cmc/marketing/TopAndListObjectDefinition" 
                                                idProperty="elementName" objectType="TopAndList">
      	…
      	<ChildObjectDefinition baseDefinitionName="cmc/marketing/LoyaltyPointsListObjectDefinition"/>
      	…
      </ChildObjectDefinition>
    3. Guarde y cierre el archivo.