Praca dyplomowa magisterska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Praca dyplomowa magisterska"

Transkrypt

1 Politechnika Warszawska Rok akademicki 2010/2011 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska inż. Piotr Kalański Technologia do tworzenia hierarchicznych raportów w aplikacjach WWW Ocena: Opiekun pracy: dr inż. Michał Rudowski Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: 18 kwietnia 1986 r. Data rozpoczęcia studiów: październik 2010 r. Życiorys Nazywam się Piotr Kalański. Urodziłem się 18 kwietnia 1986 r. w Warszawie. W mieście rodzinnym ukończyłem szkołę podstawową nr 2 im. Janusza Korczaka oraz gimnazjum nr 1 im. Hugona Kołłątaja. W 2002 roku rozpocząłem naukę w XL LO im. Stefana Żeromskiego w Warszawie w klasie o profilu matematyczno-informatycznym. W 2005 roku rozpocząłem studia w Szkole Głównej Gospodarstwa Wiejskiego w Warszawie na Wydziale Zastosowań Matematyki i Informatyki, kierunek Informatyka i Ekonometria. W tym okresie informatyka stała się kluczowym obszarem moich zainteresowań. W 2006 roku rozpocząłem studia na Politechnice Warszawskiej na Wydziale Elektroniki i Technik Informacyjnych, kierunek Informatyka. Od lipca 2008 roku do października 2008 roku uczestniczyłem w Programie Praktyk Letnich w Banku Handlowym S.A. Zadaniem wykonywanym w czasie odbywania praktyk było rozwijanie Portalu Operacji Kredytowych i Leasingowych. Od lutego 2009 roku jestem pracownikiem Kredyt Banku S.A. W organizacji tej pracowałem na następujących stanowiskach: Analityk MIS, Menedżer Aplikacji. Jestem odpowiedzialny za System Wsparcia Sprzedaży. Moje obszary zainteresowań to inżynieria oprogramowania, bazy danych, CRM, Business Intelligence. Podpis studenta Egzamin dyplomowy Złożył egzamin dyplomowy w dn r. z wynikiem Ogólny wynik studiów Dodatkowe wnioski i uwagi Komisji

3 Streszczenie Słowa kluczowe: Raportowanie, Business Intelligence, GWT Abstract Title of paper: Keywords:

4 Spis treści Spis treści i 1 Wstęp Cel pracy Zakres pracy Raportowanie Business Intelligence Definicja [34] Historia powstania Business Intelligence [34] Piramida Business Intelligence [19] Hurtownia danych [36] OLAP [34] Data mining [16] Wybrane rozwiązania Business Intelligence funkcjonujące na rynku Jaspersoft IBM Cognos [4] Podsumowanie Biblioteka Wymagania Wymagania funkcjonalne Wymagania niefunkcjonalne Przypadki użycia Przykładowe bazy danych CRM Service Desk Przykładowe raporty Service Desk CRM i

5 SPIS TREŚCI ii 3.4 Meta-Model Meta-model biznesowy Przykładowy model biznesowy Meta-model raportu Przykładowy raport Projekt Model Web Diagramy sekwencji Implementacja Generowanie zapytania Komunikacja klient - serwer Serializacja do formatu XML Technologia Narzędzia Testy i ocena Środowiska testowe Generacja danych Testy jednostkowe Testy funkcjonalne Aplikacja Możliwości aplikacji Przykładowe analizy Serwer raportów Raportowanie w Service Desk Podsumowanie Designer Wymagania Wymagania funkcjonalne Przypadki użycia Projekt Pakiety Implementacja Technologia Narzędzia Aplikacja Podsumowanie Rozszerzenia Aplikacja mobilna Technologia

6 SPIS TREŚCI iii Narzędzia Aplikacja Wykresy Technologia Aplikacja Podsumowanie Podsumowanie Perspektywy rozwoju Bibliografia 98 A Zawartość płyty CD 101 Spis symboli i skrótów 102 Spis rysunków 103 Spis tabel 106

7 Rozdział 1 Wstęp Business Intelligence aktualnie od dłuższego okresu jest jednym z głównych priorytetów dla CIO (Chief Information Officer). Ten obszar pozwala na budowanie przewagi nad konkurencją umożliwiając na szybsze i bardziej skuteczne podejmowanie decyzji na każdym szczeblu organizacji. Dzisiejszy rynek technologii informatycznych oferuje wiele narzędzi wspierających proces raportowania. Są to rozwiązania zarówno komercyjne (Business Objects, IBM Cognos) jak i Open Source: Jasper Reports, Eclipse BIRT. Rozwiązania Open Source umożliwiają tworzenie wyłącznie raportów statycznych, w których brakuje interakcji z użytkownikiem oraz wspierają głównie raportowanie operacyjne. Natomiast narzędzia komercyjne pozwalają na tworzenie bardziej dynamicznych raportów, w których dostępna jest możliwość poruszania się po hierarchii danych, sortowania wierszy oraz filtrowania danych. Żadne z wyżej wymienionych narzędzi nie umożliwia ograniczania zakresu widocznych danych (uprawnienia), zwijania/rozwijania danych, dynamicznej zmiany hierarchii grupowania, zamrożenia widocznych kolumn i wierszy nagłówka (funkcjonalność dostępna między innymi w programie Excel). Wymienione funkcje mogą zdecydowanie uatrakcyjnić przeglądanie raportu. Użytkownik widzi takie dane do których ma uprawnienia oraz które go w danej chwili interesują. Ma możliwość szybkiego obejrzenia szczegółowych danych. Na rynku dostępna jest biblioteka SmartGWT spełniająca niektóre z wyżej wymienionych wymagań. W ramach tej biblioteki został utworzony Widget TreeGrid, który pozwala na zwijanie/rozwijanie danych, zamrożenie widocznych kolumn oraz wierszy nagłówka. Narzędzie to nie umożliwia natomiast ograniczania widocznych danych oraz dynamicznej zmiany hierarchii. Dodatkowo źródło danych dla tego komponentu musi być w postaci tabeli zawierającej powiązanie rekurencyjne, co jest znaczącym ograniczeniem. Kolejne wady tego rozwiązania to brak wsparcia dla filtracji danych (filtr musi zostać zaimplementowany programo- 1

8 ROZDZIAŁ 1. WSTĘP 2 wo) oraz brak wsparcia dla modelu biznesowego (np. świat obiektów w Business Objects), który ułatwia tworzenie raportów analitykom, którzy nie muszą znać struktury bazy danych. 1.1 Cel pracy Zaprojektowanie oraz zaimplementowanie biblioteki umożliwiającej tworzenie hierarchicznych raportów dla aplikacji www w sposób deklaratywny. 1.2 Zakres pracy TODO

9 Rozdział 2 Raportowanie Rozdział ten zawiera wprowadzenie do Business Intelligence z omówieniem hurtowni danych, OLAP oraz eksploracji danych. W poszczególnych sekcjach zostały zaprezentowane wybrane narzędzia klasy Business Intelligence: JasperReports oraz IBM Cognos. Podsumowanie rozdziału zawiera przedstawienie najbardziej pożądanych cech nowego narzędzia do raportowania. 2.1 Business Intelligence Definicja [34] Business Intelligence jest definiowane przez firmę Gartner jako zorientowany na użytkownika proces zbierania, eksploracji, interpretacji i analizy danych, który prowadzi do usprawnienia i zracjonalizowania procesu podejmowania decyzji biznesowych w celu kreowania wzrostu wartości przedsiębiorstwa Historia powstania Business Intelligence [34] Na powstanie Business Intelligence miało wpływ kilka nurtów. Po pierwsze wykorzystanie komputerów w dziedzinie statystyki i w badaniach operacyjnych przyczyniło się do powstania systemów wspomagania decyzji. Kolejny nurt to prace nad sztuczną inteligencją rozpoczęte w latach 50. W ramach tej dziedziny opracowano wiele algorytmów przydatnych do wspierania rzeczywistych procesów decyzyjnych, które wykraczały poza możliwości systemów wspomagania decyzji. Jednak kluczowym nurtem był rozwój relacyjnych baz danych oraz rozwój języka zapytań SQL. Kolejny etap to rozwój w latach 80. dziedziny projektowania i tworzenia hurtowni danych, czyli baz danych na potrzeby wspierania decyzji biznesowych. W tym czasie zaczęły również powstawać pierwsze pakiety narzędziowe. 3

10 ROZDZIAŁ 2. RAPORTOWANIE 4 W latach 90. Business Intelligence stało się terminem powszechnie znanym wśród fachowców oraz standardem oferowanym przez firmy specjalistyczne i największych producentów oprogramowania, takich jak: IBM, Microsoft, Oracle czy SAP Piramida Business Intelligence [19] Rysunek 2.1: Piramida Business Intelligence Narzędzia analityczne Business Intelligence można uporządkować wedle stopnia złożoności. Jest on proporcjonalnie zależny od poziomu skomplikowania oraz odwrotnie proporcjonalny do częstości używania oraz liczby potencjalnych użytkowników. Rysunek 2.1 przedstawia piramidę narzędzi klasy Business Intelligence. Na samym dole znajduje się oprogramowanie hurtowni danych, które umożliwia projektowanie struktury bazy danych oraz pobieranie, czyszczenie i transformację danych. Na drugim poziomie znajdują się narzędzia do raportowania i zapytań ad-hoc. Pozwalają one początkowemu użytkownikowi na tworzenie i używanie raportów. Trzeci poziom tworzą narzędzia OLAP 1, czyli środowisko wielowymiarowych analiz. Na samej górze piramidy są narzędzia do eksploracji danych, których celem jest odnajdywanie zależności w obrębie danych oraz prognozowanie Hurtownia danych [36] Hurtownia danych definiowana jest jako uporządkowana tematycznie, zintegrowana, zawierająca wymiar czasowy oraz nieulotna baza danych wspomagająca podejmowanie decyzji. 1 OLAP OnLine Analytical Processing

11 ROZDZIAŁ 2. RAPORTOWANIE 5 Uporządkowanie tematycznie oznacza ograniczenie zbieranych danych do określonego obszaru biznesowego, np: sprzedaży czy marketingu. Jest to odmienne podejście do baz danych systemów transakcyjnych, gdzie gromadzone są dane dotyczące działań lub procesów biznesowych. Zintegrowany oznacza, że dane pochodzą z różnych źródeł i zostały sprowadzone do wspólnego modelu korporacyjnego. Zawierający wymiar czasu Gromadzone są dane zmieniające się w czasie. Prawie wszystkie zapytania kierowane do hurtowni wymagają podania wycinka czasu. Nieulotny Dane raz umieszczone w hurtowni nie ulegają zmianie. To samo zapytanie powinno zawsze zwracać ten sam rezultat OLAP [34] Przetwarzanie analityczne on-line (OLAP) jest wielowymiarową analizą danych zainicjowaną przez użytkownika biznesowego i obejmuje złożone mechanizmy raportowania, analizy oraz wizualizacji danych. OLAP składa się z dwóch zasadniczych elementów: wielowymiarowego modelu danych oraz zbioru operacji. Model danych Sposób modelowania danych odzwierciedla potrzeby raportowania danych biznesowych. Analizuję się wskaźniki biznesowe, które w modelu logicznym nazywane są faktami lub miernikami. Przykładowe fakty to wielkość sprzedaży, liczba spotkań czy saldo kredytowe. W trakcie analizy istotny jest kontekst, który zwany jest wymiarem lub atrybutem, taki jak klient, czas czy produkt. Codd odzwierciedla to swoim spostrzeżeniem: Z reguły jest wiele różnych wymiarów, według których można analizować pewien zbiór danych. Ta złożona perspektywa, czyli wielowymiarowy obraz pojęciowy, wydaje się być sposobem, w jaki większość ludzi biznesu z natury widzi swoje przedsiębiorstwo. Zbiór operacji Podstawowe operacje analizy danych to określenie zakresu analizy, drążenie/rozwijanie, zwijanie, wycinanie oraz obracanie. Określenie zakresu analizy raportowane. to ustalenie jakie fakty oraz w jakich wymiarach będą

12 ROZDZIAŁ 2. RAPORTOWANIE 6 Drążenie/rozwijanie (ang. drill down) to przejście z danych bardziej ogólnych do bardziej szczegółowych. Przykładowo podczas analizy sprzedaży w poszczególnych latach można przejść do analizy wyników w miesiącach wybranego roku. Zwijanie Wycinanie (ang. drill up) to operacja odwrotna do rozwijania danych. (ang. slice) to filtrowanie danych. Obracanie (ang. pivot) jest to operacja związana z prezentacją danych. Polega ona na zamianie kolumn z wierszami Data mining [16] Eksploracja danych to ekstrakcja interesujących (nietrywialnych, niejawnych, wcześniej nieznanych i potencjalnie użytecznych) wzorców (wiedzy) z dużych zbiorów danych. Do najpopularniejszych zadań eksploracji danych należą: klasyfikacja, grupowanie oraz odkrywanie reguł asocjacyjnych. Klasyfikacja to dokonanie przypisania obiektu do jednej z predefiniowanych klas decyzyjnych na podstawie wartości jego atrybutów. Grupowanie to podział zbioru obiektów na grupy o podobnych właściwościach. Obiekty w tej samej grupie powinny być jak najbardziej do siebie podobne, natomiast w jak największym stopniu różnić się od obiektów w innych grupach. Odkrywanie reguł asocjacyjnych to wyszukiwanie zbiorów obiektów, które często występują razem w określonym kontekście. Wystąpienie jednego zbioru obiektów implikuje pojawienie się drugiego zbioru. 2.2 Wybrane rozwiązania Business Intelligence funkcjonujące na rynku Jaspersoft Jaspersoft to firma specjalizująca się w dostarczaniu rozwiązań klasy Business Intelligence. Do kluczowych produktów tej firmy należą: JasperReports, ireport, JasperServer oraz JasperETL. JasperReports [22] to biblioteka Open Source do tworzenia raportów w wielu popularnych formatach: PDF, HTML, XLS oraz XML. Została zaimplementowana w całości w technologii Java. Twórcy biblioteki przywiązali dużą uwagę do

13 ROZDZIAŁ 2. RAPORTOWANIE 7 elastyczności rozwiązania w podejściu do źródła danych oraz formatu wynikowego. Programista ma możliwość utworzenia własnej klasy dostarczającej danych lub odpowiedzialnej za eksport do formatu wynikowego. Oczywiście zostały przygotowane najczęściej używane źródła danych: połączenie z bazą danych, pliki w formatach: CSV, XLS oraz XML, obiekty POJO, Hibernate. Dla pliku wynikowego również zostały przygotowane klasy eksportujące raport do najbardziej popularnych formatów: PDF, XLS, HTML oraz XML. ireport [20] jest to narzędzie z graficznym interfejsem użytkownika służące do tworzenia raportów. JasperServer [23] to aplikacja WWW, której celem jest udostępnianie raportów użytkownikom. Wybrane funkcjonalności tej aplikacji to: prezentowanie raportów, zarządzanie uprawnieniami użytkowników, cykliczne odświeżanie raportów, eksportowanie raportów do wybranego formatu wynikowego. JasperETL [21] jest narzędziem wspierającym projektowanie procesów ETL. Użytkownik ma do dyspozycji zbiór komponentów pełniących określone zadania, przykładowo: plik źródłowy, plik wynikowy, odczyt/zapis do bazy danych, mapowanie danych. Budowanie procesu ETL polega na połączeniu tych komponentów w całość i dokonaniu ich konfiguracji. Cykl życia raportu [17] Rysunek 2.2: JasperReports - Cykl życia raportu Rysunek 2.2 przedstawia cykl życia każdego raportu. Pierwsza czynność to utworzenie szablonu raportu, czyli pliku w formacie XML. Zawiera on deklarację

14 ROZDZIAŁ 2. RAPORTOWANIE 8 elementów znajdujących się w raporcie. Po stworzeniu szablonu silnik Jasper- Reports dokonuje kompilacji raportu. W rezultacie powstaje raport w postaci skompilowanej. Taki plik przyjęło się nazywać jasper - od rozszerzenia. Następną fazą jest wypełnienie raportu danymi z źródła danych. Na samym końcu następuje wyeksportowanie raportu do wybranego formatu wynikowego. Szablon raportu Szablon raportu jest to plik w formacie xml. Zgodnie z przyjętą konwencją rozszerzenie pliku to jrxml. Każdy szablon zawiera dane o parametrach, polach oraz o elementach raportu. Struktura pliku jest następująca: <?xml version="1.0"?> <!DOCTYPE jasperreport PUBLIC "-//JasperReports//DTD Report Design//EN" " <jasperreport name="name_of_the_report"... >... </jasperreport> Parametry to dane, które nie mogą być wydobyte ze źródła danych. Częstym zastosowaniem parametrów jest określenie warunków zapytania. W przypadku szczególnym parametrem może być samo zapytanie. Przykładowe parametry: Dynamiczny tytuł raportu. Wartości dla warunków w zapytaniach. Nazwa użytkownika, który uruchomił raport. Parametr reprezentujący dynamiczny tytuł raportu może być zadeklarowany w następujący sposób: <parameter name="reporttitle" class="java.lang.string"/> Natomiast parametr, który jest identyfikatorem klienta do zapytania, może być zadeklarowany: <parameter name="customerid" class="java.lang.integer"/> W dalszej kolejności taki parametr może zostać użyty w warunku zapytania w następujący sposób: SELECT FROM Orders WHERE CustomerID = $P{ CustomerId }

15 ROZDZIAŁ 2. RAPORTOWANIE 9 Parametr może zostać umieszczony w raporcie poprzez zastosowanie następującej składni: $P{PARAMETER} Pola są to zmienne zmapowane z źródła danych na pola wykorzystywane w raporcie. Dla źródła danych w postaci bazy danych będą to po prostu kolumny zapytania. Każde pole deklarowane jest przy pomocy elementu field. Przykładowo, dla tabeli zawierającej cztery kolumny: EmployeeId, LastName, FirstName, HireDate należy zadeklarować następujące pola: <field name="employeeid" class="java.lang.integer"/> <field name="lastname" class="java.lang.string"/> <field name="firstname" class="java.lang.string"/> <field name="hiredate" class="java.util.date"/> Pole może zostać umieszczone w raporcie poprzez zastosowanie następującej składni: $F{FIELD} Wyrażenia są silną stroną JasperReports. Umożliwiają one wykonanie złożonych obliczeń. Istnieje możliwość wykorzystania funkcji bibliotecznych: wykonanie obliczeń arytmetycznych, operacje na napisach oraz operacje na datach. W wyrażeniach można wykorzystać pola oraz zmienne. Przykładem wyrażenia jest dokonanie złączenia dwóch napisów: <textfieldexpression> $F{FirstName} + " " + $F{LastName} </textfieldexpression> Może to być także bardziej skomplikowane wyrażenie: <textfieldexpression> $F{FirstName} + " " + $F{LastName} + " was hired on " + (new SimpleDateFormat("MM/dd/yyyy")).format($F{HireDate}) + "." </textfieldexpression> Zmienne są specjalnym obiektem zbudowanym w oparciu o wyrażenie. Jeżeli istnieje potrzeba wykorzystania danego wyrażenia więcej jak jeden raz to należy utworzyć zmienną. Zmienna może przechowywać wartość agregacji jednego z mierników. Jako funkcje agregacji można wykorzystać: count, sum, average, lowest, highest, variance, etc. Przykład deklaracji zmiennej dokonującej obliczenia sumy:

16 ROZDZIAŁ 2. RAPORTOWANIE 10 <variable name="quantitysum" class="java.lang.double" calculation="sum"> <variableexpression>$f{quantity}</variableexpression> </variable> Istnieje również szereg wbudowanych zmiennych. Poniżej trzy przykładowe: PAGE NUMBER numer aktualnej strony. COLUMN NUMBER numer aktualnej kolumny. PAGE COUNT liczba stron. Kompilacja Kompilacja to przekształcenie szablonu raportu w postaci pliku xml na postać binarną do formatu jasper. Wypełnienie Na tym etapie następuje podstawienie danych z źródła danych oraz parametrów. W ten sposób otrzymujemy postać raportu gotową do wyeksportowania. Eksport Eksport raportu jest to proces wygenerowania pliku w wybranej postaci wynikowej z wypełnionego raportu. Biblioteka udostępnia szereg eksporterów do popularnych formatów: pdf, html, xml, xls, csv, txt czy rtf. Pozycja Jaspersoft w raporcie Gartnera [18] Jaspersoft został doceniony przez analityków Gartnera, o czym świadczy pojawienie się tego rozwiązania wśród graczy niszowych platform Business Intelligence na rok 2011 (rysunek 2.3). Według raportu Gartnera ważnym elementem w wyborze platformy Business Intelligence w roku 2010 była cena rozwiązania. Jest to jeden z kluczowych powodów, dla których wśród rozwiązań komercyjnych pojawiło się rozwiązanie Open Source. Druga popularna platforma Open Source - Pentaho nie spełniła wszystkich warunków, aby zająć swoje miejsce wśród najlepszych rozwiązań Business Intelligence, aczkolwiek według analityków Gartnera, jest to opcja warta do rozważenia. Mocne strony Jaspersoft

17 ROZDZIAŁ 2. RAPORTOWANIE 11 Rysunek 2.3: Magic Quadrant Gartnera dla Platform Business Intelligence na 2011 rok. Jaspersoft oferuje platformę Business Intelligence typu Open Source z szerokim wachlarzem możliwości. Składa się ona z JasperServer, JasperReports, ireport, JasperETL. Klienci mają możliwość umieszczenia raportów w swoich aplikacjach. Największą zaletą Jaspersoft jest niski koszt. TCO 2 jest najniższy wśród wszystkich dostawców BI. Wedle opinii klientów koszt utrzymania tego rozwiązania jest poniżej średniej. Pomimo tego, że jest to rozwiązanie Open Source oraz wersja komercyjna 2 TCO Total Cost of Ownership. Całkowity koszt pozyskania, instalowania, użytkowania oraz utrzymania

18 ROZDZIAŁ 2. RAPORTOWANIE 12 posiada niski koszt licencji planowany jest rozwój funkcjonalności, które nie są uwzględnione w większości konkurencyjnych rozwiązań. Wczesne sukcesy w dostarczaniu rozwiązań w chmurze (cloud computing). W 2010 roku JasperSoft uruchomiło platformę Jaspersoft Live, która umożliwia testowanie rozwiązań BI dostępnych w chmurze. Duża liczba klientów JasperSoft zadeklarowało wdrożenie platformy w chmurze prywatnej lub publicznej. Jest to wynik wyższy niż konkurencyjnych rozwiązań. Ostrzeżenia Jaspersoft uważa się za lidera rozwiązań typu Open Source. Dane organizacji mówią o komercyjnych klientach co potwierdzają również dane dotyczące obrotów firmy. Jednakże tylko 20 klientów wypełniło ankietę, w której Jaspersoft został określony jako platformy Business Intelligence użytkowana w ramach przedsiębiorstwa. Wdrożenia Jaspersoft dotyczą firm mniejszej wielkości oraz mniejszego wolumenu danych niż większość rozwiązań zawartych w raporcie. Zakres wdrożeń częściej dotyczy konkretnego departamentu a nie całej organizacji. Jaspersoft najczęściej wdrażane jest w celach raportowych. Z tego powodu klienci twierdzą, że ta platforma jest mniej funkcjonalna niż rozwiązania konkurencyjne. Wsparcie techniczne oferowane przez firmę zostało ocenione nisko, pomimo tego, iż jest to kluczowy element strategii biznesowej Jaspersoft. Jaspersoft został nisko oceniony w zakresie prostoty kompenentów oraz prostoty integracji elementów platformy IBM Cognos [4] Aplikacje IBM Cognos Framework Manager jest narzędziem do modelowania umożliwiającym tworzenie oraz zarządzanie metadanymi używanymi podczas raportów oraz analiz. Metadane są dostarczane do użytku dla narzędzi raportujących, dostarczając pojedynczą oraz zintegrowaną perspektywę biznesową na dowolną liczbę heterogenicznych źródeł danych. IBM Cognos Business Insight (ang. Dashboard). to narzędzie do tworzenia paneli menedżerskich

19 ROZDZIAŁ 2. RAPORTOWANIE 13 IBM Cognos Report Studio jest narzędziem do projektowania raportów. Użytkownicy mają możliwość tworzenia, edytowania oraz dystrybuowania szerokiego zakresy profesjonalnych raportów. IBM Cognos Query Studio to aplikacja do projektowania oraz tworzenia niestandardowych raportów, których nie można wykonać w Report Studio. IBM Cognos Event Studio to narzędzie do zarządzania zdarzeniami. W odpowiedzi na zaistnienie określonego zdarzenia zostaje wykonana akcja, przykładowo wysłanie wiadomości . IBM Cognos Administration Cognos BI. jest aplikacją do zarządzania środkowiskiem IBM Modelowanie Rysunek 2.4: Physical View Rysunek 2.5: Business View

20 ROZDZIAŁ 2. RAPORTOWANIE 14 Rysunek 2.6: Presentation View W trakcie projektowania modelu tworzone są trzy oddzielne warstwy. Pierwsza z nich zwyczajowo nazywana Physical View zawiera obiekty w postaci identycznej jak dane źródłowe. Aczkolwiek użytkownik ma możliwość dokonania drobnych zmian. Na rysunku 2.4 widoczne są przykładowe obiekty z tej warstwy. Kolejna warstwa to Business View. Zawiera ona obiekty dokonujące przemodelowania warstwy fizycznej, aby spełnić wymagania raportowe oraz dokonać konsolidacji tych obiektów dla bardziej czytelnej prezentacji. Jest to idealne miejsce na dokonanie filtrowania, obliczeń lub innych czynności związanych z logiką biznesową. Przykładowe obiekty widoczne są na rysunku 2.5. Ostatnia warstwa Presentation View, widoczna na rysunku 2.6, zawiera schematy gwiazdy, które są logicznym grupowaniem faktów oraz wymiarów. Składa się z odwołań do poprzedniej warstwy, ponieważ często poszczególne wymiary są wykorzystywane w różnych schematach. IBM Cognos Framework Manager umożliwia również tworzenie wielowymiarowych modeli przeznaczonych do raportowania w stylu OLAP (rysunek 2.7). Model ten składa się z wymiarów, mierników oraz relacji. Natomiast wymiar składa się z jednej lub większej liczby hierarchii. Typy raportów List to typ raportu, który wyświetla szczegółowe informacje, takie jak produkty zamówienia lub lista klientów. Rysunek 2.8 przedstawia przykład prostego raportu listy. Raport lista pokazuje dane w wierszach i kolumnach, gdzie każda kolumna

21 ROZDZIAŁ 2. RAPORTOWANIE 15 Rysunek 2.7: Wielowymariowy model Rysunek 2.8: Raport lista pokazuje wszystkie wartości danej pozycji w bazie danych. Raport pozwala na grupowanie danych za pomocą jednej lub większej liczby kolumn. Można również dodać podsumowania lub nagłówki i stopki, aby zapewnić dodatkowe informacje dla użytkownika. Crosstab również przedstawia dane w wierszach oraz kolumnach, jednakże wartości na przecięciu wiersza oraz kolumny pokazują podsumowania, a nie dane szczegółowe. Rysunek 2.9 przedstawia przykładowy raport. Można tworzyć bardziej złożone raporty zawierające więcej jak jeden obiekt w wierszach lub kolumnach lub więcej jak jeden miernik. Raport umożliwia dodanie dowolnej danej, która może być zagregowana do ciała macierzy.

22 ROZDZIAŁ 2. RAPORTOWANIE 16 Rysunek 2.9: Raport Crosstab Wykresy są wizualną reprezentacją informacji ilościowych. Ujawniają trendy i zależności między wartościami, które nie są widoczne na listach lub w macierzy raportów. Na przykład, można utworzyć raport, który wizualnie porównuje rzeczywistą sprzedaż i planowaną, lub który pokazuje procentowy udział poszczególnych linii produktów w całkowitych przychodach firmy. IBM Cognos BI umożliwia utworzenie takich wykresów jak: kolumnowy (ang. Column Chart), liniowy (ang. Line Chart), kołowy (ang. Pie Chart) czy punktowy (ang. Point Chart). W sumie istnieje kilkanaście różnych typów wizualizacji. IBM Cognos Business Insight IBM Cognos Business Insight to narzędzie do tworzenia oraz edytowania paneli menedżerskich (ang. Dashboard). Dashboard to termin, który jest używany powszechnie w kontekście analiz biznesowych i jest to popularny sposób prezentowania ważnych informacji. Różni użytkownicy mają różne rozumienie tego, co powinno się znajdować na tym panelu i jak powinno wyglądać, aby zaspokoić ich potrzeby biznesowe. Niemniej jednak właściwości, które są wspólne dla wszystkich paneli mogą być ujęte w następujące cechy: szybkie spojrzenie na wydajność biznesu, personalizacja oraz interaktywność, współpraca oraz składanie informacji z różnych źródeł. Filtrowanie IBM Cognos umożliwia dokonywanie filtrowania danych na jeden z sposobów: Prompts, akcje filtrowania oraz filtry bazujące na Widgetach: Slider lub Select. Prompts to rodzaj filtru, który wyświetlany jest w formie formularza przed uruchomieniem raportu. Użytkownik podaje wartości poszczególnych parametrów, które następnie używane są w budowie kryterium zapytania. Akcje filtrowania to indywidualna możliwość ograniczania danych dostępna w każdym raporcie. Dla wartości nienumerycznych z raportu można wyrzucić takie wiersze, który mają wartość taką samą lub różną jak zaznaczona komórka. Dodat-

23 ROZDZIAŁ 2. RAPORTOWANIE 17 Rysunek 2.10: Filtrowanie danych nienumerycznych kowo istnieje możliwość wybrania zbioru wartości zamiast tylko pojedynczej. Ten rodzaj filtrowania może posłużyć do pozostawienia wybranej grupy produktów w raporcie. Przykładowe zastosowanie jest widoczne na rysunku Rysunek 2.11: Filtrowanie danych numerycznych Natomiast dla wartości numerycznych można utworzyć bardziej złożone warunki bazujące na porównaniach grupy mierników z zaznaczonymi wartościami. Dla przykładu, za pomocą tej akcji można wyrzucić z raportu wszystkie produkty, które odnotowały mniejszy zysk od wybranej pozycji. Przykład na rysunku

24 ROZDZIAŁ 2. RAPORTOWANIE Rysunek 2.12: Filter Widgets Filter widgets to dedykowane kontrolki, które mogą zostać dodane do panelu menedżerskiego, aby dokonywać filtrowania w grupie powiązanych raportów, a nie tylko w jednym jak to było w wyżej wymienionych możliwościach. Na rysunku 2.12 widoczne jest przykładowe zastosowanie. Po wybraniu regionów sprzedażowych z listy oraz kliknięciu w przycisk Apply dane w dwóch raportach zostaną ograniczone do zadanego zakresu wartości.

25 ROZDZIAŁ 2. RAPORTOWANIE 19 Active Reports [6] IBM Cognos Active Report to raport, który może być używany bez dostępu do firmowej sieci intranet. Taka możliwość jest skierowana dla pracowników, którzy muszą podejmować decyzje biznesowe poza siedzibą przedsiębiorstwa lub partnerów biznesowych. Istnieje możliwość przesłania takiego raportu do jednego z partnerów biznesowych jako załącznik wiadomości . Raporty tego typu mają możliwość filtrowania danych czy sortowania. Raporty w wersji mobilnej IBM Cognos Mobile to kolejna opcja zwiększająca dostępność oraz dzielenie się raportami. Podobnie jak Active Report umożliwia na dostęp do raportów oraz analiz na zewnątrz organizacji. Microsoft Office IBM Cognos umożliwia na dostęp do danych z poziomu narzędzi pakietu Microsoft Office. Przykładowo, analityk na potrzeby sporządzenia prezentacji w programie Power Point może skorzystać z repozytorium przygotowanych raportów przeciągając dowolny raport na jeden ze slajdów. Do aplikacji Excel również można zaimportować raport, a następnie dokonać dowolnych obliczeń, które umożliwia te narzędzie. Dodatkowo wszelkie czynności wymagają wcześniejszego zalogowania się do systemu z poziomu aplikacji Microsoft Office, aby zapewnić odpowiedni poziom bezpieczeństwa. Pozycja IBM Cognos w raporcie Gartnera [18] Mocne strony IBM Cognos IBM nadal umacnia swoją wizję przywództwa BI. W roku 2010 nastąpiło ujednolicenie produktów. IBM może zaoferować oferty oparte na narzędziach lub konkretnych rozwiązaniach. W październiku IBM przedstawił nową wersję IBM Cognos Została poprawiona wydajność, między innymi dokonano udoskonalenia silnika zapytań. Udoskonalono integrację z statystykami oraz analityką predykcyjną. W 2009 roku IBM dokonał nabycia SPSS, czyli zaawansowanego narzędzia do eksploracji danych. W 2009 roku IBM utworzył narzędzie IBM Cognos Express skierowane do średnich przedsiębiorstw. IBM kontynuuję swoją wizję w stosowaniu analityki biznesowej w bardziej szerokim zakresie zastosowań.

26 ROZDZIAŁ 2. RAPORTOWANIE 20 Ostrzeżenia 23% ankietowanych dalej uważa, że wydajność jest problemem. Użytkownicy uważają, że produkty Cognos są trudniejsze w użyciu niż konkurencyjne narzędzia. Jest to jeden z głównych powodów ograniczających zwiększanie liczby wdrożeń. Kolejny powód to wysokie koszty licencji, w szczególności dla produktów SPSS oraz TM1. Koszt zawsze był głównym powodem zniechęcającym do używania IBM Cognos. Klienci narzekają na niski poziom obsługi dotyczący wsparcia oraz interakcji sprzedażowej. Został on oceniony jako jeden z najniższych wśród wszystkich dostawców wymienionych w raporcie Gartnera. 2.3 Podsumowanie Dostępne na rynku narzędzia zawierają wiele interesujących i przydatnych funkcji. Wspierają one tworzenie zaawansowanych raportów. Aczkolwiek nie istnieje narzędzie idealne, które umożliwiałoby tworzenie raportów jeszcze bardziej zorientowanych na użytkownika. Raportów bardziej interaktywnych, które posiadają wbudowane funkcje sortowania, filtrowania, zwijania oraz rozwijania danych czy możliwość zmiany hierarchii grupowania. W poniższych sekcjach zostaną opisane cechy, które powinno posiadać idealne narzędzie raportujące. Prezentowanie raportów poprzez przeglądarkę Jest to ważne wymaganie, ponieważ użytkownicy mają dostęp do tych raportów z dowolnego miejsca w organizacji czy nawet na świecie - w zależności czy dana aplikacja dostępna jest poza granicami firmy. Wymaganie te ma również pozytywny wpływ na dzielenie się danymi. Z punktu widzenia administratorów utrzymanie, instalacja oraz zarządzanie zmianami w tego typu systemach jest łatwiejsze. Pakiet JasperSoft spełnia te wymaganie. Istnieje możliwość udostępnienia raportów w aplikacji JasperServer. Dynamiczna hierarchia grupowania danych Na wstępie dokonano przegląd metod prezentacji danych w postaci tabelarycznej. Tabelka Najprostsza metoda. Wszystkie dane prezentowane są w postaci tabeli dwuwymiarowej. W przypadku dużego wolumenu danych nie można nic wywnioskować z

27 ROZDZIAŁ 2. RAPORTOWANIE 21 takiej postaci. Małym udoskonaleniem jest możliwość filtrowania oraz sortowania danych. Tabelka z pojedynczym poziomem grupowania Pogrupowanie danych według jednej z kolumn (np. produkt, rok, departament) oraz wyliczenie agregacji mierników na poziomie grup. Jest to udoskonalenie prostej tabelki, aczkolwiek czasami istnieje potrzeba pogrupowania według zawartości więcej niż jednej kolumny (wymiarze). Niektóre aplikacje zawierają nawet setki raportów w takiej postaci. Przykładem jest system Service Desk Plus, który posiada następujące raporty: incydenty według serwisanta, incydenty według statusu, incydenty według priorytetu itd. Tabelka z wieloma poziomami grupowania Udoskonalenie poprzedniej metody umożliwiające utworzenie hierarchii grupowania, przykładowo rok, kwartał, miesiąc lub grupa produktu, produkt. Ponieważ liczba możliwych hierarchii grupowania jest olbrzymia to użytkownik powinien mieć możliwość jej ustalenia. Tabelka z dynamiczną hierarchią grupowania Użytkownik sam decyduje według jakiej hierarchii chce oglądać dane. Ma on możliwość zmiany hierarchii grupowania w dowolny sposób. Właśnie dlatego taka funkcja powinna być udostępniona bezpośrednio użytkownikom raportów, a nie tylko twórcom raportów, którzy są zobowiązani do utworzenia wszelkich możliwych kombinacji. Tworząc raporty przy pomocy JasperReports programista jest zobowiązany ustalić hierarchię grupowania. Użytkownik raportu nie ma możliwości zmienić tej hierarchii. Programista musi utworzyć w takim przypadku drugi raport. W raportach typu List w IBM Cognos można grupować dane za pomocą jednej lub większej liczby kolumn. Podobnie jak w JasperReports nie ma możliwości dokonywania zmiany hierarchii grupowania poprzez użytkownika, wymagana jest ingerencja uprzywilejowanego analityka. Prezentowanie jednocześnie danych szczegółowych oraz podsumowań Raport zawierający tylko i wyłącznie same podsumowania jest mało przydatny przy codziennej operacyjnej działalności przedsiębiorstwa. Pracownicy szeregowi powinni mieć możliwość dostępu do raportów zawierających szczegółowe dane, przykładowo na temat ich klientów lub na temat spotkań. Natomiast menedżerowie powinni na tym samym raporcie zobaczyć podsumowania, które pomagają w podejmowaniu decyzji biznesowych. Prezentując na jednym raporcie zarówno dane szczegółowe oraz podsumowania jest atrakcyjną możliwością, ponieważ

28 ROZDZIAŁ 2. RAPORTOWANIE 22 pozwala na zbadanie dokładnych danych wchodzących w skład wybranego podsumowania. Raporty tworzone w taki sposób umożliwiają łatwe i szybkie przejście od danych ogólnych do danych szczegółowych. Prezentując dane w taki sposób należy brać pod uwagę ogrom informacji szczegółowych, dlatego bardzo pożądana jest możliwość zwijania oraz rozwijania danych. JasperReports umożliwia tworzenie raportów zawierających dane szczegółowe oraz podsumowania zawierające dowolną liczbę grup. IBM Cognos zawiera raport typu lista, który umożliwia prezentowanie danych szczegółowych oraz podsumowań. Natomiast raport typ Crosstab umożliwia tylko i wyłącznie prezentowanie podsumowań. Zwijanie/rozwijanie danych W przypadku wielkiego wolumenu danych, który zajmuję wiele ekranów monitora istnieje potrzeba ukrycia niepotrzebnych danych. Powinno to działać jako ukrywanie całego poziomu drzewa utworzonego przez hierarchię grupowania. Użytkownik powinien mieć możliwość dowolnego zwijania oraz rozwijania gałęzi drzewa tak, aby były widoczne tylko takie dane, które są dla niego istotne. Pozwala to zaoszczędzić czas pracy użytkownika. Raport utworzony w JasperReports zawiera wszystkie dane od razu rozwinięte. Użytkownik nie ma możliwości ich zwijania oraz rozwijania. Jest to uciążliwe, gdy raport zajmuje kilkanaście/kilkadziesiąt stron co utrudnia znalezienie istotnej dla użytkownika informacji. W IBM Cognos raport typu Crosstab umożliwia zwijanie oraz rozwijanie danych, natomiast raport typu List takiej opcji nie posiada. Zamrażanie wierszy nagłówka oraz kolumn Jest to funkcjonalność dostępna w narzędziu Excel. Niestety jeszcze rzadko spotykana w technologiach WWW. Jest to bardzo wygodna funkcja dla użytkownika raportu, ponieważ w przypadku, gdy dane nie mieszczą się na pojedynczym ekranie monitora bardzo dużym utrudnieniem jest ciągłe przewijanie ekranu w celu zobaczenia pierwszej kolumny lub pierwszego wiersza danych. Dlatego też dodanie takiej funkcji do istniejących narzędzi jest bardzo pożądane. W narzędziu JasperReports problem ten został częściowo rozwiązany. Na każdej stronie raportu występują wiersze nagłówka. Nie jest to idealne rozwiązanie, ponieważ zwiększa rozmiar raportu oraz nagłówki nie są umieszczone w tym samym miejscu na monitorze. JasperReports nie umożliwia zamrożenia pierwszej kolumny. Raporty IBM Cognos prezentowane poprzez przeglądarkę nie umożliwiają zamrażania nagłówka oraz pierwszej kolumny widoku. Projektant powinien zadbać o to, aby użytkownik nie był zmuszony do ciągłego przewijania danych.

29 ROZDZIAŁ 2. RAPORTOWANIE 23 Filtrowanie danych Wszystkie narzędzia umożliwiają filtrowanie danych, ale nie jest ono wystarczająco wygodne. Prawie zawsze istnieje potrzeba zdefiniowania formularza do filtrowania danych co jest czasochłonne oraz wymaga dodatkowej pracy. Dodatkowo trzeba zarządzać zmianami, gdy zostaną dodane jakieś atrybuty do istniejącego raportu. Wygodniejsze rozwiązanie zostało zrealizowane w narzędziu Excel. W tym rozwiązaniu użytkownik ma możliwość filtrowania danych po dowolnej z kolumn. Gdy dojdzie nowa kolumna do arkusza danych, nie trzeba wykonywać dodatkowej pracy przy konstrukcji formularza do filtrowania. Tworząc raport w JasperReports należy ręcznie skonstruować formularz do filtrowania danych poprzez zadeklarowanie parametrów oraz ich użycie w warunkach zapytania. JasperServer automatycznie poprosi użytkownika o podanie wartości parametrów. W przypadku użycia JasperReports w innej aplikacji programista musi samemu utworzyć formularz i przekazać wartości parametrów. IBM Cognos ma bardzo bogate możliwości filtrowania danych. Dostępne są następujące opcje: filtry typu Prompt, indywidualne akcje filtrowania w poszczególnych raportach oraz filtry typu Slider lub Select. Filtr typu Prompt polega na tym, że przed wyświetleniem raportu zostaje wyświetlony formularz, w którym następuje podanie wartości parametrów. Druga opcja to proste filtrowania wartości numerycznych lub nienumerycznych. W przypadku wartości numerycznych można skonstruować proste filtry typu wartości są większe lub mniejsze od zaznaczonej komórki. Dla wartości nienumerycznych istnieje możliwość pozostawienia wierszy, których wartość jest taka sama lub różna od wybranej komórki raportu. Taki typ filtrowania umożliwia jedynie skonstruowanie bardzo prostych kryteriów filtrowania. Ostatni typ filtrowania umożliwia szybkie filtrowania po kolumnach słownikowych, wybierając podzbiór możliwych wartości, które pozostaną w raporcie. Domyślnie dostępne opcje filtrowania w IBM Cognos umożliwiają na skonstruowanie zaawansowanych kryteriów, aczkolwiek użytkownik nie może utworzyć dowolnie skomplikowanego wyrażenia boolowskiego. Sortowanie danych Jest to funkcja, która bardzo często występuje. Jednak, gdy raport może zostać wyświetlony tylko w postaci pliku w formacie PDF to w naturalny sposób taka funkcja nie może zostać zrealizowana. Ze względu na format wynikowy raport utworzony w technologii JasperReports nie zawiera możliwości sortowania danych poprzez użytkownika. Nawet istnieją ograniczenia w sortowaniu danych poprzez programistę. Gdy zostanie ustalona hierarchia grupowania, narzędzie wymaga, aby dane źródłowe były posortowane według kolumn występujących w tej hierarchii. Przykładowo jeżeli raport jest pogrupowany według regionów oraz zespołów to dane również muszą być

30 ROZDZIAŁ 2. RAPORTOWANIE 24 pogrupowane według tych dwóch kolumn. Raporty IBM Cognos umożliwiają sortowanie danych po dowolnej z kolumn. Raportowanie wewnątrz systemu Większość pakietów Business Intelligence wymaga udostępniania raportów w osobnym środowisku. Z punktu widzenia użytkownika jest to kolejny system, do którego musi się zalogować, pamiętać hasło dostępu oraz musi poświęcić swój czas na jego naukę. Dlatego też twórcy oprogramowania Business Intelligence zauważyli, że umieszczanie raportów bezpośrednio w aplikacjach WWW ma swoje zalety i jest wysoce pożądaną funkcją przez użytkowników. Istnieje możliwość umieszczenia raportu JasperReports wewnątrz aplikacji opartych o Spring framework, gdzie została przygotowana specjalna klasa widoku JasperView. Wszystkie prezentowane raporty w IBM Cognos muszą być dostępne wewnątrz dedykowanej aplikacji do raportowania. Export do XLS Wybrani użytkownicy powinni mieć możliwość wyeksportowania wszystkich danych raportu do pliku w formacie xls. JasperReports umożliwia wyeksportowanie raportu do większości popularnych formatów wynikowych w tym XLS. IBM Cognos zawiera funkcję eksportu do plików XLS. Drukowanie raportu Raport powinien zawierać możliwość wydrukowania. W przypadku JasperReports istnieje możliwość wyeksportowania raportu do pliku w formacie PDF. IBM Cognos umożliwia drukowanie raportów. Deklaratywny sposób tworzenia raportów Utworzenie raportu nie powinno wymagać ingerencji programisty, aby ten cel osiągnąć wymagane jest deklaratywne tworzenie raportów. Dodatkowo czynność ta powinna być wykonywana przez osobę, która nie musi posiadać dużej wiedzy informatycznej w tym nie musi znać modelu fizycznego bazy danych. Dlatego też raport powinien być tworzony w oparciu o model biznesowy, który jest zrozumiały przez analityków biznesowych. Przykładem takiego modelu jest świat obiektów występujący w narzędziu Business Objects. W wersji darmowej JasperReports użytkownik jest zobowiązany opierać tworzenie raportów o zapytania w języku SQL. Wymaga to znajomości schematu

31 ROZDZIAŁ 2. RAPORTOWANIE 25 bazy danych. Wersja komercyjna zawiera możliwość utworzenia modelu biznesowego. IBM Cognos posiada zaawansowany sposób modelowania danych składający się z paru warstw. Wszelkie operacje wykonywane są bez ingerencji programisty. Pobieranie tylko widocznych danych Do prezetacji raportu powinny zostać pobrane tylko takie dane, które są aktualnie widoczne dla użytkownika. Przede wszystkim pobranie wszystkich danych powiązanych z danym raportem może być zbyt czasochłonne ze względu na konieczność przejrzenia całej zawartości tabeli oraz czas transportu danych poprzez sieć. JasperReports wymaga pobrania wszystkich danych jednokrotnie. Na podstawie tych danych generowany jest plik wynikowy. IBM Cognos pobiera tylko dane, które są aktualnie widoczne na ekranie. Wnioski Zatem wszystkie omawiane platformy: JasperSoft oraz IBM Cognos posiadają pewne braki, dlatego też istnieje potrzeba zaproponowania nowego narzędzia, które umożliwi prezentowanie raportów w sposób nowatorski. W kolejnym rozdziale omówiono bibliotekę do tworzenia raportów spełniającą wyżej wymienione cechy.

32 Rozdział 3 Biblioteka W tym rozdziale zaprezentowano bibliotekę dla hierarchicznych raportów. Na wstępie przedstawiono wymagania stawiane takiej bibliotece z podziałem na wymagania użytkownika oraz twórcy raportów. Następnie omówiono przypadki użycia raportu. W kolejnej sekcji przedstawiono przykładowe bazy danych oraz raporty. Omówiono meta-model biznesowy oraz raportów łącznie z przykładami. W kolejnych sekcjach opisano projekt, implementację oraz przeprowadzone testy aplikacji. Na końcu zaprezentowano działającą aplikację z naciskiem na możliwości analizowania danych. 3.1 Wymagania Wymagania funkcjonalne Perspektywa użytkownika Użytkownik korzystający z raportu, powinien mieć możliwość oglądania tylko takich danych, które go w danej chwili interesują. Powinien mieć możliwość wprowadzania dynamicznych zmian w raporcie: sortowania, zamrażania kolumn oraz zmiany hierarchii grupowania. Powinien mieć również możliwość wyeksportowania danych do pliku w formacie csv lub xls. Zatem biblioteka winna obsługiwać następujące rodzaje ingerencji i typy prezentacji na raportach: sortowanie wierszy; zwijanie/rozwijanie danych; filtrowanie danych; różne typy kolumn: waluta, data, wartość boolowska, odsyłacz; 26

33 ROZDZIAŁ 3. BIBLIOTEKA 27 dynamiczna zmiana hierarchii; eksport danych do pliku; zapisanie aktualnego stanu raportu; Perspektywa twórcy raportów Twórca raportu powinien mieć możliwość utworzenia nowego raportu w sposób deklaratywny a nie programowo. To założenie skraca czas pracy oraz zmniejsza liczbę błędów. Raporty powinny być możliwe do utworzenia dla osoby, która nie jest specjalistą z dziedziny informatyki. Utworzenie pliku XML, który reprezentuje model raportu. Do utworzenia modelu może zostać wykorzystane narzędzie z graficznym interfejsem użytkownika. Utworzenie pojedynczego raportu powinno trwać nie więcej niż kilkadziesiąt minut. Narzędzie powinno umożliwiać utworzenie modelu biznesowego (świat klas) w oparciu o który zostaną zbudowane raporty Wymagania niefunkcjonalne Zamrożenie pierwszych kolumn oraz nagłówka; Prezentacja tylko dostępnych danych - uprawnienia; Widok powinien pobierać tylko potrzebne dane: zmniejsza to obciążenie bazy danych oraz umożliwia szybsze przesłanie danych przez sieć; Prezentacja raportu w postaci dynamicznej strony HTML; System powinien wspierać przeglądarki internetowe w podanych wersjach: Firefox 3.x, Google Chrome 3.x oraz Internet Explorer 6.x Przypadki użycia Aktorzy Użytkownik raportu to osoba korzystająca z raportu. Diagram przypadków użycia Rysunek 3.1 przedstawia przypadki użycia dostępne dla użytkownika raportów.

34 ROZDZIAŁ 3. BIBLIOTEKA 28 Rysunek 3.1: Przypadki użycia dla użytkownika raportu UC.DR Wyświetlenie raportu Przebieg zdarzeń Nr System Użytkownik 1. Użytkownik wybiera raport 2. System wyświetla raport UC.KR Korzystanie z raportu Przebieg zdarzeń Użytkownik wykonuje dowolną liczbę razy jedną z czynności: U C.SHOW.CHILDS, U C.HIDE.CHILDS, UC.F ILT ER, UC.SORT,

35 ROZDZIAŁ 3. BIBLIOTEKA 29 UC.EXP ORT, UC.HIERARCHY. Prototyp interfejsu użytkownika Rysunek 3.2: Główny panel raportu - prototyp UC.SHOW.CHILDS Rozwijanie danych Cel Użytkownik dla danego poziomu hierarchii grupowania w raporcie zamierza zejść w dół, aby obejrzeć bardziej szczegółowe dane. W szczególności może być to pokazanie danych na najniższym poziomie. Przebieg zdarzeń Nr System Użytkownik 1. Klika w ikonkę krzyżyka w wierszu, który chce rozwinąć 2. System pokazuje szczegółowe dane dla wybranego elementu Wymagania niefunkcjonalne Pierwsze wyświetlenie elementów podrzędnych powoduje pobranie ich z serwera, natomiast kolejne pobierane są z pamięci podręcznej klienta.

36 ROZDZIAŁ 3. BIBLIOTEKA 30 UC.HIDE.CHILDS Ukrywanie danych Cel Użytkownik zamierza schować dane, aby nie zakłócać dalszego korzystania z raportu. Przebieg zdarzeń Nr System Użytkownik 1. Klika w ikonkę w wierszu, dla którego chce schować szczegóły 2. System ukrywa wszystkie dane podrzędne. UC.FILTER Filtrowanie raportu Cel Użytkownik zamierza przefiltrować zbiór danych poprzez zadanie filtra na wybranych kolumnach. Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję filtrowania danych 2. Definiuje filtr 3. Zatwierdza poprzez wybranie opcji filtruj 4. Pyta użytkownika, czy chce wyświetlić nowy raport 5. Potwierdza wyświetlenie nowego raportu 6. Wyświetla nowy raport z zadanym filtrem Prototyp interfejsu użytkownika UC.SORT Sortowanie Cel Użytkownik zamierza posortować widok według jednej z kolumn.

37 ROZDZIAŁ 3. BIBLIOTEKA 31 Rysunek 3.3: Budowanie filtru - prototyp Przebieg zdarzeń Nr System Użytkownik 1. Zaznacza kolumnę 2. System odświeża raport z posortowanymi danymi według zadanej kolumny UC.EXPORT Eksport do pliku Cel Użytkownik zamierza zapisać do pliku dane zawarte w raporcie. Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję eksportu danych do pliku 2. System wyświetla okienko z opcją pobrania pliku 3. Wybiera opcję zapisania pliku UC.HIERARCHY Zmiana hierarchii grupowania Cel Użytkownik zamierza zmienić hierarchię, według której grupowane są dane.

38 ROZDZIAŁ 3. BIBLIOTEKA 32 Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję zmiany hierarchii grupowania 2. System wyświetla formularz, w którym można wybrać listę atrybutów 3. Kolejno wybiera listę atrybutów 4. Wybiera opcję zakończ 5. Pyta użytkownika, czy chce wyświetlić nowy raport 6. Potwierdza 7. Wyświetla nowy raport Prototyp interfejsu użytkownika Rysunek 3.4: Hierarchia grupowania - prototyp 3.2 Przykładowe bazy danych W tej sekcji zostały opisane przykładowe bazy danych na podstawie, których zaprezentowano meta-model biznesowy, meta-model raportów oraz przykładowe raporty CRM Rysunek 3.5 przedstawia diagram tabel dla fragmentu bazy danych systemu typu CRM 1. Fragment ten dotyczy funkcjonalności kalendarza doradcy oraz kartoteki klientów. System umożliwia planowanie spotkań z klientami, generowanie raportów aktywności doradców, zarządzanie kalendarzem oraz wyszukiwanie klientów. 1 CRM Customer Relationship Management

39 ROZDZIAŁ 3. BIBLIOTEKA 33 Rysunek 3.5: Diagram tabel dla systemu CRM

40 ROZDZIAŁ 3. BIBLIOTEKA 34 KLIENCI Tabela przechowująca dane o klientach oraz potencjalnych klientach. Jest to rozróżniane po kolumnie CZY KLIENT. SEGMENTY Słownik z możliwymi segmentami klientów. ETAPY PROSPEKTOW Słownik z możliwymi etapami potencjalnych klientów. Przykładowe etapy to: nowy, klient zainteresowany, klient niezainteresowany, podpisana umowa. PRACOWNICY Tabela przechowująca dane o pracownikach organizacji. HIERARCHIA ORG Tabela przechowująca hierarchię organizacyjną. Kolumna NADRZEDNE ID jest kluczem obcym na jednostkę nadrzędną. HIERARCHIA PRACOWNIK Tabela zawiera dane o jednostkach organizacyjnych, które są widoczne dla danego pracownika. ZDARZENIA Tabela przechowująca kalendarz: telefony z klientami, spotkania z klientami oraz pozostałe zdarzenia. RODZAJE ZDARZEN Słownik z możliwymi rodzajami zdarzeń, np: spotkanie, telefon oraz urlop. STANY ZDARZENIA Słownik z możliwymi stanami zdarzeń: planowane, zamknięte oraz odrzucone. DANE FINANSOWE Tabela zawierająca dane finansowe na temat klientów: przychód, dochód czy liczba zatrudnionych.

41 ROZDZIAŁ 3. BIBLIOTEKA 35 Rysunek 3.6: Diagram tabel dla zarządzania incydentami STATUSY PROSPEKTOW Słownik z możliwymi stanami potencjalnych klientów: nowy, po telefonie, po spotkaniu Service Desk Rysunek 3.6 przedstawia fragment bazy danych dla systemu Service Desk. Fragment ten dotyczy procesu zarządzania incydentami. System umożliwia klientom usługi zgłaszanie nowych incydentów. Pracownik pierwszej linii ma możliwość

42 ROZDZIAŁ 3. BIBLIOTEKA 36 przypisania się do incydentu. System umożliwia wyszukiwanie incydentów oraz dodawanie komentarzy dla incydentów. Baza danych została zaczerpnięta z pracy dyplomowej inżynierskiej Piotra Kalańskiego [24]. INCIDENTS Tabela przechowująca informacje o incydentach. CATEGORIES IM Słownik z kategoriami incydentów. URGENCY TYPES IM Słownik z typami pilności incydentów. STATUSES IM Słownik z możliwymi statusami incydentów. PRIORITY TYPES IM Słownik z typami priorytetów incydentów. IMPACT TYPES IM Słownik z typami wpływów incydentów. COMMENTS Tabela z komentarzami dotyczącymi danego incydentu. Każdy komentarz zawiera datę dodania oraz autora. EMPLOYEES Tabela z pracownikami. Każdy incydent powiązany jest z pracownikami na dwa sposoby: pracownik, który zgłosił incydent, serwisant przypisany do incydentu. SUPPORT GROUPS Tabela z grupami wsparcia. Każdy incydent jest przypisany do jednej grupy wsparcia.

43 ROZDZIAŁ 3. BIBLIOTEKA 37 SERVICES Tabela zawierająca dane o usługach. Każdy incydent jest przypisany do jednej usługi. INCIDENT HISTORY Tabela zawierająca pełną historię zmian dla każdego incydentu. Zawiera datę dokonania zmiany, użytkownika, który dokonał zmiany oraz stan incydentu w danej chwili. 3.3 Przykładowe raporty Service Desk Niektóre systemy Service Desk zawierają nawet setki raportów operacyjnych. Przykładowo, dla procesu zarządzania incydentami istnieją następujące raporty: incydenty według kategorii, incydenty według grupy wsparcia, incydenty według priorytetu, incydenty według statusu oraz incydenty według serwisanta. Wszystkie te raporty są do siebie bardzo podobne. Różnią się jedynie atrybutem, według którego grupowane są dane. Taka liczebność raportów jest uciążliwa dla użytkownika, ponieważ przeanalizowanie zawartego w nich ogromu informacji wymaga wiele czasu. Incydenty Tabela 3.1 przedstawia kolumny raportu dotyczącego incydentów. Zrealizowana biblioteka umożliwia jednokrotne utworzenie raportu, który daje możliwość wyboru atrybutów, według których zostaną zgrupowane dane. Co więcej, użytkownik ma możliwość podania wielu atrybutów, które będą tworzyć hierarchię grupowania. Przykładowo, istnieje możliwość pogrupowania incydentów według grupy wsparcia oraz przypisanego specjalisty lub według grupy wsparcia oraz priorytetu. Menedżer incydentów ma również możliwość ustalenia hierarchii priorytet->grupa wsparcia, w celu uzyskania informacji o grupach wsparcia, które rozwiązują najpilniejsze zgłoszenia. Proste raportowanie operacyjne nie daje takich możliwość, ponieważ liczba potencjalnych raportów rośnie wykładniczo CRM Spotkania Tabela 3.2 przedstawia kolumny raportu dotyczącego spotkań. Przykładowe analizy, które umożliwia ten raport:

44 ROZDZIAŁ 3. BIBLIOTEKA 38 Kolumna w raporcie Tabela Kolumna Incydent ID INCIDENTS INCIDENT ID Status STATUS TYPES IM NAME Kategoria CATEGORIES IM NAME Priorytet PRIORITY TYPES IM NAME Temat INCIDENTS SUBJECT Data dodania INCIDENTS CREATION DATE Grupa wsparcia SUPPORTS GROUPS NAME Serwisant EMPLOYEES LAST NAME Tabela 3.1: Raport incydenty Spotkania klienta Jeżeli jednym z atrybutów grupujących jest klient, to pod nim będą prezentowane wszystkie spotkania spełniające zadane kryterium (np: zakres dat). Menedżer dowolnego szczebla ma możliwość wyświetlenia wszystkich klientów bezpośrednio pod swoją jednostką lub może ich pogrupować według jednostki podrzędnej. Przykładowo, dyrektor regionu pod swoim regionem może widzieć wszystkich klientów przypisanych do tego regionu, ale może również pogrupować ich według oddziałów. Spotkania doradcy W tym przypadku atrybutem grupującym jest doradca. Użytkownik mniej jest zainteresowany informacją z jakimi klientami były spotkania, ale ważne jest dla niego kto na tych spotkaniach był. Menedżer ma możliwość obejrzenia aktywności swoich doradców na wiele sposobów. Przykładowo, może zdecydować się na dodatkowe pogrupowanie spotkań według miesiąca spotkania, co umożliwi mu sprawdzenie aktywności doradców w poszczególnych miesiącach. Dodatkowo każdy menedżer ma możliwość dołączenia jednostek podrzędnych, według których chce dokonać dodatkowego pogrupowania. Kolumna w raporcie Tabela Kolumna Centrala HIERARCHIA NAZWA Region HIERARCHIA NAZWA Oddział HIERARCHIA NAZWA Doradca PRACOWNICY NAZWISKO Klient KLIENCI NAZWA Data spotkania ZDARZENIA DATA ZDARZENIA Temat ZDARZENIA TEMAT Opis ZDARZENIA OPIS Tabela 3.2: Raport spotkania

