Créez une définition d'objet pour le nouvel élément de campagne afin de collecter les entrées effectuées depuis l'interface utilisateur du Centre de gestion. Lorsque les professionnels entrent des données sur le nouvel élément de campagne dans une activité marketing, la définition d'objet mémorise ces données dans deux tables : DMELEMENT et DMELEMENTNVP.
Avant de commencer
Consultez les rubriques suivantes pour bien comprendre les définitions d'objet dans le Centre de gestion et la classe mktFlowElementObjectDefinition que vous devez étendre :Pour plus d'informations sur la création de groupes de ressources pour les chaînes de texte, voir Définition de texte d'interface utilisateur dans le Management Center.
Pourquoi et quand exécuter cette tâche
Dans l'outil Marketing, chaque élément de campagne doit comporter une définition d'objet. Chaque définition d'objet étend la classe mktFlowElementObjectDefinition.
Procédure
-
Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
-
Créez un répertoire pour héberger votre nouvelle définition d'objet d'élément de campagne.
Vous pouvez stocker le fichier dans une structure de répertoire similaire à l'exemple suivant : LOBTools/WebContent/config/your_company_name/marketing/objectDefinitions/activityBuilder/
-
Créez un fichier pour la définition d'objet d'élément de campagne :
Attribuez un nom à ce fichier en respectant la syntaxe suivante : campaign_element_nameFlowElementObjectDefinition.def ; par exemple, CustomLevelOfSupportTargetFlowElementObjectDefinition.def.
-
Créez la définition d'objet de l'élément de campagne.
Le code XML ci-dessous est un exemple simple de définition d'objet pour une nouvelle cible. L'exemple est décomposé en quatre parties, chacune étant expliquée dans une étape après la table. Votre définition d'objet peut requérir des attributs et des définitions enfant supplémentaires. Pour une explication complète de cette classe ou définition et de ses capacités, voir la documentation relative à la classe FlowElementObjectDefinition.
Exemple de définition d'objet pour une cible
| 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>
|
-
En vous basant sur l'exemple de la section 1, spécifiez les attributs suivant pour la définition d'objet :
- objectType
- Nom unique de cet objet d'élément de campagne. Par convention, il s'agit généralement du nom de la définition de modèle d'élément de campagne associée, lequel est stocké comme valeur NAME dans la table DMELETEMPLATE. Toutefois, si cet objet d'élément de campagne est mappé à plusieurs définitions d'élément de campagne, choisissez une valeur descriptive pour cet attribut.
- displayName
- Texte d'affichage de l'élément de campagne. Vous pouvez soit fournir une chaîne statique, soit une référence à une ressource dans votre regroupement de ressources personnalisé, comme illustré dans l'exemple de code. Le format de cette référence est le suivant :
${extcustom_resource_bundle_id.name_of_resource_bundle_key.string}
- headerIcon
- Ressource image pour l'élément de campagne affichée à l'angle supérieur gauche de la vue de propriétés de l'élément de campagne. Pour utiliser l'icône d'en-tête générique fournie avec le Centre de gestion, spécifiez l'un des noms d'image suivants :
- genericTriggerHeaderIcon
- genericTargetHeaderIcon
- genericActionHeaderIcon
- flowIcon
- Ressource image pour l'élément de campagne affichée dans la zone de travail du Générateur d'activité. Pour utiliser l'icône de flux générique fournie avec le Centre de gestion, spécifiez l'un des noms d'image suivants :
- genericTriggerIcon
- genericTargetIcon
- genericActionIcon
- paletteIcon
- Ressource image pour l'élément de campagne affichée dans la palette du Générateur d'activité. Pour utiliser l'icône de palette générique fournie avec le Centre de gestion, spécifiez l'un des noms d'image suivants :
- genericTriggerPaletteIcon
- genericTargetPaletteIcon
- genericActionPaletteIcon
- propertiesDefinitionName
- Facultatif : Nom de la définition à utiliser pour afficher la vue de propriétés de cet objet d'élément de campagne. Si votre élément de campagne requiert une saisie d'entrée par l'utilisateur professionnel, vous devez créer une définition de vue de propriétés personnalisée pour l'interface utilisateur (ce thème est couvert dans la procédure Création de la vue de propriétés pour l'élément de campagne). Vous pouvez soit affecter un nom à votre définition de vue de propriétés personnalisée dès à présent, soit mettre à jour cet attribut par la suite, une fois créée cette définition de vue.
- summaryClass
- Facultatif : Nom de la classe à utiliser pour afficher la vue de récapitulatif de l'objet d'élément de campagne. Le texte du récapitulatif est affiché dans la zone de travail du Générateur d'activité au-dessous de l'icône de l'élément de campagne. Si votre élément de campagne requiert ce texte, vous devez créer une classe de récapitulatif personnalisée (ce thème est couvert dans la procédure Création du récapitulatif de l'élément de campagne). Vous pouvez soit affecter un nom à votre classe de récapitulatif personnalisée dès à présent, soit mettre à jour cet attribut par la suite, une fois créée cette classe de récapitulatif.
- elemTemplateType
- Type de l'élément de campagne. Sa valeur peut être Cible, Action ou Déclencheur.
-
En vous basant sur l'exemple de la section 2, ajoutez les définitions de service enfant suivantes :
- FlowElementCreateService
- FlowElementUpdateService
Ces services sont utilisés lorsque les professionnels créent et mettent à jour des éléments de campagne à l'aide du Générateur d'activité et peuvent avoir besoin d'attributs et de définitions wcfServiceParam supplémentaires, en fonction des exigences de votre élément de campagne.
Si vos paramètres font référence à d'autres paramètres de service, tels qu'une catégorie, vous avez besoin de définitions de paramètre de service telles que celles des exemples suivants :
<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>
-
En vous basant sur l'exemple de la section 3, ajoutez un élément XML dont l'attribut de nom est défini sur
template. Vous pouvez utiliser le modèle pour déclarer des valeurs par défaut pour les propriétés de l'élément de campagne. L'élément <Xml> doit avoir un élément enfant <elemTemplateName>. La valeur de <elemTemplateName> doit correspondre à celle de la valeur dans la colonne NAME de la table DMELETEMPLATE pour cet élément de campagne. Dans l'exemple de code, le modèle déclare une valeur par défaut de gold pour la propriété supportLevel. Vous pouvez également utiliser ce modèle pour déclarer des objets enfants qui seront instanciés dans le nouvel objet d'élément de campagne.
-
En vous basant sur l'exemple de la section 4, définissez, le cas échéant, les propriétés de l'élément de campagne.
Dans l'exemple de code, l'objet d'élément de campagne ne comporte qu'une seule propriété,
supportLevel. Les éléments de campagne plus complexes peuvent comporter plusieurs propriétés et objets enfants. Au minimum, déclarez des définitions de propriétés pour les variables que le professionnel doit fournir et qui sont définies dans la définition de modèle d'élément de campagne, c'est à dire, dans la définition d'implémentation et dans la définition de règle de comportement du modèle. Votre élément de campagne peut aussi requérir des instances des éléments suivants :
- ReferenceObjectDefinition
- ChildObjectDefinition
- nameValidator (voir les sous-classes de la classe Validator pour le composant Foundation)
Vous pouvez envisager d'utiliser la définition d'objet d'un élément de campagne similaire existant comme référence pour votre nouvel élément de campagne. Les fichiers de définition d'objet existants sont stockés à l'emplacement suivant :
LOBTools/WebContent/config/commerce/marketing/objectDefinitions/activityBuilder/
-
Enregistrez la nouvelle définition d'objet dans la définition d'objet parente. Ouvrez le fichier LOBTools/WebContent/config/commerce/marketing/objectDefinitions/activityBuilder/FlowPathElementObjectDefinition.def :
- Recherchez la définition de
mktBaseFlowPathElementObject.
- Dans cette définition, ajoutez votre nouvelle définition d'objet en tant qu'enfant en insérant une ligne similaire à l'exemple ci-après (voir la ligne en caractères gras) :
-
<ChildObjectDefinition definitionName="mktBaseFlowPathElementObject"
displayName="${mktMarketingResources.path}"
isBaseDefinition="true">
<!-- ... -->
<FlowElementObjectDefinition package="mkt"
baseDefinitionName="extCustomLevelOfSupportElementObject"/>
<!-- ... -->
</ChildObjectDefinition>
- Enregistrez et fermez le fichier.