• Passa al contenuto principale
  • Passa alla barra laterale primaria
  • INIZIA QUI
  • HOME
  • CHI SONO

APPin5Minuti

Creare APP Gestionali con Oracle APEX e Low-Code

Crea Applicazioni Gestionali con Oracle APEX e gli strumenti Low-Code.

Oracle APEX: come usare le Validation Rules per creare una Form di Registrazione

Febbraio 9, 2021

Abbiamo già visto quanto sia facile creare una form in Oracle APEX. Se non sai di cosa sto parlando dai un occhio a questo tutorial dove spiego come creare una semplice applicazione che permette di vedere ed aggiornare i record di una tabella del database.

In questo articolo, invece, ti spiegherò meglio come creare una form che applica delle validazioni ai campi.

Questa problematica è abbastanza comune. Pensa, ad esempio, ad una classica form di registrazione ad un sito web.

Generalmente queste form applicano alcune validazioni sui dati inseriti, che possono essere le più svariate. Ad esempio:

  • verificano che l’email non sia già stata precedentemente registrata
  • verificano che il campo email abbia un formato valido
  • verificano che alcuni campi, come il nome, il cognome o l’email, vengano inseriti
  • verificano che siano state accettate delle condizioni di utilizzo del servizio
  • ecc.

In questo tutorial vedremo come creare una form di registrazione ed implementeremo alcune delle validazioni più comuni

Se vuoi vedere il risultato dai un occhio a questa applicazione di demo che ho creato appositamente per questo tutorial e fammi sapere se ti piace nei commenti!

IN QUESTO ARTICOLO

  • Come creare di una Form di Registrazione in Oracle APEX
    • Crea una nuova applicazione
    • Aggiungere una form
  • Campi Obbligatori
  • E-mail Not Unique
  • Valid Email
  • Password Complexity
  • Come salvare il record nel database
  • Conclusioni

Come creare di una Form di Registrazione in Oracle APEX

Prima di tutto, installa nel tuo database i seguenti oggetti

CREATE SEQUENCE   "S_SIGN_UP_FORM_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1
/
CREATE TABLE  "S_SIGN_UP_FORM" 
   (	"FIRST_NAME" VARCHAR2(250), 
	"LAST_NAME" VARCHAR2(250), 
	"EMAIL" VARCHAR2(250), 
	"PASSWORD" VARCHAR2(4000), 
	"COMPANY" VARCHAR2(500), 
	"VAT_NUMBER" VARCHAR2(250), 
	"COUNTRY" VARCHAR2(500), 
	"ID" NUMBER, 
	 CONSTRAINT "S_SIGN_UP_FORM_PK" PRIMARY KEY ("ID")
  USING INDEX  ENABLE
   )
/
CREATE OR REPLACE EDITIONABLE TRIGGER  "BI_S_SIGN_UP_FORM" 
  before insert on "S_SIGN_UP_FORM"               
  for each row  
begin   
  if :NEW."ID" is null then 
    select "S_SIGN_UP_FORM_SEQ".nextval into :NEW."ID" from sys.dual; 
  end if; 
end; 
/
ALTER TRIGGER  "BI_S_SIGN_UP_FORM" ENABLE
/

Crea una nuova applicazione

Se hai già creato una applicazione APEX, puoi tranquillamente saltare al paragrafo successivo.

Per creare una nuova applicazione, esegui i seguenti passaggi.

  • Collegati ad Oracle APEX e seleziona App Builder
  • Clicca sul bottone Create
  • Seleziona New Application
  • Dai un nome alla tua applicazione
  • Premi Create Application

Aggiungere una form

Creiamo una nuova pagina nella nostra applicazione di registrazione.

  • Dall’App Builder clicca sulla tua applicazione
  • Clicca su CREATE PAGE
  • Seleziona il tipo pagina Blank Page e clicca Next
  • Dai un nome alla form e clicca Next
  • Per il momento seleziona l’opzione di non associare una voce di menù a questa form e clicca Next
  • Clicca Finish
  • Aggiungi i seguenti campi alla form. Tieni a mente che X è il numero della pagina su cui stai lavorando che nell’esempio che sto facendo è 8 (es: P8_FIRST_NAME)
ItemItem TypeValue Required
PX_FIRST_NAMEText FieldYes
PX_LAST_NAMEText FieldYes
PX_COMPANYText Field
PX_VAT_NUMBERText Field
PX_COUNTRYText Field
PX_EMAILText FieldYes
PX_PASSWORDPasswordYes
PX_PASSWORD_RULESDisplay Text
  • Crea il bottone SIGN_UP
  • Configura il bottone SIGN_UP in questo modo:
    • Button Name: SIGN_UP
    • Label: SIGN UP
    • Hot: Yes
    • Action: Submit Page

