[Applicabile anche a v8]{class="badge positive" title="Applicabile anche a Campaign v8"}

Modificare i moduli editing-forms

Panoramica

Gli addetti al marketing e gli operatori utilizzano i moduli di input per creare, modificare e visualizzare in anteprima i record. Forms mostra una rappresentazione visiva delle informazioni.

È possibile creare e modificare i moduli di input:

  • È possibile modificare i moduli di input forniti per impostazione predefinita. I moduli di input di fabbrica si basano sugli schemi di dati di fabbrica.
  • Puoi creare moduli di input personalizzati, in base agli schemi di dati definiti.

Forms sono entità di tipo xtk:form. È possibile visualizzare la struttura del modulo di input nello schema xtk:form. Per visualizzare questo schema, scegli Administration > Configuration > Data schemas dal menu. Ulteriori informazioni sulla struttura modulo.

Per accedere ai moduli di input, scegliere Administration> Configuration >Input forms dal menu:

Per progettare moduli, modificare il contenuto XML nell'editor XML:

Ulteriori informazioni.

Per visualizzare l'anteprima di un modulo, fare clic sulla scheda Preview:

Tipi di modulo

È possibile creare diversi tipi di moduli di input. Il tipo di modulo determina il modo in cui gli utenti si spostano nel modulo:

  • Schermata console

    Questo è il tipo di modulo predefinito. Il modulo comprende una singola pagina.

  • Gestione dei contenuti

    Utilizza questo tipo di modulo per la gestione dei contenuti. Vedi questo caso d'uso.

  • Assistente virtuale

    Questo modulo comprende più schermi mobili ordinati in una sequenza specifica. Gli utenti possono passare da una schermata all’altra. Ulteriori informazioni.

  • Iconbox

    Questo modulo comprende più pagine. Per spostarsi nel modulo, gli utenti selezionano le icone a sinistra del modulo.

  • Notebook

    Questo modulo comprende più pagine. Per spostarsi nel modulo, gli utenti selezionano le schede nella parte superiore del modulo.

  • Riquadro verticale

    In questo modulo viene visualizzata una struttura di spostamento.

  • Riquadro orizzontale

    Questo modulo mostra un elenco di elementi.

Contenitori

Nei moduli è possibile utilizzare i contenitori per vari scopi:

  • Organizzare i contenuti nei moduli
  • Definire l’accesso ai campi di input
  • Nidificare i moduli in altri moduli

Ulteriori informazioni.

Organizzare i contenuti

Utilizzare i contenitori per organizzare il contenuto nei moduli:

  • Puoi raggruppare i campi in sezioni.
  • È possibile aggiungere pagine a moduli multipagina.

Per inserire un contenitore, utilizzare l'elemento <container>. Ulteriori informazioni.

Raggruppa campi

Utilizza i contenitori per raggruppare i campi di input in sezioni organizzate.

Per inserire una sezione in un modulo, utilizzare questo elemento: <container type="frame">. Per aggiungere un titolo di sezione, utilizzare l'attributo label.

Sintassi: <container type="frame" label="section_title"> […] </container>

In questo esempio, un contenitore definisce la sezione Creazione, che comprende i campi di input Created by e Name:

<form _cs="Coupons (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Coupons"
      name="coupon" namespace="nms" type="default" xtkschema="xtk:form">
  <input xpath="@code"/>
  <input xpath="@type"/>
  <container label="Creation" type="frame">
    <input xpath="createdBy"/>
    <input xpath="createdBy/@name"/>
  </container>
</form>

Aggiungere pagine a moduli multipagina

Per i moduli multipagina, utilizza un contenitore per creare una pagina modulo.

In questo esempio vengono visualizzati i contenitori per le pagine Generale e Dettagli di un modulo:

<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>

Definire l’accesso ai campi

Utilizza i contenitori per definire ciò che è visibile e per definire l’accesso ai campi. È possibile attivare o disattivare gruppi di campi.

Nidificare i moduli

Utilizzare i contenitori per nidificare i moduli all'interno di altri moduli. Ulteriori informazioni.

Riferimenti a immagini

Per trovare le immagini, scegliere Administration > Configuration > Images dal menu.

Per associare un'immagine a un elemento del modulo, ad esempio un'icona, è possibile aggiungere un riferimento a un'immagine. Utilizzare l'attributo img, ad esempio, nell'elemento <container>.

Sintassi: img="namespace:filename.extension"

Questo esempio mostra i riferimenti alle immagini book.png e detail.png dallo spazio dei nomi ncm:

<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>

Queste immagini sono utilizzate per le icone su cui gli utenti fanno clic per spostarsi in un modulo multipagina:

