SmartCodes
Le menu SmartCodes regroupe tous les éléments de code insérés à des fins de personnalisation de l'application Cn285
Last updated
Le menu SmartCodes regroupe tous les éléments de code insérés à des fins de personnalisation de l'application Cn285
Last updated
Cn285 permet la personnalisation des traitements applicables aux champs d'un objet ou à un objet lui même, à travers l'insertion de code directement via l'interface utilisateur. Ces traitements sont applicables via des SmartCodes.
Certaines personnalisations / mise en place de SmartCode nécessitent une compétence technique dans le langage Python.
Il existe différents type de SmartCode:
Prorator
LifeCycle Callback
Event
Les SmartCodes sont accessibles et configurables depuis le menu Cn285 / Configuration / Smart Codes.
Différents champs sont accessibles sur ce SmartCode:
Nom: Le nom du SmartCode.
Description: Une description permettant d'indiquer ce que réalise ce SmartCode.
Key: Une clé générée en fonction du nom. Cette clé permet d'identifier le SmartCode. Elle peut être personnalisée.
SmartCode Type: Le type de SmartCode souhaitée.
Python Code Type: Le type de code du SmartCode. Il existe deux types de code pour les SmartCodes:
Internal Code: Le code utilisé par le SmartCode est une méthode standard livrée par Cn285. Celle-ci ne peut être personnalisée. Lorsque cette option est sélectionnée, un nouveau champ "Internal Method" apparait sur le formulaire et permet de sélectionner la méthode standard à utilisé pour ce SmartCode.
Inline: Permet de personnaliser le SmartCode via du code Python directement depuis l'interface. Lorsque cette option est sélectionnée, un nouvel onglet "Inline Code" apparaît et permet d'écrire du code Python.
Les SmartCodes se définissent soit au niveau du ContractItem, soit au niveau du produit.
Comme décrit précédemment, il existe plusieurs type de SmartCode.
Le SmartCode "Prorator" permet de proratiser les différents périodes du ContractItem. Il existe 3 SmartCode "Prorator":
Prorator First Period: Permet de proratiser la premiere période du ContractItem.
Prorator Intermediate Period: Permet de proratiser les différentes périodes intermédiaires du ContractItem.
Prorator Last Period: Permet de proratiser la dernière période du ContractItem.
Cn285 intègre des fonctionnalités standards pour ces 3 SmartCode "Prorator":
Nb Days: Retourne le nombre de jours dans la période.
Temporis: Calcul la quantité en fonction du nombre de jours présents dans la période. Fonctionne uniquement sur de la facturation alignée (mensuel, trimestriel, ..).
Whole Period: Retourne toute la période si au moins un jour est présent.
Void Period: Annule la période si au moins un jour est présent.
Le SmartCode "LifeCycle Callback" est appelé à différents étapes de la vie d'un ContractItem et permet de réaliser différentes actions au cours de la vie d'un ContractItem.
beforefirstrenewal: Le SmartCode est appelé avant le premier renouvellement.
beforeotherrenewal: Le SmartCode est appelé avant les renouvellements intermédiaires.
beforelastrenewal: Le SmartCode est appelé avant le dernier renouvellement de la période.
afterfinished: Le SmartCode est appelé après la fin "naturel" du ContractItem.
beforeterminate: Le SmartCode est appelé avant la résiliation du ContractItem.
afterterminate: Le SmartCode est appelé après la résiliation du ContractItem.
Le SmartCode "LifeCycle Callback" se définit au niveau des Contract Items, dans l'onglet "API / Custom" du formulaire ou au niveau des Products dans l'onglet "Cn285" du formulaire.
Le SmartCode "Event" permet de réaliser des traitements sur des Events. Ce SmartCode est spécifique puisqu'il n'est pas défini au niveau des ContractItems / Items mais intervient dans le traitement de l'évènement. Un évènement, avant d'être traiter par Cn285, est insérer sous forme de Message. Ce message est ensuite traité par un Message Processor. Ce Message Processor peut être associé à un SmartCode "Event' si celui-ci possède la même clé que son Selector. Grâce à l'association entre le Message Processor et le SmartCode, il est alors possible de réaliser des traitements sur cet évènement.