Se non facessimo altro sulla nostra form, lasciandola così come l’abbiamo creata, sicuramente creerà qualche problema agli utenti finali perchè:

  • Nel campo email può essere scritta qualsiasi cosa
  • Il sistema non avvisa l’utente se l’email con la quale si sta registrando è stata già usata in passato
  • Non viene applicato nessun criterio di robustezza sulla password scelta dall’utente

Ovviamente laddove è necessario è utile implementare tutte le opportune regole di validazione necessarie per aiutare gli utenti a compilare i dati nel modo più corretto possibile.

Quindi, cosa fare per migliorare la nostra applicazione in Oracle APEX?

In questo contesto l’obiettivo che ci diamo è quello di creare delle regola di validazione user-friendly, reattive e contestuali: l’utente deve capire velocemente quale campo della nostra form non sta soddisfacendo i requisiti richiesti.

Per fortuna Oracle APEX consente di implementare validazioni di questo.

Vediamo come.

Campi Obbligatori

Tutti i campi della form che sono richiesti vanno impostati come obbligatori tramite la specifica opzione Value Required.

  • Seleziona il campo che vuoi rendere obbligatorio
  • Nelle proprietà del Page Item abilita l’opzione Value Required
  • Ripeti questa operazione per i seguenti campi:
    • PX_FIRST_NAME
    • PX_LAST_NAME
    • PX_EMAIL
    • PX_PASSWORD

E-mail Not Unique

Con questo tipo di validazione verificheremo che l’e-mail inserita dall’utente non sia stata già precedentemente registrata.

  • Seleziona il campo PX_EMAIL
  • Clicca con il pulsante destro del mouse e seleziona l’opzione Create Validation
  • Clicca sulla Validation Rule appena creata ed imposta le seguenti proprietà.
  • Name: Email Not Unique
  • Type: No Rows returned
  • SQL Query: la query che viene eseguita dal sistema. Se restituisce almeno una riga allora la validazione non viene superata e viene mostrato a video il messaggio di errore
    • Query: select 1 from S_SIGN_UP_FORM where trim(upper(EMAIL))=trim(upper(:P8_EMAIL))
    • S_SIGN_UP_FORM è la tabella del database dove vengono salvati i record inseriti tramite questa form di registrazione
select 1 from S_SIGN_UP_FORM where trim(upper(EMAIL))=trim(upper(:P8_EMAIL))
  • Error Message: il messaggio che deve essere visualizzato
    • Messaggio: Sembra che questo indirizzo e-mail sia già stato registrato!
  • Display Location: Inline with Field
  • Associated Item: PX_EMAIL
  • When Button Pressed: SIGN_UP

Valid Email

Con questo tipo di validazione verificheremo nel campo PX_EMAIL venga inserita una stringa che rappresenti una e-mail.

Per implementare questo tipo di validazione faremo uso della procedura PL/SQL REGEXP_LIKE

  • Seleziona il campo PX_EMAIL
  • Clicca con il pulsante destro e seleziona l’opzione Create Validation.
  • Clicca sulla Validation Rule configura le seguenti proprietà
  • Name: Email Valid
  • Type: Expression
  • Language: PL/SQL
  • PL/SQL Expression: inserire una espressione PLSQL che restituisce TRUE nel caso in cui la validazione sia superata, FALSE nel caso in cui la validazione non è superata. Per testare il formato della mail useremo la seguente espressione PL/SQL
REGEXP_LIKE (:P8_EMAIL,'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$');
  • Error Message: il messaggio che deve essere visualizzato
    • Messaggio: L’e-mail inserita non è valida!
  • Display Location: Inline with Field
  • Associated Item: PX_EMAIL
  • When Button Pressed: SIGN_UP

Password Complexity

Con questo tipo di validazione verificheremo la password inserita nel campo PX_PASSWORD soddisfi i criteri di complessità previsti dalla nostra applicazione APEX.

Per comodità utilizzeremo la libreria APEX_UTIL che mette a nostra disposizione la funzione STRONG_PASSWORD_VALIDATION la quale applica i criteri di complessità che l’amministratore del WORKSPACE APEX ha definito.

Tuttavia, è possibile implementare criteri di complessità custom più avanzati basati su logiche personalizzate.

  • Seleziona il campo PX_PASSWORD
  • Aggiungi una nuova Validation Rule
  • Clicca sulla Validation Rule e configura le seguenti proprietà
  • Name: Password Complexity
  • Type: Function Body (returning Error Text)
  • Language: PL/SQL
  • PL/SQL Function Body Returning Error Text: inserisci il seguente script:
return regexp_replace(apex_util.strong_password_validation(
                    p_username       => :p8_email,
                    p_password       => :p8_password,
                    p_old_password   => null,
                    p_workspace_name => 'APPIN5MINUTI'
                    ), '<.+?>', ' ');
  • Display Location: Inline with Field
  • Associated Item: PX_EMAIL
  • When Button Pressed: SIGN_UP
  • Grazie a questa regola di validazione il sistema verificherà l’applicazione delle regole di complessità della password.

