{"id":19494,"date":"2023-02-17T05:00:00","date_gmt":"2023-02-17T04:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=19494"},"modified":"2023-02-17T10:15:56","modified_gmt":"2023-02-17T09:15:56","slug":"advanced-datastore-object-jeden-obiekt-wiele-mozliwosci","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/advanced-datastore-object-jeden-obiekt-wiele-mozliwosci\/","title":{"rendered":"Advanced DataStore Object \u2013 jeden obiekt, wiele mo\u017cliwo\u015bci"},"content":{"rendered":"\n<p>Drogi czytelniku, je\u017celi nie mia\u0142e\u015b wcze\u015bniej do czynienia z SAP-ow\u0105 hurtowni\u0105 danych BW4\/HANA, to przed przeczytaniem tego artyku\u0142u zapoznaj si\u0119 prosz\u0119 z dwoma artyku\u0142ami Bartka Kurowskiego, w kt\u00f3rych zosta\u0142y opisane kluczowe fakty dotycz\u0105ce zagadnienia: <a href=\"https:\/\/sii.pl\/blog\/bw-4hana-nowa-hurtownia-danych-sap-laczy-ewolucje-z-rewolucja\/?category=development-na-miekko&amp;tag=bw-4hana,hana,sap-bw\" target=\"_blank\" aria-label=\"BW\/4HANA \u2013 nowa hurtownia danych SAP \u0142\u0105czy ewolucj\u0119 z rewolucj\u0105 (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">BW\/4HANA \u2013 nowa hurtownia danych SAP \u0142\u0105czy ewolucj\u0119 z rewolucj\u0105<\/a> oraz <a aria-label=\" (opens in a new tab)\" href=\"https:\/\/sii.pl\/blog\/bw-4hana-ciag-dalszy-rewolucji\/?category=development-na-miekko&amp;tag=bw-4hana,hana,sap-bw\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">BW\/4HANA \u2013 ci\u0105g dalszy (r)ewolucji<\/a>.<\/p>\n\n\n\n<p>W ten spos\u00f3b b\u0119dzie Ci \u0142atwiej zinterpretowa\u0107 poni\u017cszy artyku\u0142, skupiaj\u0105cy si\u0119 na tym:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>czym jest aDSO,<\/li><li>jakie s\u0105 mo\u017cliwe scenariusze,<\/li><li>z jakich tabel nast\u0119puje ekstrakcja danych oraz raportowanie.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zacznijmy od podstaw \u2013 czym jest aDSO?<\/strong><\/h2>\n\n\n\n<p>Advanced DataStore Object (aDSO) jest centralnym obiektem, kt\u00f3ry fizycznie przechowuje dane transakcyjne w systemie BW. Mo\u017ce sk\u0142ada\u0107 si\u0119 z InfoObiekt\u00f3w lub p\u00f3l. Je\u017celi chcemy szybko stworzy\u0107 model danych, to istnieje mo\u017cliwo\u015b\u0107 wykorzystania p\u00f3l. Natomiast je\u017celi chcieliby\u015bmy skorzysta\u0107 z w\u0142a\u015bciwo\u015bci InfoObiekt\u00f3w (atrybut\u00f3w, tekst\u00f3w, hierarchii, wska\u017anik\u00f3w, danych zale\u017cnych od czasu), wtedy warto wybra\u0107 w\u0142a\u015bnie InfoObiekty.<\/p>\n\n\n\n<p>W BW4\/HANA, w por\u00f3wnaniu do klasycznego BW, aDSO zast\u0119puje 4 obiekty. S\u0105 to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>InfoCube,<\/li><li>DataStore Object,<\/li><li>Hybrid Provider,<\/li><li>PSA Table.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tabele w aDSO<\/strong><\/h2>\n\n\n\n<p>Advanced DSO sk\u0142ada si\u0119 z 3 g\u0142\u00f3wnych tabel, kt\u00f3re zostaj\u0105 wygenerowane podczas tworzenia i aktywacji aDSO. S\u0105 one wykorzystywane zale\u017cnie od wybranego szablonu.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz1.png\"><img decoding=\"async\" width=\"440\" height=\"301\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz1.png\" alt=\"Rodzaje tabel w aDSO\" class=\"wp-image-19495\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz1.png 440w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz1-300x205.png 300w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/a><figcaption>Ryc. 1 <a href=\"https:\/\/www.saplearningacademy.com\/2020\/10\/data-provisioning-methods-in-sap-hana.html\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Rodzaje tabel w aDSO<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>Inbound table \u2013 na pocz\u0105tku dane s\u0105 \u0142adowane do tej tabeli.<ul><li>Nazwa techniczna: \/BIC\/ A&lt;ADSO technical name&gt;1.<\/li><li>Struktura: Request ID (REQUSN), Data Package (DATAPAKID), Record number (RECORD), Record mode (RECORDMODE), Key Field 1, Key Field n, Field 1, Field n&#8230;<\/li><\/ul><\/li><li>Active table \u2013 do tej tabeli trafiaj\u0105 dane po aktywacji. Modeler musi ustali\u0107 klucz, po kt\u00f3rym dane b\u0119d\u0105 si\u0119 aktywowa\u0142y, co oznacza, \u017ce je\u015bli b\u0119dzie wi\u0119cej ni\u017c jeden rekord z tym samym kluczem, to duplikaty zostan\u0105 usuni\u0119te lub nadpisane.<ul><li>Nazwa techniczna: \/BIC\/ A&lt;ADSO technical name&gt;2.<\/li><li>Struktura: Key Field 1, Key Field n, Record mode (RECORDMODE), Field 1, Field n&#8230;<\/li><\/ul><\/li><li>Change log \u2013 w tej tabeli przechowywane s\u0105 wszelkie zmiany zachodz\u0105ce podczas aktywacji \u2013 znajduje si\u0119 tutaj ca\u0142a historia zmian. Tabela jest pomocna np. przy sprawdzeniu, jak dane zmieni\u0105 si\u0119 podczas \u0142adowania i aktywacji.<ul><li>Nazwa techniczna: \/BIC\/ A&lt;ADSO technical name&gt;3.<\/li><li>Struktura: Request ID (REQUSN), Data Package (DATAPAKID), Record number (RECORD), Record mode (RECORDMODE), Key Field 1, Key Field n, Field 1, Field n&#8230;<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>W zwi\u0105zku z tym, \u017ce aDSO zast\u0119puje w BW4\/HANA cztery inne obiekty (w por\u00f3wnaniu do klasycznego podej\u015bcia BW), podczas tworzenia mamy do wyboru kilka r\u00f3\u017cnych szablon\u00f3w. Wybieramy je w zale\u017cno\u015bci od naszych potrzeb i warstwy architektury LSA++, w kt\u00f3rej maj\u0105 znale\u017a\u0107 si\u0119 dane.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"864\" height=\"408\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz2.png\" alt=\"\" class=\"wp-image-19497\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz2.png 864w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz2-300x142.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Obraz2-768x363.png 768w\" sizes=\"(max-width: 864px) 100vw, 864px\" \/><figcaption>Ryc. 2 <a href=\"http:\/\/saphelp.ucc.ovgu.de\/NW750\/EN\/4a\/124597ca771b41e10000000a42189c\/content.htm\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Warstwy architektury LSA++<\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Data Acquisition Layer (uwzgl\u0119dniaj\u0105c Corporate Memory)<\/strong><\/h2>\n\n\n\n<p>Jak widzimy na poni\u017cszej grafice, requesty b\u0119d\u0105 \u0142adowane do Inbound Table, podobnie jak ekstrakcja danych. W tym wypadku dane nie s\u0105 agregowane, w zwi\u0105zku z czym ten typ aDSO <strong>nie nadaje si\u0119 do bezpo\u015bredniego raportowania<\/strong>. Warto zauwa\u017cy\u0107, \u017ce mapowania powinny odbywa\u0107 si\u0119 1:1 \u2013 tak jak przychodz\u0105 z DataSource, bez \u017cadnych transformacji. Kluczem technicznym jest Request number, Datapackage and Record.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/3.png\"><img decoding=\"async\" width=\"878\" height=\"602\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/3.png\" alt=\"Data Acquisition Layer\" class=\"wp-image-19499\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/3.png 878w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/3-300x206.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/3-768x527.png 768w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/><\/a><figcaption>Ryc. 3 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Data Acquisition Layer<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Corporate memory \u2013 compression capabilities<\/strong><\/h2>\n\n\n\n<p>W tym wypadku dane b\u0119d\u0105 \u0142adowane do Inbound Table. Requesty o wysokim poziomie szczeg\u00f3\u0142owo\u015bci mog\u0105 zosta\u0107 skompresowane, a aktywacja nast\u0105pi po kluczu do Active Table. Requesty z Inbound Table s\u0105 usuwane. Raportowanie dokonuje si\u0119 na poziomie Active Table. Ekstrakcja do wy\u017cszych warstw odbywa si\u0119 z Active Table (full, initial) i Inbound Table (full, initial, delta).&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/4.png\"><img decoding=\"async\" width=\"854\" height=\"548\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/4.png\" alt=\"Corporate memory \u2013 compression capabilities\" class=\"wp-image-19501\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/4.png 854w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/4-300x193.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/4-768x493.png 768w\" sizes=\"(max-width: 854px) 100vw, 854px\" \/><\/a><figcaption>Ryc. 4 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Corporate memory \u2013 compression capabilities<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Corporate memory \u2013 reporting capabilities<\/strong><\/h2>\n\n\n\n<p>W tym wypadku dane po aktywacji nie s\u0105 usuwane z Inbound Table. Aktywacja nast\u0119puje na podstawie zdefiniowanego klucza. Raportowanie odbywa si\u0119 na poziomie Active Table, natomiast sama ekstrakcja na poziomie Inbound Table.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/5.png\"><img decoding=\"async\" width=\"882\" height=\"558\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/5.png\" alt=\"Corporate memory \u2013 reporting capabilities\" class=\"wp-image-19503\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/5.png 882w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/5-300x190.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/5-768x486.png 768w\" sizes=\"(max-width: 882px) 100vw, 882px\" \/><\/a><figcaption>Ryc. 5 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Corporate memory \u2013 reporting capabilities<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Propagation Layer<\/strong><\/h2>\n\n\n\n<p>W tej warstwie mamy standardowe DSO. Dane s\u0105 \u0142adowane do Inbound Table. Po aktywacji l\u0105duj\u0105 zar\u00f3wno w Active Table, jak i w Change Logu. Ekstrakcja nast\u0119puje z Active Table (full, initial) i Change loga (delta). W tym typie aDSO mo\u017cliwe jest usuwanie request\u00f3w nawet po aktywacji danych. Sp\u00f3jno\u015bci danych pilnuje Change Log.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/6.png\"><img decoding=\"async\" width=\"867\" height=\"618\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/6.png\" alt=\"Propagation Layer\" class=\"wp-image-19505\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/6.png 867w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/6-300x214.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/6-768x547.png 768w\" sizes=\"(max-width: 867px) 100vw, 867px\" \/><\/a><figcaption>Ryc. 6 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Propagation Layer<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Reporting Layer<\/strong><\/h2>\n\n\n\n<p>Dane zostaj\u0105 za\u0142adowane do Inbound Table. Wszystkie pola s\u0105 kluczem, w zwi\u0105zku z czym inna warto\u015b\u0107 na dowolnym polu spowoduje dodanie rekordu do Active Table podczas aktywacji. Raportowanie odbywa si\u0119 na podstawie Uniona z Active i Inbound Table. Ekstrakcja nast\u0119puje z Active Table (full) i Inbound Table (full, delta).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/7.png\"><img decoding=\"async\" width=\"790\" height=\"498\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/7.png\" alt=\"Reporting Layer\" class=\"wp-image-19507\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/7.png 790w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/7-300x189.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/7-768x484.png 768w\" sizes=\"(max-width: 790px) 100vw, 790px\" \/><\/a><figcaption>Ryc. 7 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Reporting Layer<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Planning (BW 7.5 only)<\/strong><\/h2>\n\n\n\n<p>Jest to jedyne aDSO, do kt\u00f3rego dane s\u0105 od razu \u0142adowane do Active Table przez DTP-y lub API. Raportowanie i ekstrakcja odbywaj\u0105 si\u0119 na poziomie Active Table.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/8.png\"><img decoding=\"async\" width=\"841\" height=\"562\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/8.png\" alt=\"Planning on Cube-like\" class=\"wp-image-19509\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/8.png 841w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/8-300x200.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/8-768x513.png 768w\" sizes=\"(max-width: 841px) 100vw, 841px\" \/><\/a><figcaption>Ryc. 8 <a href=\"https:\/\/www.scribd.com\/document\/439617977\/ADSO-Scenario-in-SAP-BW-HANA\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Planning on Cube-like<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cechy aDSO<\/strong><\/h2>\n\n\n\n<p>Na koniec chcia\u0142bym przedstawi\u0107 kilka kilka kluczowych cech aDSO:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Advanced DSO jest obiektem, kt\u00f3ry fizycznie przechowuje dane transakcyjne.<\/li><li>Mo\u017ce by\u0107 modelowane za pomoc\u0105 p\u00f3l, infoobiekt\u00f3w, a tak\u017ce w spos\u00f3b mieszany.<\/li><li>aDSO jest modelowane w Eclipse-based SAP BW Modelling Tools.<\/li><li>Mo\u017ce zawiera\u0107 maksymalnie 120 p\u00f3l kluczowych (zar\u00f3wno p\u00f3l jak i infoobiekt\u00f3w).<\/li><li>aDSO jest fizyczn\u0105 warstw\u0105 dla Open ODS View.<\/li><li>Wspiera partycjonowanie oraz indeksy tam, gdzie wyst\u0119puj\u0105 problemy z wydajno\u015bci\u0105.<\/li><li>Umo\u017cliwia wygenerowanie SAP HANA View.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>aDSO w systemie BW4\/HANA przej\u0119\u0142o funkcjonalno\u015b\u0107 4 innych, r\u00f3\u017cni\u0105cych si\u0119 od siebie obiekt\u00f3w, zaczynaj\u0105c od prostej tabeli i ko\u0144cz\u0105c na schemacie gwiazdy. Owszem \u2013 mo\u017cna zbudowa\u0107 model ca\u0142kowicie wirtualny, ale bardzo cz\u0119sto potrzeby raportowe wymuszaj\u0105 materializacj\u0119 danych w\u0142a\u015bnie w takich obiektach jak aDSO, zw\u0142aszcza gdy mamy do czynienia z du\u017c\u0105 liczb\u0105 danych transakcyjnych.<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli chcesz dowiedzie\u0107 si\u0119 wi\u0119cej o SAP-ie, polecamy inne artyku\u0142y naszych ekspert\u00f3w np.:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"http:\/\/Route train w SAP EWM, Custom code migration to S4HANA \u2013 consolidated information about ABAP\u2019er role, Programista SAP \u2013 jak zacz\u0105\u0107 karier\u0119 Developera?, Metody oraz najlepsze praktyki integracji SAP z systemami zewn\u0119trznymi.\" target=\"_blank\" aria-label=\"Route train w SAP EWM, (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Route train w SAP EWM,<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/en\/custom-code-migration-to-s4hana-consolidated-information-about-abaper-role\/?category=hard-development&amp;tag=sap-en\" target=\"_blank\" aria-label=\"Custom code migration to S4HANA \u2013 consolidated information about ABAP\u2019er role, (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Custom code migration to S4HANA \u2013 consolidated information about ABAP\u2019er role,<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/programista-sap-jak-zaczac-kariere-developera\/?category=development-na-miekko&amp;tag=abap-developer,sap,sap-abap,sciezki-karier\" target=\"_blank\" aria-label=\"Programista SAP \u2013 jak zacz\u0105\u0107 karier\u0119 Developera?, (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Programista SAP \u2013 jak zacz\u0105\u0107 karier\u0119 Developera?,<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/metody-oraz-najlepsze-praktyki-integracji-sap-z-systemami-zewnetrznymi\/?category=development-na-miekko&amp;tag=rest-api,sap\" target=\"_blank\" aria-label=\"Metody oraz najlepsze praktyki integracji SAP z systemami zewn\u0119trznymi. (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Metody oraz najlepsze praktyki integracji SAP z systemami zewn\u0119trznymi.<\/a><\/li><\/ul>\n\n\n\n<p><br><\/p>\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;19494&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;6&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&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;5\\\/5 ( votes: 6)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Advanced DataStore Object \u2013 jeden obiekt, wiele mo\u017cliwo\u015bci&quot;,&quot;width&quot;:&quot;139.5&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: 139.5px;\">\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            5\/5 ( votes: 6)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Drogi czytelniku, je\u017celi nie mia\u0142e\u015b wcze\u015bniej do czynienia z SAP-ow\u0105 hurtowni\u0105 danych BW4\/HANA, to przed przeczytaniem tego artyku\u0142u zapoznaj si\u0119 &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/advanced-datastore-object-jeden-obiekt-wiele-mozliwosci\/\">Continued<\/a><\/p>\n","protected":false},"author":475,"featured_media":19514,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[1624,548,603],"class_list":["post-19494","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-adco","tag-sap","tag-bw-4hana"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/02\/Advanced-DataStore-Object-\u2013-jeden-obiekt-wiele-mozliwosci.jpg","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/19494"}],"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\/475"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=19494"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/19494\/revisions"}],"predecessor-version":[{"id":19893,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/19494\/revisions\/19893"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/19514"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=19494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=19494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=19494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}