Wprowadzenie
Poszczególni producenci używają w komunikacji z bazami danych różnych interfejsów lub różnych dialektów języka SQL. Aby tę komunikację ujednolicić zaimplementowano język Object Query Language (OQL) bazujący na modelu obiektowym i relacyjnym. OQL jest oparty na standardzie SQL. OQL jest wspierany, w podobnym zakresie funkcjonowania jak SQL, dla wszystkich wymienionych tu systemów zarządzania bazami danych. Przy jego tłumaczeniu charakterystyczne nazwy dla Comarch ERP Enterprise zostają przekształcane w techniczne nazwy baz danych, zgodnie z założeniami przestrzeni nazw. Przez to powstają unikalne odniesienia do obiektów, a niezgodności nazw w systemie zostają wykluczone.
Za pomocą aplikacji Zapytanie OQL można wykonywać polecenia OQL na wszystkich bazach danych systemu powiązanych z aktualnym serwerem aplikacji. Aplikacja sprawdza się w kilku obszarach zastosowań. Programiści mogą na przykład testować w tej aplikacji zapytania OQL, które mają być użyte w kodzie źródłowym Java.
Możliwe są zarówno formułowanie zapytań za pomocą poleceń SELECT, jak i modyfikowanie danych za pomocą poleceń UPDATE, DELETE i INSERT. Wykonywanie poleceń UPDATE, DELETE i INSERT jest odnotowane w dzienniku systemu.
Wykonywane instrukcje OQL są rejestrowane i mogą być zapisywane jako wzorce zapytań. We wzorcu zapytań zapisywana jest zarówno baza danych jak i polecenie OQL.
Grupa docelowa
- Administratorzy systemu
- Deweloperzy aplikacji
Wymagania wstępne
Podstawy znajomości Persistence service Comarch ERP Enterprise, znajomość OQL i SQL.
Opis aplikacji
Aplikacja Zapytania OQL zawiera pole Zapytania OQL oraz tabelę do prezentowania wyników klauzuli SELECT. Oba elementy znajdują się w obszarze roboczym aplikacji. Elementy znajdują się w podzielonym panelu, dzięki czemu użytkownik może dynamicznie zarządzać miejscem na rozbudowanym zapytaniem OQL, czy też tabelą wyników. Na standardowym pasku narzędzi znajduje się pole bazy danych, w którym wybiera się bazę danych, na której ma zostać wykonane zapytanie OQL. Zapytania OQL mogą być wykonywane tylko w bazach danych OLTP, do których zalogowany jest bieżący użytkownik.
Obszar roboczy
Obszar roboczy składa się z pola Zapytania OQL oraz tabeli wyników instrukcji SELECT:
- pole Zapytania OQL – pole pozwalające na wprowadzenie zapytania OQL. W przypadku UPDATE, INSERT i DELETE dozwolonych jest więcej poleceń w ramach jednej transakcji. Zapytania są rozdzielone znakiem średnika (;).
W przypadku udanego wykonania polecenia SELECT w dolnej części obszaru roboczego pojawia się tabela z wynikami. Oznaczenie kolumn tabeli wynika z Data Description poszczególnych atrybutów obiektów Business Objects. U góry tabeli dostępny jest przycisk maksymalizacji tabeli.
Kreator OQL
Aplikacja Zapytania OQL zawiera dodatkową opcję Kreator OQL, która dostępna jest do otwarcia w obszarze nawigacji. Po wybraniu opcji Kreator OQL otwarte zostaje dodatkowe dokowane okno składające się z pól identyfikacyjnych i listy atrybutów wybranego obiektu. Za pomocą dedykowanych akcji można zbudować z atrybutów zapytania OQL.
Dostępne opcje:
[Aktualizuj] – po wybraniu tego przycisku wyświetlona zostanie lista atrybutów obiektu biznesowego zgodnie z zadanymi kryteriami w polu Nazwa.
Nazwa – w pełni kwalifikowana nazwa obiektu biznesowego używana do przygotowania zapytania OQL.
Alias – alias obiektu biznesowego używany w zapytaniu OQL.
Dodatkowo nad listą Ścieżka atrybutu dostępne są opcje pozwalające na wstawienie wybranych poleceń do zapytania OQL:
Wstaw atrybuty do zapytania OQL – wybrane atrybuty są wstawiane do pola Zapytanie OQL. Używany jest również określony alias.
Wstaw SELECT do zapytania OQL – klauzula SELECT z wybranych atrybutów i obiektu biznesowego jest wstawiana do pola Zapytanie OQL.
Wstaw JOIN do zapytania OQL – klauzula JOIN jest dodawana do zapytania OQL z w pełni kwalifikowaną nazwą obiektu biznesowego i aliasem. Jeśli atrybuty są wybrane na liście, są one przenoszone do warunku JOIN i łączone za pomocą operatora AND.
Wstaw WHERE do zapytania OQL – klauzula WHERE jest dodawana do zapytania OQL. Jeśli atrybuty obiektu biznesowego są wybrane na liście, są one kopiowane i łączone za pomocą operatora AND.
Wstaw ORDER BY do zapytania OQL – klauzula ORDER BY jest dodawana do zapytania OQL z sortowaniem ASC. Jeśli atrybuty obiektu biznesowego są wybrane na liście, są one wstawiane, oddzielone przecinkami. Ich kolejność odpowiada kolejności na liście atrybutów.
Akcje dedykowane dla aplikacji
Na standardowym pasku narzędzi znajdują się dodatkowe przyciski:
Wykonaj z rollback – instrukcje z pola Zapytania OQL są wykonywane, natomiast zmiany nie są trwałe ze względu na następujący po nich rollback transakcji. [Wykonaj z rollback] nie zmieni żadnych danych w bazie.
Następnie pojawi się komunikat dla każdego zapytania OQL z informacją o ilości rekordów, które zostałyby zmienione przez to polecenie. W ten sposób można sprawdzić, czy polecenia modyfikują odpowiednia ilość danych.
Wykonaj z commit – instrukcje z pola Zapytania OQL są wykonywane transakcją z funkcją commit.
Zmiany w bazie danych są ostateczne i nie można ich cofnąć. Realizacja zapytań OQL dot. zmiany danych zostaje ujęta w dzienniku komunikatów w formie logów. Można więc sprawdzić, który użytkownik kiedy realizował zapytanie OQL.
Uprawnienia
Aby użytkownik mógł wykonać zapytanie OQL z funkcjami Commit i Rollback, musi posiadać uprawnienie:
com.cisag.sys.repository.ui.ExecuteOQLUpdateStatements
Użytkownik może wykonywać zapytania OQL na bazie danych tylko wtedy, gdy posiada uprawnienia do tej bazy. W przypadku dostępu do bazy OLAP użytkownik musi dysponować uprawnieniami do powiązanej bazy OLTP.
Aby użytkownik mógł korzystać z bazy konfiguracyjnej, musi posiadać następujące uprawnienie:
com.cisag.sys.repository.ui.OQLConsoleDisplayConfigurationDatabase
Aby użytkownik mógł korzystać z bazy danych repozytorium, musi posiadać następujące uprawnienie:
com.cisag.sys.repository.ui.OQLConsoleDisplayRepositoryDatabase
Instrukcja
Poniżej opisano sposób pracy z aplikacją Zapytania OQL:
Zapytanie o rekordy danych za pomocą instrukcji OQL
- Otwórz aplikację Zapytania OQL
- W polu Baza danych na standardowym pasku narzędzi należy wybierać bazę danych, na której wykonane zostanie polecenie SELECT.
- Należy podać odpowiednie zapytanie OQL w polu Zapytania OQL.
- Na pasku narzędzi wybrać przycisk [Aktualizuj].
- Jeśli składnia zapytania OQL jest poprawna i zostały znalezione wartości w bazie danych to w oknie wyświetlania pojawi się tabela z tymi wartościami.
Zmiana rekordów danych za pomocą instrukcji OQL
- Otwórz aplikację Zapytania OQL
- W polu Baza danych na standardowym pasku narzędzi należy wybierać bazę danych, na której wykonane zostanie zapytanie OQL.
- Należy podać odpowiednie zapytanie OQL w polu Zapytania OQL.
- Wybrać przycisk na standardowym pasku narzędzi [Wykonaj z commit]. Jeśli składnia polecenia jest poprawna, to rekordy danych będą odpowiednio zmienione bez możliwości cofnięcia zmian.
Z uwagi na złożoność modelu danych powinno się zdecydowanie unikać poleceń zmieniających zbiór danych. Przy zmianach nie jest sprawdzana ani integralność referencyjna ani też poprawność semantyczna, dlatego niepoprawne zapytania OQL mogą skutkować niespójnością danych.
Kompilacja instrukcji OQL
- Otwórz aplikację Zapytania OQL
- Otwórz Kreator OQL dostępny na pasku nawigacji.
- Należy wprowadź w pełni kwalifikowaną nazwę obiektu biznesowego w polu Nazwa. Można również wprowadzić alias w polu o tej samej nazwie.
Jeśli nazwa aliasu nie zostanie wyprowadzona, zostanie ona dodana automatycznie z nazwy obiektu biznesowego w kolejnym kroku.
- Wybrać przycisk [Aktualizuj] w celu wyświetlenie atrybutów.
- Wskazać atrybuty, które są istotne dla danego zapytania OQL.
- Ustawić kursor w obszarze roboczym w polu Zapytania OQL w miejscu, w którym ma zostać wstawione zapytanie OQL. W polu można również zaznaczyć tekst, który ma zostać zastąpiony.
- W oknie Kreator OQL wybrać jedną z dostępnych opcji tworzenia zapytania OQL np. Wstaw atrybuty do zapytania OQL. Tekst zostanie wstawiony ustawiony kursor i nie zostanie zaznaczony żaden tekst, tekst zostanie wstawiony na początku pola.