Il write back consente agli utenti di aggiornare i dati dalle analisi.
Argomenti:
Il write back consente agli utenti di aggiornare i dati direttamente dai dashboard e dalle analisi.
Per gli utenti che dispongono del privilegio Esegui il write back nel database, i campi di write back appaiono come campi modificabili nelle analisi. I valori immessi dagli utenti vengono salvati nel database. Per gli utenti che non dispongono del privilegio Esegui il write back nel database, i campi di write back appaiono come campi di sola lettura.
Se un utente digita un valore in un campo modificabile e fa clic sul pulsante di write back, l'applicazione esegue il comando SQL insert
o update
definito in un modello di write back. Se il comando riesce, l'analisi verrà aggiornata con il nuovo valore. Se si verifica un errore durante la lettura del modello o durante l'esecuzione del comando SQL, viene visualizzato un messaggio di errore.
Il comando insert
viene eseguito quando un record non esiste ancora e l'utente immette nuovi dati nella tabella. In questo caso, l'utente ha effettuato la digitazione in un record di tabella in cui il valore originale era nullo. Il comando update
viene eseguito quando l'utente modifica dati esistenti. Per visualizzare un record che non esiste ancora nella tabella fisica, è possibile creare un'altra tabella simile. Utilizzare la tabella simile per visualizzare record segnaposto che l'utente può modificare.
Nota:
Quando si creano modelli di write back, è necessario includere sia un comando insert
che un comando update
, anche se non vengono utilizzati entrambi. Ad esempio, se si esegue solo un comando insert
è necessario includere un'istruzione update
vuota <update></update>
come nel codice XML riportato di seguito.
insert
e due istruzioni update
vuote. Per ulteriori informazioni su come creare e strutturare i file XML di write back, vedere Creare file di modelli di write back.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> <WebMessage name="SetForecastUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
Gli amministratori possono consentire agli utenti di modificare i dati nelle analisi e nei dashboard.
Gli utenti possono eseguire il write back in qualsiasi origine dati che consenta l'esecuzione di query SQL da Oracle Analytics.
Quando si configura il write back, tenere presenti le limitazioni riportate di seguito.
Le colonne numeriche devono contenere solo numeri. Non devono contenere caratteri di formattazione dei dati, ad esempio il simbolo del dollaro ($), il simbolo della sterlina o il cancelletto (#), il segno della percentuale (%) e così via.
Le colonne di testo devono contenere solo dati di stringa.
Se un utente collegato sta già visualizzando un dashboard contenente un'analisi in cui i dati sono stati modificati utilizzando il write back, i dati non vengono aggiornati automaticamente nel dashboard. Per visualizzare i dati aggiornati, l'utente deve aggiornare manualmente il dashboard.
È possibile utilizzare il meccanismo del modello solo con le viste tabella e solo per i dati a valore singolo. Il meccanismo del modello non è supportato per le vista tabella pivot o qualsiasi altro tipo di vista, per i dati a più valori o per le colonne a discesa con dati a valore singolo.
Tutti i valori nelle colonne di write back sono modificabili. Quando vengono visualizzati in un contesto non stampabile, i campi modificabili vengono visualizzati come se l'utente disponesse del privilegio Esegui il write back nel database. Tuttavia, quando una colonna logica viene mappata a una colonna fisica che può essere modificata, la colonna logica restituisce i valori per le intersezioni a più livelli. Questo scenario potrebbe causare problemi.
Qualsiasi campo di un'analisi può essere contrassegnato come campo di write back, anche se non proviene dalla tabella di write back creata. Tuttavia, non è possibile eseguire correttamente l'operazione di write back se la tabella non è abilitata per il write back. La responsabilità di contrassegnare correttamente i campi è del designer del contenuto.
Un modello può contenere istruzioni SQL diverse da insert
e update
. La funzione di write back passa queste istruzioni al database. Tuttavia, Oracle non supporta né consiglia l'uso di istruzioni diverse da insert
o update
.
Oracle Analytics esegue solo una convalida minima dei dati immessi. Se il campo è numerico e l'utente immette dati di testo, Oracle Analytics lo rileva e impedisce che i dati non validi siano inseriti nel database. Tuttavia, non rileva altre forme di input di dati non validi (valori non compresi nell'intervallo, misto di dati di testo e numerici e così via). Quando l'utente fa clic sul pulsante di write back e viene eseguita un'istruzione insert o update, i dati non validi generano un messaggio di errore del database. L'utente può quindi correggere l'input errato. I designer del contenuto possono includere del testo nell'analisi di write back per aiutare l'utente, ad esempio "Non è consentito immettere valori alfanumerici misti in un campo dati numerico".
Il meccanismo del modello non è adatto per l'immissione di nuovi record arbitrari. In altre parole, si consiglia di non usarlo come strumento di immissione dati.
Quando si crea una tabella per il write back, assicurarsi che almeno una colonna non includa la capacità di write back ma includa valori univoci per ogni riga e non nulli.
Le analisi di write back non supportano il drill-down. Poiché il drill-down modifica la struttura della tabella, il modello di write back non funziona.
Attenzione:
Il meccanismo del modello accetta l'input dell'utente e lo scrive direttamente nel database. L'utente è responsabile della sicurezza del database fisico. Per una sicurezza ottimale, memorizzare le tabelle di write back del database in un'istanza di database univoca.Un file di modello write back è un file in formato XML che contiene uno o più modelli di write back.
Un modello di write back è costituito da un elemento WebMessage
che specifica il nome del modello, il connection pool e le istruzioni SQL necessarie per inserire e aggiornare i record nelle tabelle e nelle colonne di write back create. Quando i designer del contenuto abilitano una vista tabella per il write back, devono specificare il nome del modello di write back da utilizzare per inserire e aggiornare i record nella vista tabella.
Un modello di write back deve soddisfare i requisiti riportati di seguito.
WebMessage
: è necessario specificare un nome per il modello di write back utilizzando l'attributo name
nell'elemento WebMessage.
Affinché il write back funzioni correttamente, quando si abilita una vista tabella per il write back, il designer del contenuto deve specificare il nome del modello di write back da utilizzare per inserire e aggiornare i record nella vista.
In questo esempio viene mostrato un modello di write back denominato SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: per soddisfare i requisiti di sicurezza, è necessario specificare il connection pool insieme ai comandi SQL per inserire e aggiornare i record. Questi comandi SQL fanno riferimento ai valori passati nello schema di write back per generare le istruzioni SQL di modifica della tabella di database.
VALUES
: è possibile fare riferimento ai valori delle colonne in base all'ID colonna o alla posizione colonna. È preferibile l'uso dell'ID colonna.
Racchiudere tra apici i valori di stringa e data. Gli apici non sono richiesti per i valori numerici.
ID colonna: ogni ID colonna è alfanumerico e generato in modo casuale. È possibile trovare gli ID colonna nella definizione XML dell'analisi disponibile nella scheda Avanzate dell'editor di analisi. Ad esempio, i valori ID colonna come: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Quando si usano gli ID colonna, il write back continua a funzionare anche quando l'ordine delle colonne cambia.
Posizione colonna: la numerazione delle posizioni colonna inizia con 1. Ad esempio, valori di posizione colonna come: @1
, @3
, '@5'
Se l'ordine delle colonne cambia, il write back non funziona più e questo è il motivo per cui si preferiscono gli ID colonna.
Nel modello è necessario includere sia un elemento <insert>
che un elemento <update>
. Se non si desidera includere comandi SQL all'interno degli elementi, è necessario inserire uno spazio vuoto tra le tag di apertura e chiusura. Ad esempio, è necessario immettere l'elemento come:
<insert> </insert>
anziché:
<insert></insert>
Se si omette lo spazio vuoto, viene visualizzato un messaggio di errore di write back, ad esempio "Il sistema non è in grado di leggere il modello di write back 'my_template'".
Se il tipo dati di un parametro non è un numero intero o reale, racchiuderlo tra apici. Se il database non esegue i commit automaticamente, aggiungere il nodo postUpdate
facoltativo dopo i nodi insert
e update
per forzare il commit. La sintassi del nodo postUpdate
segue in genere questo esempio:
<postUpdate>COMMIT</postUpdate>
Esempio di file modello di write back con sintassi dell'ID colonna
Un file modello di write back che fa riferimento ai valori in base all'ID colonna potrebbe essere simile all'esempio riportato di seguito.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
Esempio di file modello di write back con sintassi della posizione colonna
Un file modello di write back che fa riferimento ai valori in base alla posizione colonna potrebbe essere simile all'esempio riportato di seguito.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuota"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert> <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>