[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 xtk:form tipo. È possibile visualizzare la struttura del modulo di input in xtk:form schema. Per visualizzare questo schema, scegli Administration > Configuration > Data schemas dal menu. Ulteriori informazioni su struttura del 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 su Preview scheda:

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, utilizza <container> elemento. 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">. Facoltativamente, per aggiungere un titolo di sezione, utilizza label attributo.

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

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

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

Questo esempio mostra i contenitori per Generale e Dettagli pagine 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. Utilizza il img , ad esempio, nel <container> elemento.

Sintassi: img="namespace:filename.extension"

Questo esempio mostra i riferimenti al book.png e detail.png immagini da ncm namespace:

<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. Dal menu, scegli Administration > Configuration > Input forms.

  2. Fai clic su 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 cus:order schema dati:

      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 nel entity-schema attributo.

      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 nel <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, utilizza <input> elemento. Imposta il xpath attributo al riferimento di campo come espressione XPath. Ulteriori informazioni.

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

    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. Clic Insert > Document fields.

    2. Seleziona il campo e fai 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 su 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="edit-expr" Visualizza un gruppo di campi in modo condizionale
    <container> type="enabledGroup" enabledIf="edit-expr" 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.

Creare un iconbox modulo

Utilizza il iconbox tipo di modulo 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, effettua le seguenti operazioni:

  1. Modificare il type attributo del <form> elemento a iconbox:

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

    1. Aggiungi un <container> elemento come elemento figlio di <form> elemento.

    2. Per definire un’etichetta e un’immagine per l’icona, utilizza label e img attributi.

      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, rimuovi il type="frame" attributo esistente <container> elementi.

Creare un modulo per blocchi appunti

Utilizza il notebook tipo di modulo 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, effettua le seguenti operazioni:

  1. Modificare il type attributo del <form> elemento a notebook:

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

    1. Aggiungi un <container> elemento come elemento figlio di <form> elemento.
    2. Per definire l’etichetta e l’immagine dell’icona, utilizza la label e img attributi.
    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, rimuovi il type="frame" attributo esistente <container> elementi.

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 <container> e impostare type al tipo di modulo. Per il modulo di primo livello, è possibile impostare il tipo di modulo in un contenitore esterno o nel <form> elemento.

Esempio

Questo esempio mostra un modulo complesso:

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

    Di conseguenza, nella maschera esterna viene visualizzato Generale e Dettagli pagine al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone a sinistra del modulo.

  • La sottomaschera è una maschera del blocco appunti nidificata all'interno del Generale contenitore. La sottomaschera comprende due contenitori etichettati 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, il Generale nella pagina del modulo esterno viene visualizzata la Nome e Contatto schede.

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

Esempio

Questo esempio mostra un modulo complesso:

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

    Di conseguenza, nella maschera esterna viene visualizzato Generale e Dettagli pagine al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone a sinistra del modulo.

  • La sottomaschera è una maschera del blocco appunti nidificata all'interno del Generale contenitore. La sottomaschera comprende due contenitori etichettati 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, il Generale nella pagina del modulo esterno viene visualizzata la Nome e Contatto schede.

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. Dal menu, scegli Administration > Configuration > Input forms.
    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, utilizza readOnly="true" attributo. È 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) del nms:recipient lo schema viene visualizzato in accesso in sola lettura:

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

Controlla campi obbligatori

Puoi controllare le informazioni obbligatorie:

  • Utilizza il required="true" per i campi obbligatori.
  • Utilizza il <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 su campi espressione e contesto modulo.

Convalida valori

Puoi utilizzare le chiamate SOAP 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 recipient tipo di dati in nms spazio dei nomi. 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 <soapCall> elemento al <leave> elemento.

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

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

    In questo esempio, la proprietà checkValue e il nms:recipient servizio utilizzato:

    • 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 <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 su contesto modulo.

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