Gli addetti al marketing e gli operatori utilizzano 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:
Forms è entità di xtk:form
digitare. È possibile visualizzare la struttura del modulo di input nel xtk:form
schema. Per visualizzare questo schema, scegli Administration > Configuration > Data schemas dal menu. Ulteriori informazioni struttura del modulo.
Per accedere ai moduli di input, scegli Administration> Configuration >Input forms dal menu:
Per progettare i moduli, modificare il contenuto XML nell’editor XML:
Per visualizzare l’anteprima di un modulo, fare clic sul pulsante Preview scheda:
È possibile creare diversi tipi di moduli di input. Il tipo di modulo determina il modo in cui gli utenti navigano nel modulo:
Schermata console
Questo è il tipo di modulo predefinito. Il modulo comprende una singola pagina.
Gestione dei contenuti
Utilizzare questo tipo di modulo per la gestione del contenuto. Vedi questo caso d'uso.
Assistente virtuale
Questo modulo comprende più schermate mobili ordinate in sequenze specifiche. Gli utenti passano 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
Questo modulo mostra una struttura di navigazione.
Riquadro orizzontale
Questo modulo mostra un elenco di elementi.
Nei moduli è possibile utilizzare i contenitori per vari scopi:
Utilizzare i contenitori per organizzare il contenuto all’interno dei moduli:
Per inserire un contenitore, utilizza le <container>
elemento. Ulteriori informazioni.
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 il label
attributo.
Sintassi: <container type="frame" label="
section_title"> […] </container>
In questo esempio, un contenitore definisce il Creazione la 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>
Per i moduli con più pagine, utilizzare un contenitore per creare una pagina del 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>
Utilizza i contenitori per definire cosa è visibile e per definire l’accesso ai campi. È possibile attivare o disattivare gruppi di campi.
Utilizzare i contenitori per nidificare i moduli all’interno di altri moduli. Ulteriori informazioni.
Per trovare le immagini, scegli 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 la img
, ad esempio nel <container>
elemento.
Sintassi: img="
namespace
:
filename
.
extension
"
Questo esempio mostra i riferimenti al book.png
e detail.png
immagini dal ncm
namespace:
<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>
Queste immagini vengono utilizzate per le icone che gli utenti fanno clic per spostarsi in un modulo multipagina:
Per creare un modulo, procedere come segue:
Dal menu , scegli Administration > Configuration > Input forms.
Fai clic sul pulsante New in alto a destra dell’elenco.
Specificare le proprietà del modulo:
Specificare 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:
<form entitySchema="xtk:form" img="xtk:form.png" label="Order" name="order" namespace="cus" type="iconbox" xtkschema="xtk:form">
[…]
</form>
In alternativa, puoi specificare esplicitamente lo schema dati nel entity-schema
attributo.
<form entity-schema="cus:stockLine" entitySchema="xtk:form" img="xtk:form.png" label="Stock order" name="stockOrder" namespace="cus" xtkschema="xtk:form">
[…]
</form>
Specifica l’etichetta da visualizzare sul 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.
Durante la progettazione di un modulo multipagina, è possibile omettere il tipo di modulo nella <form>
e specifica il tipo in un contenitore .
Fai clic su Save.
Inserire gli elementi del modulo.
Ad esempio, per inserire un campo di input, utilizza il <input>
elemento. Imposta la xpath
attributo al riferimento di campo come espressione XPath. Ulteriori informazioni.
Questo esempio mostra i campi di input basati su nms:recipient
schema.
<input xpath="@firstName"/>
<input xpath="@lastName"/>
Se il modulo è basato su un tipo di schema specifico, è possibile cercare i campi per questo schema:
Fai clic su Insert > Document fields.
Seleziona il campo e fai clic su OK.
Facoltativamente, specifica l’editor di campi.
A ciascun tipo di dati è associato un editor di campi predefinito:
Puoi utilizzare i seguenti tipi di editor di campi:
Editor di campi | Attributo modulo |
---|---|
Pulsante di opzione | type="radiobutton" |
Casella di controllo | type="checkbox" |
Modifica albero | type="tree" |
Ulteriori informazioni controlli elenco memoria.
Facoltativamente, definisci l’accesso ai campi:
Elemento “element” | Attributo | Descrizione |
---|---|---|
<input> |
read-only="true" |
Accesso in sola lettura a un campo |
<container> |
type="visibleGroup" visibleIf=" edit-expr" |
Visualizza in modo condizionale un gruppo di campi |
<container> |
type="enabledGroup" enabledIf=" edit-expr" |
Abilita condizionale un gruppo di campi |
Esempio:
<container type="enabledGroup" enabledIf="@gender=1">
[…]
</container>
<container type="enabledGroup" enabledIf="@gender=2">
[…]
</container>
Facoltativamente, utilizza i contenitori per raggruppare i campi in sezioni.
<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>
È possibile creare moduli multipagina. È inoltre possibile nidificare i moduli all’interno di altri moduli.
iconbox
moduloUtilizza la iconbox
tipo di modulo per visualizzare le icone a sinistra del modulo, che consentono agli utenti di spostarsi su pagine diverse del modulo.
Per modificare il tipo di modulo esistente in iconbox
, segui questi passaggi:
Modificare la type
dell'attributo <form>
elemento a iconbox
:
<form […] type="iconbox">
Impostare un contenitore per ciascuna pagina del modulo:
Aggiungi un <container>
come elemento figlio di <form>
elemento.
Per definire un’etichetta e un’immagine per l’icona, utilizza l’ label
e img
attributi.
<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 la type="frame"
attributo dell’esistente <container>
elementi.
Utilizza la notebook
tipo di modulo per visualizzare le schede nella parte superiore del modulo, che consentono agli utenti di passare a pagine diverse.
Per modificare il tipo di modulo esistente in notebook
, segui questi passaggi:
Modificare la type
dell'attributo <form>
elemento a notebook
:
<form […] type="notebook">
Aggiungere un contenitore per ciascuna pagina del modulo:
<container>
come elemento figlio di <form>
elemento.label
e img
attributi. <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 la type="frame"
attributo dell’esistente <container>
elementi.
È possibile nidificare i moduli all’interno di altri moduli. Ad esempio, è possibile nidificare i moduli per appunti all’interno dei moduli di iconbox.
Il livello di nidificazione controlla la navigazione. Gli utenti possono eseguire il drill-down ai sottomoduli.
Per nidificare un modulo all’interno di un altro modulo, inserire una <container>
e imposta type
al tipo di modulo. Per il modulo di livello superiore, è possibile impostare il tipo di modulo in un contenitore esterno o nella <form>
elemento.
Questo esempio mostra un modulo complesso:
Il modulo di livello superiore è un modulo casella di inbox. Questo modulo comprende due contenitori etichettati Generale e Dettagli.
Di conseguenza, il modulo esterno mostra il Generale e Dettagli pagine al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone nella parte sinistra del modulo.
Il sottomodulo è un modulo per appunti nidificato all'interno del Generale contenitore. Il sottomodulo 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 una <container>
e imposta type
al tipo di modulo. Per il modulo di livello superiore, è possibile impostare il tipo di modulo in un contenitore esterno o nella <form>
elemento.
Questo esempio mostra un modulo complesso:
Il modulo di livello superiore è un modulo casella di inbox. Questo modulo comprende due contenitori etichettati Generale e Dettagli.
Di conseguenza, il modulo esterno mostra il Generale e Dettagli pagine al livello superiore. Per accedere a queste pagine, gli utenti possono fare clic sulle icone nella parte sinistra del modulo.
Il sottomodulo è un modulo per appunti nidificato all'interno del Generale contenitore. Il sottomodulo 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 modificare un modulo di fabbrica, attenersi alla seguente procedura:
Modificare il modulo di input di fabbrica:
È 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 con gli 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 modulo di fabbrica correlato.
Nei moduli è possibile includere controlli di convalida.
Per concedere l’accesso in sola lettura a un campo, utilizza il readOnly="true"
attributo. Ad esempio, potrebbe essere utile mostrare 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"/>
Puoi controllare le informazioni obbligatorie:
required="true"
attributo per i campi obbligatori.<leave>
per controllare questi campi e visualizzare 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 campi espressione e contesto del modulo.
È possibile utilizzare chiamate SOAP JavaScript per convalidare i dati del modulo dalla console. Utilizzare queste chiamate per una convalida complessa, ad esempio, per verificare un valore rispetto a un elenco di valori autorizzati. Ulteriori informazioni.
Crea una funzione di convalida in un file JS.
Esempio:
function nms_recipient_checkValue(value)
{
logInfo("checking value " + value)
if (…)
{
logError("Value " + value + " is not valid")
}
return 1
}
In questo esempio, la funzione viene denominata checkValue
. Questa funzione viene utilizzata per controllare il recipient
tipo di dati nms
spazio dei nomi. Il valore da controllare 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.
Nel modulo, aggiungi la <soapCall>
dell'elemento <leave>
elemento.
In questo esempio, viene utilizzata una chiamata SOAP per convalidare la @valueToCheck
stringa:
<form name="recipient" (…)>
(…)
<leave>
<soapCall name="checkValue" service="nms:recipient">
<param exprIn="@valueToCheck" type="string"/>
</soapCall>
</leave>
</form>
In questo esempio, la checkValue
e nms:recipient
sono utilizzati:
La chiamata viene eseguita in modo sincrono.
Vengono visualizzate tutte le eccezioni. Se utilizzi <leave>
gli utenti non possono salvare il modulo finché non vengono convalidate le informazioni immesse.
Questo esempio mostra come effettuare chiamate di servizio dall’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 è booleano scritto in questo campo: /tmp/@count
. È possibile utilizzare questo valore booleano all’interno del modulo. Ulteriori informazioni contesto del modulo.