Configura la struttura di navigazione di Campaign Explorer

In qualità di utente esperto, è possibile aggiungere cartelle nella struttura dell'esploratore e personalizzarle.

Ulteriori informazioni su Esplora campagne e gerarchia di navigazione in questa sezione.

I tipi di cartelle utilizzati dall'elenco di navigazione sono descritti in un documento XML che rispetta la grammatica del xtk:navtree schema.

Il documento XML è strutturato come segue:

<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>

Il documento XML contiene <navtree> elemento principale con name e namespace attributi per specificare il nome e lo spazio dei nomi del documento. Il nome e lo spazio dei nomi costituiscono la chiave di identificazione del documento.

I comandi globali dell'applicazione sono dichiarati nel documento dal <commands> elemento.

La dichiarazione dei tipi di file è strutturata nel documento con i seguenti elementi: <model> e <nodemodel>.

Comandi globali

Un comando globale consente di avviare un'azione. Questa azione può essere un modulo di input o una chiamata SOAP.

I comandi globali sono accessibili dal Tools menu.

La struttura di configurazione del comando è la seguente:

<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 descrizione di un comando globale viene immessa nella <command> con le seguenti proprietà:

  • name: nome interno del comando: il nome deve essere immesso e univoco
  • etichetta: etichetta del comando.
  • desc: descrizione visibile dalla barra di stato della schermata principale.
  • modulo: modulo da avviare: il valore da inserire è la chiave di identificazione del modulo di input (ad es. "cus:recipient")
  • diritti: elenco di diritti denominati (separati da una virgola) che consentono l'accesso a questo comando. L’elenco dei diritti disponibili è accessibile dal Administration > Access management > Named rights cartella.
  • promptLabel: visualizza una casella di conferma prima dell'esecuzione del comando.

A <command> può contenere <command> sottoelementi. In questo caso, l’elemento padre ti consente di visualizzare un sottomenu composto da questi elementi secondari.

I comandi vengono visualizzati nello stesso ordine in cui sono dichiarati nel documento XML.

Un separatore di comando consente di visualizzare una barra di separazione tra i comandi. È identificato dal '-' valore contenuto nell'etichetta del comando.

La presenza opzionale del <soapcall> Il tag con i relativi parametri di input definisce la chiamata di un metodo SOAP da eseguire. Per ulteriori informazioni sull’API SOAP, consulta Documentazione JSAPI per Campaign.

Il contesto del modulo può essere aggiornato al momento dell'inizializzazione da <enter> tag . Per ulteriori informazioni su questo tag, consulta la documentazione sui moduli di input.

Esempio:

  • Dichiarazione di un comando globale per avviare il modulo "xtk:import":

    <command desc="Start the data import wizard" form="xtk:import" label="&amp;Data import..." name="import" rights="import,recipientImport"/>
    

    Una scelta rapida da tastiera è dichiarata sul carattere "I" dalla presenza di & nell'etichetta del comando.

  • Esempio di sottomenu con separatore:

    <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>
    
  • Esecuzione di un metodo SOAP:

    <command name="cmd3" label="Example 3" promptLabel="Do you really want to execute the command?">
      <soapCall name="Execute" service="xtk:sql"/>
    </command>
    

Tipo di cartella

Un tipo di cartella consente di accedere ai dati di uno schema. La visualizzazione associata alla cartella è costituita da un elenco e da un modulo di input.

La struttura di configurazione del tipo di cartella è la seguente:

<!-- 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 dichiarazione del tipo di cartella deve essere inserita in un <model> elemento. Questo elemento ti consente di definire un’organizzazione gerarchica visibile dal Add new folder menu. A <model> deve contenere <nodemodel> elementi e altri <model> elementi.

La name e etichetta gli attributi compilano il nome interno dell’elemento e l’etichetta visualizzata nel Add new folder menu.

La <nodemodel> l'elemento contiene la descrizione del tipo di cartella con le seguenti proprietà:

  • name: nome interno
  • etichetta: dell'etichetta utilizzata Add new folder e come etichetta predefinita durante l’inserimento di una cartella.
  • img: immagine predefinita all'inserimento della cartella.
  • hiddenCommand: elenco di comandi (separati da una virgola) da mascherare. Valori possibili: "adbnew", "adbsave", "adbcancel" e "adbdup".
  • newFolderShortCuts: elenco di scelte rapide sui modelli (<nodemodel> separati da una virgola) nella creazione di cartelle.
  • insertRight, editRight, deleteRight: diritti per l'inserimento, la modifica e l'eliminazione di cartelle.