45 ROZDZIAŁ 3. BIBLIOTEKA Meta-Model W tej sekcji został przedstawiony meta-model biznesowy. Model biznesowy tworzony jest przez osobę znającą strukturę relacyjnej bazy danych. Na podstawie tego modelu projektant może utworzyć nowy raport. Został również zaprezentowany meta-model raportów Meta-model biznesowy Rysunek 3.7: Meta-model biznesowy Rysunek 3.7 przedstawia meta-model dla modelu biznesowego. Jest on tworzony przez osobę znającą zawartość bazy danych. Pojęciem podstawowym jest klasa, która mapowana jest na tabele w relacyjnej bazie danych, natomiast jej

46 ROZDZIAŁ 3. BIBLIOTEKA 40 atrybuty na wyrażenia oparte na kolumnach tych tabel. DomainClass jest elementem meta-modelu reprezentującym klasę. Jeden z atrybutów tablename wskazuje na tabelę lub perspektywę. Każdy obiekt DomainClass zawiera listę atrybutów typu dziedziczącego z DomainAttribute. DomainAttribute jest klasą bazową dla poszczególnych typów atrybutów. Każdy z tych atrybutów zawiera nazwę oraz identyfikator. SimpleAttribute jest to najprostszy typ atrybutu. Najczęściej jest to mapowanie na jedną z kolumn, ale może to być również wyrażenie SQL wyliczone na podstawie grup kolumn. Przykładem wyrażenia jest złączenie kolumn imię oraz nazwisko. Atrybuty tego typu mogą być miernikami, co oznacza, że będą agregowane na wyższych poziomach hierarchii grupowania. ReferenceAttribute jest to typ atrybutu, który jest referencją na inną klasę. Jest to odpowiednik kluczy obcych w relacyjnych bazach danych. Przykładowo, klasa Klient może zawierać referencję na klasę Doradca, co odpowiada relacji pomiędzy klientem banku oraz jego doradcą. DictionaryAttribute jest to specjalny rodzaj ReferenceAttribute, który wskazuje na atrybut innej klasy, a nie na całą klasę. Ten rodzaj atrybutu nie jest niezbędny, ale jest ułatwieniem dla twórcy raportów, ponieważ redukuje liczbę czynności wykonywanych podczas tworzenia raportu. DictionaryAttribute został stworzony z myślą o tabelach słownikowych, które zwykle zawierają dwie kolumny: identyfikator/kod oraz nazwę. W takim przypadku istnieje tylko jedna kolumna, która może zostać wyświetlona w raporcie, zatem twórca raportu oszczędza czas potrzebny na jej wybranie. Kolejnym powodem istnienie tego typu atrybutów jest fakt występowania cykli w modelu biznesowych, czyli pomiędzy dwoma klasami może istnieć więcej jak jedna ścieżka. W takim przypadku projektant raportu zawsze musi wybrać właściwą ścieżkę poświęcając na to więcej czasu. Natomiast gdy w klasie istnieją atrybuty typu DictionaryAttribute nie ma potrzeby wskazywania dokładnej ścieżki do docelowego atrybutu, ponieważ została ona określona w momencie tworzenia modelu biznesowego Przykładowy model biznesowy Na podstawie bazy danych opisanej w sekcji przedstawiono przykładowy model biznesowy. Został on zaprezentowany na rysunku 3.8. Fragment modelu został również przedstawiony w postaci diagramu obiektów (rysunek: 3.9). Widoczna jest tam klasa Klient z czterema atrybutami: klient id, nazwa, segment oraz DaneFinansowe.

47 ROZDZIAŁ 3. BIBLIOTEKA 41 Rysunek 3.8: Przykładowy model biznesowy Podstawową klasą modelu jest Klient, która odpowiada tabeli KLIENCI. Kluczem głównym klasy jest klient id. Atrybuty (typu SimpleAttribute): nazwa, NIP, telefon oraz data podp umowy, mapowane są na odpowiednie kolumny tabeli KLIENCI. Atrybut DaneFinansowe jest typu ReferenceAttribute. Wskazuje on na klasę DaneFinansowe przy pomocy klucza obcego: KLIENT ID. Przykładem atrybutu typu DictionaryAttribute jest segment, który jest odwołaniem na atrybut nazwa klasy Segment. Kolumną wykorzystaną przy złączeniu z tabelą SEGMENTY jest SEGMENT ID. Kolejne przykłady atrybutów typu DictionaryAttribute to: doradca, oddzial oraz region. Wszystkie trzy pochodzą z klasy Doradca. W tym przypadku mogą pojawić się wątpliwości związane z istnieniem redundancji aż trzech połączeń między klasami. Po pierwsze wydaje się, że należy wykonać dodatkową pracę przy tworzeniu modelu biznesowego. Oczywiście stwierdzenie to jest prawdziwe, aczkolwiek czynność ta wykonywana jest jednokrotnie. Natomiast dla danego modelu biznesowego może istnieć wiele raportów, w których będą występować atrybuty: doradca, oddzial oraz region. Przeniesienie tych atrybutów do klasy

48 ROZDZIAŁ 3. BIBLIOTEKA 42 Rysunek 3.9: Diagram obiektów dla przykładowego modelu biznesowego Klient wpływa pozytywnie na skrócenie czasu pracy projektanta raportów, ponieważ nie musi wskazywać na atrybuty pochodzące z klas: Oddzial lub Region, natomiast może wskazać bezpośrednio atrybuty z klasy Klient. Dodatkowo, gdy dla danego modelu biznesowego istnieje cykl, tak jak dla modelu przykładowego między klasami: Klient, Doradca oraz Spotkanie, to może pojawić się problem w ustaleniu w jaki sposób dostać się do atrybutu nazwa z klasy Doradca. Dla klasy Spotkanie istnieją dwie ścieżki: bezpośrednia oraz przez klasę Klient. Gdyby w klasie Klient nie istniał atrybut doradca to projektant musiałby za każdym razem wskazywać, którą ścieżkę chce wybrać, co wiążę się z wydłużeniem czasu pracy. Druga wątpliwość związana jest z wydajnością. Czy silnik biblioteki wygeneruje zapytanie, które trzykrotnie łączy tabelę KLIENCI z tabelą PRACOWNICY? Odpowiedź jest negatywna, ponieważ sytuacja ta zostanie wykryta i zostanie wykonane tylko jedno złączenie. Reasumując, rodzaj atrybutu DictionaryAttribut został utworzony w celu skrócenia czasu pracy projektanta raportów Meta-model raportu Na rysunku 3.10 został przedstawiony meta-model raportów. Raport składa się z wielu kolumn typu pochodnego z ReportColumn. Każda z nich jest powiązana z atrybutem klasy. Raport zawiera wskazanie na klasę, względem której ustalane są jego kolumny.

49 ROZDZIAŁ 3. BIBLIOTEKA 43 Rysunek 3.10: Meta-model raportu SimpleReportColumn jest to prosta kolumna powiązana z atrybutem typu SimpleAttribute. ReferenceReportColumn Obiekty tego typu tworzą ścieżkę, która wskazuje atrybut docelowy. Ścieżka ta rozpoczyna się w głównej klasie (wskazanej przy pomocy mainclass). Każdy węzeł ścieżki powiązany jest z atrybutem meta-modelu klas: ReferenceAttribute. Wyjątek stanowi ostatni element, który jest typu

50 ROZDZIAŁ 3. BIBLIOTEKA 44 SimpleReportColumn, czyli wskazuje na obiekt typu SimpleAttribute. Taki rodzaj kolumny jest wskazany, ponieważ w modelu biznesowym mogą występować cykle, a tym samym istnieje wiele ścieżek pomiędzy dwiema klasami. W takim przypadku projektant raportu zostanie poproszony o wybranie jednej ze wspomnianych ścieżek. Przykładowy model biznesowy opisany w sekcji zawiera cykl pomiędzy klasami: Spotkanie, Doradca oraz Klient Przykładowy raport Na podstawie modelu biznesowego omówionego w sekcji przedstawiono realizację raportu Spotkania zaprezentowanego w sekcji 3.3. Kolumna w raporcie Klasa Atrybut Region Klient region Oddział Klient oddzial Doradca Klient doradca Klient Klient nazwa Data spotkania Spotkanie data Temat Spotkanie temat Opis Spotkanie opis Tabela 3.3: Raport spotkania - realizacja Rysunek 3.11 przedstawia diagram obiektów dla fragmentu tego raportu. Obiekt klasy Report reprezentuje model. Powiązany jest on z klasą Spotkanie. Na rysunku widoczne są dwie kolumny raportu: temat oraz klient. Pierwsza jest typu ReportSimpleColumn i wskazuje na atrybut temat klasy Spotkanie, natomiast druga jest typu ReportReferenceColumn, ponieważ wskazuje na atrybut innej klasy niż klasa mainclass. Widoczna jest tutaj ścieżka od klasy Spotkanie do atrybutu nazwa z klasy Klient, która reprezentowana jest przy pomocy klas: ReportReferenceColumn oraz ReportSimpleColumn. 3.5 Projekt Zrealizowana aplikacja posiada budowę modułową, została podzielona na pod projekty. Pierwszy projekt jest związany z modelem. Zawiera on klasy reprezentujące model biznesowy, który został opisany w sekcji 3.4 oraz model raportów (3.4.3). Podstawowe zadanie tego modułu to generowanie zapytania na podstawie dostarczonego modelu. Drugi projekt związany jest z prezentacją raportów. Zawiera on klasy dotyczące interfejsu użytkownika. Projekt ten również odpowiada również za komunikację warstwy klienta z warstwą serwera, która korzysta z usług klas dostarczonych w modelu.

51 ROZDZIAŁ 3. BIBLIOTEKA 45 Rysunek 3.11: Diagram obiektów dla raportu Spotkania Model Na rysunku 3.12 przedstawiono diagram pakietów dla modułu związanego z modelem. edu.pw.treegrid.server.classmodel Zawiera klasy reprezentujące model biznesowy. Jest to klasa biznesowa zawierająca listę atrybutów. edu.pw.treegrid.server.reportmodel Pakiet, który zawiera klasy związane z modelem raportów. Jest to klasa Raportu oraz kolumny raportu. edu.pw.treegrid.server.filter Klasy związane z filtrowaniem danych. edu.pw.treegrid.server.query Zadaniem tego pakietu jest generowanie zapytania SQL dla danego raportu przy ustalonym kryterium oraz dla określonej hierarchii grupowania. edu.pw.treegrid.server.service W tym pakiecie dostępne są klasy dostarczające usługi do operacji na modelu. Klasa XMLMarshaller odpowiedzialna jest za serializację oraz deserializację modelu do plików w formacie XML. Natomiast klasa TreeServiceImpl udostępnia usługi związane z pobieraniem modelu raportu oraz pobieraniem danych dla raportu.

52 ROZDZIAŁ 3. BIBLIOTEKA 46 Rysunek 3.12: Model - diagram pakietów Web edu.pw.treegrid.client.report.controller Pakiet pełniący rolę kontrolera z wzorca projektowego MVC (Model View Controller). Do jego głównych zadań należy obsługa akcji użytkownika. edu.pw.treegrid.client.report.view Pakiet zawierający klasy związane z warstwą prezentacji: okno z ustawieniami, panel raportu czy okno pomocy. edu.pw.treegrid.client.format Ten pakiet zawiera klasy odpowiedzialne za formatowanie danych: format liczbowy oraz format daty. edu.pw.treegrid.client.report.model Pakiet zawierający źródła danych komunikujące się z serwerem. Klasy te są typu DataSource. edu.pw.treegrid.client.report.events Zdarzenia zachodzące w aplikacji.

53 ROZDZIAŁ 3. BIBLIOTEKA 47 Rysunek 3.13: Klient - diagram pakietów Rysunek 3.14: Serwer - diagram pakietów edu.pw.treegrid.server.web Główną klasą pakietu jest ReportServlet, która odpowiada za obsłużenie zadań klienta. Komunikację klienta z serwerem opisano w sekcji edu.pw.treegrid.server.view XLS. Klasa odpowiedzialna za utworzenie pliku w formacie edu.pw.treegrid.server.converters Klasy, których zadaniem jest konwersja obiektów danego typu na obiekty typu Record, które następnie są przekształcane do

54 ROZDZIAŁ 3. BIBLIOTEKA 48 formatu XML przesyłanego w odpowiedzi na żądania klienta Diagramy sekwencji W sekcji tej opisano przykładowe diagramy sekwencji związane z rozwijaniem danych opisanym w przypadku użycia UC.SHOW.CHILDS Przedstawiono zarówno warstwę klienta jak i serwera. Diagramy zostały zaprezentowane na podstawie klas analitycznych nie związanych z konkretną technologią. Diagram na rysunku 3.15 przedstawia operacje wykonywane po stronie klienta w wyniku akcji użytkownika rozwinięcia danych szczegółowych. Na tym diagramie znajdują się następujące klasy: OpenerCell, TreeGridController, TreeGridModel, TreeGridView oraz TreeGridService. OpenerCell to klasa będąca guzikiem, w który należy kliknąć, aby rozwinąć dane. Klasy TreeGridController, TreeGridModel oraz TreeGridView tworzą wzorzec projektowy MVC. Natomiast klasa TreeGrid- Service jest odpowiedzialna za komunikację z serwerem. Po kliknięciu na przycisk do rozwijania danych zostanie wywołana metoda onclick() klasy TreeGridController, która pełni rolę kontrolera według wzorca projektowego MVC. Następnie kontroler przekazuje żądanie do modelu TreeGridModel wywołując metodę togglechilds(), która odpowiada za zwijanie oraz rozwijanie danych. Model dokonuje sprawdzenia czy jest to operacja rozwinięcia czy zwinięcia danych. W przypadku rozwinięcia danych model również sprawdza, czy potrzebne dane zostały już wcześniej pobrane z serwera. Jeżeli konieczna jest komunikacja z warstwą serwera model dokonuje utworzenia obiektu żądania Request. W pierwszym kroku należy ustalić identyfikator wiersza wykorzystując metodę getpath(). W kolejnym kroku zostaje wywołana metoda fetchchilds() klasy TreeGridService. Po otrzymaniu odpowiedzi od serwera metoda notifystatechanged() informuje o zmianie stanu klienta. Metoda ta dokonuje powiadomienia klasę widoku TreeGridView o zmianie stanu modelu poprzez metodę onmodelstatechanged(). Metoda on- ModelStateChanged() powoduje odświeżenie widoku poprzez wywołanie metody repaint(), która usuwa wszystkie wiersze widoku - metoda cleartable() oraz dodaje nowe wiersze addrows() pobrane wcześniej od modelu przy pomocy metody getvisibleobjects(). Drugi diagram widoczny na rysunku 3.16 przedstawia stronę serwera tej samej operacji opisanej powyżej. W wyniku żądania klienta zostaje wywołana metoda fetchchilds() klasy TreeGridService. W pierwszym kroku następuje odczytanie modelu z plików XML za pomocą metody unmarshall() klasy XMLMarshaller. Następnie zostaje wygenerowane zapytanie SQL w metodzie generatequerytree() klasy QueryGenerator. W dalszej kolejności zostanie wywołana metoda fetch() klasy DataSource, która odpowiada za komunikację z bazą danych. W wyniku zostanie zwrócona lista wierszy, która musi zostać następnie przetransformowana do postaci zwracanej do klienta.

55 ROZDZIAŁ 3. BIBLIOTEKA 49 Rysunek 3.15: Diagram sekwencji - rozwijanie danych - klient

56 ROZDZIAŁ 3. BIBLIOTEKA 50 Rysunek 3.16: Diagram sekwencji - rozwijanie danych - serwer

57 ROZDZIAŁ 3. BIBLIOTEKA Implementacja Sekcja ta zawiera opis wybranych problemów implementacyjnych: generowanie zapytania SQL, komunikacji klienta z serwerem oraz serializacji do formatu XML. Następnie opisano wykorzystywane technologie oraz użyte narzędzia Generowanie zapytania Rysunek 3.17: Diagram obiektów dla generowania zapytania Na podstawie modelu biznesowego omówionego w sekcji 3.4 generowane jest zapytanie w języku SQL. W etapie pośrednim tworzone jest drzewo, które umożliwia wygenerowanie polecenia SELECT. Dla każdej kolumny raportu można utworzyć ścieżkę postaci: TABELA 1,..., TABELA N, KOLUMNA. Pierwsza tabela jest związana bezpośrednio z danym raportem poprzez główną klasę raportu, przykładowo Klient. Poszczególne tabele na tej liście reprezentują złączenia klucza głównego z kluczem obcym, aż do otrzymania TABELI N, która zawiera poszukiwaną kolumnę. Na podstawie wszystkich tabel oraz ich kolumn można utworzyć graf, w którym połączenia reprezentują powiązania pomiędzy poszczególnymi tabelami. W takim grafie poszukiwana ścieżka od źródłowej tabeli do kolumny docelowej to najkrótsza ścieżka, którą można znaleźć przy pomocy algorytmu DFS 2. Po utworzeniu wszystkich ścieżek dla każdej kolumny w raporcie należy je ze sobą połączyć w jedno drzewo, przykładowo postać widoczną na rysunku W tym celu została zaimplementowana metoda, która potrafi wstawić ścieżkę do drzewa. Przy tej operacji należy uwzględnić fakt, że poszczególne ścieżki mogą mieć taki sam początek, czyli jedna ścieżka jest prefiksem drugiej. Gdy zachodzi taka sytuacja należy podzielić ścieżkę na dwie części i koniec ścieżki wstawić do odpowiedniego węzła drzewa. Pozwala to uniknąć powstawania duplikatów w drzewie i dopuszczenia do wielokrotnych złączeń pomiędzy tymi samymi 2 DFS Depth First Search

58 ROZDZIAŁ 3. BIBLIOTEKA 52 tabelami, co w rezultacie wpływa pozytywnie na wydajność. W ostatnim kroku algorytmu wystarczy z postaci drzewiastej wygenerować odpowiednie zapytanie SQL. Powiązania pomiędzy węzłami reprezentują złączenia pomiędzy tabelami, natomiast węzły z kolumnami są uwzględnione przy generowaniu klauzuli SE- LECT Komunikacja klient - serwer Komunikacja między klientem a serwerem jest oparta o format XML. Na wszystkie żądania klienta serwer zwraca plik XML, który ma postać przedstawioną poniżej: - <response> <status>0</status> - <data> + <record></record> + <record></record> + <record></record> </data> </response> Element record zawiera listę elementów podrzędnych o dowolnych nazwach. Lista ta odpowiada strukturze mapy, gdzie nazwa elementu jest kluczem natomiast zawartość elementu jest wartością. Po stronie klienta zaimplementowano klasy dziedziczące z klasy RestDataSource z biblioteki SmartGWT. Komunikacja pomiędzy klientem oraz serwerem zgodna z tą biblioteką jest szczegółowo opisana w dokumentacji technicznej dostępnej na stronie WWW [33] Serializacja do formatu XML Za serializację modelu odpowiada klasa XMLMarshaller. Zawiera ona następujące metody dokonujące serializacji oraz deserializacji: serializereport() dokonuje zapisania raportu do pliku XML, deserializereport() wczytuje raport z pliku XML, serializeclasses() zapisuje model biznesowy do pliku XML, deserializeclasses() wczytuje model biznesowy z pliku XML.

