L’Adobe consiglia di utilizzare l’acquisizione dati moderna ed estensibile Componenti core per creazione di un nuovo Forms adattivo o aggiunta di Forms adattivo alle pagine AEM Sites. Questi componenti rappresentano un progresso significativo nella creazione di Forms adattivi, garantendo esperienze utente straordinarie. Questo articolo descrive un approccio precedente all’authoring di Forms adattivi utilizzando i componenti di base.
I moduli di Adobe Experience Manager (AEM) possono aiutarti a trasformare transazioni complesse in esperienze digitali semplici e deliziose. Tuttavia, richiede uno sforzo concertato per implementare, generare, eseguire e mantenere un ecosistema AEM Forms efficiente e produttivo.
Questo documento fornisce linee guida e consigli di cui possono beneficiare amministratori, autori e sviluppatori di Forms quando lavorano con AEM Forms, in particolare con il componente Moduli adattivi. Descrive le best practice, dall’impostazione di un progetto di sviluppo di moduli alla configurazione, alla personalizzazione, all’authoring e all’ottimizzazione di AEM Forms. Queste best practice contribuiscono collettivamente alle prestazioni complessive dell’ecosistema AEM Forms.
Inoltre, di seguito sono riportate alcune indicazioni consigliate sulle best practice generali per l’AEM:
Una struttura di progetto semplificata e standardizzata può ridurre notevolmente gli sforzi di sviluppo e manutenzione. Apache Maven è uno strumento open source consigliato per la creazione di progetti AEM.
Utilizzare Apache Maven aem-project-archetype
creare e gestire la struttura del progetto AEM. Crea la struttura e i modelli consigliati per il progetto AEM. Inoltre, fornisce sistemi di automazione della build e di controllo delle modifiche per facilitare la gestione del progetto.
archetype:generate
per generare la struttura iniziale.eclipse:eclipse
per generare i file di progetto dell'eclisse e importare il progetto in eclissi.Per ulteriori informazioni, consulta Come creare progetti AEM con Apache Maven.
Lo strumento FileVault o VLT consente di mappare il contenuto di un'istanza CRX o AEM al file system. Fornisce operazioni di gestione del controllo delle modifiche, come il check-in e il check-out del contenuto del progetto AEM. Consulta Come utilizzare lo strumento VLT.
Se utilizzi un ambiente di sviluppo integrato con Eclipse, puoi utilizzare gli strumenti per sviluppatori AEM per integrare perfettamente Eclipse IDE con le istanze AEM per creare applicazioni AEM. Per ulteriori informazioni, consulta Strumenti per sviluppatori AEM per Eclipse.
Non memorizzare alcun contenuto e non apportare modifiche nella cartella /libs. Crea sovrapposizioni nelle cartelle /app per estendere o sovrascrivere le funzionalità predefinite.
Quando crei pacchetti per spostare il contenuto, assicurati che i percorsi dei filtri dei pacchetti siano corretti e che siano menzionati solo i percorsi richiesti.
Non memorizzare alcun contenuto e non apportare modifiche nella cartella /libs. Crea sovrapposizioni nelle cartelle /app per estendere o sovrascrivere le funzionalità predefinite.
Definire le dipendenze corrette per i pacchetti in modo da forzare un ordine/sequenza di installazione predeterminato.
Non creare nodi referenziabili in /libs o /apps.
Dopo aver configurato il progetto AEM, definisci la strategia per l’authoring e la personalizzazione dei modelli e dei componenti dei moduli adattivi.
Un modello di modulo adattivo è una pagina AEM specializzata che definisce la struttura e le informazioni intestazione-piè di pagina di un modulo adattivo. Un modello presenta layout, stili e struttura di base preconfigurati per un modulo adattivo. AEM Forms fornisce modelli e componenti pronti all’uso che puoi utilizzare per la creazione di moduli adattivi. Tuttavia, puoi creare modelli e componenti personalizzati in base alle tue esigenze. Si consiglia di raccogliere i requisiti per i modelli e i componenti aggiuntivi necessari nei moduli adattivi. Per ulteriori informazioni, consulta Personalizzazione di moduli e componenti adattivi.
AEM Forms consente di creare moduli adattivi basati sui seguenti modelli di moduli. I modelli di modulo fungono da interfaccia per lo scambio di dati tra un modulo e un sistema AEM e forniscono una struttura basata su XML per il flusso di dati all’interno e all’esterno di un modulo adattivo. Inoltre, i modelli di modulo impongono regole e vincoli ai moduli adattivi sotto forma di vincoli di schema e XFA.
È importante scegliere con attenzione il modello dati che non solo soddisfa le tue esigenze, ma estende gli investimenti esistenti in risorse XFA e XSD, se presenti. Si consiglia di utilizzare il modello XSD per creare modelli di modulo, in quanto l'XML generato contiene dati in base all'XPATH definito dallo schema. L’utilizzo del modello XSD come scelta predefinita per il modello dati del modulo è utile anche perché disaccoppia la progettazione del modulo dal sistema back-end che elabora e utilizza i dati e migliora le prestazioni del modulo grazie alla mappatura uno a uno dei campi del modulo. Inoltre, BindRef del campo può essere reso l’XPATH del relativo valore dati in XML.
Per ulteriori informazioni, consulta Creare un modulo adattivo.
AEM Forms fornisce modelli di moduli adattivi pronti all’uso che è possibile utilizzare per creare moduli adattivi. Puoi anche creare modelli personalizzati. L’AEM fornisce modelli statici e modificabili.
Per assegnare uno stile a un campo o a un’istanza di pannello specifica, utilizza stile in linea. In alternativa, puoi definire una classe in un file CSS e specificare il nome della classe nella proprietà Classe CSS del componente.
Includi una libreria client in un componente per applicare in modo coerente gli stili tra i moduli adattivi o i frammenti che utilizzano tale componente. Per ulteriori informazioni, consulta Creare un componente pagina modulo adattivo.
Applica gli stili definiti in una libreria client per selezionare i moduli adattivi specificando il percorso della libreria client nel campo Percorso file CSS nelle proprietà del contenitore di moduli adattivi.
Per creare una libreria client degli stili, puoi configurare il file CSS personalizzato nella libreria client di base dell’Editor temi o nelle proprietà Contenitore modulo.
I moduli adattivi forniscono layout di pannello, ad esempio reattivi, a schede, fisarmoniche e procedura guidata, per controllare il layout dei componenti del modulo in un pannello. È possibile creare layout di pannello personalizzati e renderli disponibili per l'utilizzo da parte degli autori di moduli. Per ulteriori informazioni, consulta Creazione di componenti di layout personalizzati per i moduli adattivi.
Puoi anche personalizzare specifici componenti del modulo adattivo, come campi e layout del pannello.
Consulta Trattamento di informazioni personali per raccomandazioni sulla gestione dei dati PII.
Puoi creare un modulo adattivo utilizzando i modelli di modulo abilitati in Browser configurazioni. Per attivare i modelli di modulo, vedere Creazione di un modello di modulo adattivo.
I modelli di modulo possono essere caricati anche da pacchetti di moduli adattivi creati in un altro computer di authoring. I modelli di modulo sono resi disponibili mediante l'installazione di pacchetti aemforms-references-*. Alcune delle best practice consigliate sono:
Per ulteriori informazioni, consulta le best practice in Introduzione all’authoring di moduli adattivi.
Utilizza il browser Oggetti nella barra laterale per accedere rapidamente ai campi in fondo alla gerarchia del modulo. È possibile utilizzare la casella di ricerca per cercare oggetti nel modulo o nella struttura ad albero degli oggetti per spostarsi da un oggetto all'altro.
Per visualizzare e modificare le proprietà di un componente nel browser Componenti nella barra laterale, seleziona il componente e fai clic su . Puoi anche fare doppio clic su un componente per visualizzarne le proprietà nel browser delle proprietà.
Utilizzare le scelte rapide da tastiera per eseguire azioni rapide sui moduli. Consulta Scelte rapide da tastiera per AEM Forms.
L’utilizzo dei componenti di moduli adattivi è consigliato solo nelle pagine di moduli adattivi. I componenti dipendono dalla gerarchia principale. Pertanto, non utilizzarli in una pagina AEM.
Inoltre, consulta Descrizioni dei componenti e best practice in Introduzione all’authoring di moduli adattivi.
AEM Forms fornisce una editor di regole che consente di creare regole per aggiungere un comportamento dinamico ai componenti di moduli adattivi. Utilizzando queste regole, puoi valutare le condizioni e attivare azioni sui componenti, ad esempio mostrare o nascondere i campi, calcolare i valori, modificare dinamicamente l’elenco a discesa e così via.
L’editor di regole fornisce un editor visivo e un editor di codice per la scrittura di regole. Quando scrivi le regole utilizzando la modalità editor di codice, tieni presente quanto segue:
Utilizza nomi significativi e univoci per i campi modulo e i componenti per evitare possibili conflitti durante la scrittura delle regole.
Utilizzare this
affinché un componente faccia riferimento a se stesso in un'espressione di regola. In questo modo la regola rimane valida anche se il nome del componente cambia. Esempio: field1.valueCommit script: this.value > 10
.
Utilizza i nomi dei componenti quando fai riferimento ad altri componenti del modulo. Utilizza il value
per recuperare il valore di un campo o di un componente. Esempio: field1.value
.
Per evitare conflitti, fai riferimento ai componenti per gerarchia univoca relativa. Esempio: parentName.fieldName
.
Quando gestisci regole complesse o di uso comune, considera la scrittura di regole business come funzioni in una libreria client separata che puoi specificare e riutilizzare nei moduli adattivi. La libreria client deve essere una libreria indipendente e non deve avere dipendenze esterne, ad eccezione di jQuery e Underscore.js. Puoi anche utilizzare la libreria client per applicare riconvalida lato server dei dati modulo inviati.
I moduli adattivi forniscono un set di API che è possibile utilizzare per comunicare con ed eseguire azioni sui moduli adattivi. Alcune delle API chiave sono le seguenti. Per ulteriori informazioni, consulta Riferimento API della libreria JavaScript per Adaptive Forms.
guideBridge.reset()
: reimposta un modulo.
guideBridge.submit()
: invia un modulo.
guideBridge.setFocus(somExp, focusOption, runCompletionExp)
: imposta lo stato attivo su un campo.
guideBridge.validate(errorList, somExpression, focus)
: convalida un modulo.
guideBridge.getDataXML(options)
: ottiene i dati del modulo come XML.
guideBridge.resolveNode(somExpression)
: ottiene un oggetto modulo.
guideBridge.setProperty(somList, propertyName, valueList)
: imposta la proprietà di un oggetto modulo.
Inoltre, puoi utilizzare le seguenti proprietà del campo:
field.value
per modificare il valore di un campo.field.enabled
per attivare/disattivare un campo.field.visible
per modificare la visibilità di un campo.Gli autori di moduli adattivi potrebbero dover scrivere codice JavaScript per creare una logica di business in un modulo. Anche se JavaScript è potente ed efficace, è probabile che possa compromettere le aspettative di sicurezza. Pertanto, devi assicurarti che l’autore del modulo sia un utente fidato e che esistano processi per rivedere e approvare il codice JavaScript prima che un modulo venga messo in produzione. L’amministratore può limitare l’accesso all’editor di regole ai gruppi di utenti in base al loro ruolo o funzione. Consulta Concedere l’accesso all’editor di regole a specifici gruppi di utenti.
È possibile utilizzare le espressioni nelle regole per rendere dinamici i moduli adattivi. Tutte le espressioni sono espressioni JavaScript valide e utilizzano API di modelli di script per moduli adattivi. Queste espressioni restituiscono valori di determinati tipi. Per ulteriori informazioni sulle espressioni e sulle relative best practice, consulta Espressioni modulo adattivo.
L’Adobe consiglia di utilizzare operazioni sincrone JavaScript anziché asincrone durante la creazione di regole con l’editor di regole. L'uso di operazioni asincrone è fortemente sconsigliato. Tuttavia, se ti trovi in una situazione in cui le operazioni asincrone sono inevitabili, è essenziale implementare le funzioni di chiusura JavaScript. In questo modo, puoi proteggere efficacemente da potenziali condizioni di concorrenza, garantendo prestazioni ottimali alle tue implementazioni di regole e mantenendo la stabilità nell’intero processo.
Ad esempio, supponiamo che sia necessario recuperare dati da un’API esterna e quindi applicare alcune regole in base a tali dati. Utilizziamo una chiusura per gestire la chiamata API asincrona e ci assicuriamo che le regole vengano applicate dopo il recupero dei dati. Di seguito è riportato un codice di esempio:
function fetchDataFromAPI(apiEndpoint, callback) {
// Simulate asynchronous API call with setTimeout
setTimeout(() => {
// Assuming the API call is successful, we receive some data
const data = {
someValue: 42,
};
// Invoke the callback with the fetched data
callback(data);
}, 2000); // Simulate a 2-second delay for the API call
}
// Rule implementation using Closure
function ruleImplementation(apiEndpoint) {
// Using a closure to handle the asynchronous API call and rule application
// say you have set this value in street field inside address panel
var streetField = address.street;
fetchDataFromAPI(apiEndpoint, (data) => {
streetField.value = data.someValue;
});
}
// Example usage of the rule implementation
const apiEndpoint = "https://example-api.com/data";
ruleImplementation(apiEndpoint);
In questo esempio, fetchDataFromAPI
simula una chiamata API asincrona utilizzando setTimeout
. Una volta recuperati i dati, richiama la funzione di callback fornita, che è la chiusura per gestire la successiva applicazione della regola. Il ruleImplementation
contiene la logica della regola.
Adattivo per i temi consente di creare stili riutilizzabili che possono essere applicati tra i moduli per ottenere un aspetto e uno stile coerenti. Si consiglia di utilizzare i temi per definire lo stile dei componenti e dei pannelli dei moduli. Di seguito sono riportate alcune best practice relative ai temi:
Per ulteriori informazioni, consulta Temi.
Gli autori e gli utenti finali di moduli in genere riscontrano problemi di prestazioni quando caricano moduli di grandi dimensioni in modalità di authoring o in fase di esecuzione. Con l’aumento del numero di oggetti (campi e pannelli) nei moduli, l’esperienza di authoring e runtime inizia a peggiorare. Inoltre, impedisce a più autori di collaborare e creare un modulo contemporaneamente.
Per risolvere i problemi di prestazioni con i moduli di grandi dimensioni, considera le seguenti best practice:
Si consiglia di creare moduli adattivi utilizzando il modello dati del modulo XSD anche quando si converte un XFA in modulo adattivo, se possibile.
Includi solo i campi e i pannelli nei moduli adattivi che acquisiscono informazioni dall’utente. Valuta se mantenere minimo il contenuto statico o utilizza URL per aprirli in una finestra separata.
Anche se ogni modulo è progettato per uno scopo specifico, nella maggior parte dei moduli sono presenti alcuni segmenti comuni. Ad esempio, dati personali, indirizzo, dettagli sull’impiego e così via. Crea frammenti di moduli adattivi per gli elementi e le sezioni dei moduli comuni e utilizzarli in tutti i moduli. È inoltre possibile salvare un pannello in un modulo esistente come frammento. Qualsiasi modifica in un frammento si riflette in tutti i moduli adattivi associati. Promuove l’authoring collaborativo in quanto più autori possono lavorare contemporaneamente su diversi frammenti che compongono un modulo.
Utilizza Salva e riprendi con salvataggio automatico per salvare periodicamente il modulo adattivo e consentire agli utenti di visitarlo nuovamente in un secondo momento per completare il modulo.
Configura i frammenti per caricarli in modo differito. In fase di runtime, il rendering del frammento contrassegnato per il caricamento in modo differito viene eseguito solo quando necessario. Riduce in modo significativo il tempo di caricamento per i moduli di grandi dimensioni. È supportato anche nei frammenti con pannelli ripetibili. Per ulteriori informazioni, consulta Configurare il caricamento lento.
Imposta il valore del Numero di chiamate per richiesta nel Servlet principale Apache Sling a un numero abbastanza elevato. Consente al server Forms di consentire chiamate aggiuntive. Nella configurazione viene visualizzato il valore predefinito 1500. Il valore, 1500 chiamate, è per altri componenti di Experience Manager come Sites e Assets. Il set di valori predefinito per i moduli adattivi è 20000. Se si incontra il too many calls
errore nei registri o se il rendering del modulo non riesce, prova ad aumentare il valore a un numero elevato per risolvere il problema. Se il numero di chiamate supera i 20000, significa che il modulo è complesso e potrebbe richiedere un po’ di tempo per il rendering nel browser. Questo accade solo la prima volta che il modulo viene caricato, dopo che il modulo è stato memorizzato nella cache e una volta memorizzato nella cache, non vi è alcun impatto significativo sulle prestazioni.
Puoi precompilare i campi dei moduli adattivi con dati recuperati dal backend per consentire agli utenti di compilare rapidamente il modulo ed evitare errori di digitazione.
AEM Forms fornisce un servizio di precompilazione per leggere i dati da un file XML di dati predefinito e precompilare i campi di un modulo adattivo con il contenuto del file XML precompilato.
L’XML dei dati di precompilazione deve essere conforme allo schema del modello di modulo associato al modulo adattivo.
Includi afBoundedData
e afUnBoundedData
sezioni nel file XML precompilato per precompilare sia i campi associati che quelli non associati in un modulo adattivo.
Per i moduli adattivi basati sul modello di dati del modulo, AEM Forms fornisce il servizio predefinito Modello dati modulo. Il servizio di precompilazione interroga le origini dati per gli oggetti modello dati nel modulo adattivo e i valori dei campi di precompilazione durante il rendering del modulo.
Puoi anche utilizzare i protocolli file, crx, service o http per precompilare i moduli adattivi.
AEM Forms supporta servizi di precompilazione personalizzati che è possibile collegare come servizio OSGi per precompilare i moduli adattivi.
Per ulteriori informazioni, consulta Precompilare i campi del modulo adattivo.
I moduli adattivi richiedono azioni di invio per elaborare i dati specificati dall’utente. Un’azione Invia determina il task eseguito sui dati inviati tramite un modulo adattivo.
Puoi sfruttare l’esperienza multi-firma di Adobe Sign nei moduli adattivi. Quando configuri Adobe Sign nei moduli adattivi, tieni presente quanto segue. Per ulteriori informazioni, consulta Utilizzo di Adobe Sign in un modulo adattivo.
Un documento di record (DoR) è una versione appiattita di un modulo adattivo che può essere stampata, firmata o archiviata da un PDF.
A seconda del modello di dati del modulo su cui si basa un modulo adattivo, è possibile configurare un modello per DoR come segue:
Configura intestazione, piè di pagina, immagini, colore, font e così via direttamente dalla scheda Documento di record dell’editor di moduli adattivi.
Utilizzare DoRService
per generare il DoR a livello di programmazione.
Escludere i campi nascosti dal DoR.
Utilizzare afAcceptLang
richiedi il parametro per visualizzare il DoR in un'altra lingua.
Plug-in AEM Chrome è un’estensione del browser per Google Chrome che fornisce strumenti per il debug dei moduli adattivi. Gli autori e gli sviluppatori di moduli possono utilizzare questi strumenti per:
Per ulteriori informazioni, consulta Plug-in di AEM Chrome - Modulo adattivo.
Le convalide lato server sono necessarie per evitare tentativi di aggirare le convalide sul client e possibili compromissioni dell’invio dei dati e violazioni delle regole aziendali. Le convalide lato server vengono eseguite sul server caricando la libreria client richiesta.
AEM fornisce flussi di lavoro di traduzione che è possibile utilizzare per localizzare i moduli adattivi. Per informazioni, consulta Utilizzo del flusso di lavoro di traduzione dell’AEM per localizzare i moduli adattivi.
Di seguito sono riportate alcune best practice per la localizzazione dei moduli adattivi:
Utilizza frammenti di modulo adattivi per elementi comuni a più moduli e localizza frammenti. In questo modo è possibile localizzare un frammento una volta e rifletterlo in tutte le forme in cui viene utilizzato il frammento localizzato.
Eventuali modifiche, come l’aggiunta di un nuovo componente o l’applicazione di uno script in un modulo localizzato, non vengono localizzate automaticamente. Pertanto, è necessario finalizzare un modulo prima di localizzarlo per evitare più cicli di localizzazione.
Utilizzare afAcceptLang
parametro di richiesta per ignorare le impostazioni locali del browser ed eseguire il rendering del modulo nelle impostazioni locali specificate. Ad esempio, il seguente URL forzerà il rendering del modulo nelle impostazioni locali giapponesi, indipendentemente dalle impostazioni locali specificate nell’impostazione del browser:
https://'[server]:[port]'/<contextPath>/<formFolder>/<formName>.html?wcmmode=disabled&afAcceptLang=ja
AEM Forms attualmente supporta la localizzazione dei contenuti dei moduli adattivi nelle lingue inglese (en), spagnolo (es), francese (fr), italiano (it), tedesco (de), giapponese (ja), portoghese-brasiliano (pt-BR), cinese (zh-CN), cinese-Taiwan (zh-TW) e coreano (ko-KR). Tuttavia, è possibile aggiungere il supporto per nuove lingue per i moduli adattivi in fase di esecuzione. Per ulteriori informazioni, consulta Supporto di nuove lingue per la localizzazione di moduli adattivi.
Puoi configurare un’ulteriore istanza del server AEM Forms che si trova dietro il firewall in un’area protetta. Puoi utilizzare questa istanza per:
Spesso è necessario spostare i progetti AEM da un ambiente all’altro. Di seguito sono riportati alcuni aspetti fondamentali da tenere presenti durante lo spostamento:
Di seguito sono riportate alcune best practice per configurare l’AEM in modo da migliorare le prestazioni complessive:
Abilita la compressione della libreria client HTML per JavaScript e CSS dalla console Felix.
Memorizza nella cache tutte le librerie client in /etc.clientlibs/fd
e qualsiasi libreria client aggiuntiva personalizzata in AEM dispatcher per aumentare la reattività e la sicurezza dei moduli pubblicati. Per ulteriori informazioni, consulta Dispatcher.
Non memorizzare in cache /content/forms/af/
e /content/dam/formsanddocuments/*
percorsi. per informazioni dettagliate sulla configurazione della memorizzazione in cache dei moduli adattivi, consulta Memorizzazione in cache dei moduli adattivi.
Abilita HTML tramite il modulo di compressione del server web. Per ulteriori informazioni, consulta Ottimizzazione delle prestazioni del server AEM Forms.
Aumentare le chiamate per configurazione di richiesta per i moduli di grandi dimensioni. Consulta Ottimizzazione delle prestazioni di moduli complessi e di grandi dimensioni.
Crea pagine di errore personalizzate visualizzate dal gestore degli errori.
Server AEM Forms protetto.
nosamplecontent
modalità di esecuzione per garantire che non siano presenti contenuti di esempio e utenti di esempio distribuiti sul server di produzione. Consulta Esecuzione di AEM in modalità pronta per la produzione.Mantenere le dimensioni heap su un minimo di 8 GB. Per altre impostazioni, consulta Ottimizzazione delle prestazioni del server AEM Forms.
Utilizzare le sessioni utente di servizio anziché le sessioni di amministrazione per eseguire attività a livello di servizio. Per ulteriori informazioni, consulta Autenticazione del servizio.
In un ambiente di produzione, si consiglia di non archiviare i dati del modulo inviati nell’archivio AEM. L'implementazione predefinita delle azioni di invio Forms Portal Store, Store Content e Store PDF consente di memorizzare i dati del modulo nell'archivio AEM. Queste azioni di invio sono intese solo a scopo dimostrativo. Inoltre, le funzioni Salva e Riprendi e Salvataggio automatico utilizzano l'archiviazione del portale per impostazione predefinita. Pertanto, considera le seguenti raccomandazioni:
Memorizzazione dei dati delle bozze: se utilizzi la funzione Bozza dei moduli adattivi, devi implementare un’interfaccia personalizzata Service Provide Interface (SPI) per memorizzare i dati in formato bozza in un’archiviazione più sicura, ad esempio nel database. Per ulteriori informazioni, consulta Esempio per integrare il componente Bozze e invii con il database.
Memorizzazione dei dati di invio: se utilizzi l’archivio di invio del portale dei moduli, devi implementare un SPI personalizzato per memorizzare i dati di invio in un database. Consulta Esempio per integrare il componente Bozze e invii con il database per un esempio di integrazione.
È inoltre possibile scrivere un'azione di invio personalizzata che memorizzi i dati del modulo e l'allegato in un archivio protetto. Consulta Scrittura dell’azione di invio personalizzata per i moduli adattivi per ulteriori informazioni.
Lunghezza ID bozza: quando salvi un modulo adattivo come bozza, viene generato un ID bozza per identificare la bozza in modo univoco. Il valore minimo per la lunghezza del campo ID bozza è di 26 caratteri. L'Adobe consiglia di impostare la lunghezza dell'ID bozza su 26 o più caratteri.
Una delle sfide principali per le organizzazioni è la gestione dei dati personali (PII, personally identifiable). Di seguito sono riportate alcune best practice per la gestione di tali dati: