Spätný zápis umožňuje používateľom aktualizovať dáta priamo z analýz.
Témy:
Spätný zápis umožňuje používateľom aktualizovať dáta priamo z panelov a analýz.
Používateľom s privilégiom Spätný zápis do databázy sa polia spätného zápisu zobrazujú v analýzach ako upraviteľné. Zadané hodnoty sa uložia v databáze. Používateľom bez privilégia Spätný zápis do databázy sa polia spätného zápisu zobrazujú ako určené len na čítanie.
Ak používateľ zadá hodnotu do upraviteľného poľa a klikne na tlačidlo spätného zápisu, aplikácia spustí príkaz SQL insert
alebo update
, ktorý je definovaný v šablóne spätného zápisu. Ak je príkaz úspešný, analýza sa aktualizuje novou hodnotou. Ak sa vyskytne chyba pri čítaní šablóny alebo spúšťaní príkazu SQL, zobrazí sa chybové hlásenie.
Príkaz insert
sa spustí, keď záznam ešte neexistuje a používateľ zadá do tabuľky nové dáta. V tomto prípade používateľ zadal záznam tabuľky, ktorého pôvodná hodnota bola null. Príkaz update
sa spustí, keď používateľ modifikuje existujúce dáta. Ak chcete zobraziť záznam, ktorý ešte neexistuje vo fyzickej tabuľke, môžete vytvoriť ďalšiu podobnú tabuľku. V tejto podobnej tabuľke môžete zobraziť záznamy zástupných znakov, ktoré používateľ môže upraviť.
Poznámka:
Pri vytváraní šablón spätného zápisu pridajte príkaz insert
aj príkaz update
, aj keď ich nepoužívate oba naraz. Ak napríklad vykonávate len operáciu insert
, je potrebné pridať prázdny príkaz update
(<update></update>
), ako vidno nasledujúcom kóde XML:
insert
a dva prázdne príkazy update
. Ďalšie informácie o vytváraní a štruktúrovaní súborov XML spätného zápisu nájdete v časti Vytvorenie súborov šablóny spä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>
Administrátori môžu umožniť používateľom úpravu dát v analýzach a na paneloch.
Používatelia môžu spätne zapisovať do ľubovoľného dátového zdroja, ktorý povoľuje spúšťanie dopytov SQL zo služby Oracle Analytics.
Pri konfigurácii spätného zápisu platia nasledujúce obmedzenia:
Numerické stĺpce môžu obsahovať len čísla. Nesmú obsahovať žiadne znaky formátovania dát, ako je znak dolára ($), znak mriežky (#), znak percenta (%) atď.
Textové stĺpce môžu obsahovať len dáta reťazca.
Ak si prihlásený používateľ už pozerá panel s analýzou, v ktorej boli dáta modifikované pomocou spätného zápisu, dáta sa na paneli automaticky neobnovia. Ak si chce používateľ pozrieť aktualizované dáta, musí manuálne obnoviť panel.
Mechanizmus šablóny môžete používať len s tabuľkovými zobrazeniami a len pre dáta s jednou hodnotou. Mechanizmus šablóny nie je podporovaný pre zobrazenia kontingenčnej tabuľky ani pre iný typ zobrazenia, pre dáta s viacerými hodnotami ani pre stĺpce s rozbaľovacím zoznamom s dátami s jedinou hodnotou.
Všetky hodnoty v stĺpcoch spätného zápisu možno upravovať. Keď sa upraviteľné polia zobrazujú v kontexte, ktorý nie je optimalizovaný pre tlač, zobrazujú sa tak, akoby používateľ mal privilégium Spätný zápis do databázy. Ak je však logický stĺpec mapovaný k fyzickému stĺpcu, ktorý sa môže zmeniť, logický stĺpec vráti hodnoty pre viacero prienikov úrovní. Tento scenár môže spôsobovať problémy.
Ľubovoľné pole v analýze môže byť označené ako pole spätného zápisu, aj keď nie je odvodené z tabuľky spätného zápisu, ktorú ste vytvorili. Ak ale tabuľka nemá aktivovaný spätný zápis, operáciu spätného zápisu nebudete môcť úspešne spustiť. Za správne označenie polí zodpovedá návrhár obsahu.
Šablóna môže obsahovať aj iné príkazy SQL než insert
a update
. Funkcia spätného zápisu odovzdáva tieto príkazy do databázy. Spoločnosť Oracle však nepodporuje ani neodporúča použitie iných príkazov ako insert
alebo update
.
Služba Oracle Analytics vykonáva len minimálne overenie dátového vstupu. Ak je pole numerické a používateľ zadá textové dáta, Oracle Analytics to zistí a zabráni tomu, aby sa neplatné dáta dostali do databázy. Nezistí však iné formy neplatného dátového vstupu (hodnoty mimo rozsahu, zmiešaný textový a numerický vstup atď.). Keď používateľ klikne na tlačidlo spätného zápisu a spustí sa operácia vkladania alebo aktualizácie, neplatné dáta spôsobia, že z databázy sa vráti chybové hlásenie. Používateľ potom môže opraviť chybný vstup. Návrhári obsahu môžu do analýzy spätného zápisu zahrnúť text, ktorý používateľovi pomôže, napríklad "Zadávanie zmiešaných alfanumerických hodnôt do numerického dátového poľa nie je povolené".
Mechanizmus šablóny nie je vhodný na zadávanie voliteľných nových záznamov. Inými slovami, nepoužívajte ho ako nástroj na zadávanie dát.
Pri vytváraní tabuľky na spätný zápis sa uistite, že aspoň jeden stĺpec nezahŕňa možnosť spätného zápisu, ale obsahuje hodnoty, ktoré sú jednoznačné pre každý riadok a neobsahujú hodnotu null.
Analýzy spätného zápisu nepodporujú prechod do nižších úrovní. Keďže prechod do nižších úrovní modifikuje štruktúru tabuľky, šablóna spätného zápisu nefunguje.
Pozor:
Mechanizmus šablóny prijme vstup používateľa a zapíše ho priamo do databázy. Za zabezpečenie fyzickej databázy zodpovedáte vy. Na dosiahnutie optimálneho zabezpečenia uchovávajte databázové tabuľky spätného zápisu v jedinečnej inštancii databázy.Šablóna spätného zápisu je súbor vo formáte XML, ktorý obsahuje jednu alebo viacero šablón spätného zápisu.
Šablóna spätného zápisu pozostáva z prvku WebMessage
, ktorý určuje názov šablóny, zo spoločnej oblasti pripojení a z príkazov SQL potrebných na vloženie a aktualizáciu záznamov v tabuľkách a stĺpcoch spätného zápisu, ktoré ste vytvorili. Keď návrhári obsahu aktivujú pre spätný zápis tabuľkové zobrazenie, musia zadať názov šablóny spätného zápisu, ktorá sa má použiť na vkladanie a aktualizáciu záznamov v tabuľkovom zobrazení.
Šablóna spätného zápisu musí spĺňať nasledujúce požiadavky:
WebMessage
: Zadajte názov pre šablónu spätného zápisu pomocou atribútu name
v prvku WebMessage.
Na správne fungovanie spätného zápisu musí návrhár obsahu pri aktivácii tabuľkového zobrazenia pre spätný zápis zadať názov šablóny spätného zápisu, ktorá sa má použiť na vkladanie a aktualizáciu záznamov v zobrazení.
Tento príklad znázorňuje šablónu spätného zápisu s názvom SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: Na splnenie požiadaviek zabezpečenia je potrebné zadať spoločnú oblasť pripojení spolu s príkazmi SQL na vloženie a aktualizáciu záznamov. Tieto príkazy SQL odkazujú na hodnoty, ktoré sú odovzdané do schémy spätného zápisu na generovanie príkazov SQL na modifikáciu databázovej tabuľky.
VALUES
: Na hodnoty stĺpcov môže odkazovať ID stĺpca alebo pozícia stĺpca. Preferuje sa použitie ID stĺpca.
Hodnoty reťazca a dátumu vložte do jednoduchých úvodzoviek. Jednoduché úvodzovky nie sú potrebné pre numerické hodnoty.
ID stĺpca - každé ID stĺpca je alfanumerické a náhodne generované. ID stĺpcov nájdete v definícii XML analýzy, ktorá je k dispozícii na karte Rozšírené v editore analýzy. Príklady hodnôt ID stĺpca: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Keď používate ID stĺpca, spätný zápis neprestane fungovať, aj keď sa poradie stĺpcov zmení.
Pozícia stĺpca - pozície stĺpcov sú číslované od čísla 1. Príklady hodnôt pozícií stĺpca: @1
, @3
, '@5'
Ak sa poradie stĺpcov zmení, spätný zápis prestane fungovať a to je dôvod, prečo sú preferované ID stĺpcov.
Do šablóny je potrebné pridať prvok <insert>
aj <update>
. Ak do týchto prvkov nechcete pridať príkazy SQL, medzi počiatočnú a koncovú značku je potrebné vložiť medzeru. Prvok zadajte napríklad takto:
<insert> </insert>
Nie takto:
<insert></insert>
Ak medzeru vynecháte, zobrazí sa chybové hlásenie spätného zápisu, napríklad: "Systém nemôže prečítať šablónu spätného zápisu my_template".
Ak dátový typ parametra nie je celé číslo ani reálne číslo, vložte ho do jednoduchých úvodzoviek. Ak databáza nevykonáva potvrdenia automaticky, pridajte voliteľný uzol postUpdate
za uzlami insert
a update
na vynútenie potvrdenia. Uzol postUpdate
zvyčajne vyzerá takto:
<postUpdate>COMMIT</postUpdate>
Príklad súboru šablóny spätného zápisu so syntaxou ID stĺpca
Súbor šablóny spätného zápisu, ktorý odkazuje na hodnoty podľa ID stĺpca, môže vyzerať napríklad takto:
<?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>
Príklad súboru šablóny spätného zápisu so syntaxou pozície stĺpca
Súbor šablóny spätného zápisu, ktorý odkazuje na hodnoty podľa pozície stĺpca, môže vyzerať napríklad takto:
<?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>