59 ROZDZIAŁ 3. BIBLIOTEKA 53 Każda klasa modelu: raport, kolumna raportu, klasa biznesowa czy atrybut klasy zawiera metody serializetoxml() oraz deserializefromxml(), które odpowiadają za zapisanie oraz odczytanie danych do/z pliku XML. Taki wzorzec projektowy umożliwia hermetyzację tej operacji w poszczególnych klasach. Każda z nich posiada najlepszą wiedzę jak dokonać tej czynności. W przypadku dokonania zmiany, przykładowo dodanie atrybutu, wystarczy zajrzeć do jednego pliku źródłowego i dokonać modyfikacji tych dwóch metod Technologia GWT [7] Google Web Toolkit to technologia której celem jest tworzenie aplikacji WWW bez potrzeby programowania w HTML oraz JavaScript. Programista tworzy aplikację w języku Java, następnie kompilator GWT dokonuje transformacji kodu źródłowego do JavaScript, którego celem jest utworzenie dynamicznej strony HTML. Tworzenie aplikacji w GWT bardziej przypomina tworzenie tradycyjnych aplikacji okienkowych niżeli aplikacji WWW. Cała aplikacja jest jedną stroną WWW, klient musi tylko raz pobrać kod JavaScript. Następnie przy komunikacji warstwy klienta z warstwą serwera, która inicjowana jest poprzez zdarzenia akcji użytkownika takie jak kliknięcie w guzik, dokonywane są zmiany w interfejsie. Cała aplikacja oparta jest na okienkach a nie na stronach. Autor zdecydował się na wybranie tej technologii ze względu na bibliotekę SmartGWT, która zawiera gotowe klasy do tworzenia interfejsu użytkownika. SmartGWT [32] to biblioteka napisana w technologii GWT. Składa się z listy komponentów na podstawie których programista ma możliwość implementowania aplikacji z bogatym interfejsem użytkownika. Warstwę prezentacji części praktycznej pracy magisterskiej zrealizowano na podstawie komponentu TreeGrid. Jest to widok umożliwiający wyświetlenie drzewa zawierającego kolumny. Do funkcjonalności tej klasy należą: sortowanie danych, zwijanie/rozwijanie danych, zamrażanie wierszy nagłówka oraz zamrażanie kolumn. Zrealizowane prace rozbudowały możliwości tego widoku dodając integrację z warstwą serwera, której celem jest dostarczanie danych poprzez generowanie zapytania SQL. Przy realizacji warstwy prezentacji wykorzystano również klasy do konfiguracji filtrowania oraz klasy z listą obiektów, na której widoczne są kolumny raportu niezbędne do ustalenia hierarchii grupowania. JavaServlets [3] Przy realizacji warstwy serwera wykorzystano standardowe serwlety technologii Java.

60 ROZDZIAŁ 3. BIBLIOTEKA Narzędzia IBM Rational Software Architect to narzędzie do tworzenia diagramów UML na etapach analizy oraz projektowania oprogramowania. Przy pomocy tego narzędzia zrealizowano projekt aplikacji. Utworzono diagramy komponentów, klas, obiektów, sekwencji oraz przypadków użycia. W załączonej płycie CD znajduje się wygenerowana dokumentacja z Rational Software Architect. Spring SourceToolSuite jest narzędziem opartym na platformie Eclipse, składającym się z szeregu wtyczek (ang. plugin). Głównym sposobem wykorzystania narzędzia jest tworzenie aplikacji w technologii Java EE. Autor najczęściej korzystał z następujących wtyczek: Subclipse, Mylyn, Web Tools Platform, GWT Plugin oraz Cobertura. Subclipse [35] jest to wtyczka umożliwiająca wykonywanie poleceń SVN z poziomu platformy Eclipse. Mylyn [11] to narzędzie do zarządzania zadaniami. Przy realizacji danego zadania automatycznie zostaje zapamiętany kontekst bezpośrednio z nim związany: wszystkie metody, atrybuty itd. Po powrocie do wybranego zadania narzędzie automatycznie ogranicza pliki źródłowe w widoku Navigator do tych, które zostały wcześniej zapamiętane. Dzięki temu programista może koncentrować się na tym co jest istotne przy realizacji wybranego zadania. Web Tools Platform [8] języku Java. jest platformą do tworzenia aplikacji WWW w Cobertura [5] to wtyczka umożliwiająca obliczenie pokrycia kodu w testach jednostkowych oraz funkcjonalnych. Google Plugin for Eclipse [29] dodaje do platformy Eclipse funkcjonalności ułatwiające tworzenie aplikacji opartych o GWT oraz Google AppEngine. GWT Designer [10] to wtyczka do tworzenia aplikacji z graficznym użytkownika opartych o technologię GWT. Narzędzie umożliwia generowanie kodu źródłowego na podstawie zrealizowanego w sposób graficzny metodą WYSIWYG interfejsu użytkownika, co więcej istnieje możliwość generacji w drugą stronę czyli od kodu źródłowego do interfejsu użytkownika. Apache Maven [2], [31] to narzędzie kompilacji Javy zaprojektowane z myślą o automatyzacji najtrudniejszych zadań związanych z procesem kompilacji. W przeciwieństwie do używanego modelu zadaniowego w Ant zastosowano model

61 ROZDZIAŁ 3. BIBLIOTEKA 55 deklaratywny, w którym struktura i zawartość projektu są opisywane. Maven oferuje również wiele innych funkcjonalności. Zależności projektu są deklarowane i zarządzane w jasny sposób. Narzędzie automatycznie pobiera wymagane biblioteki z repozytorium Mavena uwzględniając zależności przechodnie. Maven umożliwia również generowanie czytelnej, wysokiej jakości dokumentacji technicznej oraz różnego rodzaju raportów. W załączonej płycie CD umieszczono wygenerowaną stronę projektu oraz wszystkie raporty. Użyto następujących raportów: Checkstyle, Cobertura Test Coverage, CPD Report, FindBugs Report, JavaDocs, JDepend, Maven Surefire Report, PMD Report oraz Tag List. Checkstyle [25] to narzędzie, które pomaga programistom pisać kod zgodny z ogólnie przyjętymi standardami. Raport generowany zawiera listę ostrzeżeń lub błędów, które odbiegają od norm. Cobertura Test Coverage [5] poprzez testy jednostkowe. generuje raport zawierający pokrycie kodu CPD Report [26] to narzędzie wykrywa powtarzające się fragmenty kodu, które łamią zasadę DRY (Dont Repeat Yourself). FindBugs Report [12] w kodzie źródłowym. narzędzie, którego celem jest znalezienie defektów JavaDocs to narzędzie do generowania dokumentacji technicznej. Autor dodatkowo zintegrował JavaDoc z narzędziem UmlGraphDoc [37], które dla każdej klasy generuje diagram kontekstowy zawierający wszystkie powiązane klasy. Po kliknięciu w klasę na tym diagramie użytkownik zostanie automatycznie przeniesiony do jej dokumentacji. JDepend [27] jest narzędziem, które generuje raport dotyczący zbioru metryk na temat kodu źródłowego. Umożliwia to automatyczne zmierzenie jakości projektu w takich aspektach jak utrzymanie, ponowne wykorzystanie czy rozwijanie. Wybrane metryki to: liczba klas, liczba pakietów zależnych od danego pakietu, liczba pakietów, od których dany pakiet zależy czy współczynnik klas abstrakcyjnych do klas konkretnych. Maven Surefire Report jednostkowych. tworzy raport o szczegółowych rezultatach testów generuje kolejny raport badający defekty w kodzie źródło- PMD Report wym.

62 ROZDZIAŁ 3. BIBLIOTEKA 56 Tag List [28] to raport zawierający informacje o znacznikach użytkownika w kodzie źródłowym. Przykładowo o znacznikach typu TODO. 3.7 Testy i ocena Środowiska testowe System był testowany w następujących środowiskach: Środowisko 1 System operacyjny: Windows 7 Ultimate 64 bitowy Procesor: Intel Core(TM) i5 CPU 750 2,67 GHz RAM: 4,00 GB Baza danych: Oracle 10g Express Edition Kontener serwletów: SpringSource tc Server v6.0 JDK: jdk (64 bitowa) Środowisko 2 System operacyjny: Windows 7 Professional 64 bitowy Procesor: Intel Core(TM) i3 CPU M350 2,27 GHz RAM: 4,00 GB Baza danych: Oracle 10g Express Edition Kontener serwletów: Apache Tomcat JDK: jdk (64 bitowa) Generacja danych Do generacji danych testowych wykorzystano narzędzie databene benerator [9]. Jest to framework służący do generowania danych testowych. Opis generowanych danych jest zawarty w pliku w formacie XML. Użytkownik ma możliwość generowania danych testowych według wybranego rozkładu funkcji prawdopodobieństwa. Przydatną funkcją jest lista encji, która służy do generowania danych typu: adres, telefon, imię, nazwisko, nazwa firmy, strona WWW. Wszystkie wyżej wymienione generatory wykorzystano w testach związanych z bazą klientów. Dla testów jednostkowych zostały przygotowane pliki w formacie CSV, które zawierają dane specjalnie przygotowane do tego rodzaju testów. Natomiast dla testów

63 ROZDZIAŁ 3. BIBLIOTEKA 57 funkcjonalnych dane generowane są w sposób losowy. Użytkownik może w bardzo prosty sposób manipulować wolumenem danych poprzez ustawienie odpowiedniej liczby wygenerowanych wierszy Testy jednostkowe Dla zrealizowanej aplikacji został przygotowany zestaw testów jednostkowych. Rysunek 3.18 pokazuje ich pokrycie. Autor w początkowym etapie rozwoju aplikacji tworzył ją zgodnie z techniką TDD 3. Jest to najlepsza technika do tworzenia testów jednostkowych, ponieważ powinny one powstawać równolegle z kodem aplikacji. W przypadku tej techniki powstają nawet przed utworzeniem kodu. Testy jednostkowe umożliwiły wykrycie drobnych błędów, które zostały zidentyfikowane szybciej niż przy pomocy testów funkcjonalnych. Testy jednostkowe zdecydowanie ułatwiają wprowadzanie zmian do istniejącego kodu, ponieważ w momencie popełnienia błędu zostanie on szybko wykryty poprzez zrealizowany zestaw testów. Rysunek 3.18: Pokrycie kodu dla modułu model Testy funkcjonalne Przy testach funkcjonalnych oddzielnie sprawdzono warstwę serwera oraz klienta. W pierwszej kolejności dokonano weryfikacji serwera, ponieważ klient bazuje na danych dostarczanych przez serwer. W poszczególnych paragrafach przedstawiono przykładowe testy funkcjonalne na podstawie bazy danych systemu CRM opisanej w sekcji Testy serwera Zestaw testów funkcjonalnych dla serwera składa się z: testowania modelu, testowania generowanych danych dla raportu oraz testowania eksportu do pliku XLS. Po zadaniu odpowiedniego adresu URL w przeglądarce internetowej w rezultacie 3 TDD Test-driven development

64 ROZDZIAŁ 3. BIBLIOTEKA 58 powinien pojawić się dokument XML zawierający odpowiednie dane. Przy testowaniu generowanych danych dla raportu sprawdzono możliwość zwijania oraz rozwijania danych poprzez podanie odpowiedniego adresu URL. Model raportu Celem testu jest sprawdzenie odpowiedzi serwera na żądanie pobrania modelu raportu. Użytkownik wpisuję adres URL: fetchmodel.htm z parametrami: reportid=bazaklientow. Punkty weryfikacyjne: W rezultacie powinien zostać wyświetlony dokument XML w postaci opisanej w sekcji Liczba elementów record jest równa liczbie kolumn raportu plus trzy. Każdy element record zawiera listę elementów podrzędnych reprezentujących parametry kolumny. Element title zawiera nazwę kolumny raportu. Pobieranie danych Test sprawdza pobieranie danych dla raportu oraz możliwość rozwijania danych (operacja drill down). Użytkownik podaje URL = fetchdata z parametrami reportid=bazaklientow, hierarchy=region;zespol, parentpath=null. Punkty weryfikacyjne: System w rezultacie wyświetla dokument XML w postaci opisanej w sekcji Elementy record zawierają dane o regionach. Elementy podrzędne Name zawierają nazwy regionów. Użytkownik wybiera dowolny element path oraz zapamiętuje jego wartość. Następnie podaje w polu adresu przeglądarki URL = fetchdata z parametrami: reportid=bazaklientow, hierarchy=region;zespol, parentpath=path, gdzie PATH to wcześniej zapamiętana wartość. Punkty weryfikacyjne: System wyświetla analogiczny dokument XML jak w punkcie powyżej, ale zamiast regionów zostają zwrócone dane o zespołach. Przykładowy test klienta Test weryfikuje warstwę klienta na podstawie raportu o spotkaniach. 1. Użytkownik ustala hierarchię grupowania rok, miesiąc, region oraz zespół oraz klika w przycisk OK. Punkty weryfikacyjne: System wyświetla widok zawierający listę wierszy z poszczególnymi latami.

65 ROZDZIAŁ 3. BIBLIOTEKA Użytkownik rozwija wybrany rok. Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę miesięcy. 3. Użytkownik rozwija wybrany miesiąc. Punkty weryfikacyjne: System wyświetla listę regionów. 4. Użytkownik rozwija region. Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę zespołów. 5. Użytkownik klika w opcję Ustawienia. Ustala filtr na datę spotkania od do oraz klika w przycisk OK. Punkty weryfikacyjne: System wyświetla tylko jeden wiersz zawierający rok Użytkownik rozwija rok Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę miesięcy od kwietnia do listopada. 7. Użytkownik rozwija dowolny miesiąc. Punkty weryfikacyjne: System wyświetla listę regionów. 8. Użytkownik rozwija region. Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę zespołów. 9. Użytkownik klika w opcję Ustawienia. Do wcześniej ustalonego filtru dodaje dodatkowy warunek: Region starts with R i klika w przycisk OK. Punkty weryfikacyjne: System wyświetla tylko jeden wiersz zawierający rok Użytkownik rozwija rok Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę miesięcy od kwietnia do listopada. 11. Użytkownik rozwija dowolny miesiąc. Punkty weryfikacyjne: System wyświetla listę regionów zaczynających się od litery R. 12. Użytkownik rozwija region. Punkty weryfikacyjne: System wyświetla pod wybranym wierszem listę zespołów.

66 ROZDZIAŁ 3. BIBLIOTEKA Aplikacja Możliwości aplikacji Po uruchomieniu aplikacji użytkownik zobaczy okno z ustawieniami raportu. W pierwszej kolejności należy ustalić hierarchię grupowania. Do tego celu wyświetlane są dwie listy, które zawierają wybrane kolumny raportu będące kandydatami grup (3.19). Analityk tworzący raport ma możliwość wybrania podzbioru kolumn, które zostaną wyświetlone w tym widoku. Jest to przydatna opcja, ponieważ niektóre kolumny są nieodpowiednie, aby tworzyć grupę. Przykładowo, pola opisowe, takie jak opis spotkania czy komentarz, z dużym prawdopodobieństwem są unikatowe. Rysunek 3.19: Ustalenie hierarchii grupowania W kolejnym kroku użytkownik może zadać kryterium dla prezentowanych danych. Aplikacja umożliwia skonstruowanie dowolnie złożonego wyrażenia boolowskiego z wykorzystaniem operatorów AND, OR oraz NOT (3.20). Przy ustalaniu warunku użytkownik ma do dyspozycji bogatą listę gotowych pozycji, w skład których wchodzą takie jak: zaczyna się od, kończy się na, zawiera, jest pomiędzy, równa się, jest mniejsze, jest większe czy jest puste. Największe możliwości dotyczą filtrowania po dacie. Użytkownik ma możliwość zadania daty w sposób bezwględny - podając konkretną datę lub w sposób względny wobec daty aktualnej. Lista możliwych opcji jest pokazana na rysunku Istnieje możliwość wybrania daty aktualnej, kolejnego dnia, poprzedniego dnia a nawet cofnięcia się o zadaną liczbę dni/tygodni/miesięcy. Rysunek 3.20: Konstrukcja filtru

67 ROZDZIAŁ 3. BIBLIOTEKA 61 Rysunek 3.21: Filtr dla daty Rysunek 3.22 przedstawia pasek narzędziowy aplikacji. Pierwsza opcja dotyczy wydruku raportu. Kolejna otwiera okno z ustawieniami, które zostało omówione powyżej. Następna opcja umożliwia eksport danych do pliku XLS. Ostatnia pozycja wyświetla okno pomocy. Rysunek 3.22: Pasek narzędziowy aplikacji Po kliknięciu w jedną z kolumn zostanie wyświetlone menu kontekstowe zawierające opcje dotyczące kolumn Z tego poziomu można sortować dane rosnąco lub malejąco, wybrać kolumny, które mają być widoczne w widoku lub dokonać zamrożenia wybranej kolumny. Po wykonaniu tej czynności wybrana kolumna będzie zawsze widoczna na ekranie monitora, nawet gdy widok zostanie przewinięty w prawo, w celu zobaczenia kolumn, które się nie mieszczą na pierwszym ekranie. Rysunek 3.24 przedstawia wyświetlony raport. Użytkownik może w dowolny sposób zwijać lub rozwijać kolejne poziomy drzewa. Po kliknięciu w jedną z kolumn lewym przyciskiem myszy dane zostaną posortowane według niej. Aplikacja umożliwia również zmianę rozmiaru kolumny oraz zamianę kolumn miejscami Przykładowe analizy Dynamiczna zmiana hierarchii grupowania daje olbrzymie możliwości analizowania danych. W zależności od wybranych kolumn raportu użytkownik może uzyskać odpowiedź na zadane pytanie. Na przykładzie raportu spotkania, który omówiono w rozdziale 3.2, zaprezentowano różne możliwości analizowania danych. Wybranie hierarchii grupowania widocznej na rysunku 3.25 daje informację o tym w jakich miesiącach były spotkania z wybranym klientem. Rozwijając wiersz z klientem poniżej zostaną wyświetlone wszystkie lata w jakich odbyły się spotkania z wybraną firmą. Każdy rok zawiera pod sobą miesiące spotkań pod każdym

68 ROZDZIAŁ 3. BIBLIOTEKA 62 Rysunek 3.23: Menu kontekstowe dla kolumny z nich widoczne są wszystkie spotkania z wybranym klientem w danym miesiącu. Po usunięciu z hierarchii kolumn rok oraz miesiąc raport będzie przedstawiać całą historię kontaktów z klientem. Ustalenie hierarchii z rysunku 3.26 pozwala uzyskać informacje o klientach, z którymi odbyły się spotkania w wybranych miesiącach. Wykonując prostą operację polegającą na przeniesieniu kolumny klienta powyżej kolumny miesiąca, można uzyskać odpowiedź na zupełnie inne pytanie. Ten sam raport może zostać użyty do analizowania aktywności doradców klienta. Hierarchia z rysunku 3.27 pozwala uzyskać odpowiedź na pytanie dotyczące aktywności doradcy w wybranych miesiącach. Dokonując niewielkiej zmiany w hierarchii, która polega na przeniesieniu kolumny doradcy pod kolumnę miesiąc można dokonać porównania aktywności doradców w wybranych miesiącach. Dla każdej z wyżej wymienionych analiz można w łatwy sposób zamienić okres z miesiąca na kwartał lub rok, czy pogrupować prezentowane dane według hierarchii organizacyjnej, na przykład tak, aby doradcy byli widoczni pod zespołami sprzedażowymi. Narzędzie umożliwia również dokonanie podanych analiz w rozbiciu na segmenty klientów. W tym celu wystarczy dodać kolumnę z segmentem klienta do hierarchii grupowania. Klientów można pogrupować na różne sposoby, przykładowo: klienci potencjalni, klienci nowi, klienci aktywowani lub w zależności od wielkości klienta: małe firmy, średnie firmy, duże firmy. Umieszczając segment klienta poniżej miesiąca można uzyskać odpowiedź na pytanie, z jakimi grupami klientów umawiane są spotkania. Natomiast w przypadku, gdy segment klienta zostanie umieszczony nad kolumną miesiąca, to pozwoli na dokonywanie

69 ROZDZIAŁ 3. BIBLIOTEKA 63 Rysunek 3.24: Widok raportu (a) Hierarchia (b) Raport Rysunek 3.25: W jakich miesiącach były spotkania z klientami? wyżej wymienionych analiz dla poszczególnych grup klientów. W tej sekcji opisano przykładowe analizy dla prostego raportu, który składa się tylko z kilku kolumn. Na tak prostym przykładzie przedstawiono szereg konfiguracji, które pozwalają uzyskać odpowiedź na różnego rodzaju pytania. Każda konfiguracja wymaga bardzo małego wysiłku ze strony użytkownika, wystarczy ustalić odpowiednią kolejność kolumn. Dokonując niewielkiej zmiany polegającej na zamianie kolumn miejscami, można uzyskać odpowiedź na zupełnie inne pytanie. Potencjalne możliwości manipulowania hierarchią grupowania są ogromne. Użytkownik raportu może w dowolny sposób ustalić kolejność kolumn, co pozwala

70 ROZDZIAŁ 3. BIBLIOTEKA 64 (a) Hierarchia (b) Raport Rysunek 3.26: Z jakimi klientami były spotkania w wybranym miesiącu? (a) Hierarchia (b) Raport Rysunek 3.27: Aktywność doradców w podziale na miesiące. (a) Hierarchia (b) Raport Rysunek 3.28: Porównanie aktywności doradców w wybranych okresach.

