Tage tilbageskrivning i brug

Med tilbageskrivning kan brugere opdatere data fra analyser.

Emner:

Om tilbageskrivning for administratorer

Med tilbageskrivning kan brugere opdatere dine data direkte fra instrumentbrætter og analyser.

Brugere med privilegiet Skriv tilbage til database kan se tilbageskrivningsfelter som redigerbare felter i analyser. De værdier, som de angiver, gemmes i databasen. Brugere uden privilegiet Skriv tilbage til database kan se tilbageskrivningsfelter som skrivebeskyttede felter.

Hvis en bruger indtaster en værdi i et redigerbart felt og klikker på tilbageskrivningsknappen, kører applikationen den insert- eller update-SQL-kommando, der er defineret i en tilbageskrivningsskabelon. Hvis det lykkes at udføre kommandoen, opdateres analysen med den nye værdi. Hvis der opstår fejl ved enten læsning af skabelonen eller kørsel af SQL-kommandoen, vises en fejlmeddelelse.

Kommandoen insert køres, når en record endnu ikke eksisterer, og brugeren indtaster nye data i tabellen. I dette tilfælde har en bruger indtastet en tabel-record, hvor værdien oprindeligt var NULL. Kommandoen update køres, når en bruger modificerer eksisterende data. For at vise en record, der endnu ikke findes i den fysiske tabel, kan du oprette en anden tilsvarende tabel. Brug den tilsvarende tabel til at vise pladsholder-records, som en bruger kan ændre.

Bemærk:

Når du opretter tilbageskrivningsskabeloner, skal du inkludere både en insert-kommando og en update-kommando, selvom de ikke bruges begge to. Hvis du for eksempel kun udfører en insert, skal du inkludere en tom update-sætning <update></update>, som i denne XML-kode:

Her er et eksempel på en XML-tilbageskrivningsfil, der indeholder to insert-kommandoer og to tomme update-sætninger. Se Oprette filer til tilbageskrivningsskabeloner for at få flere oplysninger om at oprette og strukturere XML-tilbageskrivningsfiler.
<?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>

Aktivere tilbageskrivning i analyser og instrumentbrætter

