
Définitions de modèle d'élément de règle de tarification
Les conditions et actions utilisées dans les règles de tarification sont basées sur des modèles. Ces modèles sont appelés définitions de modèle d'élément de règle de tarification. Si vous personnalisez une condition ou une action, vous devez comprendre l'objet et la structure de ces définitions de modèle avant de modifier un modèle existant ou d'en créer un nouveau.
Dans la palette Générateur de règle de tarification, chaque condition et action qu'un professionnel peut ajouter à une règle de tarification est un élément de règle de tarification. Les définitions de modèle d'élément de règle de tarification définissent l'ossature des éléments de règle de tarification. Chaque élément de règle de tarification de la palette est associé à une définition de modèle. Par exemple, l'élément Condition de catalogue est associé au modèle d'élément catalogCondition.
- Spécifier le nom unique de l'élément de règle de tarification.
- Spécifier la commande de tâche de l'élément de règle de tarification.
- Spécifier les paramètres de modèle d'élément de règle de tarification à transmettre à la commande de tâche, si nécessaire :
- Pour un élément de condition, les paramètres définissent les critères de la condition. Par exemple, une condition peut requérir qu'un client appartienne au groupe de membres Groupe A. Si la condition est remplie, la commande de tâche renvoie true.
- Pour un élément d'action, les paramètres définissent l'action à effectuer. Par exemple, extraire un prix d'une liste de prix ou arrondir un prix.
Emplacement de stockage des définitions de modèle d'élément
Table : PRELETEMPLATELe XML d'exécution est stocké dans la colonne RUNTIMEXML.
Format du XML d'exécution des règles de tarification
Le XML d'exécution doit utiliser le format suivant :
<FlowElementImplementation type="UNIQUE_NAME">
<Implementation invocationType="TaskCommand">
<Class name="TASK_COMMAND_CLASS_NAME">
<Argument name="paramName1" value="PRICERULE_paramValue1"/>
<Argument name="paramName2" value="paramValue2"/>
</Class>
</Implementation>
</FlowElementImplementation>Paramètres dans le XML d'exécution d'une règle de tarification
La liste suivante décrit les paramètres que le XML d'exécution peut contenir (utilisez l'exemple ci-dessus comme référence) :
- type
- Nom unique du modèle d'élément de règle de tarification pour cette condition ou cette action.
- invocationType
- Cette valeur est toujours
TaskCommand.
Pour l'élément <Class> : Chaque action et chaque condition ont une commande de tâche associée. Il doit s'agir d'une classe qui implémente l'interface com.ibm.commerce.price.rule.commands.element.PriceRuleElementCmd et étend la classe com.ibm.commerce.price.rule.commands.element.PriceRuleElementCmdImpl.
- nom
- Nom de la classe de commande de tâche d'élément de règle de tarification pour cet élément de règle de tarification. Dans le cas d'une nouvelle condition ou action, le nom que vous spécifiez doit correspondre à celui de la commande de tâche personnalisée que vous créez pour prendre en charge le nouvel élément de règle de tarification. Voici un exemple :
com.your_company_name.commerce.price.rule.commands.element.CustomNewRegisteredConditionElementCmd
Pour l'élément <Argument> : Le code XML d'exécution peut comporter zéro, un ou plusieurs de ces paramètres de modèle d'élément de règle de tarification. Pour chaque condition ou élément d'action d'une règle de tarification, les services de tarification transmettent les paramètres à la commande de tâche de l'élément de règle de tarification. La commande de tâche extrait les paramètres à l'aide de la méthode getElementParameters, puis les utilise afin d'évaluer la condition ou d'effectuer l'action.
- nom
- Nom du paramètre devant être transmis pour traitement à la commande de tâche afin que la condition ou l'action puisse effectuer son travail.
- valeur
- Valeur du paramètre. Si cette valeur provient de l'interface utilisateur, elle doit suivre le format
PRICERULE_paramName. Si elle provient d'un autre endroit, elle ne requiert alors pas le préfixePRICERULE_.
Exemple
Voici un exemple de XML d'exécution pour une condition personnalisée. Cette condition vérifie si un client s'est enregistré à une date spécifique, avant cette date ou après :
<FlowElementImplementation type = "RegistrationTimeCondition">
<Implementation invocationType = "TaskCommand">
<Class name = "com.mycompany.commerce.price.rule.commands.element.RegistrationTimeConditionElementCmd">
<Argument name = "registrationTime" value = "PRICERULE_registrationTime"/>
<Argument name = "registrationTimeOperator" value = "PRICERULE_registrationTimeOperator"/>
</Class>
</Implementation>
</FlowElementImplementation>