A visszaírás funkció lehetővé teszi, hogy a felhasználók az adatokat az elemzésekből frissítsék.
Témakörök:
A visszaírás funkció lehetővé teszi, hogy a felhasználók az adatokat közvetlenül az irányítópultokról és az elemzésekből frissítsék.
A Visszaírás adatbázisba jogosultsággal rendelkező felhasználók az elemzésekben szerkeszthetőként látják a visszaírható mezőket. Az oda beírt értékek az adatbázisba lesznek mentve. A Visszaírás adatbázisba jogosultsággal nem rendelkező felhasználók a visszaírható mezőket írásvédett mezőként látják.
Ha a felhasználó szerkeszthető mezőbe ír be értéket, és rákattint a visszaírás gombra, akkor az alkalmazás lefuttatja a visszaírási sablonban definiált insert
vagy update
SQL-parancsot. Ha a parancs végrehajtása sikeres, az elemzés módosul az új értékkel. Ha hiba következik be a sablon olvasásakor vagy az SQL-parancs futtatásakor, hibaüzenet jelenik meg.
Az insert
parancs akkor fut, ha még nem létezett bejegyzés, de a felhasználó beírt új adatot a táblába. Ebben az esetben a felhasználó egy olyan táblarekordba gépelt, amelyben az eredeti érték null volt. Az update
parancs akkor fut, ha a felhasználó létező adatot módosított. A fizikai táblában még nem létező bejegyzés (rekord) megjelenítéséhez létrehozhat másik hasonló táblát. Ez a hasonló tábla használható olyan helyőrző rekordok megjelenítéséhez, amelyeket a felhasználó módosíthat.
Megjegyzés:
Ha visszaírási sablont hoz létre, bele kell foglalnia egy insert
és egy update
parancsot akkor is, ha nem használja mindkettőt. Ha például csak egy insert
feladatot végez, egy üres update
utasítást <update></update>
, is bele kell foglalnia, mint ebben az XML-kódban:
insert
parancsot és két üres update
utasítást tartalmaz. További információért a visszaírási XML-fájlok létrehozásáról és strukturálásáról lásd: Visszaírási sablonfájlok létrehozása.
<?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>
A rendszergazdák engedélyezhetik, hogy a felhasználók az elemzésekben és az irányítópultokon az adatokat módosítsák.
A felhasználók visszaírhatnak minden olyan adatforrásba, amely engedélyezi az Oracle Analytics szolgáltatásból származó SQL-lekérdezéseket.
A visszaírás konfigurálása közben ne feledkezzen meg a következő korlátozásokról:
A numerikus oszlopok csak oszlopokat tartalmazhatnak. Nem tartalmazhatnak olyan adatformázó karaktereket, mint a dollárjel ($), a fontjel, a kettőskereszt (#), a százalékjel (%) stb.
A szöveges oszlopok csak sztringadatokat tartalmazhatnak.
Ha egy bejelentkezett felhasználó már nézi azt az irányítópultot, amelyik olyan elemzést tartalmaz, ahol az adatok a visszaírás használatával módosítva lettek, az adatok az irányítópulton nem frissülnek automatikusan. A frissített adatok megtekintéséhez a felhasználónak manuálisan kell frissíteni az irányítópultot.
A sablonmechanizmus csak táblanézetekkel és csak egy értéket tartalmazó adatokkal használható. A sablonmechanizmus nem támogatott kimutatástábla nézeteknél és semmi más nézettípusnál; több értékkel rendelkező adatoknál és egy értéket tartalmazó adatokkal rendelkező legördülő oszlopoknál.
A visszaírási oszlopok minden értéke szerkeszthető. Ha nem nyomtatóbarát környezetben jelenítik meg őket, a szerkeszthető mezők új jelennek meg, mintha a felhasználó rendelkezne a Visszaírás az adatbázisba jogosultsággal. Azonban ha egy logikai oszlopot megfeleltetnek egy olyan fizikai oszlopnak, amely módosulhat, a logikai oszlop több szintű metszetek értékeit adja vissza. Ez a helyzet problémákhoz vezethet.
Az elemzések bármely mezője megjelölhető visszaírási mezőként, akkor is, ha nem az Ön által létrehozott visszaírási táblából származik. Azonban nem futtatható sikeresen a visszaírási művelet, ha a táblázatnál nincs engedélyezve a visszaírás. A mezők megfelelő megcímkézéséért a tartalom tervezője felel.
Egy sablon tartalmazhat az insert
és update
utasításoktól eltérő SQL-utasításokat is. A visszaírás funkció átadja ezeket az utasításokat az adatbázisnak. Az Oracle azonban nem támogatja és nem javasolja az insert
és update
utasításoktól eltérő utasítások használatát.
Az Oracle Analytics csak minimális szintű érvényesítést végez az adatbevitelen. Ha a mező numerikus, és a felhasználó szöveges adatokat visz be, az Oracle Analytics észleli ezt, és megakadályozza, hogy az érvénytelen adatok az adatbázisba kerüljenek. Egyéb típusú érvénytelen adatbeviteleket azonban nem észlel (tartományon kívüli értékek, keveredő szöveges és numerikus adatok stb.). Ha a felhasználó a visszaírás gombra kattint, és a rendszer beszúrást vagy módosítást futtat, az érvénytelen adatok miatt az adatbázis hibaüzenetet jelenít meg. A felhasználói ezután kijavíthatja a hibás bevitelt. A tartalomtervezők hozzáadhatnak szöveget a visszaírási elemzéshez, hogy segítsék a felhasználót, például: "Nem engedélyezett kevert alfanumerikus értékek beírása numerikus adatokat tartalmazó mezőbe."
A sablonmechanizmus nem megfelelő tetszőleges új rekordok megadásához. Más szóval, nem használjuk adatbeviteli eszközként.
Amikor táblázatot hoz létre a visszaíráshoz, győződjön meg róla, hogy legalább egy olyan oszlop van, amely nem tartalmaz visszaírási képességet, de tartalmaz olyan értékeket, amelyek soronként egyediek és nem null értékűek.
A visszaírási elemzések nem támogatják a részletezést. A részletezés módosítja a tábla struktúráját, ezért a visszaírási sablon nem működik.
Vigyázat:
A sablonmechanizmus a felhasználói bevitelt közvetlenül az adatbázisba írja. A fizikai adatbázis biztonságáért Ön felel. Az optimális biztonság érdekében a visszaírási adatbázisok tábláit egyedi adatbázispéldányban tárolja.A visszaírási sablonfájl XML-formátumú fájl, amely egy vagy több visszaírási sablont tartalmaz.
A visszaírási sablon a következőkből áll: egy WebMessage
elem, amely meghatározza a sablon nevét, illetve a kapcsolatkészlet és az SQL-utasítások, amelyek ahhoz szükségesek, hogy rekordokat szúrjon be a létrehozott visszaírási táblákba vagy oszlopokba, valamint hogy ilyen rekordokat frissítsen. Ha a tartalomtervezők engedélyezik a táblanézetek visszaírását, meg kell határozniuk annak a visszaírási sablonnak a nevét, amelyet a rekordok beillesztéséhez és frissítéséhez kell használni tábla nézetben.
A visszaírási sablonoknak a következő követelményeknek kell megfelelniük:
WebMessage
: meg kell határozni a visszaírási sablon nevét a WebMessage elem name
attribútumának használatával.
A visszaírás akkor működik megfelelően, ha, amikor engedélyezi a tábla nézetek visszaírását, a tartalomtervezőnek meg kell határoznia annak a visszaírási sablonnak a nevét, amelyet a rekordok beillesztéséhez és frissítéséhez kell használni a nézetben.
A példában látható visszaírási sablon neve: SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: a biztonsági követelményeknek való megfelelés érdekében meg kell határoznia a kapcsolatkészletet, valamint a rekordok beillesztéséhez és frissítéséhez használandó SQL-parancsokat. Ezek az SQL-parancsok azokra az értékekre hivatkoznak, amelyeket a rendszer átad a visszaírási sémában az adatbázistábla módosításához használandó SQL-utasítások létrehozásához.
VALUES
: az oszlopértékekre hivatkozhatunk oszlopazonosító vagy oszloppozíció szerint. Az oszlopazonosító használata preferált.
A sztringet és a dátumértékeket aposztrófok vegyék körül. A numerikus értékeknél nem szükségesek az aposztrófok.
Oszlopazonosító – Minden oszlopazonosító alfanumerikus, véletlenszerűen generált. Az oszlopazonosítók az elemzés XML-definíciójában találhatók, amely az elemzésszerkesztő Speciális lapján érhető el. Példák oszlopazonosító értékekre: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Ha oszlopazonosítókat használ, a visszaírás akkor is működik, ha módosul az oszlopok sorrendje.
Oszloppozíció – Az oszlopok pozíciójának számozása 1-el kezdődik. Példák oszlopazonosító értékekre: @1
, @3
, '@5'
Ha módosul az oszlopok sorrendje, a visszaírás már nem működik - ezért preferált az oszlopazonosítók használata.
A sablonnak <insert>
és <update>
elemet is kell tartalmaznia. Ha nem szeretne SQL-parancsokat belefoglalni az elemekbe, akkor szóközt kell beszúrnia a nyitó és záró címkék közé. Az elemet például így kell megadnia:
<insert> </insert>
Nem pedig:
<insert></insert>
Ha kihagyja a szóközt, akkor visszaírási hibaüzenet jelenik meg, például: "A rendszer nem tudja olvasni a 'my_template' visszaírási sablont".
Ha egy paraméter adattípusa nem egész vagy valós szám, akkor foglalja aposztrófok közé. Ha az adatbázis nem végzi el automatikusan a Jóváhagyásokat, akkor adja hozzá az opcionális postUpdate
csomópontot az insert
és update
csomópontok után a jóváhagyás kényszerítéséhez. A postUpdate
csomópont többnyire ezt a példát követi:
<postUpdate>COMMIT</postUpdate>
Példa visszaírási sablonfájlra, amely oszlopazonosítós szintaxist használ
Egy visszaírási sablonfájl, amely oszlopazonosító szerint hivatkozik értékekre, a következő példára hasonlíthat:
<?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élda visszaírási sablonfájlra, amely oszloppozíciós szintaxist használ
Egy visszaírási sablonfájl, amely oszloppozíció szerint hivatkozik értékekre, a következő példára hasonlíthat:
<?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>