Come salvare il record nel database

Se tutte le Validation Rules vengono superato, il sistema può salvare il record nel database.

Per implementare questa operazione utilizzeremo un’azione dinamica (Dynamic Action).

  • Clicca sul bottone SIGN_UP
  • Clicca con il pulsante destro e seleziona Create Dynamic Action
  • Clicca sull’azione dinamica ed imposta le seguenti proprietà
    • Name: CLICK_SIGNUP
  • Aggiungi una True Action
  • Clicca sull’oggetto Action che hai creato ed imposta le seguenti proprietà
    • Action: Execute Server-Side Code
    • Language: PL/SQL
    • PL/SQL Code: questo script esegue 2 operazioni:
      • effettua un’operazione di INSERT nel database
      • pulisce i campi della form (non necessario)
begin
   insert into s_sign_up_form (first_name, last_name, email,password, company, vat_number, country) values (:p8_first_name, :p8_last_name, :p8_email, :p8_password, :p8_company, :p8_vat_number, :p8_country);
   :p8_first_name   := null;
   :p8_last_name    := null;
   :p8_company      := null;
   :p8_vat_number   := null;
   :p8_country      := null;
   :p8_email        := null;
   :p8_password     := null;
end;

Conclusioni

Bene, se hai seguito il mio tutorial hai creato la tua personale form di registrazione.

Anche io ho preparato una form di registrazione che puoi vedere collegandoti a questo link dove troverai, tra l’altro, tanti altri esempi di applicazioni sviluppate in Oracle APEX.

Fammi sapere cosa ne pensi e se c’è qualche argomento che ti interessa approfondire fammelo sapere ni commenti!

Un abbraccio

Daniele

TI POTREBBE INTERESSARE:

  • Come migrare le applicazioni da Oracle Forms ad Oracle APEX
  • CPQ in Oracle APEX
  • Come costruire Form Dinamiche in Oracle APEX (Dynamic Layout + APEX_ITEM)
  • Come sviluppare applicazioni sicure con Oracle APEX
  • Come gestire i files su Object Storage da Oracle APEX
  • Costruiamo un CRM con Oracle APEX

oracle apex

Interazioni del lettore

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Barra laterale primaria

BENVENUTO!

Il mio nome è Daniele Trasarti, autore di APPin5Minuti, il blog italiano che parla di piattaforme di Oracle APEX e applicazioni low-code.

Qui troverai tantissimi tutorial e risorse per imparare a sviluppare in pochissimo tempo bellissime applicazioni per gestire i dati ed i processi della tua azienda.

Se vuoi saperne di più inizia da qui.

Seguimi sui social!

  • LinkedIn
  • Twitter

NEWSLETTER

Iscriviti anche tu per far parte della più grande community italiana di persone che amano sviluppare low-code!

api rest appsheet appsheet data sources appsheet views appsheet workflow automation autonomous database build apps cpq crm css cyber security database dynamic layout facebook flowform flows4apex google google cloud interactive grid interactive report javascript list microsoft microsoft access mobile oracle oracle apex oracle cloud oracle rest data service ords pl-sq PL-SQL power apps product configurator sales configurator security social login software gestionale sql theme roller ux woocommerce wordpress workflows

COMMENTI RECENTI

  1. Daniele Trasarti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Sabatino, grazie per l'apprezzamento. Riguardo alla tua domanda ti consiglio di usare Oracle Cloud. Puoi creare un account gratis…

  2. Sabatino Iannazzo su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Daniele, complimenti per la guida, mi hai aperto un mondo! volevo chiederti se con Apex e Oracle Database Express…

  3. Laura su Autenticazione a 2 Fattori basata su TOTP (Time-based One-time Password) con Oracle APEX

    Ciao, trovo molto interessante il tuo articolo. Hai qualche suggerimento per l'autenticazione con spid? pensi di fare qualche guida al…

  4. Mario Volpetti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ottima spiegazione e complimenti per la semplicità che ai usato. Sono riuscito a farlo anche io con un foglio excel…

  5. Riccardo Liviabella su Google AppSheet: come creare una APP Mobile da un foglio Excel in 5 minuti

    Ciao Daniele e grazie per le tue interessanti spiegazioni. E' da un pò di anni che lavoro su Appsheet e…

  6. Daniele Trasarti su Come costruire Workflows Approvativi in Oracle APEX

    Ciao Bhavin, I think you badly copied PL-SQL because the one you provided is not correct. Fix the script and…

  7. Daniele Trasarti su Applicazione di Prenotazione Appuntamenti in Oracle APEX

    Grazie mille Franca!

Copyright © 2023 · APPin5Minuti.it · Privacy Policy · Cookie Policy