Creare un modulo semplice create-simple-form

Per creare un modulo, eseguire la procedura seguente:

  1. Scegliere Administration > Configuration > Input forms dal menu.

  2. Fare clic sul pulsante New in alto a destra nell'elenco.

  3. Specificare le proprietà del modulo:

    • Specifica il nome del modulo e lo spazio dei nomi.

      Il nome del modulo e lo spazio dei nomi possono corrispondere allo schema di dati correlato. Questo esempio mostra un modulo per lo schema dati cus:order:

      code language-xml
      <form entitySchema="xtk:form" img="xtk:form.png" label="Order" name="order" namespace="cus" type="iconbox" xtkschema="xtk:form">
        […]
      </form>
      

      In alternativa, è possibile specificare esplicitamente lo schema dati nell'attributo entity-schema.

      code language-xml
      <form entity-schema="cus:stockLine" entitySchema="xtk:form" img="xtk:form.png" label="Stock order" name="stockOrder" namespace="cus" xtkschema="xtk:form">
        […]
      </form>
      
    • Specificare l'etichetta da visualizzare nel modulo.

    • Facoltativamente, specificare il tipo di modulo. Se non si specifica un tipo di modulo, per impostazione predefinita viene utilizzato il tipo di schermata della console.

      Se si progetta un modulo multipagina, è possibile omettere il tipo di modulo nell'elemento <form> e specificare il tipo in un contenitore.

  4. Fai clic su Save.

  5. Inserire gli elementi del modulo.

    Ad esempio, per inserire un campo di input, utilizzare l'elemento <input>. Impostare l'attributo xpath sul riferimento di campo come espressione XPath. Ulteriori informazioni.

    Questo esempio mostra i campi di input basati sullo schema nms:recipient.

    code language-xml
    <input xpath="@firstName"/>
    <input xpath="@lastName"/>
    
  6. Se il modulo è basato su un tipo di schema specifico, è possibile cercare i campi per questo schema:

    1. Fare clic su Insert > Document fields.

    2. Selezionare il campo e fare clic su OK.

  7. Facoltativamente, specifica l’editor di campi.

    A ciascun tipo di dati è associato un editor di campi predefinito:

    • Per un campo di tipo data, nel modulo viene visualizzato un calendario di input.
    • Per un campo di tipo enumerazione, il modulo mostra un elenco di selezione.

    Puoi utilizzare i seguenti tipi di editor di campi:

    table 0-row-2 1-row-2 2-row-2 3-row-2
    Editor campo Attributo modulo
    Pulsante di opzione type="radiobutton"
    Casella di controllo type="checkbox"
    Modifica struttura type="tree"

    Ulteriori informazioni sui controlli elenco memoria.

  8. Facoltativamente, definisci l’accesso ai campi:

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Elemento “element” Attributo Descrizione
    <input> read-only="true" Fornisce accesso in sola lettura a un campo
    <container> type="visibleGroup" visibleIf="modifica-espr" Visualizza un gruppo di campi in modo condizionale
    <container> type="enabledGroup" enabledIf="modifica-espr" Abilita un gruppo di campi in modo condizionale

    Esempio:

    code language-xml
    <container type="enabledGroup" enabledIf="@gender=1">
      […]
    </container>
    <container type="enabledGroup" enabledIf="@gender=2">
      […]
    </container>
    
  9. Facoltativamente, utilizza i contenitori per raggruppare i campi in sezioni.

    code language-xml
    <container type="frame" label="Name">
       <input xpath="@firstName"/>
       <input xpath="@lastName"/>
    </container>
    <container type="frame" label="Contact details">
       <input xpath="@email"/>
       <input xpath="@phone"/>
    </container>
    

Creare un modulo multipagina create-multipage-form

Puoi creare moduli multipagina. È inoltre possibile nidificare i moduli all'interno di altri moduli.

Crea un modulo iconbox

Utilizzare il tipo di modulo iconbox per visualizzare le icone a sinistra del modulo, che portano gli utenti a pagine diverse del modulo.

Per modificare il tipo di un modulo esistente in iconbox, eseguire la procedura seguente:

  1. Modificare l'attributo type dell'elemento <form> in iconbox:

    code language-xml
    <form […] type="iconbox">
    
  2. Impostare un contenitore per ogni pagina del modulo:

    1. Aggiungere un elemento <container> come elemento figlio dell'elemento <form>.

    2. Per definire un'etichetta e un'immagine per l'icona, utilizzare gli attributi label e img.

      code language-xml
      <form entitySchema="xtk:form" name="Service provider" namespace="nms" type="iconbox" xtkschema="xtk:form">
          <container img="xtk:properties.png" label="General">
              <input xpath="@label"/>
              <input xpath="@name"/>
              […]
          </container>
          <container img="nms:msgfolder.png" label="Details">
              <input xpath="@address"/>
              […]
          </container>
          <container img="nms:supplier.png" label="Services">
              […]
          </container>
      </form>
      

    In alternativa, rimuovere l'attributo type="frame" dagli elementi <container> esistenti.

