{"id":8878,"date":"2020-02-06T09:12:22","date_gmt":"2020-02-06T08:12:22","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=8878"},"modified":"2023-10-10T10:44:35","modified_gmt":"2023-10-10T08:44:35","slug":"ui-flows","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/ui-flows\/","title":{"rendered":"UI Flows"},"content":{"rendered":"\n<p>Niedawno Microsoft postanowi\u0142 wprowadzi\u0107 bardziej sp\u00f3jn\u0105 polityk\u0119 dotycz\u0105c\u0105 swoich produkt\u00f3w z zakresu automatyzacji i wizualizacji danych \u2013 czyli Power Platform. Efektem tego jest zmiana nazwy MS Flow na MS Power Automate. W tym samym czasie Power Platform zosta\u0142a poszerzona o nowe produkty. Szerokim echem odbi\u0142 si\u0119 start Power Virtual Agents, kt\u00f3ry umo\u017cliwia \u0142atwe tworzenie chatbot\u00f3w. Mniej uwagi skupi\u0142a na sobie nowa funkcjonalno\u015b\u0107 Power Automate, a mianowicie UI Flows.<\/p>\n\n\n\n<p>O ile standardowe flowy dzia\u0142aj\u0105, \u0142\u0105cz\u0105c si\u0119 za pomoc\u0105 connector\u00f3w z API danej aplikacji, o tyle UI Flows to produkt z dziedziny RPA (Robotic Process Automation) \u2013 wykorzystuje interfejs u\u017cytkownika. Przydaje si\u0119 zatem wtedy, gdy dane API nie przewiduje jakich\u015b akcji lub aplikacja w og\u00f3le API nie udost\u0119pnia.<\/p>\n\n\n\n<p>Aby zacz\u0105\u0107 dzia\u0142a\u0107, musimy zainstalowa\u0107 wymagane oprogramowanie. Je\u015bli chcemy uzyska\u0107 flow desktopowy, potrzebujemy aplikacji UI Flows oraz rozszerzenia do przegl\u0105darki (Microsoft Flow). Je\u015bli to flow w przegl\u0105darce, dodatkowo potrzebujemy rozszerzenie Selenium IDE. Nast\u0119pnie wybieramy typ flowu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz1.png\"><img decoding=\"async\" width=\"945\" height=\"481\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz1.png\" alt=\"Desktop lub Web app\" class=\"wp-image-8879\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz1.png 945w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz1-300x153.png 300w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>Po wybraniu jednej z dw\u00f3ch opcji, nadajemy naszemu procesowi nazw\u0119 i przechodzimy do dalszej konfiguracji. Dodajemy dynamiczne parametry, kt\u00f3re b\u0119d\u0105 wykorzystywane w naszym procesie. Podajemy nazw\u0119, przyk\u0142adow\u0105 warto\u015b\u0107 i opis naszego parametru.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz2.png\"><img decoding=\"async\" width=\"945\" height=\"271\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz2.png\" alt=\"\" class=\"wp-image-8880\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz2.png 945w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz2-300x86.png 300w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>Po zatwierdzeniu parametr\u00f3w, uka\u017ce nam si\u0119 widok klock\u00f3w, znany ze standardowych flow\u00f3w. Dost\u0119pna jest jednak tylko jedna akcja \u2013 nagrywanie naszych ruch\u00f3w myszk\u0105 i przycisk\u00f3w klawiatury.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz3.png\"><img decoding=\"async\" width=\"770\" height=\"803\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz3.png\" alt=\"Przycisk Launch recorder\" class=\"wp-image-8881\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz3.png 770w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz3-288x300.png 288w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/a><\/figure>\n\n\n\n<p>Gdy uruchomimy narz\u0119dzie nagrywania, u g\u00f3ry ekranu pojawi si\u0119 nowe okno z mo\u017cliwo\u015bci\u0105 rozpocz\u0119cia nagrywania.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz4.png\"><img decoding=\"async\" width=\"489\" height=\"131\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz4.png\" alt=\"Rejestruj\" class=\"wp-image-8882\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz4.png 489w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz4-300x80.png 300w\" sizes=\"(max-width: 489px) 100vw, 489px\" \/><\/a><\/figure>\n\n\n\n<p>Od tego momentu, ka\u017cde klikni\u0119cie i wpisanie tekstu zostanie zarejestrowane i przetworzone na akcje.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz5.png\"><img decoding=\"async\" width=\"801\" height=\"916\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz5.png\" alt=\"\" class=\"wp-image-8883\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz5.png 801w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz5-262x300.png 262w\" sizes=\"(max-width: 801px) 100vw, 801px\" \/><\/a><\/figure>\n\n\n\n<p>Oczywi\u015bcie wykonywanie dok\u0142adnie tych samych czynno\u015bci przez UI Flow mocno zmniejszy\u0142oby sens tego narz\u0119dzia \u2013 dlatego w\u0142a\u015bnie tworzyli\u015bmy parametry do danych wej\u015bciowych. Mo\u017cemy wi\u0119c zmienia\u0107 warto\u015b\u0107 tego parametru, \u017ceby uzyska\u0107 proces, kt\u00f3ry wykona wskazane dzia\u0142ania na wi\u0119kszej liczbie np. plik\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz6.png\"><img decoding=\"async\" width=\"749\" height=\"363\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz6.png\" alt=\"\" class=\"wp-image-8884\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz6.png 749w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz6-300x145.png 300w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/a><\/figure>\n\n\n\n<p>W tym przypadku na nagraniu otworzy\u0142em plik z rozszerzeniem .doc, a nast\u0119pnie zapisa\u0142em go jako .pdf. Ka\u017cda akcja zapisana jest jako screenshot klikanego\/wpisywanego miejsca, a tak\u017ce kod JSON.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz7.png\"><img decoding=\"async\" width=\"945\" height=\"923\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz7.png\" alt=\"\" class=\"wp-image-8885\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz7.png 945w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz7-300x293.png 300w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>Dodatkowo mo\u017cemy zapisywa\u0107 dane wyj\u015bciowe. Po wykonaniu wskazanych akcji, w utworzonym przez nas parametrze zapisana zostanie warto\u015b\u0107 ze wskazanego przez nas miejsca, np. zawarto\u015bci pliku .doc.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz8.png\"><img decoding=\"async\" width=\"945\" height=\"702\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz8.png\" alt=\"\" class=\"wp-image-8886\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz8.png 945w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz8-300x223.png 300w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n\n\n\n<p>UI Flow nie mo\u017ce by\u0107 uruchamiany jako osobna instancja, dost\u0119pna jest w tej zak\u0142adce jedynie opcja testowego uruchomienia. Je\u015bli chcemy wykorzystywa\u0107 UI Flow na sta\u0142e, musimy go doda\u0107 jako akcja w ramach naszego standardowego flowu \u2013 aby to zrobi\u0107, musimy mie\u0107 zainstalowany Gateway.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz9.png\"><img decoding=\"async\" width=\"765\" height=\"301\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz9.png\" alt=\"\" class=\"wp-image-8887\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz9.png 765w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/Obraz9-300x118.png 300w\" sizes=\"(max-width: 765px) 100vw, 765px\" \/><\/a><\/figure>\n\n\n\n<p>Jako pola do uzupe\u0142nienia wy\u015bwietlane s\u0105 przygotowane wcze\u015bniej parametry. Zamiast statycznie wpisanych warto\u015bci mo\u017cemy przekaza\u0107 dynamiczne warto\u015bci, dzi\u0119ki czemu nasz UI Flow b\u0119dzie znacznie bardziej przydatny.<\/p>\n\n\n\n<p>UI Flow to wci\u0105\u017c nowe narz\u0119dzie, dost\u0119pne w opcji preview. Ma jeszcze sporo mankament\u00f3w, o kt\u00f3rych Microsoft m\u00f3wi wprost \u2013 nie obs\u0142uguje prawego przycisku myszy, double-clicku czy aplikacji Office sprzed wersji 2016. Jednak je\u015bli mamy software bez API, z kt\u00f3rego korzystamy w powtarzalny spos\u00f3b, to na pewno ciekawe rozwi\u0105zanie i warto obserwowa\u0107 dalszy rozw\u00f3j UI Flow.<\/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;8878&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;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: 5)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;UI Flows&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: 5)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Niedawno Microsoft postanowi\u0142 wprowadzi\u0107 bardziej sp\u00f3jn\u0105 polityk\u0119 dotycz\u0105c\u0105 swoich produkt\u00f3w z zakresu automatyzacji i wizualizacji danych \u2013 czyli Power Platform. &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/ui-flows\/\">Continued<\/a><\/p>\n","protected":false},"author":134,"featured_media":8915,"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":[887,888],"class_list":["post-8878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-flow","tag-power-automate"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/02\/ui-flows.jpg","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8878"}],"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\/134"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=8878"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8878\/revisions"}],"predecessor-version":[{"id":24961,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8878\/revisions\/24961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/8915"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=8878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=8878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=8878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}