Modelele de date definesc informațiile pe care o aplicație App Maker le stochează și le procesează. Configuratorii le construiesc în meniul Data din App Factory Studio, fără să scrie SQL. Regulile, fluxurile de lucru, interfețele și șabloanele de documente le folosesc apoi.

Editorul de tipuri de date: atribute cu tip și cardinalitate
Editorul de tipuri de date: atribute cu tip și cardinalitate.

Meniul Data

Meniul Data grupează patru tipuri de obiecte, fiecare cu o listă și o acțiune de adăugare:

  • Parameters: variabile ale unui modul sau proces;
  • Custom types: structuri complexe de date, cu atribute;
  • Entities: entități de date, cu atribute;
  • Lists of values: liste cheie-valoare pentru selecții.

Custom types

Un custom type descrie o înregistrare, precum un client, o cerere sau o factură. Are un nume, o descriere, un tabel de atribute și o secțiune Dependencies.

Fiecare atribut are un nume, o descriere, un tip de date și o cardinalitate. Tipurile de date suportate sunt integer, text, decimal, date, boolean, big integer, big decimal, custom type, process și anything. Cardinalitatea este One pentru o singură valoare sau Zero or more pentru o listă de elemente.

Un atribut al cărui tip este un alt custom type creează o structură imbricată. În combinație cu cardinalitatea Zero or more, acesta conține o listă de înregistrări imbricate.

Legarea unui custom type de un tabel

Un custom type poate fi sau nu legat de un tabel din baza de date. Pentru legare, tipul are același nume ca tabelul, iar atributele sale corespund coloanelor tabelului. Fiecare atribut stocat în tabel este marcat ca persistent.

Comportamentul atributelor

Fiecare atribut al unui custom type poate avea propriul comportament, care stabilește cum își primește valoarea la rulare.

ComportamentCe face
StaticPreia o valoare predefinită, care rămâne neschimbată pe parcursul execuției.
DynamicPreia o valoare calculată la rulare.
ListOfValuesÎncarcă o listă cheie-valoare.
DefaultValuePreia o valoare predefinită, care se poate modifica pe parcursul execuției.
ValidatorAfișează un mesaj de validare atunci când o condiție este îndeplinită.

Valoarea sau condiția provine dintr-o regulă de business, un parametru, un conector (API) sau o constantă. Astfel, un validator poate verifica un atribut în funcție de propriul conținut, de alte atribute sau de date dintr-un sistem extern.

Parametri

Un parametru este o variabilă folosită de module și procese. Pentru un proces de comandă, valoarea comenzii este un parametru. Parametrii pot avea un tip de date simplu sau unul complex: custom type sau anything.

  • Parametrii se definesc o singură dată în domeniu și se asociază fiecărui modul care îi folosește.
  • Un custom type devine disponibil într-un modul printr-un parametru de acel tip.
  • Când opțiunea Persistent este bifată, valoarea parametrului se salvează în instanța modulului.
  • Comportamentele parametrilor sunt Static, Dynamic, Volatile, ViewScoped, ListOfValues și DefaultValue. Static, Dynamic, ListOfValues și DefaultValue funcționează ca mai sus.

Liste de valori

O listă de valori furnizează opțiunile pentru un parametru, un atribut sau un câmp de tip listă derulantă. Tipul ei de date poate fi integer, decimal, text, boolean, date, big decimal sau big integer.

Fiecare element este o pereche cheie-valoare. Etichetele afișate utilizatorilor sunt resurse definite separat pe fiecare limbă. Fiecare element poate avea și o condiție de afișare. Astfel, o listă poate afișa toate elementele într-un context și doar o parte dintre ele în altul.

Entități

O entitate are un nume, o descriere, un indicator „is system”, un indicator „has identity” și o listă de atribute. Entitățile se definesc în App Factory Studio și nu au o legătură directă cu surse de date externe. Datele din alte sisteme ajung în model prin plugin-uri, descrise mai jos.

Lucrul cu datele

În regulile de business

Regulile citesc și scriu date prin operatori dedicați:

  • ReadEntity citește o înregistrare sau o listă de înregistrări, cu o expresie de filtrare opțională;
  • SaveEntity salvează o înregistrare sau o listă de înregistrări, opțional doar câmpurile selectate;
  • DeleteEntity șterge o înregistrare sau înregistrările care îndeplinesc un filtru;
  • Create și CreateList construiesc valori de tip custom type din tablouri;
  • ToJson convertește o valoare de tip custom type în JSON.

În formulare și procese

Elementele modelului de date se leagă vizual de câmpurile din interfață. Datele introduse în formulare se salvează în structura modelului, iar datele din model pot precompleta un proces.

Date externe

Plugin-urile conectează modelul de date la alte sisteme. De exemplu, o instanță de plugin SQL poate interoga în timp real baza de date a unui ERP extern pentru a citi codul unui furnizor. Câmpurile își pot prelua valorile și din API-urile unor sisteme terțe:

  • la cerere: la deschiderea unei pagini, platforma apelează API-ul extern, afișează datele și își actualizează propria stocare;
  • polling: o sarcină programată verifică API-ul extern la un interval stabilit și actualizează câmpurile locale.

Import și export

Plugin-urile citesc date din fișiere Excel în custom types. Scriu și liste de valori de tip custom type în fișiere Excel, cu formatare opțională a coloanelor. Datele pot fi importate și din fișiere CSV și exportate manual sau programat.

Validare, acces și audit

  • Reguli de validare la nivel de câmp, precum o adresă de e-mail validă sau o valoare obligatorie.
  • Permisiuni pe date pentru vizualizare, editare și ștergere, pe rol, echipă sau context de proces.
  • Audit al modificărilor pe entitățile de date selectate, cu informații despre cine a creat sau a modificat o înregistrare și când.