71 ROZDZIAŁ 3. BIBLIOTEKA 65 na prezentację tych samych danych z wielu perspektyw Serwer raportów Sekcja ta zawiera omówienie aplikacji udostępniającej raporty utworzone za pomocą zrealizowanej biblioteki. Na wstępie przedstawiono wymagania funkcjonalne, następnie opisano projekt oraz implementację. Na samym końcu zaprezentowano gotową aplikację. System powinien wyświetlać listę raportów, które znajdują się w repozytorium na serwerze. Powinien również umożliwiać wybranie raportu oraz jego wyświetlenie. Administrator tego systemu umieszcza repozytorium plików XML w odpowiedniej lokalizacji oraz dokonuje konfiguracji połączenia z bazą danych. Te dwie czynności są wystarczające do tego, aby serwer mógł udostępniać raporty użytkownikom. Po dokonaniu zmiany w dowolnym z plików, podmianie, dodaniu lub usunięciu pliku czy modyfikacji połączenia z bazą danych, zmiany te zostaną automatycznie uwzględnione po ponownym uruchomieniu aplikacji. Jest to dużą zaletą, ponieważ wszystkie dane o modelu biznesowym oraz raportach zawarte są w plikach XML i na podstawie ich zawartości serwer może prezentować raporty użytkownikom. Przy dokonywaniu jakichkolwiek zmian nie wymagana jest ingerencja programisty, natomiast wszystkie zmiany nanoszone są w plikach XML. Zastosowany model deklaratywny jest narażony na mniejsze ryzyko popełnienia błędów niż tradycyjne podejście wymagające prac programistycznych. Repozytorium składa się z plików XML, które zawierają model biznesowy zawarty w pliku classes.xml oraz listy plików w folderze reports, w którym znajdują się pliki zawierające opis raportów. Wszystkie pliki XML mogą zostać utworzone w sposób ręczny lub za pomocą dedykowanego narzędzia z graficznym interfejsem użytkownika opisanego w rozdziale 4. Plik jdbc.properties zawiera parametry połączenia z bazą danych: login, hasło użytkownika oraz adres URL Raportowanie w Service Desk Utworzone narzędzie umożliwia prezentowanie raportów wewnątrz dowolnej aplikacji zrealizowanej w technologii Java. Wystarczy dokonać drobnej konfiguracji polegającej na skopiowaniu plików ze skryptami Javascript oraz wywołać odpowiednią metodę w skrypcie JSP. Rysunek 3.29 przedstawia raport wyświetlony wewnątrz aplikacji Service Desk, która została zrealizowana w ramach pracy dyplomowej inżynierskiej Piotra Kalańskiego [24]. Jest to kolejna zaleta zrealizowanej platformy do raportowania, która w przeciwieństwie do istniejących narzędzi Business Intelligence umożliwia prezentowanie raportów wewnątrz samej aplikacji biznesowej bez konieczności tworzenie dedy-

72 ROZDZIAŁ 3. BIBLIOTEKA 66 Rysunek 3.29: Service Desk - raportowanie kowanego systemu do udostępniania raportów. Taka cecha jest bardzo atrakcyjna dla użytkowników końcowych, ponieważ nie wymaga ciągłego przemieszczania się pomiędzy zbiorem aplikacji, pamiętania dodatkowych haseł dostępu oraz pozwala zaoszczędzić czas pracy. 3.9 Podsumowanie W tym rozdziale została opisana biblioteka do tworzenia hierarchicznych raportów w sposób deklaratywny. Biblioteka spełnia wszystkie cechy wymienione w sekcji 2.3. Ogromną zaletą opisanego narzędzia jest możliwość dynamicznej zmiany hierarchii grupowania co pozwala na przeprowadzanie szeregu analiz na tym samym zbiorze danych. Wykonując prostą czynność zmiany hierarchii raport umożliwia uzyskanie odpowiedzi na zadane wcześniej pytanie. Warstwa prezentacji została zrealizowana z bogatym interfejsem użytkownika, który umożliwia ukrywanie kolumn, zamianę kolumn miejscami, zamrażanie kolumn, zamrażanie nagłówka czy zmianę rozmiaru kolumny. Wszelkie operacje między klientem a serwerem są wykonywane w sposób asynchroniczny, co przyspiesza komunikację, ponieważ nie wymagane jest ponowne odświeżenie strony. Klient pobiera tylko i wyłącznie dane, które muszą zostać zaprezentowane użytkownikowi, co wpływa na zmniejszenie ruchu w sieci oraz mniejsze obciążenie bazy danych. Narzędzie daje nieograniczone możliwości filtrowania danych, użytkownik może skonstruować dowolnie złożone wyrażenie logiczne przy pomocy intuicyjnego formularza. Konstrukcja raportów nie wymaga żadnej ingerencji programisty, jest dokonywana w sposób deklaratywny. Co więcej, nie jest wymagana znajomość schematu bazy danych a nawet języka SQL. Administrator bazy danych (lub inna osoba) ma możliwość utworzenia modelu biznesowego, który jest zrozumiały dla osób nietechnicznych. Na podstawie tego modelu analityk biznesowy może tworzyć dowolną liczbę raportów używając klas oraz atrybutów utworzonych wcześniej w

73 ROZDZIAŁ 3. BIBLIOTEKA 67 modelu biznesowym. Cały model biznesowy oraz definicja raportów zapisywana jest w plikach w formacie XML, co umożliwia ręczne manipulowanie tymi plikami. Dodatkowo są dużo bardziej dostępne, w przeciwieństwie do plików binarnych. Wszystkie pliki mogą zostać utworzone również za pomocą dedykowanego narzędzia z graficznym interfejsem użytkownika, które opisano w rozdziale 4. Zrealizowano również prostą aplikację do udostępniania raportów. Umiejscowienie w odpowiedniej lokalizacji zestawu plików XML oraz konfiguracja połączenia z bazą danych wystarcza do tego, aby aplikacja była zdolna do wyświetlenia wszystkich raportów. Po dokonaniu jakiejkolwiek zmiany w dowolnym z plików XML, czy to w modelu biznesowym czy w jednym z raportów, zostanie ona automatycznie uwzględniona po ponownym uruchomieniu aplikacji. Utworzone raporty również można wyświetlić w dowolnej aplikacji WWW zrealizowanej w technologii Java. Jest to szczególnie łatwe dla aplikacji opartych na GWT, w takim przypadku wystarczy skorzystać z odpowiedniej klasy ReportPanel podając w parametrze konstruktora identyfikator raportu.

74 Rozdział 4 Designer Rozdział ten zawiera opis aplikacji do tworzenia modelu biznesowego oraz raportów przy pomocy graficznego interfejsu użytkownika. Na wstępie opisano wymagania funkcjonalne oraz przypadki użycia. Następnie przedstawiono użyte technologie oraz narzędzia. Na końcu rozdziału zaprezentowano zrealizowaną aplikację. 4.1 Wymagania Wymagania funkcjonalne Założenie nowego projektu. Skonfigurowanie połączenia z bazą danych. Tworzenie modelu biznesowego. Dodawanie klas. Dodawanie atrybutów klas. Podgląd tabel z bazy danych. Tworzenie raportów. Dodawanie raportów. Dodawanie kolumn do raportów. Wyświetlenie klas i ich atrybutów. Wyświetlenie klas w postaci drzewa. Wyświetlenie raportów i ich kolumn. 68

75 ROZDZIAŁ 4. DESIGNER Przypadki użycia Aktorzy Twórca modelu biznesowego ich atrybuty. to rola, która tworzy model biznesowy: klasy oraz Projektant raportów to rola odpowiedzialna za tworzenie nowych raportów na podstawie modelu biznesowego. Rysunek 4.1: Przypadki użycia dla twórcy modelu biznesowego Diagram przypadków użycia Rysunek 4.1 przedstawia przypadki użycia dostępne dla twórcy modelu biznesowego, natomiast rysunek 4.2 przypadki użycia dla projektanta raportów.

76 ROZDZIAŁ 4. DESIGNER 70 Rysunek 4.2: Przypadki użycia dla projektanta raportów UC.NEW.PROJECT Założenie projektu Cel Założenie nowego projektu. Aktor główny Twórca modelu biznesowego Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję nowego projektu 2. Podaje nazwę projektu 3. Zatwierdza UC.DB.CONN Skonfigurowanie połączenia z bazą danych Aktor główny Twórca modelu biznesowego

77 ROZDZIAŁ 4. DESIGNER 71 Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję konfiguracji połączenia z bazą danych 2. Wybiera typ bazy danych 3. Podaje ścieżkę z biblioteką JDBC 4. Podaje nazwę i hasło użytkownika adres serwera i port nasłuchujący Prototyp interfejsu użytkownika Rysunek 4.3: Skonfigurowanie połączenia z bazą danych - prototyp UC.AC Dodanie klasy Cel Dodanie nowej klasy. Aktor główny Twórca modelu biznesowego

78 ROZDZIAŁ 4. DESIGNER 72 Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję dodania klasy 2. Wybiera tabelę 3. Podaje nazwę klasy 4. Zatwierdza 5. Wyświetla komunikat o sukcesie Prototyp interfejsu użytkownika Rysunek 4.4: Dodanie klasy - prototyp UC.ASA Dodanie atrybutu SimpleAttribute Cel Dodanie atrybutu typu SimpleAttribute. Aktor główny Twórca modelu biznesowego Przebieg zdarzeń Nr System Użytkownik 1. Wybiera klasę 2. Wybiera opcję dodania atrybutu SimpleAttribute 3. Podaje wyrażenie 4. Podaje nazwę atrybutu 5. Zatwierdza 6. Wyświetla komunikat o sukcesie

79 ROZDZIAŁ 4. DESIGNER 73 Prototyp interfejsu użytkownika Rysunek 4.5: Dodanie atrybutu SimpleAttribute - prototyp UC.ARA Dodanie atrybutu ReferenceAttribute Cel Dodanie atrybutu typu ReferenceAttribute. Aktor główny Twórca modelu biznesowego Przebieg zdarzeń Nr System Użytkownik 1. Wybiera klasę źródłową 2. Wybiera opcję dodania atrybutu ReferenceAttribute 3. Podaje nazwę atrybutu 4. Wybiera klasę docelową 5. Wybiera kolumnę klucza obcego 6. Zatwierdza 7. Wyświetla komunikat o sukcesie Prototyp interfejsu użytkownika UC.DC Usunięcie klasy Cel Usunięcie niepotrzebnej klasy.

80 ROZDZIAŁ 4. DESIGNER 74 Rysunek 4.6: Dodanie atrybutu ReferenceAttribute - prototyp Aktor główny Twórca modelu biznesowego Przebieg zdarzeń Nr System Użytkownik 1. Wybiera klasę 2. Wybiera opcję usunięcia klasy 3. Potwierdza usunięcie UC.DA Usunięcie atrybutu Cel Usunięcie niepotrzebnego atrybutu klasy. Aktor główny Twórca modelu biznesowego Przebieg zdarzeń Nr System Użytkownik 1. Wybiera atrybut 2. Wybiera opcję usunięcia atrybutu 3. Potwierdza usunięcie UC.A.REPORT Dodanie raportu Cel Dodanie nowego raportu.

81 ROZDZIAŁ 4. DESIGNER 75 Aktor główny Projektant raportów Przebieg zdarzeń Nr System Użytkownik 1. Wybiera opcję dodania raportu 2. Podaje nazwę raportu 3. Wybiera główną klasę 4. Zatwierdza 5. Wyświetla komunikat o sukcesie Prototyp interfejsu użytkownika Rysunek 4.7: Dodanie raportu - prototyp UC.A.RCOLUMN Dodanie kolumny raportu Cel Dodanie nowej kolumny dla raportu. Aktor główny Projektant raportów Przebieg zdarzeń Nr System Użytkownik 1. Wybiera raport 2. Wybiera opcję dodania kolumny 3. Wybiera atrybut 4. Wybiera jedną z ścieżek 5. Zatwierdza 6. Wyświetla komunikat o sukcesie

82 ROZDZIAŁ 4. DESIGNER 76 Prototyp interfejsu użytkownika Rysunek 4.8: Dodanie kolumny raportu krok 1 - prototyp Rysunek 4.9: Dodanie kolumny raportu krok 2 - prototyp UC.DR Usunięcie raportu Cel Usunięcie niepotrzebnego raportu. Aktor główny Projektant raportów

83 ROZDZIAŁ 4. DESIGNER 77 Przebieg zdarzeń Nr System Użytkownik 1. Wybiera raport 2. Wybiera opcję usunięcia raportu 3. Potwierdza usunięcie UC.DCol Usunięcie kolumny raportu Cel Usunięcie niepotrzebnej kolumny raportu. Aktor główny Projektant raportów Przebieg zdarzeń Nr System Użytkownik 1. Wybiera kolumnę raportu 2. Wybiera opcję usunięcia kolumny 3. Potwierdza usunięcie 4.2 Projekt Pakiety xalan.designer.model Pakiet zawierający klasy modelu. xalan.designer.service Pakiet udostępniający usługi do zarządzania modelem biznesowym oraz raportami. Zawiera operacje pobierania oraz zapisywania danych. Pakiet zawierający wszelkie widoki: okna dialogowe oraz drze- xalan.designer.view wa. xalan.designer.view.converters Pakiet odpowiedzialny za dokonywanie konwersji danych tekstowych na obiekty wybranej klasy. Używane przy listach wyboru typu ComboBox.

84 ROZDZIAŁ 4. DESIGNER 78 Rysunek 4.10: Designer - diagram pakietów 4.3 Implementacja Technologia Eclipse plugin [30] Aplikacja została zrealizowana jako wtyczka (ang. plugin) do środowiska Eclipse. Główny powód wybrania takiej technologii to możliwości integracyjne tej platformy. Użytkownik w jednej aplikacji ma dostępne wszelkie potrzebne narzędzia, gdzie każde z nich jest implementowane w formie wtyczki lub zbioru wtyczek. Dodatkowo architektura tej platformy znacznie ułatwia tworzenie aplikacji z graficznym interfejsem użytkownika. Wiele powtarzających się funkcji zostało już zaimplementowanych, dzięki temu twórca wtyczki może koncentrować się na najistotniejszych aspektach.

85 ROZDZIAŁ 4. DESIGNER 79 Rysunek 4.11: Widok Database Explorer Narzędzia Eclipse PDE Przy tworzeniu aplikacji skorzystano z narzędzia Eclipse PDE (Plug-in Development Environment), które ułatwia proces tworzenia nowych wtyczek do platformy Eclipse. PDE pozwala na rozwijanie, testowanie, debugowanie oraz wdrażanie wtyczek. 4.4 Aplikacja W tej sekcji opisano zrealizowaną aplikację. Użytkownik w trakcie pracy z narzędziem porusza się w jednym z trzech widoków: Database Explorer, Classes Explorer oraz Reports Explorer. Database Explorer zawiera podgląd na wszystkie tabele oraz widoki wraz z ich kolumnami znajdujące się w bazie danych. Umożliwia to szybką analizę schematu bazy danych. Widok ten został pokazany na rysunku Nie można wykonać żadnej akcji w tym widoku, ponieważ jego rola została ograniczona wyłącznie do funkcji informacyjnej. Kolejny widok Classes Explorer jest używany do zarządzania modelem bizne-

86 ROZDZIAŁ 4. DESIGNER 80 Rysunek 4.12: Widok Classes Explorer sowym. Zawiera on listę klas wraz z ich atrybutami. Przy manipulowaniu klasami użytkownik ma możliwość dodawania, modyfikowania oraz edycji klas. W celu dodania nowej klasy należy wybrać pierwszą opcję z paska narzędziowego, która ma taką samą ikonkę jak klasa. Po wykonaniu tej czynności zostanie wyświetlone okno z formularzem edycji nowej klasy (rysunek 4.14), w którym należy podać: nazwę klasy, wybrać tabelę z listy oraz podać atrybut główny, czyli wybrać jeden z atrybutów z listy. Druga opcja z menu służy do edytowania elementów. Po wybraniu elementu w widoku oraz po kliknięciu w przycisk edycji zostanie otworzone odpowiednie okno z formularzem analogicznym do formularza dodania elementu. Trzecia opcja jest używana do usuwania elementów. Kolejne trzy opcje służą do dodawania atrybutów klasy. Możliwe atrybuty zostały opisane w sekcji 3.4. Opcja z niebieskim sześcianem służy do dodawania prostych atrybutów. Formularz związany z tą akcją jest widoczny na rysunku: Wypełniając ten formularz należy podać nazwę atrybutu, wyrażenie SQL oraz określić czy dana kolumna jest miernikiem. Wyrażenie SQL może być po prostu nazwą kolumny, ale w niektórych przypadkach istnieje potrzeba podania bardziej złożonego wy-

87 ROZDZIAŁ 4. DESIGNER 81 Rysunek 4.13: Widok Reports Explorer Rysunek 4.14: Formularz edycji klasy Rysunek 4.15: Formularz edycji Simple Attribute

88 ROZDZIAŁ 4. DESIGNER 82 Rysunek 4.16: Formularz edycji Reference Attribute Rysunek 4.17: Formularz edycji Dictionary Attribute Rysunek 4.18: Formularz edycji raportu rażenia. Przykładowo w tabeli z pracownikami mogą być dwie osobne kolumny na imię oraz nazwisko osoby. Jeżeli w raportach każdy pracownik zawsze będzie wyświetlany jako złożenie imienia oraz nazwiska, to lepiej do klasy dodać od razu atrybut z nazwą pracownika, który jest złączeniem dwóch składowych. W takim przypadku należy wpisać wyrażenie SQL $.imie + + $.nazwisko. Znak $ określa specjalny znacznik, w miejsce którego zostanie podstawiona nazwa tabeli, aby uniknąć problemów związanych z kolumnami, które mają identyczne nazwy a znajdują się w różnych tabelach. Drugim przykładem wyrażenia jest możliwość wydobycia miesięcy, dni, lat z kolumny będącej datą. Dla bazy danych Oracle należy wpisać wyrażenie postaci extract(year from $.month). Kolejna opcja reprezentowana przez ikonkę z trzema sześcianami powoduje dodanie nowego atrybutu typu referencyjnego. Formularz tej akcji widoczny jest na rysunku Użytkownik musi wypełnić następujące pola: podać nazwę atrybutu, wybrać z listy klasę docelową oraz podać kolumnę klucza obcego, według

89 ROZDZIAŁ 4. DESIGNER 83 Rysunek 4.19: Formularz edycji kolumny której zostanie dokonane złączenie z kolumną klucza głównego klasy docelowej. Ostatnia opcja związana z atrybutami klasy to dodawanie atrybutów słownikowych. Na pasku narzędziowym jest reprezentowana poprzez zielony sześcian. Po wybraniu tej akcji zostanie wyświetlony formularz z rysunku Użytkownik wypełnia takie same pola jak w przypadku atrybutu referencyjnego dodatkowo wybierając z listy atrybut docelowy. Ostatnie dwie akcje paska narzędziowego służą do rozwijania oraz zwijania wszystkich atrybutów wszystkich klas. Kolejny widok Reports Explorer umożliwia zarządzanie raportami oraz ich kolumnami. Pierwsze trzy opcje z paska narzędziowego służą do dodawania raportów, edycji elementów oraz usuwania elementów. Celem kolejnej opcji jest dodawanie kolumn raportu. Natomiast opcja z ikonką dyskietki służy do zapisu modelu biznesowego oraz raportów do repozytorium, czyli zestawu plików w

90 ROZDZIAŁ 4. DESIGNER 84 Rysunek 4.20: Formularz edycji kolumny krok 2 Rysunek 4.21: Formularz edycji kolumny - inna ścieżka formacie XML. Formularz edycji raportu widoczny na rysunku 4.18 wymaga podania nazwy raportu oraz wybrania z listy klasy głównej raportu. Klasa główna określa rezultat zapytania SQL wpływając na postać złączeń w klauzuli FROM. Wszystkie inne tabele zostają złączone z główną tabelą poprzez szereg złączeń typu klucz obcy tabeli podrzędnej równa się klucz główny tabeli nadrzędnej. Generowanie zapytania SQL zostało opisane w sekcji Dodanie kolumny raportu przebiega w dwóch etapach. Pierwszy etap został pokazany na rysunku Użytkownik musi wypełnić następujące pola: Nazwa nazwa kolumny, która jest identyfikatorem. Używana jest przy komunikacji klienta z serwerem i nigdzie nie jest wyświetlana;

