Distribuera återskrivning

Med återskrivning kan användarna uppdatera data från analyser.

Avsnitt:

Om återskrivning för administratörer

Med återskrivning kan användarna uppdatera data direkt från infopaneler och analyser.

Användare med behörigheten Återskrivning till databas ser återskrivningsfält som redigerbara fält i analyser. De värden de anger sparas till databasen. Användare som saknar behörigheten Återskrivning till databas ser återskrivningsfält som skrivskyddade fält.

Om en användare skriver in ett värde i ett redigerbart fält och klickar på återskrivningsknappen så kör applikationen det SQL-kommando för insert eller update som angetts i en återskrivningsmall. Om kommandot utförs uppdateras analysen med det nya värdet. Om ett fel uppstår, antingen vid läsning av mallen eller vid körning av SQL-kommandot, visas ett felmeddelande.

Kommandot insert körs när en post inte finns än och användaren anger nya data i tabellen. I det här fallet har en användare skrivit i en tabellpost vars ursprungliga värde var null. Kommandot update körs när en användare ändrar befintliga data. Om du vill visa en post som ännu inte finns i den fysiska tabellen kan du skapa en annan liknande tabell. Använd den här liknande tabellen för att visa platshållarposter som en användare kan ändra.

Obs!:

När du skapar återskrivningsmallar måste du inkludera ett kommando av typen insert och ett av typen update även om inte båda används. Om du t.ex. bara utför en insert måste du inkludera en tom update-sats, <update></update>, som i den här XML-koden:

Här är ett exempel på en XML-fil för återskrivning som innehåller två insert-kommandon och två tomma update-satser. Mer information om hur du skapar och strukturerar XML-filer för återskrivning finns i Skapa filer för återskrivningsmallar.
<?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>

Aktivera återskrivning i analyser och infopaneler

