Bij een groot aantal entiteiten (relaties, medewerkers, acties …) kun je zelf ook velden toevoegen in de vorm van vrije velden. In dit artikel leggen we uit hoe je dit kunt toepassen.
- Vrije velden aanmaken
- Vrije velden toevoegen aan een formulier
- Vrije velden opnemen in weergaven en instellingen
- Vrije velden achter een eigen actie opnemen
- Waarden meerdere keren als ‘kenmerk’ vastleggen (alléén voor ‘Leden’)
- Vrije velden opnemen in REST API
Vrije velden aanmaken
Voordat je velden aan een entiteit kunt gaan toevoegen, leg je deze eerst vast in het systeem. Dit doe je via het Gebruikersmenu -> Basis -> Vrije Velden in de functie Velden (MVVVLD). Je kunt hierbij gebruik maken van de volgende veldtypen:
- Alfanumeriek: Een veld waarin je alfanumerieke tekens (letters en/of cijfers) kunt vastleggen.
- Numeriek: Een veld waarin je numerieke tekens (cijfers) kunt vastleggen.
- Decimaal: Een veld waarin je numerieke tekens kunt toevoegen met cijfers achter de komma (decimalen).
- Checkbox: Een veld dat aangevinkt kan worden.
- Combobox: Een veld met een keuze van mogelijke items (de item definieer je via de shortcut Items combobox).
- Datum: Een veld waarin je een datum kunt registreren.
- Editor: Een veld waarin je vrije tekst kunt invoeren (alfanumerieke tekens).
- URL: Een veld waarin je een webadres/URL kunt opslaan. De URL die uiteindelijk straks in het veld wordt vastgelegd, werkt dan ook als hyperlink en is dan gelijk klikbaar vanuit het overzicht waarin deze is opgenomen.
Het is mogelijk om per tabel maximaal 300 gewone kenmerkvelden te gebruiken. En daarnaast maximaal 10 editor-kenmerkvelden. De reden van deze limiet heeft te maken met het maximum van ongeveer 32.000 tekens dat een record mag bevatten.
De vrije velden worden met als ‘kenmerk’ of ‘kenmerk-editor’ in de database opgeslagen met een volgnummer.
Goed om te weten: Vrije velden worden altijd als alfanumeriek opgeslagen in de database. Dit geldt voor alle vrije velden, ook als deze zijn opgebouwd als datum-veld. Als je gaat filteren op een vrij veld dat als datumveld is uitgevoerd, dan gebruik je in deze situatie dus wel quotes in je query.
Uitleg aan de hand van een voorbeeld
In het volgende voorbeeld gaan we vrije velden toevoegen aan de functie Medewerkers (MPERSO). Dit is de tabel ‘ab02’. Klik in de functie Velden (MVVVLD) op de plus-knop en selecteer het type veld dat je wilt aanmaken. Of gebruik een van de acties rechts in het scherm om een nieuw veld aan te maken.
Daarna vul je de volgende gegevens in:
- Tabel: Kies allereerst de tabel van de entiteit waarin je het vrije veld wilt gebruiken. Voor relaties is dit bijvoorbeeld ‘ma01’; voor medewerkers is dit de tabel ‘ab02’.
- Extensie: Niet van toepassing; wordt automatisch door het systeem gevuld.
- Label: De naam van het veld in het formulier.
- Formaat: Dit veld bepaalt het aantal karakters dat de invuller straks in het veld kan invoeren (verplicht bij alfanumeriek, numeriek en decimaal).
- Conditie: Een eventuele conditie waaronder dit veld wel/niet wordt getoond. Tip! Zet de helptekst in het scherm aan voor een lijst van mogelijkheden.
- Verplicht: Met deze combobox kun je aangeven of een veld straks verplicht moet worden ingevuld. Let op! Heb je eerder een conditie ingevuld op basis waarvan het veld getoond gaat worden, kies hier dan altijd voor ‘Ja – alleen als veld wordt getoond’!
- Validatie-expressie: Hiermee kun je ‘afdwingen’ dat de waarde die in het veld wordt ingegeven, aan bepaalde condities moet voldoen. (Alleen van toepassing als het veld verplicht ingevuld moet worden.)
- Validatie-melding: Hier kun je de tekst van de foutmelding opgeven die aan de invuller wordt getoond op het moment dat de door hem/haar ingegeven waarde niet voldoet aan de opgegeven condities in het veld validatie-expressie.
Wil je bij het vrije veld een i-knop opnemen waarbij de gegevens uit de bijbehorende tabel worden geselecteerd? Dan vul je de velden in het onderdeel Infoprogramma. Dit werkt hetzelfde als bij het toevoegen van een eigen filter aan een browser. De bijbehorende gegevens zoek je op door naar de functie te gaan en daar de veldnamen in het scherm aan te zetten (met de actie Veldnamen tonen in het onderdeel Applicatiebeheer).
- Infoprogramma: Vul hier de naam van het programma in vanaf ‘object/….’ (Let op! Gebruik hier altijd een forward slash.)
- Bestandsnaam van info: Hier vul je de naam van de bijbehorende tabel in.
- Veldnaam met code van info: Hier vul je de naam van het veld.
Tip: activeer de helpteksten in het scherm voor een toelichting per veld.
- Helptekst: Je kunt aan het veld ook een eigen helptekst meegeven. Deze wordt dan in het scherm getoond als de gebruiker in de browser op de Help actie klikt.
- Helptekst altijd tonen: Hiermee kun je aangeven of de helptekst default in het scherm moet worden getoond.
De vrije velden worden met als ‘kenmerk’ of ‘kenmerk-editor’ in de database opgeslagen met een volgnummer. In bovenstaand voorbeeld voor een vrij veld op de functie Medewerkers (MPERSO) is dit ab02.kenmerk[8].
Definitie van een combobox
Heb je een veld van het type ‘combobox’ ingevoerd? Gebruik dan na het opslaan de shortcut Items combobox (rechts in het scherm) om de verschillende items vast te leggen die je in de combobox wilt opnemen.
De items worden in de database opgeslagen naar waarde van de itemcode.
Tip: wil je op de ingevulde waarden van de combobox en verdere berekening loslaten? Gebruik dan cijfers als itemcode.
Voorbeeld:
In onderstaand voorbeeld hebben we een extra veld als combox voor de medewerkerstabel (ab02) toegevoegd waarin we het merk ‘lease auto’ gaan registreren.
In een combobox wordt altijd automatisch een lege optie toegevoegd, met een verbindingsstreepje als default-waarde. In principe is dit ook de initiële waarde van het vrije veld, tenzij bij de definitie van het vrije veld een andere initiële waarde is ingesteld.
Het is ook mogelijk om bij de definitie van de combobox een eigen defaultwaarde mee te geven (i.p.v. het streepje):
- Voeg een combobox-item toe waarbij je de itemcode leeg laat.
- Geef in het veld omschrijving de eigen tekst op, bijvoorbeeld ‘Selecteer je keuze’
- Geef deze waarde volgnummer ‘1’.
Na het opslaan ziet de volgorde van je combobox-items er dan zo uit:
En als je straks de combobox in een formulier opneemt, ziet deze er dan als volgt uit:
Vrije velden toevoegen aan een formulier
Als je de vrije velden hebt aangemaakt, dan kun je ze in de gewenste functie gaan toevoegen. In het eerdere voorbeeld hebben we een vrij veld toegevoegd aan de medewerkerstabel (ab02). We gaan nu dus naar de functie Medewerkers (MPERSO) om daar het vrije veld op de gewenste plaats toe te voegen.
Klik hier allereerst op de plus-knop om een leeg invulscherm te openen. Klik daarna rechts in het scherm in het onderdeel Applicatiebeheer op de actie Vrije velden.
Je komt dan in het scherm Kenmerken op Viewer. In eerste instantie zal dit scherm nog leeg zijn. Via de plus-knop boven in het scherm (of via de ‘nieuw’ actie rechts in het scherm) kun je de vrije velden nu aan het formulier gaan toevoegen.
- Veld: Geef aan of je welk type vrij veld je wilt gaan toevoegen, een ‘kenmerk’ of een ‘kenmerk-editor’.
- Extensie: Selecteer via de i-knop het veld uit de Vrije velden-tabel waarin je deze hebt aangemaakt.
- Tonen na veld: Geef aan na welk veld in het formulier dit vrije veld getoond moet worden.
- Initiële waarde: Eventueel kun je ook nog een initiële waarde aan het veld meegeven.
Na het opslaan ga je terug naar het formulier voor het toevoegen van de nieuwe medewerker dat je hebt open gezet. Je vrije veld is nu toegevoegd aan dit formulier, volgend op het veld dat je hebt opgegeven:
Vrije velden opnemen in weergaven en instellingen
Je kunt de vrije velden vervolgens ook in de weergave opnemen of gebruiken in het (freeform) filter.
Goed om te weten: Voor selectie op de combobox waarden gebruik je de waarde van de itemcode in plaats van de omschrijving.
In dit voorbeeld wordt Peugeot in browser weergegeven, maar de selectie vindt plaats via de opgeslagen waarde in ab02.kenmerk[2] = “P” (is de waarde van de itemcode bij de combobox definitie).
Goed om te weten: Vrije velden worden altijd alfanumeriek opgeslagen in de database. Dit geldt dus ook voor vrije velden die je als datum-veld definieert!
- Neem je een vrij datumveld vervolgens op in een formule waarbij het veld leeg moet zijn? Dan gebruik je dus niet xx00.kenmerk[x] = ? maar xx00.kenmerk[x] = “”.
- En als je met het datumveld wilt rekenen, dan maak je er date(xx00.kenmerk[0]) van.
Verder wordt het toekennen van lees-/bewerk-rechten bij vrije velden anders bepaald dan bij de ‘reguliere’ velden. Bij vrije velden is het niet mogelijk om deze zichtbaar te maken zonder te kunnen muteren. Met andere woorden, de optie ‘alleen tonen’ is niet beschikbaar voor vrije velden.
Vrije velden achter een eigen actie opnemen
Het is ook mogelijk het invullen van extra velden achter een eigen actie in de browser te plaatsen. En hier kun je dan ook meerdere velden tegelijk opnemen, eventueel gegroepeerd per onderdeel. Je creëert op deze manier als het ware je eigen invulformulier.
De gewenste actie maak je allereerst aan via de functie Knoppen (MVVBUT). Deze functie vind je ook in het menu Basis > Vrije Velden.
Hier maken we bijvoorbeeld een eigen actie-button voor de registratie van ‘Woon-werk verkeer’. Eventueel kun je hierop ook weer een validatie-expressie zetten op basis waarvan de actie wel/niet in het scherm wordt getoond. (Zet de helptekst in je scherm aan voor een uitleg van opties.)
Ga na het opslaan via de shortcut Groepen naar het volgende scherm. Hier kun je via de plus-knop de gewenste groepskopjes van de verschillende onderdelen in het scherm toevoegen. Hierbij kun je eventueel ook gelijk een eigen helptekst opgeven.
En na het opslaan kun je via de shortcut Velden dan opgeven welke vrije velden (kenmerk of kenmerk-editor) je in welk onderdeel in het eigen formulier wilt opnemen.
Hieronder is het inrichten van de registratie van ‘woon-werk verkeer’ achter een eigen actie in de functie Medewerkers (MPERSO) nog even uitgewerkt.
In de functie Medewerkers (MPERSO) ziet dit er als volgt uit:
Waarden meerdere keren als ‘kenmerk’ vastleggen (alléén voor ‘Leden’)
Als je een vrij veld aanmaakt, zie je onderin ook het onderdeel Vrije kenmerk staan. Dit is een speciale toepassing die alleen gebruikt kan worden in de functie Lidmaatschappen (MLEDEN).
Bij het aanmaken van het vrije veld kun je in dit onderdeel allereerst aangeven of je het vrije veld als ‘kenmerk’ wilt gebruiken.
Daarnaast geef je aan binnen welke bedrijven/afdelingen je dit vrije veld als ‘kenmerk’ wilt gebruiken. Hierbij kun je optioneel ook een periode (vanaf – t/m datum) laten vastleggen waarin de waarde van toepassing is. En kun je eventueel een extra veld als notitieveld toevoegen.
Wanneer je voor de lidmaatschappen (op de tabel = ‘le01’) minimaal één vrij veld op deze manier als kenmerk markeert, verschijnt in de browser met Lidmaatschappen (MLEDEN) automatisch de shortcut Kenmerken. Via deze shortcut kun je het vrije veld vervolgens meerdere keren gebruiken om een waarde op te slaan.
Na het opslaan van de waarden ziet dit er dan als volgt uit:
Vrije velden opnemen in REST API
Via de REST API kun je ook de gegevens ontsluiten van vrije velden, die in een browser zijn gedefinieerd. Bij de Vrije Velden (MVVVLD) is hiervoor het veld REST API label aanwezig (in het onderdeel Identificatie). Dit veld wordt getoond zodra er een REST API in je omgeving is geactiveerd.
Via dit veld kun je zelf bepalen onder welke naam de gegevens van het vrije veld via de koppeling worden aangeboden. In dit veld kun je een logische naam meegeven (zonder spaties); doorgaans worden in API’s Engelse benamingen gebruikt. De externe partij kan het vrije veld dan onder de aangepaste naam aanroepen. En het vrije veld wordt met de opgegeven alternatieve naam ook in de gegenereerde online documentatie vermeld.