Creare un modulo per blocchi appunti

Utilizza il tipo di modulo notebook per visualizzare le schede nella parte superiore del modulo, che portano gli utenti a pagine diverse.

Per modificare il tipo di un modulo esistente in notebook, eseguire la procedura seguente:

  1. Modificare l'attributo type dell'elemento <form> in notebook:

    code language-xml
    <form […] type="notebook">
    
  2. Aggiungi un contenitore per ogni pagina modulo:

    1. Aggiungere un elemento <container> come elemento figlio dell'elemento <form>.
    2. Per definire l'etichetta e l'immagine per l'icona, utilizzare gli attributi label e img.
    code language-xml
      <form entitySchema="xtk:form" name="Service provider" namespace="nms" type="notebook" xtkschema="xtk:form">
          <container label="General">
              <input xpath="@label"/>
              <input xpath="@name"/>
              […]
          </container>
          <container label="Details">
              <input xpath="@address"/>
              […]
          </container>
          <container label="Services">
              […]
          </container>
      </form>
    

    In alternativa, rimuovere l'attributo type="frame" dagli elementi <container> esistenti.

Nidificare i moduli

È possibile nidificare i moduli all'interno di altri moduli. Ad esempio, è possibile nidificare i moduli notebook all'interno dei moduli iconbox.

Il livello di nidificazione controlla la navigazione. Gli utenti possono eseguire il drill-down alle sottomaschere.

Per nidificare un modulo all'interno di un altro modulo, inserire un elemento <container> e impostare l'attributo type sul tipo di modulo. Per il modulo di primo livello, è possibile impostare il tipo di modulo in un contenitore esterno o nell'elemento <form>.

Esempio

Questo esempio mostra un modulo complesso:

  • Il modulo di primo livello è un modulo iconbox. Questo modulo comprende due contenitori con etichetta Generale e Dettagli.

    Di conseguenza, il modulo esterno mostra le pagine Generale e Dettagli al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone a sinistra del modulo.

  • Il sottomodulo è un modulo del blocco appunti nidificato nel contenitore Generale. Il sottomodulo comprende due contenitori con etichetta Nome e Contatto.

<form _cs="Profile (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Profile" name="profile" namespace="nms" xtkschema="xtk:form">
  <container type="iconbox">
    <container img="ncm:general.png" label="General">
      <container type="notebook">
        <container label="Name">
          <input xpath="@firstName"/>
          <input xpath="@lastName"/>
        </container>
        <container label="Contact">
          <input xpath="@email"/>
        </container>
      </container>
    </container>
    <container img="ncm:detail.png" label="Details">
      <input xpath="@birthDate"/>
    </container>
  </container>
</form>

Di conseguenza, nella pagina Generale del modulo esterno sono visualizzate le schede Nome e Contatto.

Per nidificare un modulo all'interno di un altro modulo, inserire un elemento <container> e impostare l'attributo type sul tipo di modulo. Per il modulo di primo livello, è possibile impostare il tipo di modulo in un contenitore esterno o nell'elemento <form>.

Esempio

Questo esempio mostra un modulo complesso:

  • Il modulo di primo livello è un modulo iconbox. Questo modulo comprende due contenitori con etichetta Generale e Dettagli.

    Di conseguenza, il modulo esterno mostra le pagine Generale e Dettagli al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone a sinistra del modulo.

  • Il sottomodulo è un modulo del blocco appunti nidificato nel contenitore Generale. Il sottomodulo comprende due contenitori con etichetta Nome e Contatto.

<form _cs="Profile (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Profile" name="profile" namespace="nms" xtkschema="xtk:form">
  <container type="iconbox">
    <container img="ncm:general.png" label="General">
      <container type="notebook">
        <container label="Name">
          <input xpath="@firstName"/>
          <input xpath="@lastName"/>
        </container>
        <container label="Contact">
          <input xpath="@email"/>
        </container>
      </container>
    </container>
    <container img="ncm:detail.png" label="Details">
      <input xpath="@birthDate"/>
    </container>
  </container>
</form>

Di conseguenza, nella pagina Generale del modulo esterno sono visualizzate le schede Nome e Contatto.

