[Ook van toepassing op v8]{class="badge positive" title="Ook van toepassing op campagne v8"}

Formulieren bewerken editing-forms

Overzicht

Marktdeelnemers en operatoren gebruiken invoerformulieren om records te maken, te wijzigen en voor te vertonen. Forms geeft een visuele weergave van informatie weer.

U kunt invoerformulieren maken en wijzigen:

  • U kunt de fabrieksinvoerformulieren wijzigen die standaard worden geleverd. De fabrieksinvoerformulieren zijn gebaseerd op de fabrieksgegevensschema's.
  • U kunt aangepaste invoerformulieren maken op basis van gegevensschema's die u definieert.

Forms zijn entiteiten van xtk:form type. U kunt de invoerformulierstructuur bekijken in het dialoogvenster xtk:form schema. Kies Administration > Configuration > Data schemas in het menu. Meer informatie over formulierstructuur.

Als u invoerformulieren wilt openen, kiest u Administration> Configuration >Input forms in het menu:

Als u formulieren wilt ontwerpen, bewerkt u de XML-inhoud in de XML-editor:

Meer informatie.

Als u een voorbeeld van een formulier wilt bekijken, klikt u op de knop Preview tab:

Formuliertypen

U kunt verschillende typen invoerformulieren maken. Het formuliertype bepaalt hoe gebruikers door het formulier navigeren:

  • Consolescherm

    Dit is het standaardformuliertype. Het formulier bestaat uit één pagina.

  • Contentmanagement

    Gebruik dit formuliertype voor inhoudsbeheer. Zie dit use case.

  • Wizard

    Dit formulier bestaat uit meerdere zwevende schermen die in een bepaalde reeks zijn geordend. Gebruikers navigeren van het ene scherm naar het andere. Meer informatie.

  • Iconbox

    Dit formulier bestaat uit meerdere pagina's. Gebruikers kunnen door het formulier navigeren door pictogrammen links van het formulier te selecteren.

  • Laptop

    Dit formulier bestaat uit meerdere pagina's. Als gebruikers in het formulier willen navigeren, selecteren ze boven aan het formulier tabbladen.

  • Verticaal deelvenster

    In dit formulier wordt een boomstructuur weergegeven.

  • Horizontaal venster

    Dit formulier bevat een lijst met items.

Containers

In formulieren kunt u containers voor verschillende doeleinden gebruiken:

  • Inhoud indelen in formulieren
  • Toegang tot invoervelden definiëren
  • Formulieren nesten in andere formulieren

Meer informatie.

Inhoud ordenen

Gebruik containers om inhoud in formulieren te ordenen:

  • U kunt velden groeperen in secties.
  • U kunt pagina's toevoegen aan formulieren met meerdere pagina's.

Als u een container wilt invoegen, gebruikt u de <container> element. Meer informatie.

Velden groeperen

Gebruik containers om invoervelden te groeperen in georganiseerde secties.

Gebruik dit element om een sectie in een formulier in te voegen: <container type="frame">. Als u een sectietitel wilt toevoegen, kunt u desgewenst de opdracht label kenmerk.

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

In dit voorbeeld definieert een container de Maken , die de Created by en Name invoervelden:

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

Pagina's toevoegen aan formulieren met meerdere pagina's

Voor formulieren met meerdere pagina's gebruikt u een container om een formulierpagina te maken.

In dit voorbeeld worden containers voor de Algemeen en Details pagina's van een formulier:

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

Toegang tot velden definiëren

Gebruik containers om te definiëren wat zichtbaar is en om de toegang tot velden te definiëren. U kunt groepen velden in- of uitschakelen.

Formulieren nesten

Gebruik containers om formulieren in andere formulieren te nesten. Meer informatie.

Verwijzingen naar afbeeldingen

Kies Administration > Configuration > Images in het menu.

Als u een afbeelding wilt koppelen aan een element in het formulier, bijvoorbeeld een pictogram, kunt u een verwijzing naar een afbeelding toevoegen. Gebruik de img in het dialoogvenster <container> element.

Syntaxis: img="namespace:filename.extension"

In dit voorbeeld worden verwijzingen naar de book.png en detail.png afbeeldingen van de ncm naamruimte:

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

Deze afbeeldingen worden gebruikt voor pictogrammen waarop gebruikers klikken om door een formulier met meerdere pagina's te navigeren:

Een eenvoudig formulier maken create-simple-form

