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
Procedimiento
- Abra HCL Commerce Developer y cambie a la vista Explorador de empresa.
- 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/
- 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.
-
Defina la definición del objeto de atributo de segmento de cliente creando una definición de objeto hijo:
- 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
deCSElementAndOrListConditionObjectDefinition
. - Tenga un valor
objectType
exclusivo globalmente. - Contenga una o varias definiciones de objeto hijo que tengan un
baseDefinitionName
con el valorCSElementSimpleConditionObjectDefinition
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>
- Ampliación desde
- 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
deelementName
. - Tiene un elemento
Xml
denominadotemplate
. - 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>>=</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>>=</conditionOperator> </object> </object> </Xml> </ObjectTemplate> <ChildObjectDefinition>
- Ampliación desde
- 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:
- Añada una referencia al nuevo archivo de definición de objeto donde quiera que se utilice.
-
Registre el nuevo objeto con la definición de objeto de lista AND del segmento de cliente:
- Abra el archivo LOBTools/WebContent/WEB-INF/src/xml/commerce/marketing/objectDefinitions/customerSegment/TopAndListObjectDefinition.xml.
- 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>
- Guarde y cierre el archivo.