Nasadenie spätného zápisu

Spätný zápis umožňuje používateľom aktualizovať dáta priamo z analýz.

Témy:

Spätný zápis pre administrátorov

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:

Toto je vzorový súbor XML spätného zápisu, ktorý obsahuje dva príkazy 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>

Aktivácia spätného zápisu v analýzach a na paneloch

Administrátori môžu umožniť používateľom úpravu dát v analýzach a na paneloch.

  1. Nastavte sémantický model.

    Poznámka:

    Postupujte podľa týchto krokov, ak na vývoj sémantických modelov používate nástroj Model Administration Tool. Ak používate nástroj Sémantický modelár, pozrite si časť

    Aktivácia spätného zápisu v stĺpcoch .

    1. V nástroji Model Administration Tool otvorte sémantický model (súbor .rpd).
    2. Vo vrstve Physical (Fyzické) dvakrát kliknite na fyzickú tabuľku obsahujúcu stĺpec, pre ktorý chcete aktivovať spätný zápis.
    3. Uistite sa, že na karte General (Všeobecné) v dialógovom okne Physical Table (Fyzická tabuľka) nie je vybraná voľba Cacheable (Možno uložiť do cache). Zrušením výberu tejto voľby sa zaistí, že používateľom služieb Presentation Services sa okamžite zobrazia aktualizácie.
    4. Vo vrstve Business Model and Mapping (Biznis model a mapovanie) dvakrát kliknite na zodpovedajúci logický stĺpec.
    5. V dialógovom okne Logical Column (Logický stĺpec) vyberte voľbu Writeable (S možnosťou zápisu) a potom kliknite na tlačidlo OK.
    6. Vo vrstve Presentation (Prezentácia) dvakrát kliknite na stĺpec zodpovedajúci logickému stĺpcu, pre ktorý ste aktivovali spätný zápis.
    7. V dialógovom okne Presentation Column (Stĺpec prezentácie) kliknite na položku Permissions (Povolenia).
    8. Vyberte povolenie Read/Write (Čítanie/zápis) pre požadovaných používateľov a roly aplikácie.
    9. Uložte vykonané zmeny.
  2. Vytvorte dokument XML so šablónou (alebo šablónami) spätného zápisu. Pozrite si časť Vytvorenie súborov šablóny spätného zápisu.

    Dokument XML môže obsahovať viacero šablón. Tento príklad znázorňuje dokument XML, ktorý obsahuje dve šablóny (SetQuotaUseID a 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>
    Poznámka: Prvky <insert> a <update> je potrebné pridať, aj keď sa oba nepoužívajú. Ak napríklad vykonávate len operáciu insert, je potrebné pridať prázdny príkaz update na aktualizáciu (<update></update>).
  3. Dokument XML obsahujúci šablóny spätného zápisu skopírujte do schránky.
  4. Použite šablónu spätného zápisu v službe Oracle Analytics:
    1. Kliknite na položku Konzola a potom kliknite na položku Rozšírené systémové nastavenia.
    2. V sekcii Writeback Template XML (XML šablóny spätného zápisu) prilepte šablónu spätného zápisu, ktorú ste skopírovali v kroku 3.
  5. Udeľte povolenia na používanie kódu spätného zápisu:
    1. Prejdite na klasickú domovskú stránku a kliknite na položku Administrácia.
    2. V sekcii Zabezpečenie kliknite na položku Spravovať privilégiá a prejdite do sekcie Spätný zápis.
    3. Autentifikovanému používateľovi udeľte povolenie Spätný zápis do databázy.
    4. Administrátorovi služby BI Service udeľte povolenie Spravovať spätný zápis.
  6. Aktivujte spätný zápis v stĺpcoch:
    1. V editore analýzy zobrazte vlastnosti stĺpca, pre ktorý chcete aktivovať spätný zápis.
    2. V dialógovom okne Vlastnosti stĺpca kliknite na kartu Spätný zápis.
      Ak je pre stĺpec aktivovaný spätný zápis v sémantickom modeli, políčko Aktivovať spätný zápis je dostupné.
    3. Vyberte voľbu Aktivovať spätný zápis.
    4. Ak chcete zmeniť predvolené hodnoty, zadajte hodnoty ďalších volieb.
    5. Uložte vykonané zmeny.
    V stĺpci bude aktivovaný spätný zápis vo všetkých analýzach, ktoré tento stĺpec obsahujú.
  7. Aktivujte spätný zápis v tabuľkových zobrazeniach:
    1. V editore analýzy otvorte tabuľkové zobrazenie na úpravu.
    2. Kliknite na položku Vlastnosti zobrazenia.
    3. V dialógovom okne Vlastnosti tabuľky kliknite na kartu Spätný zápis.
    4. Vyberte voľbu Aktivovať spätný zápis.
    5. Vyberte pole Názov šablóny a v šablóne spätného zápisu, ktorú ste zadali v kroku 2, zadajte hodnotu parametra "WebMessage name=".
      Príklad: Názov šablóny pre vzorovú šablónu v kroku 2 je "SetQuotaUseID".
    6. Uložte vykonané zmeny.

Obmedzenia spätného zápisu

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.

Vytvorenie súborov šablóny spätného zápisu

Š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í.

Požiadavky na šablónu spätného zápisu

Š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í.

      XML na karte Rozšírené v editore analýzy

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