91 ROZDZIAŁ 4. DESIGNER 85 Tytuł tytuł kolumny, czyli etykieta wyświetlana w widoku; Format opcjonalnie podać format daty lub numeryczny. Format liczby musi być zgodny ze standardem formatów liczbowych biblioteki GWT; Ikona podanie ścieżki z ikoną reprezentującą kolumnę. Zostało tutaj przyjęte założenie, że jest to ścieżka względna od folderu images znajdującego się w głównym folderze aplikacji. Ikonka jest wyświetlana zarówno w ustalaniu hierarchii grupowania jak i w samym widoku raportu; Może być w hierarchii użytkownik określa, czy dana kolumna może być użyta w hierarchii grupowania. Opcja ta umożliwia wyrzucenie kolumn, które z definicji nie nadają się do grupowania danych, przykładowo: tekstowy opis spotkania, nazwa klienta, dokładna data i czas spotkania; Typ wybrać z listy typ kolumny: zwykły tekst, liczba całkowita, liczba wymierna, data, wartość logiczna, odnośnik czy obrazek. W przypadku, gdy jest to typ IMG, czyli obrazek w widoku raportu, zostane wyświetlona ikonka, której adres podany jest w wartości kolumny; Agregacja dla kolumn będących miernikami można podać rodzaj agregacji, wpisując odpowiednią funkcję SQL: sum, avg, min, max, count. Istnieje również możliwość podania funkcji zależnej od bazy danych, przykładowo dla Oracle można podać: variance, stddev, median; Klasa wybranie z listy klasy, w której znajduje się atrybut związany z tą kolumną; Atrybut wybranie atrybutu tej klasy; W kolejnym kroku użytkownik zostanie poproszony o wybranie jednej z możliwych ścieżek od tabeli źródłowej, określonej poprzez główną klasę raportu, do tabeli docelowej zawierającej kolumnę, która określona jest poprzez atrybut docelowy podany w pierwszym kroku. Dokładne znaczenie ścieżek zostało opisane przy generowaniu zapytania SQL w sekcji Na rysunku 4.20 widoczny jest formularz, na którym można wybrać jedną z możliwych ścieżek. Na dole formularza wyświetlany jest podgląd wygenerowanego fragmentu klauzuli WHERE, który odpowiada aktualnie zaznaczonej ścieżce. Na podstawie bazy danych CRM, opisanej w sekcji 3.2.1, zostanie opisany przykładowy scenariusz. Dla raportu dotyczącego spotkań, w którym główna klasa jest związana z tabelą ZDARZENIA, istnieją co najmniej dwa sensowne przypadki określenia doradcy powiązanego z danym spotkaniem. Pierwsza możliwość to po prostu doradca, który był na spotkaniu. Natomiast druga możliwość to doradca będący opiekunem klienta, z którym zostało umówione spotkanie. Dla pierwszej opcji należy wybrać ścieżkę [doradca], wtedy klauzula FROM będzie miała postać widoczną na rysunku 4.20,

92 ROZDZIAŁ 4. DESIGNER 86 czyli tabela ZDARZENIA jest bezpośrednio złączona z tabelą DORADCY V. Druga możliwość została pokazana na rysunku W tym przypadku tabela ZDARZENIA najpierw jest złączona z tabelą KLIENCI, a tabela KLIENCI z tabelą DORADCY V. 4.5 Podsumowanie Aplikacja opisana w tym rozdziale znacznie ułatwia tworzenie modelu biznesowego oraz raportów. W wyniku wykonywanych operacji powstaje zestaw plików XML, który należy skopiować w odpowiednią lokalizację w aplikacji serwera, aby zostały wyświetlone wszystkie raporty. Para narzędzi: designer oraz serwer umożliwiają tworzenie oraz udostępnianie raportów bez żadnej ingerencji programisty. Co więcej, wszelkie czynności, z wyjątkiem jednokrotnie wykonanego modelu biznesowego, mogą być wykonywane przez analityka biznesowego nie posiadającego specjalistycznych umiejętności informatycznych.

93 Rozdział 5 Rozszerzenia W tym rozdziale opisano dwie aplikacje prezentujące raporty w sposób graficzny za pomocą wykresów. Obie komunikują się z serwerem udostępniającym dane o raportach. Usługa dostarczająca dane w postaci plików XML pozwala na utworzenie klientów prezentujących dane w dowolny sposób. Jest to kolejna zaleta zrealizowanej platformy. 5.1 Aplikacja mobilna Pierwsza aplikacja została zrealizowana w wersji mobilnej. Użytkownik ma możliwość wybrania raportu, który zamierza wyświetlić. W kolejnym kroku dokonywana jest konfiguracja hierarchii grupowania. Następnie zostaje wyświetlony raport w postaci wykresu słupkowego. System umożliwia zwijanie oraz rozwijanie danych, wybór miernika oraz sortowanie danych według wartości miernika lub etykiet Technologia Android [1] Android to zestaw oprogramowania dla urządzeń mobilnych, który zawiera system operacyjny, middleware i zestaw kluczowych aplikacji. Większość urządzeń wyposażonych w ten system posiada ekran dotykowy: telefony komórkowe, tablety PC oraz czytniki książek elektronicznych. Wybrane firmy korzystające z tego systemu to: HTC, LG, Motorola, Samsung oraz Sony. 87

94 ROZDZIAŁ 5. ROZSZERZENIA Narzędzia ADT Plugin [13] Android Development Tools (ADT) jest wtyczką do Eclipse IDE zaprojektowaną aby udostępnić zintegrowane środowisko do budowy aplikacji opartych o system Android. ADT rozszerza możliwości Eclipse umożliwiając szybkie utworzenie nowych projektów Android, tworzenie interfejsu użytkownika aplikacji, dodawanie komponentów w oparciu o Android Framework API, debugowanie aplikacji za pomocą narzędzi SDK Android oraz eksport plików.apk w celu rozpowszechniania aplikacji Aplikacja Po uruchomieniu aplikacji zostaje wyświetlona lista raportów. Lista ta pobierana jest ze zrealizowanego serwera udostępniającego dane o raportach. Następnie plik jest parsowany przez warstwę klienta za pomocą standardowej biblioteki Java. Widok początkowy przedstawiony jest na rysunku 5.1. Rysunek 5.1: Widok wyboru raportu Po wybraniu raportu wyświetlony zostanie ekran przedstawiony na rysunku 5.2. Po lewej stronie znajduje się lista wszystkich dostępnych kolumn w raporcie. Po wybraniu kolumny z lewej listy, jest ona dodawana na końcu listy wybranych kolumn. Druga lista zawiera hierarchię grupowania, względem której dane będą zwijane/rozwijane podczas generowania wykresu. Po naciśnięciu przycisku Plot zostanie wyświetlony wykres (rys. 5.3). W trakcie realizacji projektu zadbano o przyjazny interfejs użytkownika, bogaty w ani-

95 ROZDZIAŁ 5. ROZSZERZENIA 89 Rysunek 5.2: Widok wyboru kolumn macje oraz starannie dobrane kolory, których barwa jest zależna od wartości prezentowanej przez dany słupek. Dodatkowo zastosowanie cieni i antyaliasingu poprawia czytelność wykresu. Wyróżniono pięć grup wartości słupka: górny kwartyl - kolor niebieski zakres pomiędzy medianą a górnym kwartylem - kolor zielony mediana - kolor fioletowy, przy czym słupek oznaczony jako mediana występuje tylko wtedy, gdy liczba słupków jest nieparzysta zakres pomiędzy medianą a dolnym kwartylem - kolor żółty dolny kwartyl - kolor czerwony Po pojedynczym zaznaczeniu słupka zostanie od podświetlony. Ponowne wybranie spowoduje rozwinięcie danych i wyświetlenie kolejnego poziomu według hierarchii grupowania. Po naciśnięciu przycisku Drill up zostanie wykonana operacja odwrotna, czyli zwinięcie danych i powrót do poprzedniego poziomu. Użytkownik ma możliwość wyboru miernika, który jest wyświetlany na wykresie. Do tego celu używana jest dedykowana lista możliwych mierników. Aplikacja pozwala na sortowanie słupków według wartości malejąco i rosnąco oraz według kolejności alfabetycznej etykiet. W przypadku, gdy wszystkie słupki nie mieszczą się na ekranie wyświetlacza telefonu komórkowego, użytkownik ma możliwość przewinięcia wykresu w dół. Operacja ta została zaimplementowana samodzielnie poprzez metodę ontouch.

96 ROZDZIAŁ 5. ROZSZERZENIA 90 Rysunek 5.3: Wygenerowany wykres - liczba spotkań w latach Przykładowy wykres przedstawia liczbę spotkań w poszczególnych latach. Po dwukrotnych kliknięciu w rok 2008 zostanie wyświetlony raport dotyczący liczby spotkań w miesiącach tego roku (rysunek 5.4). Natomiast po wybraniu stycznia zostanie wyświetlona liczba spotkań w zespołach w miesiącu styczeń co jest przedstawione na rysunku 5.5. Te trzy wykresy dokonują wizualizacji raportu widocznego na rysunku 5.6. Rysunek 5.4: Liczba spotkań w miesiącach roku 2008

97 ROZDZIAŁ 5. ROZSZERZENIA 91 Rysunek 5.5: Liczba spotkań zespołów w miesiącu styczeń Rysunek 5.6: Fragment raportu dotyczącego spotkań 5.2 Wykresy WWW Druga aplikacja to strona WWW umożliwiająca wyświetlanie wykresów. W ramach pracy magisterskiej zostały zrealizowane wykresy kołowe oraz słupkowe. Użytkownik ma możliwość rozwijania danych szczegółowych (operacja drill down) oraz zwijania danych (drill up).

98 ROZDZIAŁ 5. ROZSZERZENIA Technologia Javascript Aplikacja została zrealizowana w całości za pomocą języka Javascript. Strona komunikuje się z serwerem asynchronicznie, aby pobrać potrzebne dane. Do tego celu została użyta biblioteka jquery. Google Visualization API [15] Google Visualization API umożliwia dostęp do wielu źródeł danych, które można wyświetlić, wybierając jedną z wielu propozycji wizualizacji. W ten sposób można tworzyć raporty i pulpity nawigacyjne, a także analizować i wyświetlać dane poprzez bogactwo dostępnych aplikacji wizualizacyjnych Aplikacja W ramach aplikacji został utworzony komponent, który potrafi wyświetlić dowolny raport w postaci wykresu. Przy tworzeniu wykresu należy podać następujące parametry: elementid Określa miejsce na stronie, w którym zostanie wyświetlony wykres. Jest to identyfikator elementu HTML. reportid Parametr ten ustala raport, dla którego zostanie wyświetlony wykres. Zostaje on określony podczas tworzenia modelu raportu przy pomocy dedykowanego narzędzia Designer opisanego w rozdziale 4. hierarchy Napis reprezentujący hierarchię grupowania podany w postaci: KO- LUMNA 1 ID ; KOLUMNA 2 ID ;...; KOLUMNA N ID, gdzie poszczególne wartości oznaczają identyfikatory kolumn, które również zostały podane podczas tworzenia modelu raportu. Przykładowo napis: region;zespol;doradca może oznaczać hierarchię region, zespół doradców oraz doradca. Taka hierarchia grupowania oznacza, że przy pierwszym wyświetleniu wykresu zostaną podane wartości miernika dla poszczególnych regionów, po kliknięciu w region zostaną wyświetlone wszystkie zespoły znajdujące się w tym regionie, natomiast po kliknięciu w zespół zostaną podane wartości dla doradców z danego zespołu. measure Identyfikator kolumny będącej miernikiem. title Tytuł wykresu. Narzędzie to umożliwia konstruowanie dedykowanych paneli menedżerskich (ang. Dashboard), gdzie na jednej stronie będzie wyświetlany zbiór wykresów. Wszelkie dane pobierane są z zewnętrznego serwera w postaci plików XML. W

99 ROZDZIAŁ 5. ROZSZERZENIA 93 wersji aktualnej wymagana jest minimalna ingerencja programisty, który ma za zadanie wywołanie funkcji Javascript definiujących parametry wyświetlanego wykresu. Dedykowane narzędzie do tworzenia paneli menedżerskich jest jedną z możliwości rozwoju zrealizowanej platformy. Taki system powinien umożliwiać projektowanie paneli w sposób deklaratywny bez żadnej ingerencji programisty, z wykorzystaniem graficznego interfejsu użytkownika. Aplikacja przedstawiona w tym rozdziale udowadnia, że jest to możliwe. Przykładowe analizy Rysunek 5.7: Wykres kołowy - spotkania w poszczególnych latach Rysunek 5.8: Wykres kołowy - spotkania w poszczególnych miesiącach Na przykładzie bazy danych systemu CRM, opisanej w sekcji przedstawiono przykładowe analizy. Ustalając hierarchię grupowania rok, miesiąc, zespół oraz wybierając jako miernik liczbę spotkań zostanie wyświetlony wykres przedstawiony na rysunku 5.7, na którym widoczna jest liczba spotkań w poszczególnych latach. Po wybraniu roku zostanie pokazana liczba spotkań w poszczególnych miesiącach tego roku (rysunek 5.8). Następnie po wybraniu miesiąca zostanie wyświetlona liczba spotkań poszczególnych zespołów w tym miesiącu,

100 ROZDZIAŁ 5. ROZSZERZENIA 94 Rysunek 5.9: Wykres kołowy - spotkania w poszczególnych zespołach co zostało pokazane na rysunku 5.9. Po najechaniu na wycinek wykresu zostanie wyświetlona podpowiedź zawierająca nazwę elementu, wartość miernika oraz procentowy udział. Wszystkie wykresy kołowe prezentują dane z raportu widocznego na rysunku Podsumowanie Dwie zrealizowane aplikacje podkreślają możliwości dynamicznej zmiany hierarchii grupowania, która określa porządek rozwijania oraz zwijania danych. W obu przypadkach w bardzo łatwy sposób można ustalić hierarchię, wybierając kolejność kolumn. Wysyłając odpowiednie żądania do serwera, w odpowiedzi zostaną zwrócone pożądane dane. Sposób realizacji narzędzia do raportowania umożliwia dodawanie kolejnych komponentów w łatwy sposób. Wszelkie dane udostępniane są w postaci plików XML, co umożliwia wykorzystanie dowolnych technologii. W tym rozdziale przedstawiono dwie aplikacje, które komunikują się z serwerem w celu pobrania danych o raportach, a następnie każda z nich prezentuje te dane w odmienny sposób. Pierwsza aplikacja została zrealizowana w wersji mobilnej, natomiast druga jako strona WWW. Są to zupełnie odmienne technologie, a mimo to było możliwe dokonanie integracji ze zrealizowanym narzędziem. Jest to kolejna zaleta utworzonej platformy, która w przeciwieństwie do Jaspersoft umożliwia proste integrowanie poszczególnych elementów, a nawet tworzenie nowych.

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Warszawska Rok akademicki 2009/2010 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska Piotr Kalański TODO Ocena: Opiekun pracy: dr inż. Michał Rudowski

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Warszawska Rok akademicki 2010/2011 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska inż. Piotr Kalański TODO Ocena: Opiekun pracy: dr inż. Michał

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Warszawska Rok akademicki 2010/2011 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska inż. Piotr Kalański Technologia do tworzenia hierarchicznych

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Warszawska Rok akademicki 2010/2011 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska inż. Piotr Kalański Dynamiczne oraz deklaratywnie konfigurowalne

Bardziej szczegółowo

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Wprowadzenie do Hurtowni Danych. Mariusz Rafało Wprowadzenie do Hurtowni Danych Mariusz Rafało mrafalo@sgh.waw.pl WARSTWA PREZENTACJI HURTOWNI DANYCH Wykorzystanie hurtowni danych - aspekty Analityczne zbiory danych (ADS) Zbiór danych tematycznych (Data

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Warszawska Rok akademicki 2010/2011 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Praca dyplomowa magisterska inż. Piotr Kalański TODO Ocena: Opiekun pracy: dr inż. Michał

Bardziej szczegółowo

Generowanie raportów

Generowanie raportów 1 Generowanie raportów 1. Wprowadzenie przykładowy problem, podstawowe własności narzędzi raportujących. 2. JasperReports struktura raportu, parametry, zmienne i pola, generowanie raportu (API). 3. ireport

Bardziej szczegółowo

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE BAZY DANYCH HURTOWNIE DANYCH I BUSINESS INTELLIGENCE Akademia Górniczo-Hutnicza w Krakowie Adrian Horzyk horzyk@agh.edu.pl Google: Horzyk HURTOWNIE DANYCH Hurtownia danych (Data Warehouse) to najczęściej

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

Oferta szkoleniowa Yosi.pl 2012/2013

Oferta szkoleniowa Yosi.pl 2012/2013 Oferta szkoleniowa Yosi.pl 2012/2013 "Podróżnik nie posiadający wiedzy, jest jak ptak bez skrzydeł" Sa'Di, Gulistan (1258 rok) Szanowni Państwo, Yosi.pl to dynamicznie rozwijająca się firma z Krakowa.

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

System generacji raportów

System generacji raportów Zalety systemu Czym jest ProReports? prostota instalacji, wieloplatformowość (AIX, Linux, Windows, Solaris), obsługa popularnych formatów (PDF, XLS, RTF, HTML,TXT,XML,CSV), obsługa wielu baz danych, raporty

Bardziej szczegółowo

Portale raportowe, a narzędzia raportowe typu self- service

Portale raportowe, a narzędzia raportowe typu self- service Portale raportowe, a narzędzia raportowe typu self- service Bartłomiej Graczyk Kierownik Projektów / Architekt rozwiązań Business Intelligence E mail: bartek@graczyk.info.pl Site: www.graczyk.info.pl Agenda

Bardziej szczegółowo

1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4

1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4 1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4 2 Tabele przestawne, wykresy przestawne i formatowanie warunkowe 11 Co to

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

Business Intelligence

Business Intelligence Business Intelligence Paweł Mielczarek Microsoft Certified Trainer (MCT) MCP,MCSA, MCTS, MCTS SQL 2005, MCTS SQL 2008, MCTS DYNAMICS, MBSS, MBSP, MCITP DYNAMICS. Geneza Prowadzenie firmy wymaga podejmowania

Bardziej szczegółowo

Hurtownie danych. Wstęp. Architektura hurtowni danych. http://zajecia.jakubw.pl/hur CO TO JEST HURTOWNIA DANYCH

Hurtownie danych. Wstęp. Architektura hurtowni danych. http://zajecia.jakubw.pl/hur CO TO JEST HURTOWNIA DANYCH Wstęp. Architektura hurtowni. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur CO TO JEST HURTOWNIA DANYCH B. Inmon, 1996: Hurtownia to zbiór zintegrowanych, nieulotnych, ukierunkowanych

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Wprowadzenie do technologii Business Intelligence i hurtowni danych Wprowadzenie do technologii Business Intelligence i hurtowni danych 1 Plan rozdziału 2 Wprowadzenie do Business Intelligence Hurtownie danych Produkty Oracle dla Business Intelligence Business Intelligence

Bardziej szczegółowo

Obsługa Panelu Menadżera

Obsługa Panelu Menadżera Obsługa Panelu Menadżera Wersja 3.59.305 4.04.2013 r. Panel Menadżera pozwala na dostęp do wybranych informacji systemu Streamsoft Prestiż, poprzez przeglądarkę internetową. Ponadto panel ten można obsługiwać

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2016/2017

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2016/2017 dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2016/2017 KONTAKT Z PROWADZĄCYM dr inż. Paweł Morawski e-mail: pmorawski@spoleczna.pl www: http://pmorawski.spoleczna.pl

Bardziej szczegółowo

Monitoring procesów z wykorzystaniem systemu ADONIS

Monitoring procesów z wykorzystaniem systemu ADONIS Monitoring procesów z wykorzystaniem systemu ADONIS BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA. Wielkopolski system doradztwa. edukacyjno-zawodowego

INSTRUKCJA UŻYTKOWNIKA. Wielkopolski system doradztwa. edukacyjno-zawodowego INSTRUKCJA UŻYTKOWNIKA DLA INSTYTUCJI RYNKU PRACY JAK KORZYSTAĆ Z MODUŁU ANALITYCZNEGO narzędzia informatycznego opracowanego w ramach projektu Wielkopolski system doradztwa edukacyjno-zawodowego Poznań,

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ ELEKTRONICZNA KSIĄŻKA ZDARZEŃ Instrukcja obsługi 1. WSTĘP... 2 2. LOGOWANIE DO SYSTEMU... 2 3. STRONA GŁÓWNA... 3 4. EWIDENCJA RUCHU... 4 4.1. Dodanie osoby wchodzącej na teren obiektu... 4 4.2. Dodanie

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja aplikacji internetowej do wyszukiwania promocji Autor: Sylwester Wiśniewski Promotor: dr Jadwiga Bakonyi Kategorie: aplikacja webowa Słowa

Bardziej szczegółowo

16) Wprowadzenie do raportowania Rave