La <view> elemento sotto <nodemodel> contiene la configurazione dell’elenco associato alla visualizzazione. Lo schema dell’elenco viene immesso nel schema dell'attributo <view> elemento.

Per modificare i record dell’elenco, viene utilizzato in modo implicito il modulo di input con lo stesso nome dello schema dell’elenco. La type dell'attributo <view> influisce sulla visualizzazione del modulo. I valori possibili sono:

  • listdet: visualizza il modulo in fondo all’elenco.
  • elenco: visualizza l’elenco da solo. Il modulo viene avviato facendo doppio clic o tramite l’opzione "Apri" nel menu che consente di selezionare l’elenco.
  • modulo: visualizza un modulo di sola lettura.
  • editForm: visualizza un modulo in modalità di modifica.
NOTA

È possibile sovraccaricare il nome del modulo di input immettendo la variabile modulo nella <view> elemento.

La configurazione predefinita delle colonne dell’elenco viene immessa tramite il <columns> elemento. Una colonna viene dichiarata su un <node> contenente xpath attributo con il campo a cui viene fatto riferimento nel relativo schema come valore.

Esempio: dichiarazione di un tipo di cartella sullo schema "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>

Menu di inserimento cartelle corrispondente:

È possibile applicare filtri e ordinamento quando l’elenco viene caricato:

<view name="listdet" schema="nms:recipient" type="listdet">
  <columns>
    ...
  </columns>

  <orderBy>
    <node expr="@lastName" desc="true"/>
</orderBy>
  <sysFilter>
    <condition expr="@type = 1"/>
  </sysFilter>
</view>  

Comandi di scelta rapida

Un comando di scelta rapida consente di avviare un’azione quando si seleziona l’elenco. L’azione può essere un modulo di input o una chiamata SOAP.

I comandi sono accessibili dal Action menu dell'elenco o del pulsante del menu associato.

La struttura di configurazione del comando è la seguente:

<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 descrizione di un comando viene inserita nel <command> con le seguenti proprietà:

  • name: nome interno del comando: il nome deve essere immesso e univoco.
  • etichetta: etichetta del comando.
  • desc: descrizione visibile dalla barra di stato della schermata principale.
  • modulo: modulo da avviare: il valore da inserire è la chiave di identificazione del modulo di input (ad es. "cus:recipient").
  • diritti: elenco di diritti denominati (separati da una virgola) che consentono l'accesso a questo comando. L’elenco dei diritti disponibili è accessibile dal Administration > Access management > Named rights cartella.
  • promptLabel: visualizza una casella di conferma prima dell'esecuzione del comando
  • monoSelection: forza la selezione mono (selezione multipla per impostazione predefinita).
  • refreshView: forza il ricaricamento dell'elenco dopo l'esecuzione del comando.
  • enabledIf: attiva il comando in base all'espressione immessa.
  • img: immette un’immagine che consente l’accesso al comando dalla barra degli strumenti dell’elenco.

A <command> può contenere <command> sottoelementi. In questo caso, l’elemento padre ti consente di visualizzare un sottomenu composto da questi elementi secondari.

I comandi vengono visualizzati nello stesso ordine in cui sono dichiarati nel documento XML.

Un separatore di comando consente di visualizzare una barra di separazione tra i comandi. È identificato dal '-' valore contenuto nell'etichetta del comando.

La presenza opzionale del <soapcall> Il tag con i relativi parametri di input definisce la chiamata di un metodo SOAP da eseguire. Per ulteriori informazioni sulle API SOAP, consulta Documentazione JSAPI per Campaign.

Il contesto del modulo può essere aggiornato all’inizializzazione tramite l’ <enter> tag . Per ulteriori informazioni su questo tag, consulta la documentazione del modulo di input .

Esempio:

<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>

Cartella collegata

Esistono due tipi di operazioni di gestione delle cartelle:

  1. La cartella è una visualizzazione: l'elenco visualizza tutti i record associati allo schema, con la possibilità di filtrare il sistema inserito nelle proprietà della cartella.
  2. La cartella è collegata: i record nell’elenco vengono filtrati implicitamente sul collegamento della cartella.

Per una cartella collegata, la folderLink dell'attributo <nodemodel> deve essere popolato. Questo attributo contiene il nome del collegamento nella cartella configurata nello schema dati.

Esempio di dichiarazione di una cartella collegata nello schema dati:

<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 configurazione del <nodemodel> sul collegamento della cartella denominata "cartella" si trova quanto segue:

<nodeModel deleteRight="folderDelete" editRight="folderEdit" folderLink="folder"
  img="nms:folder.png" insertRight="folderInsert" label="Recipients" name="nmsFolder">
...
</nodeModel>

In questa pagina