Miejsce Flash’a w Business Intelligence

 

W 2007 roku SAP AG zdecydowała się przejąć podmiot o nazwie Business Objects, będący od ponad dekady czołowym producentem narzędzi obsługujących szerzej pojętą problematykę Business Intelligence. Od tego momentu należy spoglądać uważniej na produkty tej marki, ponieważ stały się integralną częścią kluczowej grupy kapitałowej. Business Objects zanim został pochłonięty przez giganta wykształcił kilka swoich flagowych produktów, dobrze znanych w środowisku analizy BI. Mowa tu przede wszystkim o Crystal Reports (będący nomen omen również przejętym w 2001 roku, kupionym z dobrodziejstwem inwentarza, produktem firmy  Blue Edge Software), Dashboard Manager (przejęty razem z firmą Crystal Decisions w 2003), Crystal Xcelsius (przejęty z firmą ALG Software w 2006 roku).

 

Po latach skupowania innych podmiotów w 2007 firma Business Objects sama została wchłonięta przez jeszcze większego drapieżnika za naturalnie wykładniczo wyśrubowaną przez te lata cenę. Dzięki skompletowanym flagowym produktom możemy dzisiaj ożywić nieco skostniały, syntetyczny wizerunek SAP’a. Crystal Reports to zaawansowane narzędzie do tworzenia multimedialnych, atrakcyjnych wizualnie raportów.  Dashboard Manager to manager kokpitów menadżerskich, czyli narzędzie do konstruowania pulpitów sterowania i (a może przede wszystkim) oglądania wizualizacji wyników spółki za pomocą interaktywnych komponentów, które jak kafelki układamy na ekranie. Xcelsius z kolei to najbardziej zaawansowane narzędzie do konstruowania takich komponentów. Za jego pomocą jesteśmy w stanie zintegrować arkusz kalkulacyjny z takim wizualnym komponentem.

 

Największym polem do popisu przed klientem wydaje się tutaj właśnie aspekt tej „wizualizacji”, bo przecież arkusz „jaki jest – każdy widzi”, a Dashboard Manager z punktu widzenia klienta jest tylko monterem glazury. Tutaj jest właśnie miejsce na produkt firmy Adobe (również przejęty w 2001 od Macromedia – sic!) – Flash. Bez wątpienia jest to najpotężniejsze tego typu narzędzie na rynku. Istnieje w zasadzie w dwóch „odmianach” - Flash i Flex. Pierwszy to serce systemu, pierwowzór, a przede wszystkim silnik i język (finalnie - AS 3.0). Stworzony z myślą o animacji, interakcji. Idealnie sprawdził się w grach. Drugi to framework tego pierwszego, z zestawem rewelacyjnych komponentów – uwaga – biznesowych. Flex jako framework do zastosowań biznesowych ze swoim multimedialnym rodowodem jest perełką na rynku i póki co jest niezastąpiony. Standard Flash, gremialnie skazany na wymarcie, nawet jeżeli zniknie z przeglądarek (póki co próba wyparcia go frameworkami html5 idzie ślamazarnie), ze środowiska biznesowego zniknie dużo później, bo ono nie jest aż tak dynamiczne, poza tym Flex w Xcelsius na dobre się dopiero rozkręcił.

 

Flex w Xcelsius

Oczywiście można wybrać gotowy komponent z puli komponentów Xcelsius albo zakupić komponent firmy trzeciej. Jednak ten artykuł od tego momentu dedykowany jest programistom Flash/Flex, dlatego postaram się przybliżyć możliwości stworzenia własnego „tańczącego, kręcącego i śpiewającego cacka” korespondującego z możliwościami BI, na wypadek jakby klient miał niestandardowe oczekiwania i niestandardowe możliwości finansowe.

 

Komponent Flex

Jakie komponenty jesteśmy w stanie stworzyć:

  • Komponenty wizualne, takie jak wykresy (Visual Component).
  • Connectory łączące środowisko Excel ze środowiskiem Flex (Connection).
  • Wsparcie dla funkcji Excela w środowisku Flex (Excel Function).

 

Czego potrzebujemy?

Narzędziem kluczowym jest Adobe Flash Builder (najnowsza odsłona „eclipsowego” niegdysiejszego Flex’a). On pozwoli nam na wygenerowanie surowego projektu Flex’a. Jeżeli go nie posiadamy – musimy zaopatrzyć się w suche Flex SDK 4.0. Dodatkowo musimy pobrać Dashboard Component SDK, (który jest kompatybilny z Adobe Flex SDK 4.0). Pakiet zawiera między innymi bibliotekę xcelsiusframework.swc, sporo przykładów komponentów oraz Dashboard Add-On Packager służący do „zapakowania” gotowego komponentu Flex’a do postaci akceptowalnej przez Add-On Managera (XLX). Add-On Manager jest również składnikiem ww. pakietu SDK.

 

Od pomysłu do dystrybucji

Jak wygląda najbardziej popularna struktura takiego komponentu:

  