16) Wprowadzenie do raportowania Rave 16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual

Bardziej szczegółowo

TP1 - TABELE PRZESTAWNE od A do Z

TP1 - TABELE PRZESTAWNE od A do Z TP1 - TABELE PRZESTAWNE od A do Z Program szkolenia 1. Tabele programu Excel 1.1. Wstawianie tabeli 1.2. Style tabeli 1.3. Właściwości tabeli 1.4. Narzędzia tabel 1.4.1. Usuń duplikaty 1.4.2. Konwertuj

Bardziej szczegółowo

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Wprowadzenie do Hurtowni Danych. Mariusz Rafało Wprowadzenie do Hurtowni Danych Mariusz Rafało mariusz.rafalo@hotmail.com WPROWADZENIE DO HURTOWNI DANYCH Co to jest hurtownia danych? Hurtownia danych jest zbiorem danych zorientowanych tematycznie, zintegrowanych,

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Dokumentacja Użytkownika: Panel administracyjny PayBM

Dokumentacja Użytkownika: Panel administracyjny PayBM Blue Media Dokumentacja Użytkownika: Panel administracyjny PayBM Dokumentacja dla Partnerów Blue Media S.A. str.1 Spis treści 1. Logowanie do panelu administracyjnego PayBM... 3 2. Lista transakcji...

Bardziej szczegółowo

MJUP_Instrukcja obsługi aplikacji. wspomagającej

MJUP_Instrukcja obsługi aplikacji. wspomagającej Instrukcja obsługi aplikacji wspomagającej w ramach projektu Beneficjent: Urząd Miasta Krakowa Wersja: 1.00 Data wersji: 2015-02-24 Autor (rzy): Nazwa pliku: Zespół Pentacomp MJUP_Instrukcja obsługi aplikacji

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2018/2019

dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2018/2019 dr inż. Paweł Morawski Informatyczne wsparcie decyzji logistycznych semestr letni 2018/2019 KONTAKT Z PROWADZĄCYM dr inż. Paweł Morawski e-mail: pmorawski@spoleczna.pl www: http://pmorawski.spoleczna.pl

Bardziej szczegółowo

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services Spis treści Wstęp... ix Odkąd najlepiej rozpocząć lekturę?... ix Informacja dotycząca towarzyszącej ksiąŝce płyty CD-ROM... xi Wymagania systemowe... xi Instalowanie i uŝywanie plików przykładowych...

Bardziej szczegółowo

Analizy na podstawie danych sprawozdawczych - Moduł Analiz dla Banków Spółdzielczych

Analizy na podstawie danych sprawozdawczych - Moduł Analiz dla Banków Spółdzielczych Analizy na podstawie danych sprawozdawczych - Moduł Analiz dla Banków Spółdzielczych Kwiecień 2012 Wszelkie prawa zastrzeżone. Dokument może być reprodukowany lub przechowywany bez ograniczeń tylko w całości.

Bardziej szczegółowo

Narzędzia controllingowe dla małych firm

Narzędzia controllingowe dla małych firm Narzędzia controllingowe dla małych firm HURTOWNIA DANYCH BUDŻETOWANIE WYMIANA INFORMACJI 1. Small Business Navigator dla małych firm Business Navigator jest platformą informatyczną wspomagającą wdrożenie

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub

Bardziej szczegółowo

Nowy PekaoBIZNES 24. Przewodnik po zmianach w systemie. Departament Bankowości Transakcyjnej

Nowy PekaoBIZNES 24. Przewodnik po zmianach w systemie. Departament Bankowości Transakcyjnej Nowy PekaoBIZNES 24 Przewodnik po zmianach w systemie Departament Bankowości Transakcyjnej Grudzień 2012 DLACZEGO PekaoBIZNES 24 SIĘ ZMIENIA? Platforma transakcyjna PekaoBIZNES 24 usprawnia codzienne operacje

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

Prezentacja firmy WYDAJNOŚĆ EFEKTYWNOŚĆ SKUTECZNOŚĆ. http://www.qbico.pl

Prezentacja firmy WYDAJNOŚĆ EFEKTYWNOŚĆ SKUTECZNOŚĆ. http://www.qbico.pl Prezentacja firmy { WYDAJNOŚĆ EFEKTYWNOŚĆ SKUTECZNOŚĆ http://www.qbico.pl Firma ekspercka z dziedziny Business Intelligence Srebrny Partner Microsoft w obszarach Business Intelligence i Data Platform Tworzymy

Bardziej szczegółowo

Praktyczne aspekty pozyskiwania wiedzy z danych z perspektywy matematyka w bankowości. 2014-01-23 (VI zajęcia) Jakub Jurdziak

Praktyczne aspekty pozyskiwania wiedzy z danych z perspektywy matematyka w bankowości. 2014-01-23 (VI zajęcia) Jakub Jurdziak Praktyczne aspekty pozyskiwania wiedzy z danych z perspektywy matematyka w bankowości 2014-01-23 (VI zajęcia) Jakub Jurdziak CEL ZAJĘĆ: Prezentacja nowoczesnego banku uniwersalnego jako organizacji opartej

Bardziej szczegółowo

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw.

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw. Hurtownie danych Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach. http://zajecia.jakubw.pl/hur UZASADNIENIE BIZNESOWE Po co nam hurtownia danych? Jakie mogą

Bardziej szczegółowo

SYSTEM ZARZĄDZANIA RELACJAMI Z KLIENTEM CRM7

SYSTEM ZARZĄDZANIA RELACJAMI Z KLIENTEM CRM7 SYSTEM ZARZĄDZANIA RELACJAMI Z KLIENTEM CRM7 Administracja instrukcja Panel administracyjny jest dostępny z menu po lewej stronie ekranu. Użytkownicy bez uprawnień administracyjnych mają tylko możliwość

Bardziej szczegółowo

OKAY CRM 2.0 nowy program!

OKAY CRM 2.0 nowy program! OKAY CRM 2.0 nowy program! OKAY CRM 2.0 Nowoczesny Interfejs Kalendarz Graficzny Zarządzanie wiedzą o kontrahentach Osoby kontaktowe Historia kontaktów Delegowanie zadań Projekty Zarządzanie dokumentami

Bardziej szczegółowo

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu). Spis treści Informacje ogólne...2 Tryby pracy...3 Wygląd interfejsu...4 Tryb użytkownika...5 Tryb administratora...6 Import kontrahentów z pliku XML...8 2 Informacje ogólne Aplikacja internetowa umożliwia

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Podręcznik użytkownika

Podręcznik użytkownika Podręcznik użytkownika Centrum rozliczeniowe UPS 2015 United Parcel Service of America, Inc. Nazwa UPS, marka UPS i kolor brązowy są znakami towarowymi firmy United Parcel Service of America, Inc. Wszelkie

Bardziej szczegółowo

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa Budowa systemu wspomagającego podejmowanie decyzji Metodyka projektowo wdrożeniowa Agenda Systemy wspomagające decyzje Business Intelligence (BI) Rodzaje systemów BI Korzyści z wdrożeń BI Zagrożenia dla

Bardziej szczegółowo

APLIKACJA SHAREPOINT

APLIKACJA SHAREPOINT APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

3. Budowa prostych raportów opartych o bazę danych

3. Budowa prostych raportów opartych o bazę danych 3. Budowa prostych raportów opartych o bazę danych 1. Przy pomocy kreatora utwórz raport tabelaryczny, wyświetlający dane dotyczące prowadzących listę przebojów. W tym celu: a. Uruchom narzędzie Application

Bardziej szczegółowo

Marcin Adamczak Jakub Gruszka MSP. Business Intelligence

Marcin Adamczak Jakub Gruszka MSP. Business Intelligence Marcin Adamczak Jakub Gruszka MSP Business Intelligence Plan Prezentacji Definicja Podział Zastosowanie Wady i zalety Przykłady Historia W październiku 1958 Hans Peter Luhn pracownik działu badań w IBM

Bardziej szczegółowo

Mobilny CRM BY CTI 1

Mobilny CRM BY CTI 1 Mobilny CRM BY CTI 1 Spis treści 1. Wstęp...3 2. Instrukcja do programu...3 2.1. Lewe menu...4 2.1.1. Zakładka klient...5 2.1.2. Zakładka spotkania... 10 2.1.3. Zakładka kalendarz... 17 2.1.4. Zakładka

Bardziej szczegółowo

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Plan. Raport. Tworzenie raportu z kreatora (1/3) 3 Budowa prostych raportów opartych o bazę danych Plan Co to jest raport? Tworzenie za pomocą kreatora Tworzenie opartego o polecenie SQL Edycja atrybutów Atrybuty regionu Atrybuty Atrybuty kolumn 2 Raport

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA. Wielkopolski system doradztwa. edukacyjno-zawodowego

INSTRUKCJA UŻYTKOWNIKA. Wielkopolski system doradztwa. edukacyjno-zawodowego INSTRUKCJA UŻYTKOWNIKA DLA DYREKTORA PLACÓWKI EDUKACYJNEJ JAK KORZYSTAĆ Z MODUŁU DYREKTORA narzędzia informatycznego opracowanego w ramach projektu Wielkopolski system doradztwa edukacyjno-zawodowego Poznań,

Bardziej szczegółowo

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa Kwerenda parametryczna, z polem wyliczeniowym, krzyżowa Operatory stosowane w wyrażeniach pól wyliczeniowych Przykład: wyliczanie wartości w kwerendach W tabeli Pracownicy zapisano wartości stawki godzinowej

Bardziej szczegółowo

IBM Business Analytics

IBM Business Analytics IBM Business Analytics Rafał Kupis IBM Polska Wolność Myśli Ujednolicone środowisko Dowolny horyzont czasowy Progresywna interakcja 2 Łącz się z Innymi Sieci decyzyjne Konteksty biznesowe Wzajemne walidacje

Bardziej szczegółowo

Platforma Cognos. Agata Tyma CMMS Department Marketing & Sales Specialist atyma@aiut.com.pl. 2011 AIUT Sp. z o. o.

Platforma Cognos. Agata Tyma CMMS Department Marketing & Sales Specialist atyma@aiut.com.pl. 2011 AIUT Sp. z o. o. Platforma Cognos Agata Tyma CMMS Department Marketing & Sales Specialist atyma@aiut.com.pl Business Intelligence - Fakty Kierownicy tracą około 2 godzin dziennie na szukanie istotnych informacji. Prawie

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

Analizy na podstawie danych sprawozdawczych - Moduł analiz z obsługą broszur

Analizy na podstawie danych sprawozdawczych - Moduł analiz z obsługą broszur Analizy na podstawie danych sprawozdawczych - Moduł analiz z obsługą broszur Marzec 2013 Wszelkie prawa zastrzeżone. Dokument może być reprodukowany lub przechowywany bez ograniczeń tylko w całości. W

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą

Bardziej szczegółowo

Symfonia Produkcja. Kreator raportów. Wersja 2013

Symfonia Produkcja. Kreator raportów. Wersja 2013 Symfonia Produkcja Kreator raportów Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy Adobe

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence Hurtownie danych Wprowadzenie do systemów typu Business Intelligence Krzysztof Goczyła Teresa Zawadzka Katedra Inżynierii Oprogramowania Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika

Bardziej szczegółowo

Opis spełnienia wymagań (PSBD)

Opis spełnienia wymagań (PSBD) Numer sprawy: DPZ/4/15 Nr arch. DPZ/087/059-16/15 1. Zakres przedmiotu zamówienia: Opis spełnienia wymagań (PSBD) Załącznik nr 1d do formularza ofertowego Wykonanie dzieła polegającego na dostawie, kompleksowym

Bardziej szczegółowo

PWI Instrukcja użytkownika

PWI Instrukcja użytkownika PWI Instrukcja użytkownika Spis treści 1. Wprowadzenie... 1 2. Przebieg przykładowego procesu... 1 3. Obsługa systemu... 5 a. Panel logowania... 5 b. Filtrowanie danych... 5 c. Pola obligatoryjne... 6

Bardziej szczegółowo

Paweł Gołębiewski. Softmaks.pl Sp. z o.o. ul. Kraszewskiego 1 85-240 Bydgoszcz www.softmaks.pl kontakt@softmaks.pl

Paweł Gołębiewski. Softmaks.pl Sp. z o.o. ul. Kraszewskiego 1 85-240 Bydgoszcz www.softmaks.pl kontakt@softmaks.pl Paweł Gołębiewski Softmaks.pl Sp. z o.o. ul. Kraszewskiego 1 85-240 Bydgoszcz www.softmaks.pl kontakt@softmaks.pl Droga na szczyt Narzędzie Business Intelligence. Czyli kiedy podjąć decyzję o wdrożeniu?

Bardziej szczegółowo

Co to jest Business Intelligence?

Co to jest Business Intelligence? Cykl: Cykl: Czwartki z Business Intelligence Sesja: Co Co to jest Business Intelligence? Bartłomiej Graczyk 2010-05-06 1 Prelegenci cyklu... mariusz@ssas.pl lukasz@ssas.pl grzegorz@ssas.pl bartek@ssas.pl

Bardziej szczegółowo

Funkcje systemu infokadra

Funkcje systemu infokadra System Informacji Zarządczej - infokadra jest rozwiązaniem skierowanym dla kadry zarządzającej w obszarze administracji publicznej. Jest przyjaznym i łatwym w użyciu narzędziem analityczno-raportowym,

Bardziej szczegółowo

plansoft.org www.plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

plansoft.org www.plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW Zmiany w Plansoft.org Błyskawiczny eksport danych... 1 Jak wyeksportować dane... 1 Eksportowanie planu studiów, zajęć, statystyk i danych słownikowych... 2 Dostosowywanie wyników eksportu... 4 Filtrowanie

Bardziej szczegółowo

BUSINESS INTELLIGENCE for PROGRESS BI4PROGRESS

BUSINESS INTELLIGENCE for PROGRESS BI4PROGRESS BUSINESS INTELLIGENCE for PROGRESS BI4PROGRESS SZYBKIE ANALIZY EKONOMICZNE, FINANSOWE I STATYSTYCZNE 0 S t r o n a Dlaczego BI4PROGRESS? W czasach nieustających, dynamicznych zmian na rynku edukacyjnym,

Bardziej szczegółowo

Portal Personelu Medycznego. 2010 Global Services Sp. z o.o.

Portal Personelu Medycznego. 2010 Global Services Sp. z o.o. Portal Personelu Medycznego 2 Portal Personelu Medycznego Spis treści Rozdział I Wprowadzenie 3 Rozdział II Konfiguracja 4 Rozdział III Aktywacja 5 Rozdział IV Opis aplikacji 7 Rozdział V Obsługa okien

Bardziej szczegółowo

Wnioski i dyspozycje elektroniczne. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

Wnioski i dyspozycje elektroniczne. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss BANK OCHRONY ŚRODOWISKA S.A. ul. Żelazna 32 / 00-832 Warszawa tel.: (+48 22) 850 87 35 faks: (+48 22) 850 88 91 e-mail: bos@bosbank.pl Instrukcja użytkownika systemu bankowości internetowej dla firm Wnioski

Bardziej szczegółowo

Program do wagi SmartScale

Program do wagi SmartScale Program do wagi SmartScale zarządzanie pomiarami zarządzanie towarami - dodawanie, usuwanie oraz wyszukiwanie towarów zarządzanie kontrahentami dodawanie i usuwanie oraz wyszukiwanie wydruki kwitów w trybie

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Opcje raportów. łatwe i czytelne raportowanie

Opcje raportów. łatwe i czytelne raportowanie Rejestracja czasu pracy bez odpowiedniego i łatwego w obsłudze procesu raportowania zapisanych godzin jest niepraktyczna. Naszym celem było stworzenie kompleksowego i funkcjonalnego systemu, dzięki któremu

Bardziej szczegółowo

TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów

TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów Przeznaczenie szkolenia Szkolenie dla osób chcących: Profesjonalnie przygotowywać dane do dalszej

Bardziej szczegółowo

The Binder Consulting

The Binder Consulting The Binder Consulting Contents Indywidualne szkolenia specjalistyczne...3 Konsultacje dla tworzenia rozwiazan mobilnych... 3 Dedykowane rozwiazania informatyczne... 3 Konsultacje i wdrożenie mechanizmów

Bardziej szczegółowo

Pierwsze wdrożenie SAP BW w firmie

Pierwsze wdrożenie SAP BW w firmie Pierwsze wdrożenie w firmie Mirosława Żurek, BCC Poznao, maj 2013 Zakres tematyczny wykładu Podstawowe założenia i pojęcia hurtowni danych ; Przykładowe pierwsze wdrożenie w firmie i jego etapy; Przykładowe

Bardziej szczegółowo

Hurtownia danych. Załącznik Nr 1 do SIWZ. Opis przedmiotu zamówienia. Lp. FUNKCJONALNOŚĆ/PARAMETRY WYMAGANE

Hurtownia danych. Załącznik Nr 1 do SIWZ. Opis przedmiotu zamówienia. Lp. FUNKCJONALNOŚĆ/PARAMETRY WYMAGANE Załącznik Nr 1 do SIWZ Opis przedmiotu zamówienia Lp. FUNKCJONALNOŚĆ/PARAMETRY WYMAGANE Hurtownia danych 1. Wielowymiarowa hurtownia danych oparta o model konstelacji faktów. 2. Brak ograniczenia na liczbę

Bardziej szczegółowo

Moduł Handlowo-Magazynowy Zaawansowane analizy sprzedaży i zakupu

Moduł Handlowo-Magazynowy Zaawansowane analizy sprzedaży i zakupu Moduł Handlowo-Magazynowy Zaawansowane analizy sprzedaży i zakupu Wersja 3.59.305 4.04.2013 r. W systemie Streamsoft Prestiż użytkownik ma możliwość samodzielnego tworzenia rozszerzonych analiz w zakresie

Bardziej szczegółowo

Migracja Business Intelligence do wersji

Migracja Business Intelligence do wersji Migracja Business Intelligence do wersji 2016.1 Copyright 2015 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest

Bardziej szczegółowo

Wykład III. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl. Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

Wykład III. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl. Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Wykład III W prezentacji wykorzystano fragmenty i przykłady z książki: Joe Habraken;

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

OLAP i hurtownie danych c.d.

OLAP i hurtownie danych c.d. OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Projekt: Wdrożenie strategii szkoleniowej prowadzony przez KancelarięPrezesa Rady Ministrów Projekt współfinansowany przez

Bardziej szczegółowo

MODUŁ AM4: ARKUSZE KALKULACYJNE

MODUŁ AM4: ARKUSZE KALKULACYJNE ECDL ADVANCED ECDL-A EUROPEJSKI CERTYFIKAT UMIEJĘTNOŚCI KOMPUTEROWYCH POZIOM ZAAWANSOWANY MODUŁ AM4: ARKUSZE KALKULACYJNE Syllabus v. 1.0 Oficjalna wersja dokumentu jest dostępna w serwisie WWW Polskiego

Bardziej szczegółowo

INSTRUKCJA ADMINISTRATORA KLIENTA

INSTRUKCJA ADMINISTRATORA KLIENTA INSTRUKCJA ADMINISTRATORA KLIENTA Logowanie do aplikacji... 2 Moje konto... 2 Pracownicy... 2 Grupy (podzakładka Pracownicy)... 5 Oferta dla Ciebie... 7 Kupione książki... 9 Oferta strony głównej (podzakładka

Bardziej szczegółowo

Spis treści MONITOR PRACY... 4

Spis treści MONITOR PRACY... 4 Co nowego Spis treści MONITOR PRACY...... 4 Konfiguracja plików... 5 Konfiguracja globalna... 6 Pliki... 6 Projekty... 6 Interfejs użytkownika... 7 Synchronizacja... 7 Typ serwera... 8 Test połączenia...

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:

Bardziej szczegółowo

Możliwość dodawania modułów pozwala na dopasowanie oprogramowania do procesów biznesowych w firmie.

Możliwość dodawania modułów pozwala na dopasowanie oprogramowania do procesów biznesowych w firmie. zajmuje się wdrażaniem koncepcji CRM Eroica CRM bazującej na najczęściej używanym rozwiązaniu Open Source vtiger. Eroica CRM posiada wiele funkcji ułatwiających zarządzanie relacjami z klientem w kancelarii.

Bardziej szczegółowo