Writeback bereitstellen

Mit Writeback können Benutzer Daten aus Analysen aktualisieren.

Themen:

Writeback für Administratoren

Mit dem Writeback können Benutzer Daten direkt aus Dashboards und Analysen aktualisieren.

Benutzern mit der Berechtigung Zurückschreiben in Datenbank werden Writeback-Felder in Analysen als bearbeitbar angezeigt. Die eingegebenen Werte werden in der Datenbank gespeichert. Benutzern ohne der Berechtigung Zurückschreiben in Datenbank werden Writeback-Felder schreibgeschützt angezeigt.

Wenn ein Benutzer einen Wert in ein bearbeitbares Feld eingibt und auf die Writeback-Schaltfläche klickt, wird der in einer Writeback-Vorlage definierte insert- oder update-SQL-Befehl ausgeführt. Wenn der Befehl erfolgreich ist, wird die Analyse mit dem neuen Wert aktualisiert. Wenn ein Fehler beim Lesen der Vorlage oder beim Ausführen des SQL-Befehls auftritt, wird eine Fehlermeldung angezeigt.

Der insert-Befehl wird ausgeführt, wenn ein Datensatz noch nicht vorhanden ist und der Benutzer neue Daten in die Tabelle eingibt. In diesem Fall hat der Benutzer einen Tabellendatensatz eingegeben, dessen Wert ursprünglich Null war. Der update-Befehl wird ausgeführt, wenn ein Benutzer vorhandene Daten aktualisiert. Um einen Datensatz anzuzeigen, der noch nicht in der physischen Tabelle vorhanden ist, können Sie eine andere, ähnliche Tabelle erstellen. Mit dieser ähnlichen Tabelle können Sie Platzhalterdatensätze anzeigen, die Benutzer ändern können.

Hinweis:

Wenn Sie Writeback-Vorlagen erstellen, müssen Sie sowohl einen insert-Befehl als auch einen update-Befehl aufnehmen, selbst wenn diese nicht beide verwendet werden. Beispiel: Wenn Sie nur einen insert-Vorgang ausführen, müssen Sie eine leere update-Anweisung (<update></update>) aufnehmen, wie in diesem XML-Code:

Die folgende Writeback-XML-Beispieldatei enthält zwei insert-Befehle und zwei leere update-Anweisungen. Weitere Informationen zum Erstellen und Strukturieren von Writeback-XML-Dateien finden Sie unter Writeback-Vorlagendateien erstellen.
<?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>

Writeback in Analysen und Dashboards aktivieren