(Struktura komponentu XLX stworzonego w technologii Adobe Flex, źródło: http://everythingxcelsius.com/guru-tips/top-10-xcelsius-2008-sdk-faqs/282)

 

Na co musimy się przygotować testując, chronologicznie:

  1. Tworzymy projekt „Application” w Adobe Flash a w nim:
  • dodajemy do libs bibliotekę xcelsiusframework.swc
  • dla komponentów wizualnych możemy użyć domyślnego arkusza parametrów komponentu  (Dashboards Default Property Sheet) albo stworzyć własny
  • dla połączeń musimy stworzyć własny arkusz parametrów
  1. We Flash Builderze kompilujemy wersję „debug”  komponentu
  2. Za pomocą Dashboards Add-On Packager packujemy komponent do postaci XLX. Szczegóły w sekcji: 8.2 To create Dashboards add-on packages (.xlx files) w dokumencie: (http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_dash_sdk_user.pdf)
  3. Używając Add-On Manager instalujemy gotowy „kafelek”. Szczegóły w sekcji: Appendix C: Add-On Manager Command Line Interface w dokumencie: (http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_dash_sdk_user.pdf)

 

Publikując natomiast, chronologicznie:

  1. We Flash Builderze kompilujemy wersję „release” komponentu
  2. Za pomocą Dashboards Add-On Packager pakujemy komponent do postaci XLX.
  3.  Przekazujemy komponent gremium użytkowników Dashboards.
  4. Użytkownicy instalują komponent używając Add-On Manager.

 

Komponent wizualny (Visual Component)

Komponenty wizualne muszą we Flexie dziedziczyć po UIComponent. Jeżeli chcemy uruchomić rpc dla tego komponentu musimy dodatkowo odziedziczyć klasę EventDispatcher i zaimplementować IConnection. Są to składowe biblioteki Xcelsiusa, więc należy zaimportować „xcelsius.rpc.*”.

 

Connector (Connection)

Każde połączenie implementujące IConnection musi  zdefiniować wszystkie parametry zawarte w Data Manager.  Dodatkowo musi implementować funkcję interfejsu o nazwie trigger(), która przechwytuje wszystkie zdarzenia połączenia. Na koniec, po załadowaniu danych, należy również zgłosić zdarzenie COMPLETE.

 

Szczegóły kompilacji

  1. Przed kompilacją w Adobe Flash Builder, sprawdzamy w parametrach projektu (properties) ustawione SDK – musi być Adobe Flex SDK 4.0, tryb kompatybilności z wersją 3 – wyłączony.
  2. W tej samej zakładce u doły dopisujemy dodatkowe parametry oddzielone spacjami:
  • -isolate-styles=false

Parametr pozwala zdecydować czy odizolować ewentualnie dodane style (css) od finalnego pliku swf.

  • -static-link-runtime-shared-libraries=true

Parametr pozwala zdecydować czy załączyć zewnętrzne biblioteki (swc) do finalnego pliku swf.

 

3.       Kompilujemy projekt by użyć go w domyślnym arkuszu parametrów (Dashboards Default Property Sheet).

 

Szczegóły tworzenia arkusza parametrów

Komponenty wizualne oraz connectory są konfigurowalne z zewnątrz za pomocą arkuszy parametrów. Dla komponentu wizualnego możemy co prawda skorzystać z domyślnego arkusza (Dashboards Default Property Sheet), jednak dla connectora musimy już obowiązkowo przygotować własny arkusz.

Aby użyć domyślnego arkusza należy zapoznać się z jego API. Szczegóły w sekcji: Appendix A: Dashboards Default Property Sheet API Reference w dokumencie: (http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_dash_sdk_user.pdf)

 

Aby stworzyć własny arkusz należy zapoznać się z dokumentem objaśniającym tworzenie własnego API. Szczegóły w sekcji: Appendix B: Custom Property Sheet API Reference w dokumencie: (http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_dash_sdk_user.pdf)

Ze specyfikacji dowiemy się jak:

  • Ukryć niektóre parametry domyślnego arkusza, aby były niewidoczne dla użytkownika komponentu, posługując się metadanymi.
  • Skorelować wartości komórek arkusza kalkulacyjnego z parametrami we Flex tak, by komunikacja między nimi działała w obydwie strony.
  • Skonstruować własne style i własne parametry dostępne z zewnątrz komponentu.
  • Lokalizować ze względu na kraj – wygląd i zawartość arkusza parametrów.

 

O czym trzeba pamiętać / warto wiedzieć

  • Należy zwracać uwagę na unikalne nazewnictwo komponentów i klas wewnątrz przestrzeni nazw komponentów. Ponadto należy przywiązywać do owego nazewnictwa uwagę, albowiem stanowi ono sposób identyfikacji komponentów w Managerze.
  • W Dashboard Managerze elementarną cegiełką którą dysponuje użytkownik „instalując” komponent jest Package. Dlatego jeżeli chcemy by kilka naszych komponentów było postrzeganych i instalowalnych oddzielnie – umieśćmy je w osobnych paczkach.
  •  Przykłady komponentów dostępne  są po rozpakowaniu paczki Xcelsius w …\Xcelsius 4.0\SDK\Samples.
  • Przykładowy – domyślny – arkusz parametrów, czyli Dashboards Default Property Sheet jest w …\Xcelsius\4.0\SDK\bin\PropertyInspector.swf
  • Przed instalacją bądź deinstalacją w Add-On Manager czegokolwiek należy wyłączyć Dashboards.

 

 

Literatura:

 

1. SAP BusinessObjects Dashboards Component SDK User Guide – SAP BusinessObjects 4.0 Feature Pack 3 (http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_dash_sdk_user.pdf)

2. http://everythingxcelsius.com/guru-tips/top-10-xcelsius-2008-sdk-faqs/282

3. http://en.wikipedia.org/wiki/Business_Objects

 

Artykuł dotyczy: SAP, SAP BUSINESS OBJECTS, BUSINESS INTELIGENCE, DASHBOARDS, HANA, SAP BO, SAP BW, SAP DASHBOARDS