[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 het type xtk:form . U kunt de structuur van het invoerformulier weergeven in het xtk:form -schema. Kies Administration > Configuration > Data schemas in het menu om dit schema weer te geven. Lees meer over vormstructuur.

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.

Klik op het tabblad Preview als u een voorbeeld van een formulier wilt bekijken:

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

  • Assistent

    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 het element <container> . Meer informatie.

Velden groeperen

Gebruik containers om invoervelden te groeperen in georganiseerde secties.

Als u een sectie in een formulier wilt invoegen, gebruikt u het volgende element: <container type="frame"> . Als u een sectietitel wilt toevoegen, gebruikt u het attribuut label .

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

In dit voorbeeld, bepaalt een container de sectie van de Aanmaak, die uit Created by en Name inputgebieden bestaat:

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

Dit voorbeeld toont containers voor Algemene en Details pagina's van een vorm:

<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

Als u afbeeldingen wilt zoeken, kiest u 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 bijvoorbeeld het kenmerk img in het element <container> .

Syntaxis: img="namespace:filename.extension"

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

<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 rechtsboven in 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 ziet u een formulier voor het 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 kenmerk 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>
      
    • 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 element <form> en het type opgeven in een container.

  4. Klik op Save.

  5. Voeg de formulierelementen in.

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

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

    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. Klik op 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"

    Lees meer over controles van de geheugenlijst.

  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="uitgeven-expr" Hiermee geeft u een groep velden voorwaardelijk weer
    <container> type="enabledGroup" enabledIf="uitgeven-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 maken

Met het iconbox -formuliertype geeft u pictogrammen weer links van het formulier. Hiermee gaan gebruikers naar verschillende pagina's in het formulier.

Ga als volgt te werk als u het type van een bestaand formulier wilt wijzigen in iconbox :

  1. Wijzig het kenmerk type van het element <form> in iconbox :

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

    1. Voeg een element <container> toe als een onderliggend element van het element <form> .

    2. Als u een label en een afbeelding voor het pictogram wilt definiëren, gebruikt u de kenmerken label en 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>
      

    U kunt ook het kenmerk type="frame" verwijderen uit de bestaande <container> -elementen.

Een laptopformulier maken

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

Ga als volgt te werk als u het type van een bestaand formulier wilt wijzigen in notebook :

  1. Wijzig het kenmerk type van het element <form> in notebook :

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

    1. Voeg een element <container> toe als een onderliggend element van het element <form> .
    2. Gebruik de kenmerken label en img om het label en de afbeelding voor het pictogram te definiëren.
    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 het kenmerk type="frame" verwijderen uit de 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> -element in en stelt u het type -kenmerk in op het formuliertype. Voor het formulier op het hoogste niveau kunt u het formuliertype instellen in een buitencontainer of in het element <form> .

Voorbeeld

In dit voorbeeld wordt een complex formulier getoond:

  • De vorm op hoofdniveau is een iconbox-vorm. Deze vorm bestaat uit twee containers geëtiketteerd Algemeen en Details.

    Dientengevolge, toont de buitenvorm de Algemene 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 subform is een notitieboekjevorm die binnen de Algemene container wordt genest. Het subform bestaat uit twee containers die Naam en Contact worden geëtiketteerd.

<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, toont de Algemene pagina van de buitenvorm de Naam en de lusjes van het Contact.

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

Voorbeeld

In dit voorbeeld wordt een complex formulier getoond:

  • De vorm op hoofdniveau is een iconbox-vorm. Deze vorm bestaat uit twee containers geëtiketteerd Algemeen en Details.

    Dientengevolge, toont de buitenvorm de Algemene 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 subform is een notitieboekjevorm die binnen de Algemene container wordt genest. Het subform bestaat uit twee containers die Naam en Contact worden geëtiketteerd.

<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, toont de Algemene pagina van de buitenvorm de Naam en de lusjes van het Contact.

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

Gebruik het attribuut readOnly="true" om alleen-lezen toegang tot een veld te verlenen. U kunt bijvoorbeeld de primaire sleutel van een record weergeven, maar dan met alleen-lezen toegang. Meer informatie.

In dit voorbeeld wordt de primaire sleutel (iRecipientId) van het nms:recipient -schema weergegeven in alleen-lezen toegang:

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

Verplichte velden controleren

U kunt verplichte gegevens controleren:

  • Gebruik het kenmerk required="true" voor de vereiste velden.
  • Gebruik het knooppunt <leave> om deze velden te controleren en foutberichten weer te geven.

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>

Lees meer over uitdrukkingsgebiedenen vormcontext.

Waarden valideren

U kunt JavaScript-SOAP gebruiken om formuliergegevens te valideren vanuit de Console. 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 heeft de functie de naam checkValue . Deze functie wordt gebruikt om het gegevenstype recipient in de naamruimte nms te controleren. 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 het element <soapCall> toe aan het element <leave> .

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

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

    In dit voorbeeld worden de methode checkValue en de service nms:recipient 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 element <leave> gebruikt, 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 uitgevoerd 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. Lees meer over vormcontext.

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