Nasazení zpětného zápisu

Zpětný zápis umožňuje uživatelům aktualizovat přímo z analýz.

Témata:

Informace o zpětném zápisu pro správce

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:

Zde je uveden ukázkový soubor XML zpětného zápisu, který obsahuje dva příkazy 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>

Aktivovat zpětný zápis v analýzách a panelech

Správci mohou povolit uživatelům úpravu dat v analýzách a panelech.

  1. Nastavte svůj sémantický model.

    Poznámka:

    Tento postup proveďte, pokud k vývoji sémantických modelů používáte Nástroj pro správu modelu. Pokud používáte nástroj Semantic Modeler, viz

    Povolení zpětného zápisu do sloupců .

    1. V Nástroji pro správu modelu otevřete svůj sémantický model (soubor .rpd).
    2. Ve vrstvě Fyzické dvojitě klikněte na fyzickou tabulku obsahující sloupec, pro který chcete aktivovat zpětný zápis.
    3. Na kartě Obecné dialogového okna Fyzická tabulka zkontrolujte, že je vypnuta volba Uložitelné do paměti cache. Vypnutím této volby zajistíte, aby uživatelé služeb Presentation Services viděli aktualizace okamžitě.
    4. Ve vrstvě Model a mapování dvojitě klikněte na odpovídající logický sloupec.
    5. V dialogovém okně Logický sloupec vyberte položku Zapisovatelný a poté klikněte na tlačítko OK.
    6. Ve vrstvě Prezentace dvojitě klikněte na sloupec, který odpovídá logickému sloupci, pro který aktivujete zpětný zápis.
    7. V dialogovém okně Sloupec prezentace klikněte na položku Oprávnění.
    8. Vyberte oprávnění Čtení/zápis pro příslušné uživatele a role skupin.
    9. Uložte provedené změny.
  2. Vytvořte dokument XML pomocí šablony (nebo šablon) zpětného zápisu. Prostudujte si téma Vytváření souborů šablon zpětného zápisu.

    Dokument XML může obsahovat více šablon. Tento příklad ukazuje dokument XML, který obsahuje dvě šablony (SetQuotaUseIDSetForecastUseID).

    <?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: Musíte zahrnout prvek <insert> a prvek <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>.
  3. Zkopírujte dokument XML obsahující šablony zpětného zápisu do schránky.
  4. Aplikujte šablonu zpětného zápisu ve službě Oracle Analytics:
    1. Klikněte na položku Konzola, poté klikněte na položku Nastavení systému.
    2. Do pole Kód XML šablony zpětného zápisu vložte šablonu zpětného zápisu, kterou jste zkopírovali v kroku 3.
  5. Přidělte oprávnění k použití kódu zpětného zápisu:
    1. Přejděte na klasickou domovskou stránku a poté klikněte na volbu Správa.
    2. V části Zabezpečení klikněte na Správa oprávnění a přejděte do části Zpětný zápis.
    3. Udělte oprávnění Zpětný zápis do databáze ověřenému uživateli.
    4. Udělte oprávnění Správa zpětného zápisu správci služeb BI.
  6. Postup aktivace zpětného zápisu ve sloupcích:
    1. V editoru analýz zobrazte údaj Vlastnosti sloupce toho sloupce, u kterého chcete aktivovat zpětný zápis.
    2. V dialogovém okně Vlastnosti sloupce klikněte na kartu Zpětný zápis.
      Pokud byl pro sloupec povolen zpětný zápis v sémantickém modelu, je k dispozici políčko Povolit zpětný zápis.
    3. Zapněte volbu Povolit zpětný zápis.
    4. Vyberte hodnoty dalších voleb, u kterých chcete změnit výchozí údaje.
    5. Uložte provedené změny.
    Sloupec má aktivován zpětný zápis v libovolné analýze, která ho zahrnuje.
  7. Postup aktivace zpětného zápisu v zobrazeních tabulky:
    1. V editoru analýzy otevřete tabulkové zobrazení pro úpravy.
    2. Klikněte na volbu Zobrazit vlastnosti.
    3. V dialogovém okně Vlastnosti tabulky klikněte na kartu Zpětný zápis.
    4. Zapněte volbu Povolit zpětný zápis.
    5. Zapněte políčko Název šablony, určete hodnotu "WebMessage name=" zadanou v šabloně zápisu určené v kroku 2.
      Příklad: Název šablony pro ukázkovou šablonu v kroku 2 je 'SetQuotaUseID'.
    6. Uložte provedené změny.

Omezení zpětného zápisu

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ž insertupdate. 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ž insertupdate 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.

Vytváření souborů šablon zpětného zápisu

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.

Požadavky na šablonu zpětného zápisu

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

      Kód XML na kartě Rozšířené v editoru analýz

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