Voer de volgende stappen uit om een formulier te maken:

  1. Kies in het menu Administration > Configuration > Input forms.

  2. Klik op de knop New boven aan de lijst.

  3. Geef de formuliereigenschappen op:

    • Geef de naam van het formulier en de naamruimte op.

      De formuliernaam en de naamruimte kunnen overeenkomen met het gerelateerde gegevensschema. In dit voorbeeld wordt een formulier getoond voor de cus:order gegevensschema:

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

      U kunt het gegevensschema ook expliciet opgeven in het dialoogvenster entity-schema kenmerk.

      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>
      
    • Geef het label op dat op het formulier moet worden weergegeven.

    • Geef desgewenst het formuliertype op. Als u geen formuliertype opgeeft, wordt standaard het schermtype voor de console gebruikt.

      Als u een formulier met meerdere pagina's ontwerpt, kunt u het formuliertype weglaten in het dialoogvenster <form> en geeft u het type op in een container.

  4. Klik op Save.

  5. Voeg de formulierelementen in.

    Als u bijvoorbeeld een invoerveld wilt invoegen, gebruikt u de opdracht <input> element. Stel de xpath kenmerk aan de veldverwijzing als een XPath-expressie. Meer informatie.

    In dit voorbeeld worden invoervelden weergegeven op basis van de nms:recipient schema.

    code language-xml
    <input xpath="@firstName"/>
    <input xpath="@lastName"/>
    
  6. Als het formulier is gebaseerd op een specifiek schematype, kunt u de velden voor dit schema opzoeken:

    1. Klikken Insert > Document fields.

    2. Selecteer het veld en klik op OK.

  7. Geef desgewenst de veldeditor op.

    Een standaardeditor voor velden wordt aan elk gegevenstype gekoppeld:

    • Voor een datumveld wordt in het formulier een invoerkalender weergegeven.
    • Voor een veld van het type opsomming wordt in het formulier een selectielijst weergegeven.

    U kunt de volgende veldeditortypen gebruiken:

    table 0-row-2 1-row-2 2-row-2 3-row-2
    Veldeditor Formulierkenmerk
    Keuzerondje type="radiobutton"
    Selectievakje type="checkbox"
    Boomstructuur bewerken type="tree"

    Meer informatie over besturingselementen voor geheugenlijsten.

  8. U kunt ook toegang tot de velden definiëren:

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Element Kenmerk Beschrijving
    <input> read-only="true" Biedt alleen-lezen toegang tot een veld
    <container> type="visibleGroup" visibleIf="bewerken-expr" Hiermee geeft u een groep velden voorwaardelijk weer
    <container> type="enabledGroup" enabledIf="bewerken-expr" Hiermee wordt een groep velden voorwaardelijk ingeschakeld

    Voorbeeld:

    code language-xml
    <container type="enabledGroup" enabledIf="@gender=1">
      […]
    </container>
    <container type="enabledGroup" enabledIf="@gender=2">
      […]
    </container>
    
  9. U kunt containers ook gebruiken om velden te groeperen in secties.

    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>
    

Een formulier met meerdere pagina's maken create-multipage-form

U kunt formulieren met meerdere pagina's maken. U kunt formulieren ook nesten binnen andere formulieren.

Een iconbox formulier

Gebruik de iconbox formuliertype om pictogrammen links van het formulier weer te geven. Hiermee gaan gebruikers naar verschillende pagina's in het formulier.

Het type van een bestaand formulier wijzigen in iconboxVoer de volgende stappen uit:

  1. Wijzig de type kenmerk van de <form> element naar iconbox:

    code language-xml
    <form […] type="iconbox">
    
  2. Stel een container in voor elke formulierpagina:

    1. Voeg een <container> element as a child of the <form> element.

    2. Als u een label en een afbeelding voor het pictogram wilt definiëren, gebruikt u de opdracht label en img kenmerken.

      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>
      

    U kunt ook de knop type="frame" kenmerk van het bestaande <container> elementen.

Een laptopformulier maken

Gebruik de notebook formuliertype om tabbladen boven aan het formulier weer te geven. Hiermee gaan gebruikers naar verschillende pagina's.

Het type van een bestaand formulier wijzigen in notebookVoer de volgende stappen uit:

  1. Wijzig de type kenmerk van de <form> element naar notebook:

    code language-xml
    <form […] type="notebook">
    
  2. Voeg een container toe voor elke formulierpagina:

    1. Voeg een <container> element as a child of the <form> element.
    2. Als u het label en de afbeelding voor het pictogram wilt definiëren, gebruikt u de opdracht label en img kenmerken.
    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>
    

    U kunt ook de knop type="frame" kenmerk van het bestaande <container> elementen.

Formulieren nesten

U kunt formulieren nesten binnen andere formulieren. U kunt bijvoorbeeld laptopformulieren nesten in iconbox-formulieren.

Het niveau van het nesten controleert navigatie. Gebruikers kunnen naar subformulieren gaan.

Als u een formulier in een ander formulier wilt nesten, voegt u een <container> en stel de type aan het formuliertype. Voor het formulier op het hoogste niveau kunt u het formuliertype instellen in een buitencontainer of in het dialoogvenster <form> element.

Voorbeeld

In dit voorbeeld wordt een complex formulier getoond:

  • De vorm op hoofdniveau is een iconbox-vorm. Dit formulier bestaat uit twee containers met het label Algemeen en Details.

    Het resultaat is dat op het buitenste formulier de Algemeen en Details pagina's op het hoogste niveau. Gebruikers kunnen deze pagina's openen door op de pictogrammen links van het formulier te klikken.

  • Het subformulier is een laptopformulier dat is genest in het Algemeen container. Het subformulier bestaat uit twee containers met een label Naam en Contact.

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