Modificare un modulo di input di fabbrica modify-factory-form

Per modificare un modulo di fabbrica, effettuare le seguenti operazioni:

  1. Modificare il modulo di input di fabbrica:

    1. Scegliere Administration > Configuration > Input forms dal menu.
    2. Selezionare un modulo di input e modificarlo.

    È possibile estendere gli schemi di dati di fabbrica, ma non i moduli di input di fabbrica. È consigliabile modificare direttamente i moduli di input di fabbrica senza ricrearli. Durante gli aggiornamenti del software, le modifiche nei moduli di input di fabbrica vengono unite agli aggiornamenti. Se l'unione automatica non riesce, è possibile risolvere i conflitti. Ulteriori informazioni.

    Ad esempio, se si estende uno schema di fabbrica con un campo aggiuntivo, è possibile aggiungere questo campo al relativo modulo di fabbrica.

Convalida moduli validate-forms

È possibile includere controlli di convalida nelle maschere.

Concedere l’accesso in sola lettura ai campi

Per concedere l'accesso in sola lettura a un campo, utilizzare l'attributo readOnly="true". È ad esempio possibile visualizzare la chiave primaria di un record, ma con accesso in sola lettura. Ulteriori informazioni.

In questo esempio, la chiave primaria (iRecipientId) dello schema nms:recipient viene visualizzata in accesso in sola lettura:

<value xpath="@iRecipientId" readOnly="true"/>

Controlla campi obbligatori

Puoi controllare le informazioni obbligatorie:

  • Utilizzare l'attributo required="true" per i campi obbligatori.
  • Utilizza il nodo <leave> per controllare questi campi e visualizzare i messaggi di errore.

In questo esempio, l’indirizzo e-mail è obbligatorio e viene visualizzato un messaggio di errore se l’utente non ha fornito queste informazioni:

<input xpath="@email" required="true"/>
<leave>
  <check expr="@email!=''">
    <error>The email address is required.</error>
  </check>
</leave>

Ulteriori informazioni sui campi espressione e sul contesto modulo.

Convalida valori

Puoi utilizzare le chiamate SOAP di JavaScript per convalidare i dati del modulo dalla console. Utilizza queste chiamate per la convalida complessa, ad esempio, per confrontare un valore con un elenco di valori autorizzati. Ulteriori informazioni.

  1. Crea una funzione di convalida in un file JS.

    Esempio:

    code language-js
    function nms_recipient_checkValue(value)
    {
      logInfo("checking value " + value)
      if (…)
      {
        logError("Value " + value + " is not valid")
      }
      return 1
    }
    

    In questo esempio, la funzione è denominata checkValue. Questa funzione viene utilizzata per controllare il tipo di dati recipient nello spazio dei nomi nms. Il valore che viene controllato viene registrato. Se il valore non è valido, viene registrato un messaggio di errore. Se il valore è valido, viene restituito il valore 1.

    È possibile utilizzare il valore restituito per modificare il modulo.

  2. Nel modulo, aggiungi l'elemento <soapCall> all'elemento <leave>.

    In questo esempio, viene utilizzata una chiamata SOAP per convalidare la stringa @valueToCheck:

    code language-xml
    <form name="recipient" (…)>
    (…)
      <leave>
        <soapCall name="checkValue" service="nms:recipient">
          <param exprIn="@valueToCheck" type="string"/>
        </soapCall>
      </leave>
    </form>
    

    In questo esempio vengono utilizzati il metodo checkValue e il servizio nms:recipient:

    • Il servizio è lo spazio dei nomi e il tipo di dati.
    • Il metodo è il nome della funzione. Il nome distingue tra maiuscole e minuscole.

    La chiamata viene eseguita in modo sincrono.

    Vengono visualizzate tutte le eccezioni. Se si utilizza l'elemento <leave>, gli utenti non potranno salvare il modulo finché le informazioni immesse non saranno convalidate.

In questo esempio viene illustrato come effettuare chiamate di servizio all'interno dei moduli:

<enter>
  <soapCall name="client" service="c4:ybClient">
    <param exprIn="@id" type="string"/>
    <param type="boolean" xpathOut="/tmp/@count"/>
  </soapCall>
</enter>

In questo esempio, l’input è un ID, che è una chiave primaria. Quando gli utenti compilano il modulo per questo ID, viene effettuata una chiamata SOAP con questo ID come parametro di input. L'output è un valore booleano scritto in questo campo: /tmp/@count. Puoi utilizzare questo valore booleano all’interno del modulo. Ulteriori informazioni sul contesto modulo.

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1