Distribuire il write back

Il write back consente agli utenti di aggiornare i dati dalle analisi.

Argomenti:

Informazioni sul write back per gli amministratori

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.

Nel file XML di write back di esempio riportato di seguito sono presenti due comandi 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>

Abilitare il write back nelle analisi e nei dashboard

Gli amministratori possono consentire agli utenti di modificare i dati nelle analisi e nei dashboard.

  1. Impostare il modello semantico.

    Nota:

    Attenersi alla procedura riportata di seguito se si utilizza Model Administration Tool per sviluppare modelli semantici. Se si utilizza Semantic Modeler, vedere

    Abilitare il write back sulle colonne .

    1. In Model Administration Tool aprire il modello semantico (file .rpd).
    2. Nel layer Fisico fare doppio clic sulla tabella fisica che contiene la colonna per la quale si desidera abilitare il write back.
    3. Nella scheda Generale della finestra di dialogo Tabella fisica assicurarsi che l'opzione Inseribile nella cache non sia selezionata. La deselezione di questa opzione garantisce che gli utenti di Presentation Services possano visualizzare immediatamente gli aggiornamenti.
    4. Nel layer Modello aziendale e mapping fare doppio clic sulla colonna logica corrispondente.
    5. Nella finestra di dialogo Colonna logica selezionare Scrivibile, quindi fare clic su OK.
    6. Nel layer Presentazione fare doppio clic sulla colonna corrispondente alla colonna logica per la quale è stato abilitato il write back.
    7. Nella finestra di dialogo Colonna presentazione fare clic su Autorizzazioni.
    8. Selezionare l'autorizzazione Lettura/scrittura per i ruoli utente e applicazione appropriati.
    9. Salvare le modifiche.
  2. Creare un documento XML con il modello (o i modelli) di write back. Vedere Creare file di modelli di write back.

    Il documento XML può contenere più modelli. In questo esempio viene illustrato un documento XML che contiene due modelli: SetQuotaUseID e SetForecastUseID.

    <?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 regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    <WebMessage name="SetForecastUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e01}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
                <update>UPDATE regiontypeforecast SET Dollars=@{c7322jkl93ev92cd8} WHERE YR=@{c83ebf607f3cb8320} AND Quarter=@{cb7e2046a0fba2204} AND Region='@{c5a93e65d31f10e01}' AND ItemType='@{c5a93e65d31f10e0}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    Nota: è necessario includere un elemento <insert> e un elemento <update> anche se non vengono utilizzati entrambi. Ad esempio, se si esegue solo un'istruzione insert, è necessario includere l'istruzione update vuota <update></update>.
  3. Copiare il documento XML contenente i modelli di write back negli Appunti.
  4. Per applicare un modello di write back in Oracle Analytics, effettuare le operazioni riportate di seguito.
    1. Fare clic su Console, quindi su Impostazioni di sistema.
    2. In XML modello write back incollare il modello di write back copiato nel Passo 3.
  5. Concedere le autorizzazioni per l'uso del codice di write back.
    1. Andare alla home page classica e fare clic su Amministrazione.
    2. Nella sezione Sicurezza fare clic su Gestisci privilegi e andare a Write back.
    3. Concedere il privilegio Esegui il write back nel database all'Utente autenticato.
    4. Concedere il privilegio Gestisci write back all'Amministratore di servizi BI.
  6. Per abilitare il write back nelle colonne, effettuare le operazioni riportate di seguito.
    1. Nell'Editor di analisi visualizzare le proprietà colonna della colonna in cui si desidera abilitare il write back.
    2. Nella finestra di dialogo Proprietà colonna, fare clic sulla scheda Write back.
      Se la colonna è stata abilitata per il write back nel modello semantico, la casella Abilita write back è disponibile.
    3. Selezionare l'opzione Abilita write back.
    4. Specificare il valore delle altre opzioni se si desidera modificare l'impostazione predefinita.
    5. Salvare le modifiche.
    La colonna viene abilitata per il write back in tutte le analisi che la includono.
  7. Per abilitare il write back nelle viste tabella, effettuare le operazioni riportate di seguito.
    1. Nell'Editor di analisi aprire la vista tabella per la modifica.
    2. Fare clic su Proprietà vista.
    3. Nella finestra di dialogo Proprietà tabella fare clic sulla scheda Write back.
    4. Selezionare l'opzione Abilita write back.
    5. Selezionare la casella Nome modello e specificare il valore "WebMessage name=" nel modello di write back specificato nel Passo 2.
      Il Nome modello per il modello di esempio del Passo 2 è 'SetQuotaUseID'.
    6. Salvare le modifiche.

Limitazioni per il write back

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.

Creare file di modelli di write back

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.

Requisiti per un modello di write back

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.

      XML nella scheda Avanzate dell'editor di analisi

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