Dientengevolge, Algemeen op de buitenste pagina van het formulier wordt de Naam en Contact tabs.

Als u een formulier in een ander formulier wilt nesten, voegt u een <container> en stel de type aan het formuliertype. Voor het formulier op het hoogste niveau kunt u het formuliertype instellen in een buitencontainer of in het dialoogvenster <form> element.

Voorbeeld

In dit voorbeeld wordt een complex formulier getoond:

  • De vorm op hoofdniveau is een iconbox-vorm. Dit formulier bestaat uit twee containers met het label Algemeen en Details.

    Het resultaat is dat op het buitenste formulier de Algemeen en Details pagina's op het hoogste niveau. Gebruikers kunnen deze pagina's openen door op de pictogrammen links van het formulier te klikken.

  • Het subformulier is een laptopformulier dat is genest in het Algemeen container. Het subformulier bestaat uit twee containers met een label Naam en Contact.

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

Dientengevolge, Algemeen op de buitenste pagina van het formulier wordt de Naam en Contact tabs.

Een fabrieksinvoerformulier wijzigen modify-factory-form

Voer de volgende stappen uit om een fabrieksformulier te wijzigen:

  1. Het fabrieksinvoerformulier wijzigen:

    1. Kies in het menu Administration > Configuration > Input forms.
    2. Selecteer een invoerformulier en wijzig dit.

    U kunt schema's met fabrieksgegevens uitbreiden, maar u kunt geen formulieren met fabrieksinvoer uitbreiden. We raden u aan fabrieksinvoerformulieren rechtstreeks te wijzigen zonder ze opnieuw te maken. Tijdens software-upgrades worden uw wijzigingen in de fabrieksinvoerformulieren samengevoegd met de upgrades. Als het automatisch samenvoegen mislukt, kunt u de conflicten oplossen. Meer informatie.

    Als u bijvoorbeeld een fabrieksschema met een extra veld uitbreidt, kunt u dit veld toevoegen aan het gerelateerde fabrieksformulier.

Formulieren valideren validate-forms

U kunt validatiecontroles opnemen in formulieren.

Alleen-lezen toegang verlenen tot velden

Als u alleen-lezen toegang wilt verlenen tot een veld, gebruikt u de opdracht readOnly="true" kenmerk. U kunt bijvoorbeeld de primaire sleutel van een record weergeven, maar dan met alleen-lezen toegang. Meer informatie.

In dit voorbeeld wordt de primaire toets (iRecipientId) van de nms:recipient schema wordt getoond in read-only toegang:

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

Verplichte velden controleren

U kunt verplichte gegevens controleren:

  • Gebruik de required="true" voor de vereiste velden.
  • Gebruik de <leave> knoop om deze gebieden te controleren en foutenmeldingen te tonen.

In dit voorbeeld is het e-mailadres vereist en wordt een foutbericht weergegeven als de gebruiker deze informatie niet heeft opgegeven:

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

Meer informatie over expressievelden en formuliercontext.

Waarden valideren

U kunt SOAP-aanroepen van JavaScript gebruiken om formuliergegevens vanuit de console te valideren. Gebruik deze aanroepen voor complexe validatie, bijvoorbeeld om een waarde te controleren op basis van een lijst met toegestane waarden. Meer informatie.

  1. Maak een validatiefunctie in een JS-bestand.

    Voorbeeld:

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

    In dit voorbeeld wordt de functie benoemd checkValue. Deze functie wordt gebruikt om de recipient gegevenstype in het dialoogvenster nms naamruimte. De waarde die wordt gecontroleerd wordt geregistreerd. Als de waarde niet geldig is, wordt een foutbericht geregistreerd. Als de waarde geldig is, wordt de waarde 1 geretourneerd.

    U kunt de geretourneerde waarde gebruiken om het formulier te wijzigen.

  2. Voeg in het formulier de <soapCall> aan de <leave> element.

    In dit voorbeeld wordt een SOAP-aanroep gebruikt om de @valueToCheck tekenreeks:

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

    In dit voorbeeld wordt checkValue en de nms:recipient de dienst wordt gebruikt:

    • De dienst is namespace en het gegevenstype.
    • De methode is de functienaam. De naam is hoofdlettergevoelig.

    De vraag wordt uitgevoerd synchroon.

    Alle uitzonderingen worden weergegeven. Als u het <leave> , kunnen gebruikers het formulier pas opslaan nadat de ingevoerde gegevens zijn gevalideerd.

In dit voorbeeld wordt getoond hoe u serviceaanroepen kunt uitvoeren vanuit formulieren:

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

In dit voorbeeld is de invoer een id, die een primaire sleutel is. Wanneer gebruikers het formulier voor deze id invullen, wordt een SOAP-aanroep met deze id gemaakt als invoerparameter. De uitvoer is een Booleaanse waarde die naar dit veld wordt geschreven: /tmp/@count. U kunt deze Booleaanse waarde in het formulier gebruiken. Meer informatie over formuliercontext.

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