{"id":7352,"date":"2019-04-26T15:00:57","date_gmt":"2019-04-26T13:00:57","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=7352"},"modified":"2023-09-25T15:34:07","modified_gmt":"2023-09-25T13:34:07","slug":"maly-glosariusz-sap-czesc-iii","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-czesc-iii\/","title":{"rendered":"Ma\u0142y Glosariusz SAP (cz\u0119\u015b\u0107 III)"},"content":{"rendered":"\n<p>Cz\u0119\u015b\u0107 trzecia jest prezentacj\u0105 kilku podej\u015b\u0107 do tworzenia wirtualnych modeli danych (VDM). B\u0119dzie mowa o Core Data Services oraz HANA Views, ich podobie\u0144stwach, r\u00f3\u017cnicach i zastosowaniach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Spis tre\u015bci<\/strong>:<\/h2>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-wstep\/?category=development-na-miekko&amp;tag=centrum-kompetencyjne-sap,sap,sap-bw,sap-cloud-platform,sap-competency-center,sap-hana\" class=\"ek-link\"><strong>1. Wst\u0119p<\/strong><\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-wstep#indeks_skrotow\" class=\"ek-link\"><strong>2. Indeks skr\u00f3t\u00f3w<\/strong><\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-czesc-i\/\" class=\"ek-link\"><strong>Cz\u0119\u015b\u0107 I<\/strong><\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>SAP HANA Cloud Platform (HCP) vs. SAP Cloud Platform<\/li>\n\n\n\n<li>\u015arodowiska i narz\u0119dzia deweloperskie (\/administracyjne)\n<ol class=\"wp-block-list\">\n<li>Cloud czy on-premise<\/li>\n\n\n\n<li>SAP HANA Studio\/Eclipse<\/li>\n\n\n\n<li>Rodzina narz\u0119dzi typu Web IDE\n<ol class=\"wp-block-list\">\n<li>SAP Web IDE<\/li>\n\n\n\n<li>SAP HANA Web-based Development Workbench<\/li>\n\n\n\n<li>SAP Web IDE for HANA<\/li>\n\n\n\n<li>SAP Web IDE Full-stack<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>SAP Design Studio (oraz SAP Lumira, SAP Lumira Discovery, SAP Lumira Designer)<\/li>\n\n\n\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-czesc-ii\/\" class=\"ek-link\"><strong>Cz\u0119\u015b\u0107 II<\/strong><\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>HANA vs. HANA DB vs. HANA Platform\n<ol class=\"wp-block-list\">\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>XS vs. XSA\/HDI\n<ol class=\"wp-block-list\">\n<li>Wst\u0119p<\/li>\n\n\n\n<li>Extended Application Services Classic (XS lub XSC)<\/li>\n\n\n\n<li>Extended Application Services Advanced (XSA) + HDI<\/li>\n\n\n\n<li>HDI (HANA Deployment Infrastucture)<\/li>\n\n\n\n<li>Cloud Foundry<\/li>\n\n\n\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>S\/4HANA, C\/4HANA, BW\/4HANA (x\/4HANA)<\/li>\n\n\n\n<li>SAP BW\n<ol class=\"wp-block-list\">\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>BW on HANA, BW powered by HANA, BW\/4HANA\n<ol class=\"wp-block-list\">\n<li>\u0179r\u00f3d\u0142a (i auto-\u017ar\u00f3d\u0142a)<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Embedded BW\n<ol class=\"wp-block-list\">\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>S\/4HANA Embedded Analytics<\/li>\n<\/ol>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-czesc-iii\/\" class=\"ek-link\"><strong>Cz\u0119\u015b\u0107 III<\/strong><\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"12\">\n<li>Virtual Data Model (VDM)<\/li>\n\n\n\n<li>HANA Native Views (HANA Views, HANA Information Views)\n<ol class=\"wp-block-list\">\n<li>Attribute View<\/li>\n\n\n\n<li>Analytic View<\/li>\n\n\n\n<li>Calculation View<\/li>\n\n\n\n<li>SAP HANA Live<\/li>\n\n\n\n<li>SAP HANA Live Browser<\/li>\n\n\n\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Core Data Services (CDS)\n<ol class=\"wp-block-list\">\n<li>Wst\u0119p<\/li>\n\n\n\n<li>ABAP CDS vs. HANA CDS<\/li>\n\n\n\n<li>\u0179r\u00f3d\u0142a<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"_Toc422173\"><\/a>12. Virtual Data Model (VDM)<\/h2>\n\n\n\n<p>Jest to dodatkowa struktura logiczna (warstwa lub warstwy) rozpi\u0119ta na obiektach, gdzie dane s\u0105 \u201efizycznie\u201d przechowywane, np. na tabelach, plikach. Celem VDM jest uzyskanie warto\u015bci dodanej. Mo\u017ce to by\u0107 dla przyk\u0142adu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wzbogacenie informacji ju\u017c istniej\u0105cych, przez stworzenie dodatkowych po\u0142\u0105cze\u0144 (kilku r\u00f3\u017cnych tabel), przekszta\u0142ce\u0144, kalkulacji<\/li>\n\n\n\n<li>przedstawienie informacji w inny spos\u00f3b (bardziej czytelny, lub ujawniaj\u0105cy pewne rzeczy, kt\u00f3rych nie wida\u0107 na pierwszy rzut oka)<\/li>\n\n\n\n<li>wykonanie oblicze\u0144 na surowych danych \u017ar\u00f3d\u0142owych i prezentacja gotowych wynik\u00f3w<\/li>\n<\/ul>\n\n\n\n<p>VDM mo\u017ce s\u0142u\u017cy\u0107 jako warstwa bezpiecze\u0144stwa, chroni\u0105ca przed bezpo\u015brednim dost\u0119pem do danych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"_Toc422174\"><\/a>13. HANA Native Views (HANA Views, HANA Information Views)<\/h2>\n\n\n\n<p>Natywne widoki HANA to widoki bazodanowe budowane za pomoc\u0105 predefiniowanych <em>building blocks<\/em>, z wykorzystaniem edytora graficznego. Forma graficzna jest preferowana, natomiast jest r\u00f3wnie\u017c opcja \u201ezaawansowana\u201d tworzenia widok\u00f3w &#8211; w edytorze SQLScript. Jest to podej\u015bcie niezalecane, w przypadku konieczno\u015bci wykorzystania skrypt\u00f3w powinny zosta\u0107 wykorzystane Table Functions.<\/p>\n\n\n\n<p>Niegdy\u015b w u\u017cyciu by\u0142y trzy typy widok\u00f3w (Attribute View, Analytic View, Calculation View), obecnie jest to ostatni z nich, kt\u00f3ry wch\u0142on\u0105\u0142 funkcje dw\u00f3ch poprzednich. Charakter widoku (w kontek\u015bcie zestawu starych typ\u00f3w widok\u00f3w) ustawia si\u0119 teraz jako jedn\u0105 z opcji Calculation View (CV).<\/p>\n\n\n\n<p>Ka\u017cdy z widok\u00f3w\/typ\u00f3w jest skojarzony z domy\u015blnym typem silnika bazodanowego, kt\u00f3ry go przetwarza. S\u0105 trzy rodzaje silnik\u00f3w: Join Engine (Attribute View), OLAP Engine (Analytic View) oraz Calculation Engine (Calculation View). Wi\u0119cej poni\u017cej.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.1. Attribute View<\/h3>\n\n\n\n<p>Jest to typ widoku realizuj\u0105cy funkcj\u0119 Master Data\/Dimension (cecha + atrybuty). Widok \u0142\u0105czy dane z tabeli centralnej z tabelami atrybut\u00f3w, np. tabel\u0119 klient\u00f3w z tabel\u0105 adres\u00f3w. Attribute View nie obs\u0142uguje miarek (np. agregacji), traktuje je jako cechy. G\u0142\u00f3wnym silnikiem przetwarzania jest Join Engine.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Attribute_View.png\"><img decoding=\"async\" width=\"1073\" height=\"431\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Attribute_View.png\" alt=\"Przyk\u0142ad Attribute View\" class=\"wp-image-7373\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Attribute_View.png 1073w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Attribute_View-300x121.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Attribute_View-1024x411.png 1024w\" sizes=\"(max-width: 1073px) 100vw, 1073px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Przyk\u0142ad Attribute View<\/figcaption><\/figure>\n\n\n\n<p class=\"has-text-align-left\">W nowym Calculation View, funkcjonalno\u015b\u0107 Attribute View osi\u0105gana jest poprzez wybranie opcji \u201eData Category\u201d = \u201eDimension\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_1.png\"><img decoding=\"async\" width=\"1040\" height=\"417\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_1.png\" alt=\"Przyk\u0142ad Calculation View (cz. 1)\" class=\"wp-image-7374\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_1.png 1040w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_1-300x120.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_1-1024x411.png 1024w\" sizes=\"(max-width: 1040px) 100vw, 1040px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Przyk\u0142ad Calculation View (cz. 1)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_2.png\"><img decoding=\"async\" width=\"1053\" height=\"407\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_2.png\" alt=\"Przyk\u0142ad Calculation View (cz. 2)\" class=\"wp-image-7375\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_2.png 1053w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_2-300x116.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_2-1024x396.png 1024w\" sizes=\"(max-width: 1053px) 100vw, 1053px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Przyk\u0142ad Calculation View (cz. 2)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_3.png\"><img decoding=\"async\" width=\"831\" height=\"385\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_3.png\" alt=\"Przyk\u0142ad Calculation View (cz. 3)\" class=\"wp-image-7376\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_3.png 831w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_3-300x139.png 300w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 4 Przyk\u0142ad Calculation View (cz. 3)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_4.png\"><img decoding=\"async\" width=\"1031\" height=\"381\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_4.png\" alt=\"Przyk\u0142ad Calculation View (cz. 4)\" class=\"wp-image-7377\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_4.png 1031w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_4-300x111.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_4-1024x378.png 1024w\" sizes=\"(max-width: 1031px) 100vw, 1031px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 5 Przyk\u0142ad Calculation View (cz. 4)<\/figcaption><\/figure>\n\n\n\n<p class=\"has-text-align-left\">Powy\u017cej \u2013 Przyk\u0142ady&nbsp; Calculation View \u2013 widoczny jest dodatkowy w\u0119ze\u0142 (domy\u015blny dla CV typu \u201eDimension\u201d), czyli projekcja, oraz segmentacja Join\u2019\u00f3w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.2. Analytic View<\/h3>\n\n\n\n<p>Jest to typ widoku dedykowany do wielowymiarowej analizy danych, silnikiem jest OLAP Engine, \u0142\u0105cz\u0105cy tabel\u0119 fakt\u00f3w z tabelami wymiar\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_1.png\"><img decoding=\"async\" width=\"1140\" height=\"598\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_1.png\" alt=\"Przyk\u0142ad Analytic View (cz. 1)\" class=\"wp-image-7371\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_1.png 1140w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_1-300x157.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_1-1024x537.png 1024w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 6 Przyk\u0142ad Analytic View (cz. 1)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_2.png\"><img decoding=\"async\" width=\"1257\" height=\"687\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_2.png\" alt=\"Przyk\u0142ad Analytic View (cz. 2)\" class=\"wp-image-7372\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_2.png 1257w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_2-300x164.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Analytic_View_2-1024x560.png 1024w\" sizes=\"(max-width: 1257px) 100vw, 1257px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 7 Przyk\u0142ad Analytic View z punktem centralnym \u2013 Star Join (cz. 2).<br>Jako wymiary wykorzystane s\u0105 widoki typu Attribute View.<\/figcaption><\/figure>\n\n\n\n<p>W nowym Calculation View, funkcjonalno\u015b\u0107 Attribute View osi\u0105gana jest poprzez wybranie opcji \u201eData Category\u201d = \u201eCube with Star Join\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_ANV_1.png\"><img decoding=\"async\" width=\"1141\" height=\"391\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_ANV_1.png\" alt=\"Przyk\u0142ad Calculation View (odwzorowanie Analytic View)\" class=\"wp-image-7378\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_ANV_1.png 1141w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_ANV_1-300x103.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_ANV_1-1024x351.png 1024w\" sizes=\"(max-width: 1141px) 100vw, 1141px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 8 Przyk\u0142ad analogicznego Calculation View (typ: Cube with Star Join). Jako wymiary wykorzystane s\u0105 widoki typu Calculation View.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">13.3. Calculation View<\/h3>\n\n\n\n<p class=\"has-text-align-left\">Calculation View jest widokiem daj\u0105cym najwi\u0119ksz\u0105 elastyczno\u015b\u0107. Umo\u017cliwia tworzenie modeli wielopoziomowych. Bardzo przydatn\u0105 funkcj\u0105 przy pracy z CV, jest mo\u017cliwo\u015b\u0107 podejrzenia danych na ka\u017cdym poziomie widoku. Tym samym sprawdzanie poprawno\u015bci dzia\u0142ania modelu i wyszukiwanie b\u0142\u0119d\u00f3w s\u0105 du\u017co \u0142atwiejsze.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_typy_wezlow.png\"><img decoding=\"async\" width=\"309\" height=\"623\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_typy_wezlow.png\" alt=\"Calculation View i rodzaje w\u0119z\u0142\u00f3w.\" class=\"wp-image-7379\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_typy_wezlow.png 309w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_Calculation_View_typy_wezlow-149x300.png 149w\" sizes=\"(max-width: 309px) 100vw, 309px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 9 Calculation View typu CUBE. Podstawowe w\u0119z\u0142y CV: Join, Union, Projection, Aggregation i Rank<\/figcaption><\/figure>\n\n\n\n<p>S\u0105 trzy typy Calculation View, wyboru dokonuje si\u0119 w momencie tworzenia widoku:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dimension (dawny Attribute View), z w\u0119z\u0142em domy\u015blnym \u2013 Projection<\/li>\n\n\n\n<li>Cube with Star Join (dawny Analytic View), z w\u0119z\u0142em domy\u015blnym \u2013 Star Join<\/li>\n\n\n\n<li>Cube, z w\u0119z\u0142em domy\u015blnym \u2013 Aggregation<\/li>\n<\/ul>\n\n\n\n<p>CV jest obecnie jedynym widokiem zalecanym do tworzenia modeli danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.4. SAP HANA Live<\/h3>\n\n\n\n<p>Jest to dostarczany przez SAP wirtualny model danych (VDM), zbudowany z wykorzystaniem widok\u00f3w natywnych HANA (Calculation Views) w architekturze XS. Widoki bazuj\u0105 na tabelach zawieraj\u0105cych dane transakcyjne i dane podstawowe (M<em>aster Data<\/em>) z system\u00f3w SAP Business Suite (ERP, CRM, SCM, etc.), operuj\u0105cych na bazie HANA. Analogiem HANA Live jest Embedded Analytics w systemie S\/4HANA. Pomimo wsp\u00f3lnej koncepcji, HL i EA r\u00f3\u017cni\u0105 si\u0119 technologi\u0105, na kt\u00f3rej bazuj\u0105. EA wykorzystuje Core Data Services (CDS), a HL widoki natywne.<\/p>\n\n\n\n<p>Model HANA Live jest rozszerzalny (na zasadzie pracy na kopii obiekt\u00f3w), narz\u0119dziem do pracy jest HANA Studio (\/Eclipse). Jest nieosi\u0105galny z poziomu Web IDE for SAP HANA \u2013 narz\u0119dzie wspiera tylko architektur\u0119 XSA\/HDI.<\/p>\n\n\n\n<p>Rozszerzeniem (p\u0142atnym) HANA Live, oferuj\u0105cym zestaw raport\u00f3w dla ro\u017cnych narz\u0119dzi analitycznych (np. SAP Crystal Reports) jest Rapid Deployment Solutions (RDS).<\/p>\n\n\n\n<p>Idea jest taka sama, jak przy Business Content w systemie SAP BW \u2013 dostarczenie modeli danych (HANA Live) i raport\u00f3w (RDS) gotowych do u\u017cycia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.5. SAP HANA Live Browser<\/h3>\n\n\n\n<p>Jest to aplikacja webowa, pozwalaj\u0105ca na przegl\u0105danie i wyszukiwanie widok\u00f3w natywnych HANA (zar\u00f3wno dostarczanych z HANA Live jak i customowych), dzi\u0119ki czemu mo\u017cliwe jest wykorzystanie ich w narz\u0119dziach SAP Lumira, SAP BusinessObjects Analysis lub innych narz\u0119dziach BI. SAP HANA Live Browser wymaga dodatkowej instalacji wzgl\u0119dem bazy HANA.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.6. \u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Supported Data Categories for Calculation Views <a href=\"https:\/\/help.sap.com\/viewer\/e8e6c8142e60469bb401de5fdb6f7c00\/2.0.00\/en-US\/e8b26f49218648eaa8e2ce9b54a8b812.html\" rel=\"nofollow\" >https:\/\/help.sap.com\/viewer\/e8e6c8142e60469bb401de5fdb6f7c00\/2.0.00\/en-US\/e8b26f49218648eaa8e2ce9b54a8b812.html<\/a><\/li>\n\n\n\n<li>SAP HANA Live &amp; S\/4HANA Embedded Analytics <a href=\"https:\/\/blogs.sap.com\/2013\/01\/02\/sap-hana-live-s4hana-embedded-analytics\/\" rel=\"nofollow\" >https:\/\/blogs.sap.com\/2013\/01\/02\/sap-hana-live-s4hana-embedded-analytics\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.sap.com\/products\/operational-reporting-hana-live.html\" rel=\"nofollow\" >https:\/\/www.sap.com\/products\/operational-reporting-hana-live.html<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a name=\"_Toc422181\"><\/a>14. Core Data Services (CDS)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">14.1. Wst\u0119p<\/h3>\n\n\n\n<p>CDSy pojawi\u0142y si\u0119 wraz z rozwojem HANY, jako odpowied\u017a na potrzeb\u0119 mo\u017cliwo\u015bci tworzenia modeli danych dla natywnych aplikacji HANA (XS) oraz ide\u0119 przesuni\u0119cia cz\u0119\u015bci logiki do bazy (Data-Centric Logic). S\u0105 dwa typy CDS: ABAP CDS oraz HANA CDS \u2013 o tym nieco wi\u0119cej w kolejnym rozdziale. Tutaj opisz\u0119 CDS na przyk\u0142adzie ABAP CDS.<\/p>\n\n\n\n<p>Pierwotnie, gdy ABAP by\u0142 podstaw\u0105 dla realizacji logiki, zar\u00f3wno j\u0119zyk zapyta\u0144 (Open SQL) oraz definiowane obiekt\u00f3w (widok\u00f3w, tabel) w ABAP Dictionary, by\u0142y mocno ograniczone w stosunku do pe\u0142nych mo\u017cliwo\u015bci standardu SQL. Ograniczenia j\u0119zyka zapyta\u0144 Open SQL wynikaj\u0105 z operowania w obr\u0119bie r\u00f3\u017cnych baz danych. Ka\u017cda z nich, pomimo wsp\u00f3lnego rdzenia, niekt\u00f3re aspekty realizuje inaczej (np. kwestie zaokr\u0105gle\u0144). Dlatego, aby wyniki uzyskiwane za pomoc\u0105 Open SQL by\u0142y zawsze jednakowe, wspierane s\u0105 jedynie te funkcje, kt\u00f3re s\u0105 wsp\u00f3lne dla wszystkich baz.<\/p>\n\n\n\n<p>Skromny jest r\u00f3wnie\u017c zakres tworzenia obiekt\u00f3w bazodanowych oferowany w ramach ABAP Dictionary \u2013 w zasadzie, s\u0105 to tylko proste widoki SQL \u2013 bez mo\u017cliwo\u015bci tworzenia struktur wielopoziomowych, czy korzystania z dodatkowych, kalkulowanych p\u00f3l.<\/p>\n\n\n\n<p>Koncepcja CDS niesie ze sob\u0105 istotn\u0105 separacj\u0119 pomi\u0119dzy tworzeniem aplikacji i bazy danych. Praca ze strony dewelopera opiera si\u0119 na kodzie oraz meta-modelu obiekt\u00f3w bazodanowych (tzw.<em> design-time objects<\/em>, czyli pliki z definicjami). Dopiero w momencie <em>build\u2019a<\/em> obiekty te, przyjmuj\u0105 \u201efizyczn\u0105\u201d posta\u0107 jako <em>run-time objects <\/em>(widoki, tabele, procedury etc.). Zajmuje si\u0119 tym system, wi\u0119c jest to dodatkowy poziom dla zapewnienia sp\u00f3jno\u015bci modelu.<\/p>\n\n\n\n<p>CDS to dodatkowa warstwa na wierzchu SQL, daj\u0105ca mo\u017cliwo\u015b\u0107 wzbogacania czysto technicznych mo\u017cliwo\u015bci j\u0119zyka o metadane. Wykorzystuj\u0105c adnotacje (<em>annotations<\/em>), mo\u017cna systemowi podpowiedzie\u0107 np. jakie jest znaczenie kolumny, jaki jest jej opis lub w jaki spos\u00f3b powinna przebiega\u0107 agregacja.<\/p>\n\n\n\n<p>My\u015bl\u0119, \u017ce <a href=\"https:\/\/blogs.sap.com\/2017\/09\/09\/abap-core-data-services-introduction-abap-cds-view\/\" rel=\"nofollow\" >ten artyku\u0142<\/a> dobrze opisuje koncepcj\u0119 CDS, warto do niego zajrze\u0107.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_annotiations.png\"><img decoding=\"async\" width=\"820\" height=\"500\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_annotiations.png\" alt=\"Przyk\u0142ad ABAP CDS DD z adnotacjami\" class=\"wp-image-7380\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_annotiations.png 820w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_annotiations-300x183.png 300w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 10 Przyk\u0142ad ABAP CDS DD z adnotacjami (@&#8230;)<\/figcaption><\/figure>\n\n\n\n<p>Kilka s\u0142\u00f3w o (ABAP) CDS-ach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201eJest to kolekcja j\u0119zyk\u00f3w specjalizowanych (DDL, QL, DCL), s\u0142u\u017c\u0105ca definiowaniu i konsumowaniu semantycznie bogatych modeli danych.\u201d<\/li>\n<\/ul>\n\n\n\n<p>DDL \u2013 Data Definition Language:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u0142u\u017cy modelowaniu i danych na poziomie semantycznie wy\u017cszym ni\u017c SQL<\/li>\n\n\n\n<li>Rozszerza mo\u017cliwo\u015bci SQL<\/li>\n<\/ul>\n\n\n\n<p>DCL \u2013 Data Control Language:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u0142u\u017cy kontroli dost\u0119pu do danych, wed\u0142ug okre\u015blonych parametr\u00f3w<\/li>\n<\/ul>\n\n\n\n<p>QL \u2013 Query Language, j\u0119zyk zapyta\u0144<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u0105 niezale\u017cne od bazy danych (<em>Database Independent<\/em>)<\/li>\n\n\n\n<li>S\u0105 definiowane w ABAPie (jako meta-obiekty typu design-time), dotycz\u0105 natomiast SQL i bazy danych<\/li>\n\n\n\n<li>S\u0105 zintegrowane z ABAP Lifecycle, mog\u0105 by\u0107 transportowane pomi\u0119dzy systemami<\/li>\n\n\n\n<li>Daj\u0105 podstaw\u0119 do budowy zunifikowanego modelu, umo\u017cliwiaj\u0105cego prac\u0119 na danych operacyjnych, wyszukiwanie informacji oraz budow\u0119 aplikacji analitycznych<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_tworzenie_z_wykorzystaniem_wzorcow.png\"><img decoding=\"async\" width=\"667\" height=\"421\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_tworzenie_z_wykorzystaniem_wzorcow.png\" alt=\"Tworzeniem ABAP CDS wg. wzorca\" class=\"wp-image-7381\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_tworzenie_z_wykorzystaniem_wzorcow.png 667w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/Przyklad_CDS_tworzenie_z_wykorzystaniem_wzorcow-300x189.png 300w\" sizes=\"(max-width: 667px) 100vw, 667px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 11 Tworzenie ABAP CDS z wykorzystaniem wzorc\u00f3w<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">14.2. ABAP CDS vs. HANA CDS<\/h3>\n\n\n\n<p>Technologia CDS jest zaimplementowana w dw\u00f3ch ods\u0142onach: ABAP i HANA. Obydwie zbudowane na ten samej koncepcji, nie s\u0105 jednak identyczne.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>&nbsp;<\/td><td><strong>ABAP CDS<\/strong><\/td><td><strong>HANA CDS<\/strong><\/td><\/tr><tr><td>Baza danych<\/td><td>Any DB<\/td><td>HANA DB<\/td><\/tr><tr><td>Repozytorium\n<p>&nbsp;<\/p>\n<p>(<em>design-time objects<\/em>)<\/p>\n<\/td><td>ABAP Data Dictionary<\/td><td>HANA Repository<\/td><\/tr><tr><td>Narz\u0119dzia<\/td><td>SAP HANA Studio\/Eclipse (ABAP Tools)<\/td><td>SAP HANA Studio\/Eclipse (HANA DB Dev Tools), WEB IDE<\/td><\/tr><tr><td>Cel<\/td><td>Model danych dla dowolnych aplikacji<\/td><td>Model danych dla natywnych aplikacji HANA<\/td><\/tr><tr><td>Kto (perspektywa)<\/td><td>ABAP Developer<\/td><td>DB Developer<\/td><\/tr><tr><td>Autoryzacje<\/td><td>Mo\u017cliwe wykorzystanie ABAP-based authorizations; CDS DCL<\/td><td>Autoryzacje na poziomie bazy danych; CDS DCL<\/td><\/tr><tr><td>Natywny dla HANA<\/td><td>nie<\/td><td>tak<\/td><\/tr><tr><td>Komentarz ad-hoc no.1<\/td><td>Uproszczenie w stosunku do HANA CDS pod wzgl\u0119dem autoryzacji \u2013 operowanie na poziomie aplikacyjnym i wykorzystanie modelu ABAPowego<\/td><td>HANA CDS daje dost\u0119p do wi\u0119kszej liczby natywnych funkcji HANA<\/td><\/tr><tr><td>Komentarz ad-hoc no.2<\/td><td>ABAP CDS wykorzystane s\u0105 w S4\/HANA Embedded Analytics<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">14.3. \u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ABAP Core Data Services \u2013 Introduction (ABAP CDS view) <a href=\"https:\/\/blogs.sap.com\/2017\/09\/09\/abap-core-data-services-introduction-abap-cds-view\/\" rel=\"nofollow\" >https:\/\/blogs.sap.com\/2017\/09\/09\/abap-core-data-services-introduction-abap-cds-view\/<\/a><\/li>\n<\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;7352&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;11&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;3.6&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;3.6\\\/5 ( votes: 11)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Ma\u0142y Glosariusz SAP (cz\u0119\u015b\u0107 III)&quot;,&quot;width&quot;:&quot;98.9&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 98.9px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            3.6\/5 ( votes: 11)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cz\u0119\u015b\u0107 trzecia jest prezentacj\u0105 kilku podej\u015b\u0107 do tworzenia wirtualnych modeli danych (VDM). B\u0119dzie mowa o Core Data Services oraz HANA &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/maly-glosariusz-sap-czesc-iii\/\">Continued<\/a><\/p>\n","protected":false},"author":169,"featured_media":7395,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[548,757,604,758,602,759],"class_list":["post-7352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-sap","tag-cds","tag-hana","tag-hana-view","tag-sap-bw","tag-vdm"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/04\/fabian-grohs-423591-unsplash.jpg","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/7352"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=7352"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/7352\/revisions"}],"predecessor-version":[{"id":24441,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/7352\/revisions\/24441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/7395"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=7352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=7352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=7352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}