Zpětný zápis umožňuje uživatelům aktualizovat přímo z analýz.
Témata:
Zpětný zápis umožňuje uživatelům aktualizovat přímo z panelů a analýz.
Uživatelům s oprávněním Zpětný zápis do databáze se pole zpětného zápisu v analýzách zobrazí jako upravitelná pole. Jimi zadané hodnoty jsou uloženy do databáze. Uživatelům bez oprávnění Zpětný zápis do databáze se pole zpětného zápisu zobrazí jako pole pouze pro čtení.
Pokud uživatel zadá hodnotu do upravitelného pole a klikne na tlačítko zpětného zápisu, aplikace spustí příkaz SQL insert
nebo update
definovaný v šabloně zpětného zápisu. Když příkaz uspěje, analýza se aktualizuje novou hodnotou. Pokud dojde k chybě při čtení šablony nebo při spuštění příkazu SQL, zobrazí se chybová zpráva.
Příkaz insert
se spustí, pokud se záznam ještě nevyskytuje a uživatel vkládá do tabulky nová data. V tomto případě uživatel zadal záznam tabulky, ve kterém byla původní hodnota null. Příkaz update
se spustí, když uživatel změní stávající data. Chcete-li zobrazit záznam, který ve fyzické tabulce ještě neexistuje, vytvořte jinou podobnou tabulku. Tuto podobnou tabulku použijte k zobrazení zástupných záznamů, které může uživatel změnit.
Poznámka:
Když vytváříte šablony zpětného zápisu, musíte zahrnout jak příkaz insert
, tak příkaz update
, i když nejsou oba použity. Pokud například provádíte pouze operaci insert
, musíte zahrnout prázdný příkaz update
, tedy <update></update>
, jako v tomto kódu XML:
insert
a dva prázdné příkazy update
. Chcete-li se dozvědět více o tom, jak vytvářet a strukturovat soubory XML zpětného zápisu, prostudujte si téma Vytváření souborů šablon zpětného zápisu.
<?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>
Správci mohou povolit uživatelům úpravu dat v analýzách a panelech.
Uživatelé mohou provést zpětný zápis do libovolného datového zdroje, který umožňuje provádět dotazy SQL ze služby Oracle Analytics.
Při konfiguraci zpětného zápisu mějte na paměti následující omezení:
Číselné sloupce musí obsahovat pouze číselné hodnoty. Nesmí obsahovat žádné znaky formátování dat, jako jsou dolar ($), libra nebo křížek (#), procenta (%) atd.
Textové sloupce musí obsahovat pouze řetězcová data.
Pokud má přihlášený uživatel již zobrazen panel, který obsahuje analýzu, v níž byla změněna data pomocí zpětného zápisu, nedojde k automatické aktualizaci dat na panelu. K zobrazení aktualizovaných dat je nutné provést aktualizaci panelu ručně.
Mechanizmus šablony můžete použít pouze se zobrazeními tabulek a pouze pro data s jednou hodnotou. Mechanizmus šablony není podporován u zobrazení kontingenčních tabulek nebo jiných typů zobrazení, u dat s více hodnotami ani u rozbalovacích sloupců dat s jednou hodnotou.
Všechny hodnoty ve sloupcích pro zpětný zápis lze upravit. Při zobrazení v kontextu, který není vhodný pro tisk, jsou upravitelná pole zobrazena stejným způsobem jako pro uživatele s oprávněním Zpětný zápis do databáze. Když je však logický sloupec mapován na fyzický sloupec, který se může změnit, vrátí logický sloupec hodnoty pro průniky více úrovní. Tento scénář může způsobit problémy.
Libovolnému poli v analýze lze přiřadit příznak pole zpětného zápisu, i když není odvozeno z vámi vytvořené tabulky zpětného zápisu. Operaci zpětného zápisu však nelze úspěšně spustit, pokud tabulka nepodporuje zpětný zápis. Za správné označení polí tagy odpovídá návrhář obsahu.
Šablona může obsahovat jiné příkazy SQL než insert
a update
. Funkce zpětného zápisu předá tyto příkazy do databáze. Společnost Oracle však použití jiných výroků než insert
a update
nepodporuje ani nedoporučuje.
Služba Oracle Analytics provádí pouze minimální ověření vstupu dat. Pokud je pole číselné a uživatel zadá textová data, služba Oracle Analytics tuto skutečnost zjistí a zabrání tomu, aby se neplatná data dostala do databáze. Nerozpozná však jiné formy neplatného vstupu dat (hodnoty mimo přípustný rozsah, smíšené textové a číselné hodnoty atd.). Když uživatel klikne na tlačítko pro zpětný zápis a je spuštěna operace vložení nebo aktualizace, neplatná data se projeví chybovým hlášením z databáze. Uživatel poté může chybný vstup opravit. Návrháři obsahu mohou do analýzy zpětného zápisu zahrnout text, který uživateli pomůže, například: „Zadávání smíšených alfanumerických hodnot do pole pro číselná data není povoleno.“
Mechanizmus šablony není vhodný pro zadávání libovolných nových záznamů. Jinými slovy, nepoužívejte jej jako nástroj pro vstup dat.
Při vytváření tabulky pro zpětný zápis zajistěte, aby alespoň jeden sloupec nezahrnoval možnost zpětného zápisu, ale obsahoval hodnoty, které jsou pro každý řádek jedinečné a jiné než null.
Analýzy se zpětným zápisem nepodporují přechod na detailní data. Přechod na detailní data změní strukturu tabulky, takže šablona zpětného zápisu nebude funkční.
Upozornění:
Mechanizmus šablony převezme uživatelský vstup a zapíše jej přímo do databáze. Z tohoto důvodu nesete vlastní odpovědnost za zabezpečení fyzické databáze. K zajištění optimálního zabezpečení ukládejte databázové tabulky zpětného zápisu do jedinečné instance databáze.Soubor šablon zpětného zápisu je soubor ve formátu XML, který obsahuje jednu nebo více šablon zpětného zápisu.
Šablona zpětného zápisu se skládá z prvku WebMessage
, který určuje název šablony, fondu připojení a výroků SQL vyžadovaných ke vkládání a aktualizaci záznamů ve vámi vytvořených tabulkách a sloupcích zpětného zápisu. Když vývojáři obsahu povolí zobrazení tabulky pro zpětný zápis, musí zadat název šablony zpětného zápisu, která bude používána ke vkládání a aktualizaci záznamů v zobrazení tabulky.
Šablona zpětného zápisu musí splňovat následující požadavky:
WebMessage
: Musíte zadat název pro šablonu zpětného zápisu pomocí atributu name
v prvku WebMessage.
K zajištění správné funkce zpětného zápisu po aktivaci zobrazení tabulky pro zpětný zápis musí návrhář obsahu zadat název šablony zpětného zápisu, která bude používána ke vkládání a aktualizaci záznamů v zobrazení.
V tomto příkladu je uvedena šablona zpětného zápisu s názvem SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: Chcete-li splnit požadavky na zabezpečení, musíte zadat fond připojení spolu s příkazy SQL pro vkládání a aktualizaci záznamů. Tyto příkazy SQL odkazují na hodnoty, které jsou předány ve schématu zpětného zápisu ke generování výroků SQL pro úpravu databázové tabulky.
VALUES
: Na hodnoty sloupce se lze odkazovat buď pomocí ID sloupce, nebo pomocí pozice sloupce. Preferováno je použití ID sloupce.
Hodnoty řetězců a kalendářních dat uvádějte v jednoduchých uvozovkách. U číselných hodnot nejsou jednoduché uvozovky vyžadovány.
ID sloupce – Každému sloupci je přiřazen alfanumerický a náhodně generovaný identifikátor. ID sloupců naleznete v definici XML analýzy, která je dostupná na kartě Rozšířené v editoru analýz. Hodnoty ID sloupců mohou být například: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Když použijete ID sloupců, zpětný zápis bude funkční i v případě změny pořadí sloupců.
Pozice sloupce – Pozice sloupců jsou číslovány od 1. Hodnoty pozic sloupců mohou být například: @1
, @3
, '@5'
Pokud dojde ke změně pořadí sloupců, zpětný zápis již nebude funkční. Právě z tohoto důvodu je preferováno použití ID sloupců.
Do šablony musíte zahrnout jak prvek <insert>
, tak prvek <update>
. Pokud nechcete do prvků zahrnout příkazy SQL, musíte mezi počáteční a koncové tagy vložit mezeru. Například musíte zadat prvek jako:
<insert> </insert>
Spíše než:
<insert></insert>
Pokud mezeru vynecháte, zobrazí se chybová zpráva zpětného zápisu, například „Systém nemůže přečíst šablonu zpětného zápisu my_template“.
Pokud typ dat parametru není celé nebo reálné číslo, uzavřete hodnotu do jednoduchých uvozovek. Pokud databáze neprovádí potvrzování automaticky, přidejte nepovinný uzel postUpdate
za uzly insert
a update
, abyste vynutili potvrzení. Uzel postUpdate
obvykle odpovídá tomuto příkladu:
<postUpdate>COMMIT</postUpdate>
Příklad souboru šablon zpětného zápisu s použitím syntaxe ID sloupce
Soubor šablon zpětného zápisu, který odkazuje na hodnoty podle ID sloupce, může vypadat například následovně:
<?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>
Příklad souboru šablon zpětného zápisu s použitím syntaxe pozice sloupce
Soubor šablon zpětného zápisu, který odkazuje na hodnoty podle pozice sloupce, může vypadat například následovně:
<?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>