Met terugschrijven kunnen gebruikers gegevens vanuit analysen bijwerken.
Onderwerpen:
Met terugschrijven kunnen gebruikers uw gegevens rechtstreeks bijwerken vanaf dashboards en analysen.
Gebruikers met het recht Terugschrijven naar database zien in analysen velden voor terugschrijven als bewerkbare velden. De waarden die ze invoeren, worden in de database opgeslagen. Gebruikers zonder het recht Terugschrijven naar database zien velden voor terugschrijven als alleen-lezen velden.
Als een gebruiker een waarde in een bewerkbaar veld typt en op de knop 'Terugschrijven' klikt, voert de applicatie de SQL-opdracht insert
of update
uit die is gedefinieerd in een sjabloon voor terugschrijven. Als de opdracht is uitgevoerd, wordt de analyse met de nieuwe waarde bijgewerkt. Als er een fout optreedt bij het lezen van de sjabloon of het uitvoeren van de SQL-opdracht, wordt er een foutbericht weergegeven.
De opdracht insert
wordt uitgevoerd als er nog geen record bestaat en de gebruiker nieuwe gegevens in de tabel invoert. In dit geval heeft een gebruiker een tabelrecord ingevoerd waarvan de waarde oorspronkelijk null was. De opdracht update
wordt uitgevoerd als een gebruiker bestaande gegevens wijzigt. Als u een record wilt weergeven dat nog niet voorkomt in de fysieke tabel, kunt u een andere, soortgelijke tabel maken. Gebruik de soortgelijke tabel om plaatsaanduidingsrecords weer te geven die door een gebruiker kunnen worden gewijzigd.
Opmerking:
Wanneer u sjablonen voor terugschrijven maakt, moet u daarin een opdracht insert
en een opdracht update
opnemen, zelfs als beide niet worden gebruikt. Als u bijvoorbeeld alleen insert
uitvoert, moet u ook een leeg statement update
(<update></update>
) opnemen, zoals in deze XML-code:
insert
en twee lege statements update
. Zie Write-backsjabloonbestanden maken voor meer informatie over het maken en structureren van xml-bestanden voor terugschrijven.
<?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>
Beheerders kunnen gebruikers in staat stellen de gegevens in analysen en dashboards te bewerken.
Gebruikers kunnen terugschrijven naar elke gegevensbron die de uitvoering van SQL-zoekopdrachten vanuit Oracle Analytics toestaat.
Houd rekening met de volgende beperkingen als u gaat configureren voor terugschrijven:
Numerieke kolommen mogen alleen getallen bevatten. Ze mogen geen tekens voor tekenopmaak bevatten, zoals dollartekens ($), hekjes (#), procenttekens (%), enzovoort.
Tekstkolommen mogen alleen gegevensstrings bevatten.
Als een gebruiker die is ingelogd al een dashboard met een analyse bekijkt waarin de gegevens zijn gewijzigd via terugschrijven, worden de gegevens niet automatisch vernieuwd in het dashboard. Om de bijgewerkte gegevens weer te geven, moet de gebruiker het dashboard handmatig vernieuwen.
U kunt het sjabloonmechanisme alleen gebruiken met tabelweergaven en alleen voor enkele-waardegegevens. Het sjabloonmechanisme wordt niet ondersteund voor draaitabelweergaven of elk ander soort weergave, voor meerdere-waardengegevens of voor vervolgkeuzekolommen met enkele-waardegegevens.
Alle waarden in terugschrijfkolommen zijn bewerkbaar. Als bewerkbare velden in een niet-printervriendelijke context worden getoond, worden ze weergegeven alsof de gebruiker het recht Terugschrijven naar database heeft. Als een logische kolom echter wordt gekoppeld aan een fysieke kolom die kan veranderen, retourneert de logische kolom waarden voor meerdere niveausnijpunten. Dit scenario kan problemen veroorzaken.
Elk veld in een analyse kan worden gemarkeerd als een terugschrijfveld, zelfs als het is afgeleid van de terugschrijftabel die u hebt gemaakt. Het is echter niet mogelijk om de terugschrijfbewerking uit te voeren als de tabel niet is geactiveerd voor terugschrijven. De inhoudontwerper is verantwoordelijk voor het juist taggen van velden.
Een sjabloon kan andere SQL-statements bevatten dan insert
en update
. De terugschrijffunctie geeft deze statements door aan de database. Oracle biedt echter geen ondersteuning voor het gebruik van andere statements dan insert
of update
en adviseert dit ook niet.
Oracle Analytics voert slechts een minimale validatie van gegevensinvoer uit. Als het veld numeriek is en de gebruiker tekstgegevens invoert, detecteert Oracle Analytics dat en voorkomt dat de ongeldige gegevens in de database worden opgeslagen. Andere soorten ongeldige ingevoerde gegevens worden echter niet gedetecteerd (waarden buiten bereik, tekst en getallen door elkaar, enzovoort). Als de gebruiker op de knop voor terugschrijven klikt en er een 'invoegen'- of 'bijwerken'-bewerking wordt uitgevoerd, resulteren ongeldige gegevens in een foutbericht van de database. De gebruiker kan de onjuiste invoer vervolgens corrigeren. Inhoudontwerpers kunnen tekst opnemen in de terugschrijfanalyse om de gebruiker te helpen, zoals, "Het invoeren van alfanumerieke waarden in een numeriek veld is niet toegestaan."
Het sjabloonmechanisme is niet geschikt voor de invoer van willekeurige nieuwe records. Gebruik het mechanisme dus niet als een tool voor gegevensinvoer.
Als u een tabel voor terugschrijven maakt, zorg er dan voor dat ten minste één kolom geen mogelijkheid voor terugschrijven biedt. De tabel moet wel waarden bevatten die uniek zijn voor elke rij en die niet null zijn.
Terugschrijfanalyses bieden geen ondersteuning voor inzoomen. De reden hiervoor is dat bij inzoomen de tabelstructuur wordt gewijzigd en de terugschrijfsjabloon niet werkt.
Let op:
Het sjabloonmechanisme accepteert de invoer van de gebruiker en schrijft deze direct weg naar de database. De beveiliging van de fysieke database is uw eigen verantwoordelijkheid. Voor een optimale beveiliging moet u de databasetabellen voor terugschrijven opslaan in een unieke database-instance.Een write-backsjabloon is een bestand met XML-opmaak dat een of meer write-backsjablonen bevat.
Een write-backsjabloon bestaat uit een WebMessage
-element dat het volgende opgeeft: de naam van het sjabloon, de verbindingsgroep en de SQL-statements die nodig zijn voor het invoegen en bijwerken van records in de door u gemaakte write-backtabellen en -kolommen. Wanneer inhoudontwerpers een tabelweergave voor write back activeren, moeten ze de naam van het write-backsjabloon opgeven dat wordt gebruikt om de records in de tabelweergave in te voegen en bij te werken.
Een write-backsjabloon moet aan de volgende vereisten voldoen:
WebMessage
: u moet een naam voor het write-backsjabloon opgeven met behulp van het attribuut naam
in het WebMessage-element.
Voor een correcte werking van write-back, moet een inhoudontwerper bij het activeren van een tabelweergave voor write-back de naam van het write-backsjabloon opgeven dat moet worden gebruikt om de records in de weergave in te voegen en bij te werken.
Dit voorbeeld toont een write-backsjabloon met de naam SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: als u wilt voldoen aan de beveiligingsvereisten moet u de verbindingsgroep opgeven, evenals de SQL-opdrachten voor het invoegen en bijwerken van records. Deze SQL-opdrachten verwijzen naar de waarden die in het write-backschema zijn goedgekeurd voor het genereren van de SQL-statements waarmee de databasetabel wordt bewerkt.
VALUES
: er kan naar kolomwaarden worden verwezen met de kolom-ID of de kolompositie. Het gebruik van de kolom-ID heeft de voorkeur.
Omring string- en datumwaarden met enkele aanhalingstekens. Enkele aanhalingstekens zijn niet nodig voor numerieke waarden.
Kolom-ID: elke kolom-ID is alfanumeriek en willekeurig gegenereerd. U vindt kolom-ID's in de XML-definitie van de analyse die in het tabblad Geavanceerd van de analyse-editor beschikbaar is. Bijvoorbeeld kolom-ID-waarden zoals: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Wanneer u kolom-ID's gebruikt, blijft write-back werken zelfs als de volgorde van kolommen wijzigt.
Kolompositie: kolomposities beginnen met het cijfer 1. Bijvoorbeeld kolom-ID-waarden zoals: @1
, @3
, '@5'
Als de volgorde van kolommen wijzigt, werkt write-back niet meer. Dit is de reden waarom kolom-ID's de voorkeur hebben.
U moet in het sjabloon een element <insert>
en een element <update>
opnemen. Als u geen SQL-opdrachten in de elementen wilt opnemen, moet u een spatie tussen de openende en sluitende tags invoegen. U moet het element bijvoorbeeld als volgt invoeren:
<insert> </insert>
En niet op deze manier:
<insert></insert>
Als u geen spatie invoegt, dan krijgt u een write-backfoutmelding zoals "Het systeem kan het write-backsjabloon "my_template" niet lezen".
Als het gegevenstype van de parameter geen geheel getal of een reëel getal is, moet u het tussen enkele aanhalingstekens zetten. Als de database niet automatisch vastleggingen uitvoert, voegt u de optionele node postUpdate
toe na de nodes insert
en update
om de vastlegging te forceren. De node postUpdate
volgt normaliter dit voorbeeld:
<postUpdate>COMMIT</postUpdate>
Voorbeeld van een write-backsjabloonbestand met behulp van kolom-ID-syntax
Een write-backsjabloonbestand dat naar waarden verwijst door kolom-ID, kan er als volgt uitzien:
<?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>
Voorbeeld van een write-backsjabloonbestand met behulp van kolompositiesyntax
Een write-backsjabloonbestand dat naar waarden verwijst door kolompositie, kan er als volgt uitzien:
<?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>