Administratoren können zulassen, dass Benutzer die Daten in Analysen und Dashboards bearbeiten können.

  1. Richten Sie das semantische Modell ein.

    Hinweis:

    Führen Sie diese Schritte aus, wenn Sie semantische Modelle mit Model Administration Tool entwickeln. Wenn Sie den semantischen Modellierer verwenden, lesen Sie

    Writeback in Spalten aktivieren .

    1. Öffnen Sie das semantische Modell (RPD-Datei) in Model Administration Tool.
    2. Doppelklicken Sie im Layer "Physisch" auf die physische Tabelle mit der Spalte, für die Sie das Writeback aktivieren möchten.
    3. Stellen Sie im Dialogfeld "Physische Tabelle" auf der Registerkarte Allgemein sicher, dass Für Caching geeignet nicht ausgewählt ist. Wenn diese Option deaktiviert ist, können Presentation Services-Benutzer Aktualisierungen sofort sehen.
    4. Doppelklicken Sie im Layer "Geschäftsmodell und Zuordnung" auf die entsprechende logische Spalte.
    5. Wählen Sie im Dialogfeld "Logische Spalte" Nicht schreibgeschützt aus, und klicken Sie auf OK.
    6. Doppelklicken Sie im Layer "Darstellung" auf die Spalte, die der logischen Spalte entspricht, für die Sie das Writeback aktiviert haben.
    7. Klicken Sie im Dialogfeld "Darstellungsspalte" auf Berechtigungen.
    8. Wählen Sie die Berechtigung Schreib-/Lesezugriff für die entsprechenden Benutzer und Anwendungsrollen aus.
    9. Speichern Sie Ihre Änderungen.
  2. Erstellen Sie ein XML-Dokument mit der Writeback-Vorlage (oder den Writeback-Vorlagen). Siehe Writeback-Vorlagendateien erstellen.

    Das XML-Dokument kann mehrere Vorlagen enthalten. Dieses Beispiel zeigt ein XML-Dokument mit zwei Vorlagen (SetQuotaUseID und 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>
    Hinweis: Sie müssen ein <insert>-Element und ein <update>-Element einfügen, selbst wenn diese Elemente nicht beide verwendet werden. Beispiel: Wenn Sie nur einen insert-Vorgang ausführen, müssen Sie eine leere update-Anweisung aufnehmen (<update></update>).
  3. Kopieren Sie das XML-Dokument mit Ihren Writeback-Vorlagen in die Zwischenablage.
  4. Wenden Sie die Writeback-Vorlage in Oracle Analytics an:
    1. Klicken Sie auf Konsole und dann auf Systemeinstellungen.
    2. Fügen Sie die in Schritt 3 kopierte Writeback-Vorlage in Writeback-Vorlagen-XML ein.
  5. Erteilen Sie Berechtigungen zur Verwendung des Writeback-Codes:
    1. Navigieren Sie zur klassischen Homepage, und klicken Sie auf Administration.
    2. Klicken Sie unter Sicherheit auf Berechtigungen verwalten, und navigieren Sie zu Zurückschreiben.
    3. Erteilen Sie dem Benutzer in Authentifizierter Benutzer die Rolle Zurückschreiben in Datenbank.
    4. Erteilen Sie dem BI Service Administrator die Berechtigung Zurückschreiben verwalten.
  6. So aktivieren Sie Writeback in Spalten:
    1. Zeigen Sie im Analyseeditor die Spalteneigenschaften der Spalte an, für die Sie das Writeback aktivieren möchten.
    2. Klicken Sie im Dialogfeld "Spalteneigenschaften" auf die Registerkarte Zurückschreiben.
      Wenn die Spalte im semantischen Modell für Writebacks aktiviert wurde, ist das Feld Zurückschreiben aktivieren verfügbar.
    3. Wählen Sie die Option Zurückschreiben aktivieren aus.
    4. Geben Sie den Wert anderer Optionen an, wenn Sie den Standardwert ändern möchten.
    5. Speichern Sie Ihre Änderungen.
    Writeback für die Spalte wird in allen Analysen aktiviert, die diese Spalte umfassen.
  7. So aktivieren Sie Writeback in Tabellenansichten:
    1. Öffnen Sie im Analyseeditor die Tabellenansicht zur Bearbeitung.
    2. Klicken Sie auf Eigenschaften anzeigen.
    3. Klicken Sie im Dialogfeld "Tabelleneigenschaften" auf die Registerkarte Zurückschreiben.
    4. Wählen Sie die Option Zurückschreiben aktivieren aus.
    5. Wählen Sie das Feld Vorlagenname aus, und geben Sie den Wert von "WebMessage name=" in der in Schritt 2 angegebenen Writeback-Vorlage an.
      Beispiel: Der Vorlagenname für die Beispielvorlage in Schritt 2 lautet "SetQuotaUseID".
    6. Speichern Sie Ihre Änderungen.

Writeback-Einschränkungen

Benutzer können per Writeback Daten in jede Datenquelle zurückschreiben, die die Ausführung von SQL-Abfragen aus Oracle Analytics zulässt.

Beachten Sie die folgenden Einschränkungen beim Konfigurieren des Writebacks:

  • Numerische Spalten dürfen nur Zahlen enthalten. Sie dürfen keine Datenformatierungszeichen enthalten, wie Dollarzeichen ($), Rautezeichen (#), Prozentzeichen (%) usw.

  • Textspalten dürfen nur Zeichenfolgendaten enthalten.

  • Wenn ein angemeldeter Benutzer bereits ein Dashboard mit einer Analyse anzeigt, bei der Daten anhand des Writebacks geändert wurden, werden die Daten nicht automatisch im Dashboard aktualisiert. Um die aktualisierten Daten anzuzeigen, muss der Benutzer das Dashboard manuell aktualisieren.

  • Sie können den Vorlagenmechanismus nur mit Tabellenansichten und nur für Einzelwertdaten verwenden. Der Vorlagenmechanismus wird nicht für Pivot-Tabellenansichten oder andere Ansichtstypen und nicht für mehrwertige Daten oder Dropdown-Spalten mit Einzelwertdaten unterstützt.

  • Alle Werte in Writeback-Spalten sind bearbeitbar. Außerhalb des Druckversionskontextes werden bearbeitbare Felder so angezeigt, als hätte der Benutzer die Berechtigung Zurückschreiben in Datenbank. Wenn allerdings eine logische Spalte einer veränderbaren physischen Spalte zugeordnet ist, gibt die logische Spalte Werte für mehrere Ebenenschnittmengen zurück. Dieses Szenario kann Probleme verursachen.

  • Jedes Feld in einer Analyse kann als Writeback-Feld gekennzeichnet werden, selbst wenn es nicht von der erstellten Writeback-Tabelle abgeleitet wurde. Sie können den Writeback-Vorgang jedoch nicht erfolgreich ausführen, wenn die Tabelle nicht für das Writeback aktiviert ist. Der Inhaltsdesigner ist dafür verantwortlich, Felder richtig zu taggen.

  • Eine Vorlage kann andere SQL-Anweisungen als insert und update enthalten. Die Writeback-Funktion übergibt diese Anweisungen an die Datenbank. Oracle unterstützt jedoch nicht die Verwendung von anderen Anweisungen als insert oder update und rät davon ab.

  • Oracle Analytics führt nur eine minimale Validierung der Dateneingabe durch. Wenn das Feld numerisch ist und der Benutzer Textdaten eingibt, erkennt Oracle Analytics den Fehler und verhindert die Übergabe der ungültigen Daten an die Datenbank. Andere Arten ungültiger Dateneingaben (Werte außerhalb des gültigen Bereichs, Mischung aus Text und Zahlen usw.) werden allerdings nicht erkannt. Wenn der Benutzer auf die Writeback-Schaltfläche klickt und einen Einfüge- oder Aktualisierungsvorgang mit ungültigen Daten ausführt, wird eine Fehlermeldung von der Datenbank angezeigt. Dann kann der Benutzer die fehlerhafte Eingabe korrigieren. Inhaltsdesigner können Hilfetext für Benutzer in die Writeback-Analyse aufnehmen, wie "Die Eingabe gemischter alphanumerischer Werte in ein numerisches Datenfeld ist nicht zulässig".

  • Der Vorlagenmechanismus eignet sich nicht für die Eingabe zufälliger neuer Datensätze. Verwenden Sie ihn also nicht als Tool für die Dateneingabe.

  • Beim Erstellen einer Tabelle für das Writeback muss mindestens eine Spalte vorhanden sein, die keine Writeback-Funktion enthält, aber dafür Werte ungleich Null, die für jede Zeile eindeutig sind.

  • Writeback-Analysen unterstützen keinen Drilldown. Da die Tabellenstruktur beim Drilldown geändert wird, funktioniert die Writeback-Vorlage dann nicht.

    Achtung:

    Der Vorlagenmechanismus schreibt die Benutzereingabe direkt in die Datenbank. Für die Sicherheit der physischen Datenbank sind Sie selbst verantwortlich. Speichern Sie Writeback-Datenbanktabellen zur optimalen Sicherheit in einer eigenen Datenbankinstanz.

Writeback-Vorlagendateien erstellen

Eine Writeback-Vorlage ist eine XML-Datei, die mindestens eine Writeback-Vorlage enthält.

Eine Writeback-Vorlage besteht aus einem WebMessage-Element, das den Namen der Vorlage, den Verbindungspool und die SQL-Anweisungen angibt, die zum Einfügen und Aktualisieren von Datensätzen in den von Ihnen erstellten Writeback-Tabellen und -Spalten erforderlich sind. Wenn Inhaltsdesigner eine Tabellenansicht zum Writeback aktivieren, müssen sie den Namen der gewünschten Writeback-Vorlage zum Einfügen und Aktualisieren der Datensätze in der Tabellenansicht angeben.

Anforderungen für eine Writeback-Vorlage

Eine Writeback-Vorlage muss die folgenden Anforderungen erfüllen:

  • WebMessage: Sie müssen einen Namen für die Writeback-Vorlage mit dem Attribut name im WebMessage-Element angeben.

    Damit das Writeback ordnungsgemäß funktioniert, müssen Inhaltsdesigner beim Aktivieren einer Tabellenansicht zum Writeback den Namen der gewünschten Writeback-Vorlage zum Einfügen und Aktualisieren der Datensätze in der Ansicht angeben.

    Dieses Beispiel zeigt eine Writeback-Vorlage namens SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: Zum Erfüllen von Sicherheitsanforderungen müssen Sie den Verbindungspool zusammen mit den SQL-Befehlen zum Einfügen und Aktualisieren von Datensätzen angeben. Diese SQL-Befehle referenzieren die im Writeback-Schema übergebenen Werte, um die SQL-Anweisungen zum Ändern der Datenbanktabelle zu generieren.

  • VALUES: Spaltenwerte können durch die Spalten-ID oder Spaltenposition referenziert werden. Die Verwendung der Spalten-ID wird bevorzugt.

    Setzen Sie Zeichenfolgen- und Datumswerte in einfache Anführungszeichen. Für numerische Werte sind keine einfachen Anführungszeichen erforderlich.

    • Spalten-ID: Jede Spalten-ID ist alphanumerisch und nach dem Zufallsprinzip generiert. Sie finden die Spalten-IDs in der XML-Definition der Analyse, die auf der Registerkarte Erweitert des Analyseeditors verfügbar ist. Beispiele für Spalten-ID-Werte: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Wenn Sie Spalten-IDs verwenden, funktioniert das Writeback auch bei einer Änderung der Spaltenreihenfolge.

      XML auf der Registerkarte "Erweitert" des Analyseeditors

    • Spaltenposition: Spaltenpositionen beginnen mit der Nummer 1. Beispiele für Spaltenpositionswerte: @1, @3, '@5'

      Wenn die Reihenfolge der Spalten geändert wird, funktioniert das Writeback nicht mehr. Daher werden Spalten-IDs bevorzugt.

  • Sie müssen sowohl ein <insert>- als auch ein <update>-Element in die Vorlage aufnehmen. Wenn die Elemente keine SQL-Befehle enthalten sollen, fügen Sie ein Leerzeichen zwischen dem öffnenden und dem schließenden Tag ein. Beispiel: Geben Sie das Element wie folgt ein:

    <insert> </insert>
    

    Anstatt:

    <insert></insert>
    

    Wenn Sie das Leerzeichen auslassen, wird eine Writeback-Fehlermeldung wie die Folgende angezeigt: "Das System kann die Writeback-Vorlage "my_template" nicht lesen".

  • Wenn der Datentyp eines Parameters keine Ganzzahl oder reelle Zahl ist, setzen Sie ihn in einfache Anführungszeichen. Wenn die Datenbank Commits nicht automatisch ausführt, fügen Sie den optionalen postUpdate-Knoten nach den insert- und update-Knoten hinzu, um den Commit zu erzwingen. Der postUpdate-Knoten entspricht in der Regel diesem Beispiel:

    <postUpdate>COMMIT</postUpdate>
    

Beispiel für Writeback-Vorlagendatei mit Spalten-ID-Syntax

Eine Writeback-Vorlagendatei, die Werte anhand der Spalten-ID referenziert, kann in etwa wie folgt aussehen:

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

Beispiel für Writeback-Vorlagendatei mit Spaltenpositionssyntax

Eine Writeback-Vorlagendatei, die Werte anhand der Spaltenposition referenziert, kann in etwa wie folgt aussehen:

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