KEPLIN Docs

Validointi

Datan kaksi puolustuslinjaa — mitä malli takaa ja mitkä säännöt näyttöjen lomakkeet tarkistavat ennen tallennusta.

Virheellinen data tulee sisään huolimattomuudesta, ei pahantahtoisuudesta: Y-tunnus jossa on kahdeksan numeroa, sähköposti ilman ät-merkkiä, 300 %:n alennus, tallennettu tietue ilman sitä kenttää, jota loppuprosessi tarvitsee. Validointi on näiden ovien sulkemista — ja Keplinissä ne suljetaan kahdessa kerroksessa, joita ei kannata sekoittaa keskenään.

Kerros Missä se määritellään Milloin se toimii Mitä se nappaa
Malli Taulueditorissa (katso Taulut ja kentät) Jokaisessa kirjoituksessa, tuli se mistä tahansa Sen, mitä datalle ei koskaan saa tapahtua.
Kenttien säännöt Kunkin lomakekentän inspektorissa, kategoriassa Validointi Kun käyttäjä tallentaa lomakkeen Sen, mitä ihminen on kirjoittamassa, oikean viestin kanssa kentän vieressä.

Käytännön sääntö: se mikä on totta datasta, elää mallissa; se mikä on apua käyttäjälle, elää lomakkeella. Pakollinen kenttä on molempia — kytke mallissa Sallii NULL-arvon pois ja kytke näytön kentässä Pakollinen päälle.

Mitä malli takaa

Näitä ei kutsuta ”validointisäännöiksi”, mutta ne ovat ainoa puolustus, jota ei kierretä: ne pätevät näytöille, API:ille, skripteille ja sille, joka kirjoittaa suoraan tietokantaan.

Osanen Mitä se estää
Sallii NULL-arvon pois päältä Tietueen, jolla ei ole arvoa siinä sarakkeessa.
Sarakkeen Tyyppi Tekstin päivämääräkentässä, kirjaimet numerossa.
Pituus / Tarkkuus · Desimaalit Saraketta pidemmän tekstin tai rahan liian monella desimaalilla.
Pääavain (PK) Kaksoiskappaleet ja tietueet, joita ei pysty yksilöimään.
unique-indeksi Kaksi asiakasta samalla Y-tunnuksella, kaksi käyttäjää samalla sähköpostilla.
enum-tyyppinen sarake Tilan, jota ei ole listalla.
Fyysinen suhde + Kun vanhempi poistetaan Orvot lapset tai poistot, jotka vievät mukanaan sen mitä ei pitäisi.

Sarake estado rakenne-editorissa: tyyppi, Selkonimi (sovellukset) ja kytkin Sallii NULL-arvon ovat datan ensimmäinen puolustus.
Sarake estado rakenne-editorissa: tyyppi, Selkonimi (sovellukset) ja kytkin Sallii NULL-arvon ovat datan ensimmäinen puolustus.

Dica

Ennen kuin kirjoitat säännön lomakkeelle, kysy: voiko tämä olla totta jossakin tietueessa, joskus? Jos vastaus on ei, oikea paikka on malli — koska lomake on vain yksi niistä ovista, joista data tulee sisään.

Lomakekenttien säännöt

Kaikilla lomakekentillä — Tekstikenttä, Tekstialue, Numero, Kyllä/Ei, Pudotusvalikko, Päivämäärä, Väri, Tiedosto — on inspektorissa kategoria Validointi. Siellä määritellään, mitä kyseinen kenttä hyväksyy.

Sinne pääsee näin:

  1. Avaa näyttö editorissa.
  2. Valitse kenttä — canvasilta tai inspektorin välilehdeltä Rakenne.
  3. Avaa välilehdellä Ominaisuudet kategoria Validointi.

Tekstikentän Validointi-kategoria: Pakollinen, Maski, merkkirajat, Kaava (regex), Muoto ja Sama kuin kenttä.
Tekstikentän Validointi-kategoria: Pakollinen, Maski, merkkirajat, Kaava (regex), Muoto ja Sama kuin kenttä.

Pakollinen

Kytkin Pakollinen on säännöistä ensimmäinen ja käytetyin: kentän on oltava täytetty. Se on myös ainoa, joka puhuu tyhjästä — kaikki muut päästävät tyhjän kentän läpi, koska tyhjä on Pakollinen-kytkimen asia.

Puhelin-kentän kytkin Pakollinen — ensimmäisenä suoritettava sääntö ja ainoa, joka puhuu tyhjästä.
Puhelin-kentän kytkin Pakollinen — ensimmäisenä suoritettava sääntö ja ainoa, joka puhuu tyhjästä.

Vakiosäännöt

Kenttätyypin mukaan kategoria näyttää ne säännöt, joissa on järkeä:

Sääntö Missä se näkyy Mitä se tarkistaa
Maski Tekstikenttä Muodon kirjoittamisen aikana: # numero, A kirjain, N alfanumeerinen, * mikä tahansa — muu on kiinteää tekstiä. Esim. +358 ## ### ####.
Min. merkkejä Tekstikenttä, Tekstialue Tekstin vähimmäispituus.
Maks. merkkejä Tekstikenttä, Tekstialue Tekstin enimmäispituus.
Kaava (regex) Tekstikenttä, Tekstialue Säännöllinen lauseke, jota arvon on noudatettava. Esim. ^[A-Z]{2}\d{4}$.
Muoto Tekstikenttä Ei mitään, On sähköposti, On puhelinnumero tai On numero. Ne ovat toisensa poissulkevia: arvo ei voi olla yhtä aikaa sähköposti ja puhelinnumero.
Min. arvo Numero Pienin hyväksyttävä arvo.
Maks. arvo Numero Suurin hyväksyttävä arvo.
Sama kuin kenttä Kaikki kentät Arvon on oltava sama kuin näytön toisessa kentässä — salasanan vahvistus, toistettu sähköposti.