Administratörer kan ge användarna möjlighet att redigera data i analyser och infopaneler.

  1. Ställ in den semantiska modellen.

    Obs!:

    Följ de här stegen om du använder modelladministrationsverktyget till att utveckla semantiska modeller. Om du använder semantikmodelleraren, se

    Aktivera återskrivning på kolumner .

    1. Öppna den semantiska modellen (.rpd-fil) i modelladministrationsverktyget.
    2. I hårdvarulagret dubbelklickar du på den fysiska tabell som innehåller kolumnen du vill aktivera återskrivning för.
    3. På fliken Allmänt i dialogrutan Fysisk tabell kontrollerar du att Cachebar inte är markerat. Genom att avmarkera alternativet säkerställer du att användare av presentationstjänsterna kan se uppdateringar omedelbart.
    4. Klicka på motsvarande logiska kolumn i lagret Affärsmodell och mappning.
    5. I dialogrutan Logisk kolumn väljer du Skrivbar och klickar på OK.
    6. I lagret Presentation dubbelklickar du på kolumnen motsvarande den logiska kolumn för vilken du aktiverade återskrivning.
    7. I dialogrutan Presentationskolumn klickar du på Behörigheter.
    8. Välj behörigheten Läs/skriv för lämpliga användare och applikationsroller.
    9. Spara ändringarna.
  2. Skapa ett XML-dokument med din återskrivningsmall (eller mallar). Se Skapa filer för återskrivningsmallar.

    XML-dokumentet kan innehålla flera mallar. I det här exemplet visas ett XML-dokument som innehåller två mallar (SetQuotaUseID och 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>
    Obs! Du måste inkludera ett element av typen <insert> och ett av typen <update>, även om inte båda ska användas. Om du till exempel bara utför en insert måste du inkludera den tomma update-satsen <update></update>.
  3. Kopiera XML-dokumentet som innehåller återskrivningmallen till urklipp.
  4. Tillämpa återskrivningsmallen i Oracle Analytics:
    1. Klicka på Konsol och klicka sedan på Systeminställningar.
    2. I XML-mall för återskrivning klistrar du in återskrivningsmallen som du kopierade i steg 3.
  5. Bevilja behörigheter att använda återskrivningskoden:
    1. Navigera till den klassiska hemsidan och klicka sedan på Administration.
    2. Under Säkerhet klickar du på Hantera behörigheter och navigerar till Återskrivning.
    3. Tilldela Återskrivning till databas till Autentiserad användare.
    4. Tilldela Hantera återskrivning till BI-tjänsteadministratör.
  6. Så här aktiverar du återskrivning i kolumner:
    1. Gå till analysredigeraren och visa kolumnegenskaperna för kolumnen som du vill aktivera återskrivning för.
    2. I dialogrutan Kolumnegenskaper klickar du på fliken Återskrivning.
      Om kolumnen har aktiverats för återskrivning i den semantiska modellen är rutan Aktivera återskrivning tillgänglig.
    3. Välj alternativet Aktivera återskrivning.
    4. Ange värdet för övriga alternativ om du vill ändra standardvärdet.
    5. Spara ändringarna.
    Kolumnen aktiveras för återskrivning i alla analyser som inkluderar den här kolumnen.
  7. Så här aktiverar du återskrivning i tabellvyer:
    1. Öppna tabellvyn för redigering i analysredigeraren.
    2. Klicka på Visa egenskaper.
    3. I dialogrutan Tabellegenskaper klickar du på fliken Återskrivning.
    4. Välj alternativet Aktivera återskrivning.
    5. Välj rutan Mallnamn och ange värdet för "WebMessage name=" i återskrivningsmallen som du angav i Steg 2.
      För exempelmallen i Steg 2 är Mallnamn "SetQuotaUseID".
    6. Spara ändringarna.

Begränsningar med återskrivning

Användare kan göra återskrivningar till alla datakällor som tillåter exekvering av SQL-frågor från Oracle Analytics .

När du konfigurerar för återskrivning ska du hålla följande begränsningar i åtanke:

  • Numeriska kolumner får endast innehålla siffror. De får inte innehålla några dataformateringstecken som dollartecken ($), pundtecken, nummertecken (#) eller procenttecken (%).

  • Textkolumner får endast innehålla strängdata.

  • Om en inloggad användare redan visar en infopanel som innehåller en analys i vilken data har ändrats med återskrivning förnyas dessa data inte automatiskt i infopanelen. Användaren måste förnya infopanelen manuellt för att kunna se uppdaterade data.

  • Du kan bara använda mallmekanismen med tabellvyer och endast för data med enkelvärden. Mallmekanismen stöds inte för pivottabellvyer eller någon annan typ av vy, för flervärdesdata eller för listrutekolumner med data med enkelvärde.

  • Alla värden i återskrivningskolumner är redigerbara. Vid visning i en kontext som inte är utskriftsanpassad visas redigerbara fält som om användaren har behörigheten Återskrivning till databas. När en logisk kolumn är mappad till en fysisk kolumn som kan ändras returnerar emellertid den logiska kolumnen värden för flera nivåskärningspunkter. Det här scenariot kan orsaka problem.

  • Alla fält i en analys kan flaggas som ett återskrivningsfält, till och med om de inte kan härledas till den återskrivningstabell du skapat. Du kan emellertid inte köra återskrivningsåtgärden om tabellen inte har aktiverats för återskrivning. Innehållsdesignern har ansvaret för att fälten taggas rätt.

  • En mall kan innehålla andra SQL-satser än insert och update. Återskrivningsfunktionen överför dessa satser till databasen. Oracle stöder eller rekommenderar emellertid inte användningen av några andra satser än insert och update.

  • Oracle Analytics utför endast minimal validering av datainmatningar. Om fältet är numeriskt och användaren anger textdata upptäcker Oracle Analytics det och hindrar dessa ogiltiga data från att införas i databasen. Däremot upptäcks inte andra former av ogiltiga indata (värden som ligger utanför intervallet, indata som är en blandning av text och numeriska data osv.). När användaren klickar på återskrivningsknappen och en infogning eller uppdatering körs resulterar ogiltiga data i ett felmeddelande från databasen. Sedan kan användaren korrigera den felaktiga inmatningen. Innehållskonstruktörer kan inkludera text i återskrivningsanalysen för att hjälpa användaren, till exempel "Det är inte tillåtet att ange en blandning av alfanumeriska värden i ett fält för numeriska data".

  • Mallmekanismen passar inte för att ange vilka nya poster som helst. Du ska med andra ord inte använda den som ett verktyg för datainmatning.

  • När du skapar en tabell för återskrivning ska du se till att åtminstone en kolumn inte inkluderar återskrivningskapacitet, utan inkluderar värden som är unika för varje rad och som inte är null.

  • Återskrivningsanalyser har inte stöd för nedborrning. I och med att nedborrning ändrar tabellstrukturen fungerar inte återskrivningsmallen.

    Varning:

    Mallmekanismen tar användarinmatningar och skriver dem direkt till databasen. Du har ansvaret för den fysiska databasens säkerhet. För optimal säkerhet ska du lagra databastabeller för återskrivning i en unik databasinstans.

Skapa filer för återskrivningsmallar

En återskrivningsmallfil är en XML-formaterad fil som innehåller en eller flera återskrivningsmallar.

En återskrivningsmall består av ett WebMessage-element som anger mallens namn, anslutningspoolen och de SQL-satser som behövs för att infoga och uppdatera poster i de tabeller och kolumner för återskrivning som du skapat. När innehållskonstruktörer aktiverar en tabellvy för återskrivning måste de ange namnet på återskrivningsmallen som ska användas till att infoga och uppdatera posterna i tabellvyn.

Krav för en återskrivningsmall

En återskrivningsmall måste uppfylla följande krav:

  • WebMessage: Du måste ange ett namn på återskrivningsmallen med attributet name i WebMessage-elementet.

    Om återskrivningen ska fungera på rätt sätt måste innehållskonstruktören ange namnet på återskrivningsmallen som ska användas till att infoga och uppdatera posterna i vyn när innehållskonstruktören aktiverar en tabellvy för återskrivning.

    I det här exemplet visas en återskrivningsmall med namnet SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: För att uppfylla säkerhetskraven måste du ange anslutningspoolen ihop med SQL-kommandona för att infoga och uppdatera poster. Dessa SQL-kommandon refererar till de värden som överförs i återskrivningsschemat för att generera SQL-satserna för att ändra databastabellen.

  • VALUES: kolumnvärden kan refereras per kolumn-id eller kolumnposition. Användning av kolumn-id rekommenderas.

    Placera sträng- och datumvärden inom apostrofer. Apostrofer behövs inte runt numeriska värden.

    • Kolumn-id – varje kolumn-id är alfanumeriskt och slumpmässigt genererat. Du hittar kolumn-id:n i XML-definitionen för analysen som finns på fliken Avancerat i analysredigeraren. Det kan till exempel vara kolumn-id-värden som: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      När du använder kolumn-id:n fungerar återskrivningen också när kolumnernas ordning ändras.

      XML på fliken Avancerat i analysredigeraren

    • Kolumnposition – kolumnpositionernas numrering går från 1. Det kan till exempel vara kolumnpositionsvärden som: @1, @3, '@5'

      Om kolumnernas ordning ändras slutar återskrivningen att fungera. Därför rekommenderas du att använda kolumn-id:n.

  • Du måste inkludera ett element av typen <insert> och ett av typen <update> i mallen. Om du inte vill inkludera SQL-kommandon i elementen måste du infoga ett blanksteg mellan den inledande och avslutande taggen. Du måste till exempel ange elementet som:

    <insert> </insert>
    

    Istället för:

    <insert></insert>
    

    Om du utelämnar blanksteget visas ett felmeddelande för återskrivning, t.ex. "Systemet kan inte läsa återskrivningsmallen min_mall".

  • Om en parameters datatyp inte är ett heltal eller ett reellt tal omger du det med apostrofer. Om databasen inte utför bekräftelser automatiskt lägger du till den valfria postUpdate-noden efter insert- och update-noderna för att tvinga igenom bekräftelsen. postUpdate-noden ser vanligen ut ungefär så här:

    <postUpdate>COMMIT</postUpdate>
    

Exempel på återskrivningsmallfil med kolumn-id-syntax

En återskrivningsmallfil som refererar värden per kolumn-id kan se ut ungefär så här:

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

Exempel på återskrivningsmallfil med kolumnpositionssyntax

En återskrivningsmallfil som refererar värden per kolumnposition kan se ut ungefär så här:

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