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

APPin5Minuti

Come Creare Applicazioni Enterprise Low-Code

Impara a creare Applicazioni Aziendali grazie alle piattaforme di sviluppo 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
  • Product Configurator in Oracle APEX
  • Come sviluppare applicazioni sicure con Oracle APEX
  • Come costruire Form Dinamiche in Oracle APEX (Dynamic Layout + APEX_ITEM)
  • Come gestire i files su Object Storage da Oracle APEX
  • Prevedere l'interesse di un cliente verso un prodotto o servizio con Oracle APEX e Machine Learning

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

Pensi di non essere in grado? Perché non provi adesso a creare la tua prima applicazione in 5 minuti?

Fidati, non dovrai scrivere nemmeno una riga di codice! 

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 bid data classic report cpq css document management system dynamic layout facebook flowform flows4apex flows for apex full stack development google google cloud google drive google workspace interactive grid interactive report javascript json linkedin list machine learning map microsoft microsoft access mobile oml oracle oracle apex oracle cloud oracle rest data service ords pl-sq PL-SQL power apps security social login theme roller ux web service

Commenti recenti

  • Giovanni su 15 Cose che avrei voluto sapere quando ho iniziato ad usare Oracle APEX
  • Daniele Trasarti su Document Management System in Oracle APEX
  • chadwick su Oracle APEX: Workflow Manager con Flows for APEX
  • Giulio su Document Management System in Oracle APEX
  • Daniele Trasarti su Come creare un servizio REST in Oracle APEX
  • fabio su Come creare un servizio REST in Oracle APEX
  • Daniele Trasarti su Applicazione di Prenotazione Appuntamenti in Oracle APEX
  • Francesca su Applicazione di Prenotazione Appuntamenti in Oracle APEX
  • Daniele Trasarti su Google AppSheet: come creare una APP Mobile da un foglio Excel in 5 minuti
  • nicola su Google AppSheet: come creare una APP Mobile da un foglio Excel in 5 minuti

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