Funkcja zapisu zwrotnego umożliwia użytkownikom aktualizowanie danych bezpośrednio z analiz.
Tematy:
Funkcja zapisu zwrotnego umożliwia użytkownikom aktualizowanie danych bezpośrednio z pulpitów informacyjnych i analiz.
Użytkownicy mający uprawnienie Zapisywanie zwrotne w bazie danych widzą w analizach pola z włączonym zapisem zwrotnym jako pola edytowalne. Wartości wprowadzane w tych polach są zapisywane w bazie danych. Użytkownicy niemający uprawnienia Zapisywanie zwrotne w bazie danych widzą pola z włączonym zapisem zwrotnym jako pola tylko do odczytu.
Jeśli użytkownik wpisze jakąś wartość w polu edytowalnym i naciśnie przycisk zapisu zwrotnego, aplikacja uruchomi polecenie SQL insert
lub update
zdefiniowane w szablonie zapisu zwrotnego. Jeśli polecenie zostanie pomyślnie wykonane, analiza jest aktualizowana z użyciem nowej wartości. Jeśli podczas odczytywania szablonu lub uruchamiania polecenia SQL wystąpi błąd, zostanie wyświetlony komunikat o błędzie.
Polecenie insert
jest uruchamiane, gdy rekord jeszcze nie istnieje, a użytkownik wprowadzi nowe dane do tabeli. Oznacza to, że użytkownik wpisał wartość w polu rekordu tabeli, które pierwotnie miało wartość Null. Polecenie update
jest uruchamiane, gdy użytkownik zmodyfikuje istniejące dane. Aby wyświetlić rekord, który jeszcze nie istnieje w tabeli fizycznej, można utworzyć inną podobną tabelę. Tabeli tej można następnie użyć do wyświetlania rekordów-wypełniaczy, które użytkownik może modyfikować.
Uwaga:
Przy tworzeniu szablonów zapisu zwrotnego konieczne jest umieszczanie w nich zarówno polecenia insert
, jak i polecenia update
, nawet wówczas, gdy nie są faktycznie wykorzystywane oba z nich. Na przykład jeśli jest wykonywana tylko operacja insert
, należy umieścić pustą instrukcję update
(<update></update>
), jak w poniższym kodzie XML:
insert
i dwie puste instrukcje update
. Aby dowiedzieć się więcej na temat tworzenia plików XML zapisu zwrotnego i nadawania im odpowiedniej struktury, zob. Tworzenie plików szablonów zapisu zwrotnego.
<?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>
Administratorzy mogą umożliwić użytkownikom edycję danych w analizach i pulpitach informacyjnych.
Użytkownicy mogą wykonywać zapis zwrotny w dowolnym źródle danych, które umożliwia wykonywanie zapytań SQL z Oracle Analytics .
Podczas konfigurowania zapisu zwrotnego należy pamiętać o następujących ograniczeniach:
Kolumny liczbowe mogą zawierać tylko liczby. Nie mogą one zawierać żadnych znaków formatowania danych, takich jak znak dolara ($), znak funta lub kratki (#), znak procentu (%) itp.
Kolumny tekstowe mogą zawierać tylko dane napisowe.
Jeśli zalogowany użytkownik wyświetla już pulpit informacyjny zawierający analizę obejmującą dane, które zostały zmodyfikowane przy użyciu zapisu zwrotnego, te dane nie będą automatycznie odświeżane na pulpicie informacyjnym. Aby zobaczyć zaktualizowane dane, użytkownik będzie musiał ręcznie odświeżyć pulpit informacyjny.
Mechanizmu szablonu można używać tylko z widokami tabeli i tylko w odniesieniu do danych jednowartościowych. Mechanizm szablonu nie jest obsługiwany w przypadku widoków tabel przestawnych oraz widoków innych typów, danych wielowartościowych ani kolumn rozwijanych z danymi jednowartościowymi.
Wszystkie wartości w kolumnach zapisu zwrotnego można edytować. W przypadku wyświetlania w kontekście nieprzystosowanym do druku pola, które można edytować, są wyświetlane tak, jakby użytkownik miał uprawnienie Zapisywanie zwrotne w bazie danych. Jednak gdy kolumna logiczna jest zmapowana na kolumnę fizyczną, którą można zmienić, kolumna logiczna zwraca wartości dla przecięć na wielu poziomach. Taki scenariusz może powodować problemy.
Każde pole w analizie można oflagować jako pole zapisu zwrotnego, nawet jeśli nie pochodzi ono z utworzonej przez użytkownika tabeli zapisu zwrotnego. Nie można jednak pomyślnie uruchomić operacji zapisu zwrotnego, jeśli w tabeli nie jest włączona obsługa zapisu zwrotnego. Za poprawne tagowanie pól odpowiedzialny jest projektant zawartości.
Szablon może zawierać instrukcje SQL inne niż insert
i update
. Funkcja zapisu zwrotnego przekazuje te instrukcje do bazy danych. Jednak Oracle nie obsługuje ani nie zaleca używania instrukcji innych niż insert
i update
.
Oracle Analytics wykonuje tylko minimalną weryfikację danych wejściowych. Jeśli pole jest liczbowe, a użytkownik wprowadzi dane tekstowe, Oracle Analytics to wykryje i uniemożliwi wprowadzenie niepoprawnych danych do bazy danych. Nie wykryje jednak innych form wprowadzania niepoprawnych danych (wartości poza zakresem, połączenie danych tekstowych i liczbowych itp.). Gdy użytkownik kliknie przycisk zapisu zwrotnego i zostanie uruchomiona operacja wstawiania lub aktualizacji, niepoprawne dane spowodują zwrócenie komunikatu o błędzie z bazy danych. Następnie użytkownik będzie mógł poprawić błędne dane wejściowe. Projektanci zawartości mogą uwzględniać w analizie zapisu zwrotnego tekst stanowiący informację dla użytkownika, taki jak "Wprowadzanie mieszanych wartości alfanumerycznych w polu danych liczbowych jest niedozwolone".
Mechanizm szablonu nie nadaje się do wprowadzania dowolnych nowych rekordów. Innymi słowy nie można używać go jako narzędzia do wprowadzania danych.
Podczas tworzenia tabeli na potrzeby zapisu zwrotnego należy upewnić się, że co najmniej jedna kolumna nie zawiera funkcji zapisu zwrotnego, ale zawiera wartości, które są unikatowe dla każdego wiersza i inne niż Null.
Analizy zapisu zwrotnego nie obsługują drążenia w dół. Drążenie w dół powoduje modyfikację struktury tabeli, co uniemożliwia działanie szablonu zapisu zwrotnego.
Ostrzeżenie:
Mechanizm szablonu przyjmuje dane wejściowe użytkownika i zapisuje je bezpośrednio w bazie danych. Odpowiedzialność za zabezpieczenia fizycznej bazy danych ponosi użytkownik. W celu uzyskania optymalnych zabezpieczeń należy przechowywać tabele bazy danych zapisu zwrotnego w unikatowej instancji bazy danych.Plik szablonów zapisu zwrotnego to plik w formacie XML zawierający co najmniej jeden szablon zapisu zwrotnego.
Szablon zapisu zwrotnego zawiera element WebMessage
określający nazwę szablonu, pulę połączeń oraz instrukcje SQL, które są potrzebne do wstawiania i aktualizowania rekordów w tworzonych przez użytkownika tabelach i kolumnach zapisu zwrotnego. Podczas włączania widoku tabeli dla zapisu zwrotnego projektanci zawartości muszą określić nazwę szablonu zapisu zwrotnego, który ma być używany w celu wstawiania i aktualizowania rekordów w widoku tabeli.
Szablon zapisu zwrotnego musi spełniać następujące wymagania:
WebMessage
: należy określić nazwę szablonu zapisu zwrotnego, używając atrybutu name
w elemencie WebMessage.
Aby zapis zwrotny działał poprawnie, projektant zawartości musi podczas włączania widoku tabeli dla zapisu zwrotnego określić nazwę szablonu zapisu zwrotnego, który będzie używany do wstawiania i aktualizowania rekordów w widoku.
W tym przykładzie pokazano szablon zapisu zwrotnego o nazwie SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: aby spełnić wymagania dotyczące zabezpieczeń, należy określić pulę połączeń wraz poleceniami SQL, które będą używane w celu wstawiania i aktualizowania rekordów. Te polecenia SQL odwołują się do wartości przekazywanych w schemacie zapisu zwrotnego w celu wygenerowania instrukcji SQL służących do modyfikowania tabeli bazy danych.
VALUES
: do wartości w kolumnach można odwoływać się za pomocą ID kolumny lub pozycji kolumny. Preferowane jest używanie ID kolumny.
Wartości napisowe i wartości daty należy umieszczać w apostrofach. Apostrofy nie są wymagane w przypadku wartości liczbowych.
ID kolumny - każdy ID kolumny jest alfanumeryczny i został wygenerowany losowo. ID kolumn można znaleźć w definicji XML analizy, która jest dostępna na karcie Zaawansowane w edytorze analiz. Następujące wartości są przykładowymi ID kolumn: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Gdy są używane ID kolumn, zapis zwrotny działa nawet po zmianie kolejności kolumn.
Pozycja kolumny - numerowanie pozycji kolumn rozpoczyna się od 1. Następujące wartości są przykładowymi pozycjami kolumn: @1
, @3
, '@5'
Zmiana kolejności kolumn spowoduje, że zapis zwrotny przestanie działać i jest to przyczyna, dla której preferowane jest używanie ID kolumn.
W szablonie musi znaleźć się zarówno element <insert>
, jak i element <update>
. Jeśli nie jest planowane umieszczenie poleceń SQL w tych elementach, należy wstawić spację między znacznikiem otwierającym a zamykającym. Na przykład należy wprowadzić taki element:
<insert> </insert>
A nie taki:
<insert></insert>
Pominięcie spacji spowoduje wyświetlenie komunikatu o błędzie zapisu zwrotnego, takiego jak "System nie może odczytać szablonu "mój_szablon" zapisywania zwrotnego".
Jeśli typem danych parametru nie jest liczba całkowita ani rzeczywista, należy ująć wartość parametru w apostrofy. Jeśli w bazie danych nie są automatycznie wykonywane operacje zatwierdzania, należy dodać opcjonalny węzeł postUpdate
po węzłach insert
i update
, aby wymuszać zatwierdzanie. Węzeł postUpdate
zazwyczaj wygląda tak jak w poniższym przykładzie:
<postUpdate>COMMIT</postUpdate>
Przykład pliku szablonów zapisu zwrotnego, w którym jest używana składnia ID kolumn
Plik szablonów zapisu zwrotnego, w którym do odwoływania się do wartości są używane ID kolumn, mógłby wyglądać następująco:
<?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>
Przykład pliku szablonów zapisu zwrotnego, w którym jest używana składnia pozycji kolumn
Plik szablonów zapisu zwrotnego, w którym do odwoływania się do wartości są używane pozycje kolumn, mógłby wyglądać następująco:
<?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>