Administratorer kan give brugere adgang til at redigere dataene i analyser og instrumentbrætter.

  1. Konfigurer din semantiske model.

    Bemærk:

    Følg disse trin, hvis du bruger Model Administration Tool til at udvikle semantiske modeller. Hvis du bruger Semantic Modeler, skal du se

    Enable Write Back On Columns .

    1. Åbn din semantiske model (.rpd-fil) i Model Administration Tool.
    2. Dobbeltklik på den fysiske tabel i laget Fysisk, der indeholder kolonnen, som du vil aktivere tilbageskrivning for.
    3. Kontroller, at Kan caches ikke er valgt på fanen Generelt i dialogboksen Fysisk tabel. Ved at fravælge dette valg sikrer du, at Presentation Services-brugere kan se opdateringer med det samme.
    4. Dobbeltklik på den tilsvarende logiske kolonne i laget Forretningsmodel og mapping.
    5. Vælg Kan skrives til i dialogboksen Logisk kolonne, og klik derefter på OK.
    6. Dobbeltklik på den kolonne i laget Præsentation, der svarer til den logiske kolonne, som du har aktiveret tilbageskrivning for.
    7. Klik på Tilladelser i dialogboksen Præsentationskolonne.
    8. Vælg tilladelsen Læs/skriv for de relevante brugere og applikationsroller.
    9. Gem dine ændringer.
  2. Opret et XML-dokument med din tilbageskrivningsskabelon (eller dine tilbageskrivningsskabeloner). Se Oprette filer til tilbageskrivningsskabeloner.

    Dit XML-dokument kan indeholde flere skabeloner. Dette eksempel viser et XML-dokument, der indeholder to skabeloner (SetQuotaUseID og 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>
    Bemærk: Du skal medtage et <insert>-element og et <update>-element, selvom de ikke begge bruges. Hvis du for eksempel kun udfører en insert, skal du medtage den tomme update-sætning <update></update>.
  3. Kopier det XML-dokument, der indeholder dine tilbageskrivningsskabeloner, til udklipsholderen.
  4. Anvend din tilbageskrivningsskabelon i Oracle Analytics:
    1. Klik på Konsol, og klik derefter på Systemindstillinger.
    2. Indsæt den tilbageskrivningsskabelon, som du kopierede i trin 3, i Tilbageskrivningsskabelon-XML.
  5. Tildel tilladelser til brug af tilbageskrivningskoden:
    1. Naviger til Klassisk startside, og klik derefter på Administration.
    2. Klik på Håndter privilegier under Sikkerhed, og naviger til Skriv tilbage.
    3. Tildel Skriv tilbage til database til Autentificeret bruger.
    4. Tildel Håndter tilbageskrivning til BI-tjenesteadministrator.
  6. Sådan aktiverer du tilbageskrivning i kolonner:
    1. I analyseeditoren skal du vise kolonneegenskaberne for den kolonne, som du vil aktivere tilbageskrivning for.
    2. Klik på fanen Skriv tilbage i dialogboksen Egenskaber for kolonne.
      Hvis kolonnen er aktiveret til tilbageskrivning i den semantiske model, er afkrydsningsfeltet Aktiver tilbageskrivning tilgængeligt.
    3. Marker valget Aktiver tilbageskrivning.
    4. Angiv værdien for andre valg, hvor du vil ændre standardværdien.
    5. Gem dine ændringer.
    Kolonnen aktiveres til tilbageskrivning i alle analyser, der indeholder kolonnen.
  7. Sådan aktiverer du tilbageskrivning i tabelvisninger:
    1. Åbn tabelvisningen til redigering i analyseeditoren.
    2. Klik på Vis egenskaber.
    3. Klik på fanen Skriv tilbage i dialogboksen Egenskaber for tabel.
    4. Marker valget Aktiver tilbageskrivning.
    5. Marker feltet Skabelonnavn, angiv den værdi for "WebMessage name=" i den tilbageskrivningsskabelon, som du har angivet i trin 2.
      Skabelonnavn til eksempelskabelonen i trin 2 er for eksempel 'SetQuotaUseID'.
    6. Gem dine ændringer.

Tilbageskrivningsbegrænsninger

Brugere kan skrive tilbage til enhver datakilde, der tillader udførelsen af SQL-forespørgsler fra Oracle Analytics .

Når du konfigurerer for tilbageskrivning, skal du overveje følgende begrænsninger:

  • Numeriske kolonner må kun indeholde tal. De må ikke indeholde nogen dataformateringstegn såsom dollartegn ($), firkanter eller hash-tegn (#), procenttegn (%) osv.

  • Tekstkolonner må kun indeholde strengdata.

  • Hvis en bruger, der er logget på, allerede ser et instrumentbræt, som indeholder en analyse, hvor data er blevet modificeret vha. tilbageskrivning, opfriskes dataene ikke automatisk i instrumentbrættet. For at kunne se de opdaterede data skal brugeren manuelt opfriske instrumentbrættet.

  • Du kan kun bruge skabelonmekanismen sammen med tabelvisninger og kun til enkeltværdidata. Skabelonmekanismen understøttes ikke til pivottabelvisninger eller nogen anden type af visning, til flerværdidata eller til rullekolonner med enkeltværdidata.

  • Alle værdier i tilbageskrivningskolonner kan redigeres. Når de vises i ikke-printervenlig kontekst, vises redigerbare felter, som om brugeren har privilegiet Skriv tilbage til database. Men når en logisk kolonne mappes til en fysisk kolonne, der kan ændres, returnerer den logiske kolonne værdier for flere niveauskæringspunkter. Dette scenarie kan give problemer.

  • Ethvert felt i en analyse kan markeres som et tilbageskrivningsfelt, selvom det ikke er afledt fra den tilbageskrivningstabel, som du har oprettet. Men du kan ikke køre tilbageskrivningsoperationen, hvis tabellen ikke er aktiveret til tilbageskrivning. Ansvaret for korrekt tagging af felter påhviler indholdsdesigneren.

  • En skabelon kan indeholde andre SQL-sætninger end insert og update. Tilbageskrivningsfunktionen videregiver disse sætninger til databasen. Men Oracle hverken understøtter eller anbefaler brugen af andre sætninger end insert og update.

  • Oracle Analytics udfører kun minimal validering af datainput. Hvis feltet er numerisk, og brugeren indtaster tekstdata, registrerer Oracle Analytics det og forhindrer ugyldige data i at gå til databasen. Men det registrerer ikke andre former for ugyldige datainput (værdier uden for interval, blandet tekst og numeriske data osv.). Når brugeren klikker på tilbageskrivningsknappen, og en indsætning eller opdatering køres, medfører ugyldige data en fejlmeddelelse fra databasen. Brugeren kan derefter rette fejlinputtet. Indholdsdesignere kan medtage tekst i tilbageskrivningsanalysen for at hjælpe brugeren, for eksempel "Indtastning af blandede alfanumeriske værdier i et numerisk datafelt er ikke tilladt".

  • Skabelonmekanismen er ikke egnet til indtastning af tilfældige nye records. Du skal med andre ord ikke bruge den som værktøj til datainput.

  • Når du opretter en tabel til tilbageskrivning, skal du sørge for, at mindst én kolonne ikke indeholder tilbageskrivningsfunktion, men indeholder værdier, der er entydige for hver række og ikke er NULL.

  • Tilbageskrivningsanalyser understøtter ikke nedboring. Fordi nedboring modificerer tabelstrukturen, fungerer tilbageskrivningsskabelonen ikke.

    Forsigtig:

    Skabelonmekanismen tager brugerinput og skriver det direkte til databasen. Sikkerheden af den fysiske database er dit eget ansvar. For at få optimal sikkerhed skal du lagre databasetabeller til tilbageskrivning i en entydig databaseinstans.

Oprette filer til tilbageskrivningsskabeloner

En skabelonfil til tilbageskrivning er en XML-formateret fil, som indeholder en eller flere tilbageskrivningsskabeloner.

En tilbageskrivningsskabelon består af et WebMessage-element, der angiver navnet på skabelonen, forbindelsespuljen og de SQL-sætninger, der er nødvendige for at indsætte og opdatere records i de tilbageskrivningstabeller og -kolonner, som du har oprettet. Når indholdsdesignere aktiverer en tabelvisning til tilbageskrivning, skal de angive navnet på den tilbageskrivningsskabelon, der skal bruges til at indsætte og opdatere records i tabelvisningen.

Krav til en tilbageskrivningsskabelon

En tilbageskrivningsskabelon skal opfylde følgende krav:

  • WebMessage: Du skal angive et navn til tilbageskrivningsskabelonen vha. attributten name i elementet WebMessage.

    For at få tilbageskrivning til at fungere korrekt, når en tabelvisning aktiveres til tilbageskrivning, skal en indholdsdesigner angive navnet på den tilbageskrivningsskabelon, der skal bruges til at indsætte og opdatere records i visningen.

    Dette eksempel viser en tilbageskrivningsskabelon kaldet SetQuotaUseID.

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: For at opfylde sikkerhedskrav skal du angive forbindelsespuljen sammen med SQL-kommandoerne for at indsætte og opdatere records. Disse SQL-kommandoer refererer til de værdier, der videregives i tilbageskrivningsskemaet for at generere SQL-sætningerne til modificering af databasetabellen.

  • VALUES: Kolonneværdier kan refereres til af enten kolonne-id eller kolonneposition. Brugen af kolonne-id foretrækkes.

    Indsæt streng- og datoværdier i enkelte anførselstegn. Enkelte anførselstegn er ikke påkrævet til numeriske værdier.

    • Kolonne-id - Hver kolonne-id er alfanumerisk og vilkårligt genereret. Du kan finde kolonne-id'er i XML-definitionen af analysen, der er tilgængelig på fanen Avanceret i analyseeditoren. For eksempel kolonne-id-værdier som: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      Når du bruger kolonne-id'er, fortsætter tilbageskrivning med at fungere, selvom rækkefølgen af kolonner ændres.

      XML på fanen Avanceret i analyseeditoren

    • Kolonneposition - Kolonnepositioner starter nummerering med 1. For eksempel værdier for kolonneposition som: @1, @3, '@5'

      Hvis rækkefølgen af kolonner ændres, fungerer tilbageskrivning ikke længere, og det er årsagen til, at kolonne-id'er foretrækkes.

  • Du skal medtage både et <insert>- og et <update>-element i skabelonen. Hvis du ikke vil medtage SQL-kommandoer i elementerne, skal du indsætte et tomt mellemrum mellem åbnings- og afslutnings-tags. Du skal for eksempel indtaste elementet som:

    <insert> </insert>
    

    I stedet for:

    <insert></insert>
    

    Hvis du udelader det tomme mellemrum, kan du se en fejlmeddelelse om tilbageskrivning såsom "Systemet kan ikke læse tilbageskrivningsskabelonen 'my_template'".

  • Hvis en parameters datatype ikke er et heltal eller reelt tal, skal du tilføje enkelte anførselstegn omkring det. Hvis databasen ikke udfører bekræftelser automatisk, skal du tilføje den valgfrie postUpdate-node efter insert- og update-noderne for at gennemtvinge bekræftelsen. Noden postUpdate følger typisk dette eksempel:

    <postUpdate>COMMIT</postUpdate>
    

Eksempel på skabelonfil til tilbageskrivning vha. kolonne-id-syntaks

En skabelonfil til tilbageskrivning, som refererer til værdier efter kolonne-id, kan ligne dette eksempel:

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

Eksempel på skabelonfil til tilbageskrivning, der bruger syntaks for kolonneposition

En skabelonfil til tilbageskrivning, som refererer til værdier efter kolonneposition, kan ligne dette eksempel:

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