Mit Writeback können Benutzer Daten aus Analysen aktualisieren.
Themen:
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:
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>
Administratoren können zulassen, dass Benutzer die Daten in Analysen und Dashboards bearbeiten können.
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.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.
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.
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>