Nota

Maski on kirjoitusapu, ei validointi: se ohjaa sitä, mitä ihminen kirjoittaa, mutta muodon takaa Kaava (regex) tai Muoto. Maskilla varustettu puhelinnumero voi jäädä kesken.

Validointi koodilla

Vakiosääntöjen alla on rivi Validointi, jossa lukee Ei validointia — määritä tai Määritetty — muokkaa. Painike avaa koodieditorin niitä sääntöjä varten, joita kentät eivät kata: Y-tunnus tarkistusmerkkeineen, IBAN, päivämäärä jonka on oltava toista myöhempi, liiketoimintasääntö joka on vain sinun yritykselläsi.

Koodi saa muuttujan value — kentän nykyisen arvon — ja palauttaa:

  • true (tai ei mitään), jos arvo on kelvollinen;
  • merkkijonon, joka sisältää näytettävän virheilmoituksen, jos ei ole.
const s = String(value ?? "").replace(/\D/g, "");
if (s.length !== 9) return "Y-tunnuksessa on oltava 9 numeroa";
return true;

Tämän koodin sisällä käytettävissäsi on myös keplin — voit verrata toiseen kenttään, istunnon arvoon tai näytölle jo ladattuun dataan. Se on TypeScriptiä, ja saat ehdotuksia kirjoittaessasi (Ctrl+välilyönti); editori kieltäytyy tallentamasta koodia, joka ei ole suoritettavissa.

Koodivalidoinnin editori: se saa kentän arvon ja palauttaa true tai näytettävän virheilmoituksen.
Koodivalidoinnin editori: se saa kentän arvon ja palauttaa true tai näytettävän virheilmoituksen.

Milloin validointi ajetaan

Lomakkeen validointi ajetaan tallennettaessa — kun tallennuspainike käskee tallentaa tietueen datastoren. Järjestys on aina sama, kenttä kerrallaan:

  1. Pakollinen — onko kenttä täytetty?
  2. Vakiosäännöt — pituus, muoto, minimi, maksimi, kaava, yhtäsuuruus.
  3. Validointi koodilla — sinun oma sääntösi.

Ensimmäinen virhe voittaa: heti kun jokin sääntö pettää, kentän alla näkyy juuri sen säännön viesti, eivätkä seuraavat ehdi ajoon. Jos jokin kenttä pettää, mitään ei tallenneta — tietue jää ennalleen ja ihminen jää lomakkeelle, virheet näkyvissä.

Kentän voi myös validoida käsin tapahtuman koodista — esimerkiksi kentän tarkistamiseksi heti kun se muuttuu sen sijaan että odotettaisiin loppuun. Se on sivun Tapahtumat ja SDK asia.

Viestit

Vakiosääntöjen viestit ovat alustan omia, kirjoitettuina sovelluksen kielellä: Pakollinen kenttä., Virheellinen sähköpostiosoite., Vähintään {min} merkkiä., Suurin arvo: {max}., Arvot eivät täsmää., Virheellinen muoto. Niitä ei muokata yksitellen — jos sinun on sanottava asiat toisin, oikea paikka on validointi koodilla, jossa viesti on palauttamasi merkkijono.

Kieli tulee sovelluksen asetuksista (Sovelluksen asetukset ▸ Käännökset): sama sovellus suomeksi ja englanniksi näyttää virheet käyttäjän kielellä.

Mitä validointi EI ole

Atenção

Lomakkeen validointi on mukavuutta, ei tietoturvaa. Se ajetaan sovelluksen käyttäjän selaimessa ja auttaa välttämään rehellisiä virheitä. Se, joka todella haluaa kirjoittaa virheellisen arvon, ei mene lomakkeen kautta — hän menee API:n kautta. Oikea puolustus on mallissa (tyypit, pakollisuus, avaimet, unique-indeksit, enumit) ja käyttöoikeuksissa, jotka määrittävät kuka saa kirjoittaa mitä.

Miksi ei…?

  • Miksi en näe Validointi-kategoriaa tässä widgetissä? Vain lomakekentät validoivat. Painikkeella, Nimikkeellä tai Taulukolla ei ole arvoa validoitavaksi.
  • Miksi sääntö ei laukea, kun kenttä on tyhjä? Se on tarkoituksellista: vakiosäännöt ohittavat tyhjän, joka on Pakollinen-kytkimen aluetta. Kytke se päälle.
  • Miksi virheellinen tietue tallentui silti? Joko kenttä ei ollut kytketty datastoreen (ilman kytkentää se ei tule mukaan validointiin) tai arvo kirjoitettiin muuta reittiä — API, skripti, tuonti. Katso, mitä malli takaa, tämän sivun yläosassa.
  • Miksi Kaava (regex) ei täsmää? Se on säännöllinen lauseke tavanomaisella syntaksilla, ja jokainen merkki merkitsee: ^[A-Z]{2}\d{4}$ hyväksyy PT1234 ja hylkää pt1234. Testaa lauseke ennen kuin liität sen.
  • Miksi koodivalidointini ei tallentunut? Editori kieltäytyy koodista, joka ei ole suoritettavissa — korjaa merkitty virhe ja tallenna uudelleen.
  • Miksi viesti näkyy englanniksi? Sovelluksen kieli on englanti. Vaihda se kohdassa Sovelluksen asetukset ▸ Käännökset.