Show Menu
ARGOMENTI×

Configurazione

I tipi di cartelle utilizzati dall'elenco di navigazione sono descritti in un documento XML che segue la grammatica dello schema xtk:navtree .
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 l'elemento <navtree> principale con gli attributi name e namespace 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 dall' <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 principale.
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 inserita nell' <command> elemento con le seguenti proprietà:
  • name : nome interno del comando: il nome deve essere immesso e univoco
  • label : dell'etichetta del comando.
  • desc : descrizione visibile dalla barra di stato della schermata principale.
  • modulo : modulo da avviare: il valore da immettere è la chiave di identificazione del modulo di input (ad es. "cus:receive")
  • diritti : elenco di diritti denominati (separati da virgola) che consentono l'accesso a questo comando. L’elenco dei diritti disponibili è accessibile dalla Administration > Access management > Named rights cartella.
  • promptLabel : visualizza una casella di conferma prima dell'esecuzione del comando.
Un <command> elemento può contenere <command> elementi secondari. In questo caso, l'elemento padre 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 facoltativa del <soapcall> tag con i relativi parametri di input definisce la chiamata di un metodo SOAP da eseguire. Per ulteriori informazioni sull'API SOAP, consultate la documentazione JSAPI per Campaign.
Il contesto del modulo può essere aggiornato all'inizializzazione dal <enter> tag . Per ulteriori informazioni su questo tag, consultare la documentazione relativa ai 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 viene dichiarata sul carattere "I" dalla presenza di & nell'etichetta del comando.
  • Esempio di sottomenu con un 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 è composta 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 consente di definire un'organizzazione gerarchica visibile dal Add new folder menu. Un <model> elemento deve contenere <nodemodel> elementi e altri <model> elementi.
Gli attributi nome ed etichetta popolano il nome interno dell'elemento e l'etichetta visualizzata nel Add new folder menu.
L' <nodemodel> elemento contiene la descrizione del tipo di cartella con le seguenti proprietà:
  • name : nome interno
  • label : etichetta utilizzata nel Add new folder menu e come etichetta predefinita quando si inserisce una cartella.
  • img : immagine predefinita nell’inserimento della cartella.
  • hiddenCommands : elenco di comandi (separati da virgola) da mascherare. Valori possibili: "insert", "delete", "update" e "duplicate".
  • newFolderShortCuts : elenco di scelte rapide da tastiera per i modelli ( <nodemodel> separate da virgola) nella creazione delle cartelle.
  • insertRight , editRight , deleteRight : diritti per l’inserimento, la modifica e l’eliminazione di cartelle.
L' <view> elemento sotto l' <nodemodel> elemento contiene la configurazione dell'elenco associato alla vista. Lo schema dell'elenco viene immesso nell'attributo schema dell' <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. L'attributo type sull' <view> elemento influisce sulla visualizzazione del modulo. I valori possibili sono:
  • list : visualizza il modulo in fondo all'elenco.
  • elenco : visualizza l'elenco da solo. Il modulo viene avviato facendo doppio clic o mediante l'opzione "Apri" nel menu alla selezione dell'elenco.
  • modulo : visualizza un modulo di sola lettura.
  • editForm : visualizza un modulo in modalità di modifica.
Il nome del modulo di input può essere sovraccaricato immettendo l'attributo modulo nell' <view> elemento .
La configurazione predefinita delle colonne dell'elenco viene immessa tramite l' <columns> elemento . Una colonna è dichiarata su un <node> elemento contenente l'attributo xpath con il campo a cui verrà fatto riferimento nello schema come valore.
Esempio : dichiarazione di un tipo di cartella sullo schema "nms:destinatario".
<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 cartella corrispondente:
Potete applicare il filtro e l'ordinamento al caricamento dell'elenco:
<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 per selezionare l’elenco. L'azione può essere un modulo di input o una chiamata SOAP.
I comandi sono accessibili dal Action menu dell'elenco o dal 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 immessa sull' <command> elemento con le seguenti proprietà:
  • name : nome interno del comando: il nome deve essere specificato e univoco.
  • label : dell'etichetta del comando.
  • desc : descrizione visibile dalla barra di stato della schermata principale.
  • modulo : modulo da avviare: il valore da immettere è la chiave di identificazione del modulo di input (ad es. "cus:receive").
  • diritti : elenco di diritti denominati (separati da virgola) che consentono l'accesso a questo comando. L’elenco dei diritti disponibili è accessibile dalla 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 di accedere al comando dalla barra degli strumenti dell'elenco.
Un <command> elemento può contenere <command> elementi secondari. In questo caso, l'elemento padre 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 facoltativa del <soapcall> tag con i relativi parametri di input definisce la chiamata di un metodo SOAP da eseguire. Per ulteriori informazioni sulle API SOAP, consulta la documentazione JSAPI di Campaign.
Il contesto del modulo può essere aggiornato in fase di inizializzazione tramite il <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 immesso nelle proprietà della cartella.
  2. La cartella è collegata: i record elencati vengono filtrati implicitamente sul collegamento della cartella.
Per una cartella collegata, è necessario compilare l’attributo folderLink dell’ <nodemodel> elemento. 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')" label="Folder" name="folder" revDesc="Recipients in the folder" revIntegrity="own" revLabel="Recipients" target="xtk:folder" type="link"/>

La configurazione della cartella <nodemodel> sul collegamento della cartella denominata "cartella" è la seguente:
<nodeModel deleteRight="folderDelete" editRight="folderEdit" folderLink="folder"
  img="nms:folder.png" insertRight="folderInsert" label="Recipients" name="nmsFolder">
...
</nodeModel>