{"id":14731,"date":"2022-06-08T15:12:00","date_gmt":"2022-06-08T13:12:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=14731"},"modified":"2025-02-21T15:01:22","modified_gmt":"2025-02-21T14:01:22","slug":"alm-automatyzacja-zadan-administracyjnych-w-dynamics-365-fo-wprowadzenie","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/alm-automatyzacja-zadan-administracyjnych-w-dynamics-365-fo-wprowadzenie\/","title":{"rendered":"ALM \u2013 automatyzacja zada\u0144 administracyjnych w Dynamics 365 F&#038;O. Wprowadzenie"},"content":{"rendered":"\n<p>Podczas wdra\u017cania systemu klasy ERP <a href=\"https:\/\/sii.pl\/oferta\/enterprise-platforms\/microsoft\/dynamics-365\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Microsoft Dynamics 365<\/a> F&amp;O czeka nas wiele wyzwa\u0144. Jednym z nich jest konieczno\u015b\u0107 dostosowania si\u0119 do nowego podej\u015bcia w temacie zada\u0144 administracyjnych zwi\u0105zanych z Zarz\u0105dzaniem Cyklem \u017bycia Aplikacji (ALM \u2013 Application Lifecycle Management).<\/p>\n\n\n\n<p> Wiele zmieni\u0142o si\u0119, wzgl\u0119dem poprzednich wersji systemu, w kwestii koniecznych do wykonania zada\u0144 administracyjnych. Przyk\u0142adem zmiany metodyki w najnowszej wersji popularnego AX-a jest chocia\u017cby inny spos\u00f3b przenoszenia kodu mi\u0119dzy \u015brodowiskami. Ma to bezpo\u015bredni wp\u0142yw na zwi\u0119kszenie nak\u0142ad\u00f3w pracy wymaganej na zadania administracyjne.<\/p>\n\n\n\n<p>W serii trzech artyku\u0142\u00f3w przedstawi\u0119 najwa\u017cniejsze zagadnienia techniczne zwi\u0105zane z automatyzacj\u0105 w Dynamics 365 F&amp;O. Licz\u0119 jednak, \u017ce \u201eAX-owi wyjadacze\u201d zainspiruj\u0105 si\u0119 do poszukania alternatywnego, bardziej optymalnego sposobu konfiguracji automatyzacji.<\/p>\n\n\n\n<p>W pierwszym artykule z serii znajdziecie opis <strong>podstawowych komponent\u00f3w automatyzacji oraz zapoznacie si\u0119 ich rol\u0105 i spos\u00f3bem dzia\u0142ania w ramach systemu Dynamics 365 F&amp;O.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automatyzacja zada\u0144<\/h2>\n\n\n\n<p>W systemie Dynamics 365 F&amp;O wiele zada\u0144 administracyjnych zosta\u0142o niejako wymuszonych na pracownikach IT. Oczywi\u015bcie, poprzednie wersje systemu tak\u017ce wymaga\u0142y odpowiedniej obs\u0142ugi. Jednak by\u0142a tam relatywnie wi\u0119ksza swoboda w kwestii metody realizacji tych zada\u0144.<\/p>\n\n\n\n<p>Osobi\u015bcie odbieram t\u0119 zmian\u0119 i wymuszenie dobrych praktyk w systemie Dynamics 365 F&amp;O bardzo pozytywnie. <strong>Nowe metodyki daj\u0105 wi\u0119ksze poczucie komfortu i stabilno\u015bci przy obs\u0142udze systemu<\/strong>. Przep\u0142yw pracy nad zadaniami (typu przenoszenie kodu mi\u0119dzy \u015brodowiskami czy backup bazy danych) zdecydowanie obliguje administratora do zastosowania dobrych praktyk podczas ich realizacji.<\/p>\n\n\n\n<p>W celu wyja\u015bnienia potrzeby automatyzacji najpierw om\u00f3wi\u0119 z czym musi mierzy\u0107 si\u0119 administrator systemu Dynamics 365 F&amp;O. Poni\u017csze diagramy obrazuj\u0105 dwa scenariusze, kt\u00f3rych dos\u0142ownie nie da si\u0119 unikn\u0105\u0107 podczas wdra\u017cania i potem utrzymania Dynamics 365 F&amp;O.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Przenoszenie kodu mi\u0119dzy \u015brodowiskami<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full wp-image-13938\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO2.png\"><img decoding=\"async\" width=\"642\" height=\"312\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO2.png\" alt=\"Przep\u0142yw pracy przy przenoszeniu kodu mi\u0119dzy \u015brodowiskami\" class=\"wp-image-13938\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO2.png 642w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO2-300x146.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Przep\u0142yw pracy przy przenoszeniu kodu mi\u0119dzy \u015brodowiskami<\/figcaption><\/figure>\n\n\n\n<p>Przep\u0142yw pracy z kodem wygl\u0105da nast\u0119puj\u0105co:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Programista tworzy kod \u017ar\u00f3d\u0142owy na maszynie developerskiej.<\/li>\n\n\n\n<li>Kod \u017ar\u00f3d\u0142owy jest wrzucany do repozytorium kodu (w tym przypadku repozytorium w Azure DevOps).<\/li>\n\n\n\n<li>Na maszynie buildowej kod jest kompilowany i tworzone s\u0105 pliki wynikowe (pliki .dll).<\/li>\n\n\n\n<li>Kod wynikowy jest przenoszony z maszyny buildowej na \u015brodowisko Tier 2+.<\/li>\n\n\n\n<li>Ze \u015brodowiska Tier 2+ kod wynikowy jest transferowany na \u015brodowisko produkcyjne.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Przygotowanie backupu bazy danych<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full wp-image-13939\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO1.png\"><img decoding=\"async\" width=\"494\" height=\"312\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO1.png\" alt=\"Przep\u0142yw pracy podczas przygotowania backupu bazy danych\" class=\"wp-image-13939\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO1.png 494w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/PRZENO1-300x189.png 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Przep\u0142yw pracy podczas przygotowania backupu bazy danych<\/figcaption><\/figure>\n\n\n\n<p>Przep\u0142yw pracy podczas przygotowania backupu bazy danych wygl\u0105da nast\u0119puj\u0105co:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Uruchamiane jest tworzenie kopii bazy danych ze \u015brodowiska produkcyjnego na \u015brodowisko Tier 2+.<\/li>\n\n\n\n<li>Z poziomu \u015brodowiska Tier 2+ backup bazy danych jest transferowany do LCS Asset Library w formie pliku .bacpac.<\/li>\n\n\n\n<li>Ostatni krok to pobranie pliku bazy danych z Asset Library i przygotowanie go do u\u017cycia na maszynach deweloperskich. Podczas tej operacji baza danych zostanie przekonwertowana z formatu .bacpac na .bak.<br>Do tej operacji mo\u017cna wykorzysta\u0107 skrypt PowerShell popularnej biblioteki wytworzonej pod Dynamics 365 F&amp;O o nazwie \u201ed365fo.tools\u201d, a w niej funkcj\u0119, \u201eImport-D365Bacpac\u201d.<\/li>\n<\/ol>\n\n\n\n<p><strong>Bez automatyzacji wszystkie powy\u017csze zadania musz\u0105 by\u0107 inicjowane i nadzorowane przez administratora manualnie<\/strong>. Najcz\u0119\u015bciej w porze znaczniej odbiegaj\u0105cej od standardowych godzin pracy biznesowej.<\/p>\n\n\n\n<p>Na szcz\u0119\u015bcie <strong>dynamiczny rozw\u00f3j system\u00f3w z rodziny Microsoft Dynamics 365<\/strong>, a przede wszystkim osadzenie infrastruktury najnowszego AX-a w chmurze Azure, <strong>otwiera wiele nowych i ciekawych mo\u017cliwo\u015bci<\/strong>. Korzystaj\u0105c z dobrodziejstw us\u0142ug chmurowych, jeste\u015bmy w stanie zautomatyzowa\u0107 wiele czasoch\u0142onnych prac.<\/p>\n\n\n\n<p>Zadania, kt\u00f3re naj\u0142atwiej jest prze\u0142\u0105czy\u0107 w tryb automatyzacji to w\u0142a\u015bnie te, dotycz\u0105ce prac stricte administracyjnych.<\/p>\n\n\n\n<p>Do\u015bwiadczenie naszego Centrum Kompetencyjnego pokazuje, \u017ce wdro\u017cenie automatyzacji w procesach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>buildowania,<\/li>\n\n\n\n<li>releasowania,<\/li>\n\n\n\n<li>backupowania bazy danych,<\/li>\n<\/ul>\n\n\n\n<p>przynosi wymierne korzy\u015bci w sferze:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>koszt\u00f3w,<\/li>\n\n\n\n<li>zaoszcz\u0119dzonego czasu,<\/li>\n\n\n\n<li>i \u2013 co nie mniej wa\u017cne \u2013 zaoszcz\u0119dzonych nerw\u00f3w \ud83d\ude42<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Komponenty automatyzacji<\/h2>\n\n\n\n<p>W systemie automatyzacji dla najnowszego AX-a warto pozna\u0107 nast\u0119puj\u0105ce cztery g\u0142\u00f3wne elementy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u015arodowisko wykonawcze<\/h3>\n\n\n\n<p>Jest to wirtualna maszyna, w obr\u0119bie kt\u00f3rej realizowane s\u0105 faktyczne prace dotycz\u0105ce automatyzacji. W przypadku D365 F&amp;O jest to najcz\u0119\u015bciej maszyna w warstwie Tier 1, czyli maszyna developerska lub buildowa. Alternatyw\u0105 jest \u015brodowisko wykonawcze hostowane w chmurze Azure, wykorzystuj\u0105ce Microsoft Hosted Agenta. Istotn\u0105 cech\u0105 tego \u015brodowiska wykonawczego jest mniejsze przystosowanie do Dynamics 365 F&amp;O. Na takim \u015brodowisku brak wielu komponent\u00f3w \u201eklasycznego\u201d \u015brodowiska programistycznego, np. SQL Serwera, przez co nie da si\u0119 wykona\u0107 synchronizacji bazy danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Azure Pipeline<\/h3>\n\n\n\n<p>Ograniczaj\u0105c definicj\u0119 jedynie do kontekstu automatyzacji w D365 F&amp;O, jest to us\u0142uga Azure DevOps, w kt\u00f3rej okre\u015blamy zadania w procesie automatyzacji. Tutaj wybierzemy i sparametryzujemy dok\u0142adne kroki, kt\u00f3re z wykorzystaniem Agenta i skrypt\u00f3w wykonawczych zostan\u0105 wykonane na wybranym \u015brodowisku.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Azure Pipeline Agent<\/h3>\n\n\n\n<p>Jest to program, dzia\u0142aj\u0105cy jako us\u0142uga uruchomiona w ramach \u015brodowiska wykonawczego. Dla D365 F&amp;O preinstalowany na dysku developerskiej lub buildowej maszyny wirtualnej. W razie potrzeby mo\u017cna te\u017c go doinstalowa\u0107. Mo\u017ce r\u00f3wnie\u017c wyst\u0119powa\u0107 w formie specyficznego typu Azure Pipeline Agenta, osadzonego w ramach \u015brodowiska wykonawczego chmury Azure dostarczanego przez Microsoft, dedykowanego pod szybkie buildy.<\/p>\n\n\n\n<p>Odpowiada za pobranie kroku z definicji Pipeline\u2019a w Azure Pipeline i zlecenie wykonania go na \u015brodowisku wykonawczym. Do wykonania poszczeg\u00f3lnych krok\u00f3w Agent korzysta ze skrypt\u00f3w wykonawczych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Skrypty wykonawcze<\/h3>\n\n\n\n<p>Do wykonania poszczeg\u00f3lnych krok\u00f3w Pipeline\u2019a Agent potrzebuje instrukcji. Takimi instrukcjami s\u0105 dla niego skrypty wykonawcze. Pliki te przechowuj\u0105 kod, z u\u017cyciem kt\u00f3rego realizowany jest krok Pipeline\u2019a. Najcz\u0119\u015bciej skrypty wykonawcze wyst\u0119puj\u0105 w formie plik\u00f3w PowerShell. Cz\u0119sto s\u0105 przechowywane i modyfikowane trwale na \u015brodowisku wykonawczym.<\/p>\n\n\n\n<p>Nale\u017cy doda\u0107, \u017ce nie jest to jedyny spos\u00f3b pracy z tymi skryptami. Zdecydowanie korzystniejszym podej\u015bciem (w znacznej wi\u0119kszo\u015bci przypadk\u00f3w) jest ich przechowywanie w repozytorium kodu. Przy odpowiedniej konfiguracji (swoj\u0105 drog\u0105 banalnie prostej) Agent Pipeline pobierze do realizacji skrypty wykonawcze, a ich aktualna tre\u015b\u0107 b\u0119dzie przetwarzana jedynie w kontek\u015bcie bie\u017c\u0105cego uruchomienia Pipeline\u2019a. Pozwala to na wygodne i elastyczne modyfikowanie plik\u00f3w pomi\u0119dzy poszczeg\u00f3lnymi uruchomieniami Pipeline\u2019a.<\/p>\n\n\n\n<p>Kolejn\u0105 istotn\u0105 cech\u0105 jest fakt, \u017ce skrypty wykonawcze mog\u0105 by\u0107 definiowane w wielu formach. Daje to ogromne mo\u017cliwo\u015bci w kwestii tego, co i w jaki spos\u00f3b mo\u017cna zautomatyzowa\u0107. Ograniczeniem s\u0105 jedynie mo\u017cliwo\u015bci \u015brodowiska wykonawczego, mo\u017cliwo\u015bci wybranego j\u0119zyka skryptowego, chocia\u017c tak naprawd\u0119\u2026 <strong>ograniczeniem jest tylko nasza wyobra\u017ania<\/strong> ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Interakcje mi\u0119dzy komponentami<\/h2>\n\n\n\n<p>Powy\u017csze komponenty wsp\u00f3\u0142pracuj\u0105 ze sob\u0105 w procesie automatyzacji. Poni\u017cszy diagram obrazuje spos\u00f3b interakcji pomi\u0119dzy poszczeg\u00f3lnymi komponentami.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full wp-image-13940\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/RYSUNE1.png\"><img decoding=\"async\" width=\"682\" height=\"362\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/RYSUNE1.png\" alt=\"Diagram przep\u0142ywu komunikacji w Azure pipeline\" class=\"wp-image-13940\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/RYSUNE1.png 682w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/RYSUNE1-300x159.png 300w\" sizes=\"(max-width: 682px) 100vw, 682px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Diagram przep\u0142ywu komunikacji w Azure pipeline<\/figcaption><\/figure>\n\n\n\n<p>W ramach us\u0142ugi Azure Pipeline zdefiniowane s\u0105 poszczeg\u00f3lne kroki Pipeline\u2019a. Na \u015brodowisku wykonawczym, w obr\u0119bie okre\u015blonej puli agent\u00f3w, znajduj\u0105 si\u0119 Agenci Azure Pipeline. Pula Agent\u00f3w Azure Pipeline okre\u015bla z jakich agent\u00f3w i z jakich \u015brodowisk wykonawczych mo\u017ce u\u017cywa\u0107 dany Pipeline. <strong>Pula w umowny spos\u00f3b grupuje Agent\u00f3w i jest zdefiniowana w ramach us\u0142ugi Azure Pipeline.<\/strong><\/p>\n\n\n\n<p>Pojedynczy agent komunikuje si\u0119 z us\u0142ug\u0105 Azure Pipeline i pobiera kolejno pipeline\u2019owe taski. Nast\u0119pnie, pojedynczy task jest wykonywany na \u015brodowisku wykonawczym z u\u017cyciem jego zasob\u00f3w i z wykorzystaniem skrypt\u00f3w wykonawczych, a\u017c do pobrania oraz wykonania ostatniego taska z definicji Azure Pipeline.<\/p>\n\n\n\n<p><strong>Uwaga!<\/strong> Komunikacja w tym systemie jest inicjowana jedynie od strony Agenta Azure Pipeline. Otwiera to ogrom mo\u017cliwo\u015bci w kwestii konfiguracji \u015brodowiska wykonawczego. Moim zdaniem <strong>Microsoft zastosowa\u0142 tutaj wzorzec komunikacji, kt\u00f3ry jest po prostu architektonicznym majstersztykiem<\/strong> ? Jako \u017ce tre\u015b\u0107 tego artyku\u0142u jest tylko wst\u0119pem, to rozwin\u0119 ten temat w kolejnych artyku\u0142ach z serii.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zako\u0144czenie<\/h2>\n\n\n\n<p>Artyku\u0142 przedstawia podstawowe zagadnienia automatyzacji w Azure dla Dynamics 365 F&amp;O. Jego forma jest nieco skondensowana \u2013 pomija niekt\u00f3re mniej znacz\u0105ce, lecz wci\u0105\u017c istotne szczeg\u00f3\u0142y. Wyszed\u0142em z za\u0142o\u017cenia, \u017ce najwa\u017cniejsze jest zrozumienie <strong>wysokopoziomowej logiki<\/strong>. Pozosta\u0142e definicje \u0142atwo znale\u017a\u0107, doczyta\u0107 i zrozumie\u0107 z dost\u0119pnych materia\u0142ach dokumentacji.<\/p>\n\n\n\n<p>Mam jednak nadziej\u0119, \u017ce artyku\u0142 pozwoli poj\u0105\u0107 podstawy automatyzacji systemie D365 F&amp;O, jej ide\u0119 i schemat dzia\u0142ania. Jest to kluczowe do implementacji z pe\u0142nym zrozumieniem.<\/p>\n\n\n\n<p>W nast\u0119pnym artykule opisz\u0119 por\u00f3wnanie metod przechowywania \u015brodowiska wykonawczego.<\/p>\n\n\n\n<p>Zach\u0119cam do podzielenia si\u0119 opini\u0105 na temat tre\u015bci tego artyku\u0142u oraz dalszego \u015bledzenia bloga.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a warto\u015bciowych materia\u0142\u00f3w<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ariste.info\/\" rel=\"nofollow\" >Artiste.info<\/a> \u2013 blog, kt\u00f3rego autorem jest Adri\u00e0 Ariste Santacreu. Bardzo du\u017co materia\u0142u o automatyzacji zada\u0144 administracyjnych w D365 F&amp;O, ale nie tylko. Autor dzieli si\u0119 r\u00f3wnie\u017c wiedz\u0105 i pomys\u0142ami dot. wykorzystania narz\u0119dzi i us\u0142ug oko\u0142o Dynamicsa, kt\u00f3re z nim wsp\u00f3\u0142graj\u0105 i mog\u0105 usprawni\u0107 dzia\u0142anie systemu. Tre\u015bci pisane s\u0105 w formie \u201etutoriali\u201d, dzi\u0119ki temu mo\u017cna uczy\u0107 si\u0119 poprzez praktyk\u0119. Szczerze polecam.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/d365collaborative\/d365fo.tools\/\" rel=\"nofollow\" >Biblioteka PowerShell wspomagaj\u0105ca prac\u0119 z systemem Dynamics 365 F&amp;O<\/a> \u2013 kod biblioteki jest open source, a pomys\u0142 jej stworzenia nale\u017cy do M\u00f6tza Jensena, ale w tej chwili rozwija j\u0105 ju\u017c kilka os\u00f3b. Bardzo przydatne narz\u0119dzie w codziennej pracy z zadaniami administracyjnymi pod Dynamics 365 F&amp;O.<\/li>\n\n\n\n<li><a href=\"https:\/\/msdyn365fo.wordpress.com\/\" rel=\"nofollow\" >MsDyn365FO<\/a> \u2013 blog autorstwa Paula Heisterkampa w tematyce Dynamics 365 F&amp;O. Chocia\u017c tre\u015bci dotycz\u0105cych samej konfiguracji automatyzacji nie ma tam wiele, to autor dzieli si\u0119 naprawd\u0119 ciekawymi pomys\u0142ami na rozwi\u0105zanie pospolitych problem\u00f3w np. automatyzacji odpowiedniego przygotowania \u015brodowiska po przeprowadzeniu backupu bazy danych z PROD. Wiele interesuj\u0105cych i przydatnych tre\u015bci.<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/pipelines\/?view=azure-devops\" rel=\"nofollow\" >Dokumentacja Microsoft dot. automatyzacji z wykorzystaniem Azure Pipelines<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/dev-tools\/hosted-build-automation\/\" rel=\"nofollow\" >&nbsp;Dokumentacja Microsoft dot. automatycznych build\u00f3w wykorzystuj\u0105cych Microsoft Hosted Agent\u00f3w<\/a>.<\/li>\n<\/ul>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuj\u0105 Ci\u0119 inne artyku\u0142y z obszaru <a href=\"https:\/\/sii.pl\/oferta\/enterprise-platforms\/microsoft\/dynamics-365\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Microsoft Dynamics 365<\/a>, zach\u0119camy do lektury: <a href=\"https:\/\/sii.pl\/blog\/integracja-dynamics-365-supply-chain-management-z-przewoznikami\/?category=development-na-twardo&amp;tag=d355-scm-integracja-z-przewoznikami,d365-fo-integracja-z-przewoznikami,dynamics-365,dynamics-365-integracja-z-przewoznikami\">Integracja Dynamics 365 Supply Chain Management z przewo\u017anikami<\/a> oraz<a href=\"https:\/\/sii.pl\/blog\/komponenty-niestandardowe-w-power-apps\/?category=development-na-twardo\"> Komponenty niestandardowe w Power Apps<\/a>.<\/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;14731&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;5&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;3.8&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.8\\\/5 ( votes: 5)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;ALM \u2013 automatyzacja zada\u0144 administracyjnych w Dynamics 365 F\\u0026amp;O. Wprowadzenie&quot;,&quot;width&quot;:&quot;104.7&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: 104.7px;\">\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.8\/5 ( votes: 5)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Podczas wdra\u017cania systemu klasy ERP Microsoft Dynamics 365 F&amp;O czeka nas wiele wyzwa\u0144. Jednym z nich jest konieczno\u015b\u0107 dostosowania si\u0119 &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/alm-automatyzacja-zadan-administracyjnych-w-dynamics-365-fo-wprowadzenie\/\">Continued<\/a><\/p>\n","protected":false},"author":365,"featured_media":19577,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":5,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[576,1098,354,646],"class_list":["post-14731","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-dynamics-365","tag-alm","tag-automatyzacja","tag-dynamics-365-finance-and-operations"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/06\/ALM-\u2013-administrative-tasks-automation-in-Dynamics-365-FO.-Introduction-1.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/14731"}],"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\/365"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=14731"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/14731\/revisions"}],"predecessor-version":[{"id":30504,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/14731\/revisions\/30504"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/19577"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=14731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=14731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=14731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}