En tant qu’utilisateur expert, vous pouvez ajouter des dossiers dans l’arborescence de l’explorateur et la personnaliser.
Pour plus d’informations sur l’explorateur Campaign et sur l’arborescence de navigation, consultez cette section.
Les types de dossiers utilisés par la liste de navigation sont décrits dans un document XML respectant la grammaire du schéma xtk:navtree.
La structure du document XML est la suivante :
<navtree name="name" namespace="name_space">
<!-- Global commands -->
<commands>
...
</commands>
<!-- Structured space for adding a folder -->
<model name="<name>" label="<Label>">
<!-- Folder type -->
<nodeModel>
...
</nodeModel>
<model name="<name>" label="<Sub model>">
...
</model>
</model>
</navtree>
Le document XML contient l’élément racine <navtree>
avec les attributs name et namespace pour spécifier le nom du document et l’espace de noms. Le nom et l’espace de noms constituent la clé d’identification du document.
Les commandes globales de l'application sont déclarées dans le document à partir de l’élément <commands>
.
La déclaration des types de dossiers est structurée dans le document avec les éléments suivants : <model>
et <nodemodel>
.
Une commande globale permet de lancer une action, cette action peut être une forme de saisie ou un appel SOAP.
Les commandes globales sont accessibles à partir du menu principal Outils.
La struture du paramétrage des commandes est la suivante :
<commands>
<!-- Description of a command -->
<command name="<name>" label="<label>" desc="<Description>" form="<form>" rights="<rights>">
<soapCall name="<name>" service="<schema>">
<param type="<type>" exprIn="<xpath>"/>
...
</soapCall>
<enter>
...
</enter>
</command>
<!-- Separator -->
<command label="-" name="<name>"/>
<!-- Command structure -->
<command name="<name>" label="<Label>">
<command...
</command>
</commands>
La description d'une commande globale est renseignée sur l'élément <command>
avec les propriétés suivantes :
Un élément <command>
peut contenir des sous-éléments <command>
. Dans ce cas, l’élément parent vous permet d’afficher un sous-menu composé de ces éléments enfants.
L'affichage des commandes respecte l'ordre de déclaration dans le document XML.
Un séparateur de commande permet d'afficher une barre de séparation entre les commandes, il est identifié par la valeur '-' contenue dans le libellé de la commande.
La présence facultative de la balise <soapcall>
avec ses paramètres d’entrée définit l’appel d’une méthode SOAP à exécuter. Pour plus d’informations sur l’API SOAP, consultez la documentation JSAPI Campaign.
Le contexte du formulaire peut être mis à jour lors de l’initialisation à partir de la balise <enter>
. Pour plus d’informations sur cette balise, consultez la documentation sur les formulaires de saisie.
Exemple:
Déclaration d'une commande globale pour lancer la forme "xtk:import" :
<command desc="Start the data import wizard" form="xtk:import" label="&Data import..." name="import" rights="import,recipientImport"/>
Un raccourci clavier est déclaré sur le caractère « l » par la présence du & dans le libellé de la commande.
Exemple de sous-menu avec séparateur :
<command label="Administration" name="admin">
<command name="cmd1" label="Example 1" form="cus:example1"/>
<command name="sep" label="-"/>
<command name="cmd1" label="Example 2" form="cus:example2">
<enter>
<set xpath="@type" expr="1"/>
</enter>
</command>
</command>
Exécution d'une méthode SOAP :
<command name="cmd3" label="Example 3" promptLabel="Do you really want to execute the command?">
<soapCall name="Execute" service="xtk:sql"/>
</command>
Un type de dossier permet de donner l'accès aux données d'un schéma. La vue associée au dossier est composée d'une liste et d'un formulaire de saisie.
La structure du paramétrage des types de dossier est la suivante :
<!-- Structured location to add the folder -->
<model name="name" label="Labelled">
<!-- Type of folder -->
<nodeModel name="<name>" label="<Labelled>" img="<image>">
<view name="<name>" schema="<schema>" type="<listdet|list|form|editForm>">
<columns>
<node xpath="<field1>"/>
...
</columns>
</view>
</nodeModel>
<model name="<name>" label="<Sous modèle>">
...
</model>
</model>
La déclaration de type de dossier doit être saisie sous un élément <model>
. Cet élément vous permet de définir une organisation hiérarchique visible à partir du menu Ajouter un dossier . Un élément <model>
doit contenir des éléments <nodemodel>
et d’autres éléments <model>
.
Les attributs name et label renseignent le nom interne de l'élément et le libellé affiché dans le menu Ajouter un dossier.
L’élément <nodemodel>
contient la description du type de dossier avec les propriétés suivantes :
<nodemodel>
séparés par une virgule) en création de dossier.L’élément <view>
situé sous l’élément <nodemodel>
contient la configuration de la liste associée à l’affichage. Le schéma de la liste est saisi dans l’attribut de schéma de l’élément <view>
.
Pour modifier les enregistrements de la liste, le formulaire de saisie portant le même nom que le schéma de liste est implicitement utilisé. L’attribut type sur l’élément <view>
affecte l’affichage du formulaire. Les valeurs possibles sont les suivantes :
Le nom du formulaire de saisie peut être surchargé en renseignant l'attribut form dans l’élément <view>
.
La configuration par défaut des colonnes de la liste est saisie via l’élément <columns>
. Une colonne est déclarée sur un élément <node>
contenant l’attribut xpath avec le champ à référencer dans son schéma comme sa valeur.
Exemple : déclaration d'un type de dossier sur le schéma "nms:recipient".
<model label="Profiles and targets" name="nmsProfiles">
<nodeModel deleteRight="folderDelete" editRight="folderEdit" folderLink="folder"
img="nms:folder.png" insertRight="folderInsert" label="Recipients"
name="nmsFolder">
<view name="listdet" schema="nms:recipient" type="listdet">
<columns>
<node xpath="@firstName"/>
<node xpath="@lastName"/>
<node xpath="@email"/>
<node xpath="@account"/>
</columns>
</view>
</nodeModel>
<nodeModel name="nmsGroup" label="Groups"...
</model>
Le menu d'insertion de dossier correspondant :
Un filtre et un tri peuvent être appliqués lors du chargement de la liste :
<view name="listdet" schema="nms:recipient" type="listdet">
<columns>
...
</columns>
<orderBy>
<node expr="@lastName" desc="true"/>
</orderBy>
<sysFilter>
<condition expr="@type = 1"/>
</sysFilter>
</view>
Une commande contextuelle permet de lancer une action sur la sélection de la liste, cette action peut être une forme de saisie ou un appel SOAP.
Les commandes sont accessibles à partir du menu Action de la liste ou du bouton menu associé.
La struture du paramétrage des commandes est la suivante :
<nodeModel...
...
<command name="<name>" label="<label>" desc="<Description>" form="<form>" rights="<rights>">
<soapCall name="<name>" service="<schema>">
<param type="<type>" exprIn="<xpath>"/>
...
</soapCall>
<enter>
...
</enter>
</command>
</nodeModel>
La description de la commande est renseignée sur l’élément <command>
avec les propriétés suivantes :
Un élément <command>
peut contenir des sous-éléments <command>
. Dans ce cas, l’élément parent vous permet d’afficher un sous-menu composé de ces éléments enfants.
L'affichage des commandes respecte l'ordre de déclaration dans le document XML.
Un séparateur de commande permet d'afficher une barre de séparation entre les commandes, il est identifié par la valeur '-' contenue dans le libellé de la commande.
La présence facultative de la balise <soapcall>
avec ses paramètres d’entrée définit l’appel d’une méthode SOAP à exécuter. Pour plus d’informations sur les API SOAP, consultez la documentation JSAPI Campaign.
Le contexte du formulaire peut être mis à jour lors de l’initialisation via la balise <enter>
. Pour plus d’informations sur cette balise, consultez la documentation du formulaire de saisie.
Exemple:
<command desc="Cancel execution of the job" enabledIf="EV(@status, 'running')"
img="nms:difstop.bmp" label="Cancel..." name="cancelJob"
promptLabel="Do you really want to cancel this job?" refreshView="true">
<soapCall name="Cancel" service="xtk:jobInterface"/>
</command>
<command label="-" name="sep1"/>
<command desc="Execute selected template" form="cus:form" lmonoSelection="true" name="executeModel"
rights="import,export,aggregate">
<enter>
<set expr="0" xpath="@status"/>
</enter>
</command>
Il existe deux types de fonctionnement dans la gestion des dossiers :
Pour un dossier lié, l’attribut folderLink de l’élément <nodemodel>
doit être renseigné. Cet attribut contient le nom du lien sur le dossier configuré dans le schéma de données.
Exemple de déclaration d'un dossier lié dans le schéma de données :
<element default="DefaultFolder('nmsFolder', [@_folder-id])" label="Folder" name="folder" revDesc="Recipients in the folder" revIntegrity="define" revLabel="Recipients" target="xtk:folder" type="link"/>
La configuration du <nodemodel>
sur le lien du dossier nommé « Dossier » est la suivante :
<nodeModel deleteRight="folderDelete" editRight="folderEdit" folderLink="folder"
img="nms:folder.png" insertRight="folderInsert" label="Recipients" name="nmsFolder">
...
</nodeModel>