min čítania
Podpis na obrazovke v Power Apps
Power Apps je vynikajúci nástroj na vytváranie mobilných aplikácií, v ktorých si zákazník môže prezerať informácie (napríklad objednávku alebo servisný list) na tablete či smartfóne a na záver poskytnúť svoj podpis perom alebo prstom.
Vloženie ovládača vstupu perom (pen input) do aplikácie Power Apps je pomerne jednoduché, ale upraviť možnosti a hlavne odoslať obrázok s podpisom na SharePoint prípadne vygenerovať PDF dokument v Power Automate je už náročnejšie. Poďme si to vysvetliť.
Power Apps aplikácie žeriavy a Eshop
Problematiku podpisovania priamo na stretnutí s klientom alebo pri servisnom zásahu na stavbe, v hale, v dieľni (kdekoľvek) sme riešili aj v našich aplikáciách žeriavy a Eshop. Potom, čo zákazník podpíše objednávku, zmluvu alebo servisný protokol na mobilnom zariadení stylusom alebo prstom, sa podpis odošle precedúrou v Power Automate na SharePoint spolu s ďalšími podrobnosťami (objednaný tovar, množstvo, dátum a podobne).
Prvým krokom pri ukázaní vyplneného formulára klientovi je uloženie do kolekcie Power Apps a uzamknutie formulára, teda nemožnosť zmeniť vypísané údaje. Uzamknutie sa udeje nastavením premennej prmZobrazPodpisy3 na hodnotu true.
ClearCollect( colServisnyProtokol;
{ ID_projektu: BrowseGallery_Projekty.Selected.ID;
ID_zAPP: varID_zAPP_SP;
Firma: If( prmComboBox_Firma3 = true;
Concat( ComboBox_Firma_2.SelectedItems; Firma; "");
BrowseGallery_Projekty.Selected.ZakFirma);
KontakOsoba: If( prmComboBox_Firma3 = true;
Concat( ComboBox_Firma_2.SelectedItems;
KontaktnaOsoba; "");
BrowseGallery_Projekty.Selected.ZakKontaktOsoba);
ID_zakaznika: Value(lblZakID_2.Text);
TypStroje: BrowseGallery_Projekty.Selected.TypZeriava;
RokVyroby: BrowseGallery_Projekty.Selected.RokVyroby;
EvidencCislo: BrowseGallery_Projekty.Selected.VyrobneCislo;
StatusZeriavu: BrowseGallery_Projekty.Selected.status_zeriavu;
HlasenaZavada: TextInput_HlasenaZavada.Text;
ZistenaZavada: TextInput_ZistenaZavada.Text;
NavrhOpravy: TextInput_NavrhOpravy.Text;
ServisnyTechnik: Concat(
ComboBox_ServisnyTechnik.SelectedItems;
Technik; "");
DruhProhlidky: Concat(
ComboBox_DruhProhlidky.SelectedItems;
DruhProhlidky; "");
Foto: Radio5.Selected.volba;
Foto_dovod: TextInput_FotoDovod.Text;
FotoAdresar_zAPP: varFoto_zAPP2;
VMeste: TextInput_VMeste_2.Text;
Datum: DatePicker_Datum_2.SelectedDate;
MenoVeducehoTechnika: Concat(
ComboBox_MenoVeducehoTechnika_2.SelectedItems;
Technik; "");
MenoZodpZastupcuNaStavbe: TextInput_MenoZodpZastupcuNaStavbe_2.Text;
Email_kopia: TextInput_KopiaEmail_2.Text});;
Set( prmZobrazPodpisy3; true)
{ ID_projektu: BrowseGallery_Projekty.Selected.ID;
ID_zAPP: varID_zAPP_SP;
Firma: If( prmComboBox_Firma3 = true;
Concat( ComboBox_Firma_2.SelectedItems; Firma; "");
BrowseGallery_Projekty.Selected.ZakFirma);
KontakOsoba: If( prmComboBox_Firma3 = true;
Concat( ComboBox_Firma_2.SelectedItems;
KontaktnaOsoba; "");
BrowseGallery_Projekty.Selected.ZakKontaktOsoba);
ID_zakaznika: Value(lblZakID_2.Text);
TypStroje: BrowseGallery_Projekty.Selected.TypZeriava;
RokVyroby: BrowseGallery_Projekty.Selected.RokVyroby;
EvidencCislo: BrowseGallery_Projekty.Selected.VyrobneCislo;
StatusZeriavu: BrowseGallery_Projekty.Selected.status_zeriavu;
HlasenaZavada: TextInput_HlasenaZavada.Text;
ZistenaZavada: TextInput_ZistenaZavada.Text;
NavrhOpravy: TextInput_NavrhOpravy.Text;
ServisnyTechnik: Concat(
ComboBox_ServisnyTechnik.SelectedItems;
Technik; "");
DruhProhlidky: Concat(
ComboBox_DruhProhlidky.SelectedItems;
DruhProhlidky; "");
Foto: Radio5.Selected.volba;
Foto_dovod: TextInput_FotoDovod.Text;
FotoAdresar_zAPP: varFoto_zAPP2;
VMeste: TextInput_VMeste_2.Text;
Datum: DatePicker_Datum_2.SelectedDate;
MenoVeducehoTechnika: Concat(
ComboBox_MenoVeducehoTechnika_2.SelectedItems;
Technik; "");
MenoZodpZastupcuNaStavbe: TextInput_MenoZodpZastupcuNaStavbe_2.Text;
Email_kopia: TextInput_KopiaEmail_2.Text});;
Set( prmZobrazPodpisy3; true)
Servisný protokol vypĺňaný na stavbe
Podpísanie servisného protokolu na stavbe
Finálny PDF servisný protokol (ukážka)
Odoslanie dát a podpisov na Sharepoint
Po získaní podpisu od klienta, nastavíme funkciu OnSelect (napríklad pre tlačítko) nasledovne:
// Uložíme data na SharePoint - Servisny Protokol
ForAll(
colServisnyProtokol;
Patch(
tbl_ServisnyProtokol;
Defaults(tbl_ServisnyProtokol);
{ Druh_Prohlidky: DruhProhlidky;
ID_projektu: ID_projektu;
ID_zAPP: ID_zAPP;
Firma: Firma;
KontaktnaOsoba: KontakOsoba;
Adresa: Adresa;
PSČ: PSC;
Mesto: Mesto;
Telefon: Telefon;
Email: Email;
TypStroja: TypStroje;
RokVyroby: RokVyroby;
EvidencneCislo: EvidencCislo;
Status_stroja: StatusZeriavu;
HlasenaZavada: HlasenaZavada;
ZistenaZavada: ZistenaZavada;
NavrhOpravy: NavrhOpravy;
ServisnyTechnik: ServisnyTechnik;
Foto: Foto;
Foto_dovod: Foto_dovod;
FotoAdresar_zAPP: FotoAdresar_zAPP;
VMeste: VMeste;
Datum: Datum;
MenoVeducehoTechnika: MenoVeducehoTechnika;
MenoZodpZastupcuNaStavbe: MenoZodpZastupcuNaStavbe;
Email_kopia: Email_kopia}));;
// Uložíme dáta na SharePoint - ZistenéZávady
ForAll(
colZisteneZavady;
Patch(
tbl_ZisteneZavady;
Defaults(tbl_ZisteneZavady);
{ ID_Zeriavu: ID_Zeriavu;
ID_zAPP: ID_zAPP;
EvidencneCislo: EvidencneCislo;
ZistenaZavada: ZistenaZavada}));;
// Odošleme na SharePoint podpis klienta
Set( varJson;
JSON(
PenInput_ZastupcaNaStavbe_2.Image;
JSONFormat.IncludeBinaryData));;
Set( varJson;
Mid(
varJson;
24;
Len(varJson) - 24));;
PenInputtoSP_v2.Run(
varJson;
BrowseGallery_Projekty.Selected.ID_projektu & "_" & Gallery_colServisnyProtokol.Selected.ID_zAPP.Text & "_ZastupcaNaStavbe_ser.jpg");;
Reset(PenInput_ZastupcaNaStavbe_2);;
Set( varJson; "");;
// Hláška
Notify( "Proces byl spuštěn, počkejte na email..."; NotificationType.Success);;
// Vymažem premenné
Set( varFoto_zAPP; "");;
Set(varID_zAPP_SP;"");;
// Vymažeme kolekciu
Clear(colServisnyProtokol);;
// Resetneme ovládacie prvky
Reset(ComboBox_Firma_2);;
Reset(TextInput_HlasenaZavada);;
Reset(TextInput_ZistenaZavada);;
Reset(TextInput_NavrhOpravy);;
Reset(ComboBox_ServisnyTechnik);;
Reset(Radio5);;
Reset(TextInput_FotoDovod);;
Reset(TextInput_VMeste_2);;
Reset(DatePicker_Datum_2);;
Reset(ComboBox_MenoVeducehoTechnika_2);;
Reset(TextInput_MenoZodpZastupcuNaStavbe_2);;
Reset(PenInput_VeduciTechnik_2);;
Reset(PenInput_ZastupcaNaStavbe_2);;
Reset(TextInput_KopiaEmail_2);;
Reset(ComboBox_DruhProhlidky);;
Reset(TextInput_ZistenaZavada);;
Clear(colZisteneZavady);;
// Zmeníme obrazovku
Navigate( BrowseScreen_Projekty; ScreenTransition.UnCoverRight)
ForAll(
colServisnyProtokol;
Patch(
tbl_ServisnyProtokol;
Defaults(tbl_ServisnyProtokol);
{ Druh_Prohlidky: DruhProhlidky;
ID_projektu: ID_projektu;
ID_zAPP: ID_zAPP;
Firma: Firma;
KontaktnaOsoba: KontakOsoba;
Adresa: Adresa;
PSČ: PSC;
Mesto: Mesto;
Telefon: Telefon;
Email: Email;
TypStroja: TypStroje;
RokVyroby: RokVyroby;
EvidencneCislo: EvidencCislo;
Status_stroja: StatusZeriavu;
HlasenaZavada: HlasenaZavada;
ZistenaZavada: ZistenaZavada;
NavrhOpravy: NavrhOpravy;
ServisnyTechnik: ServisnyTechnik;
Foto: Foto;
Foto_dovod: Foto_dovod;
FotoAdresar_zAPP: FotoAdresar_zAPP;
VMeste: VMeste;
Datum: Datum;
MenoVeducehoTechnika: MenoVeducehoTechnika;
MenoZodpZastupcuNaStavbe: MenoZodpZastupcuNaStavbe;
Email_kopia: Email_kopia}));;
// Uložíme dáta na SharePoint - ZistenéZávady
ForAll(
colZisteneZavady;
Patch(
tbl_ZisteneZavady;
Defaults(tbl_ZisteneZavady);
{ ID_Zeriavu: ID_Zeriavu;
ID_zAPP: ID_zAPP;
EvidencneCislo: EvidencneCislo;
ZistenaZavada: ZistenaZavada}));;
// Odošleme na SharePoint podpis klienta
Set( varJson;
JSON(
PenInput_ZastupcaNaStavbe_2.Image;
JSONFormat.IncludeBinaryData));;
Set( varJson;
Mid(
varJson;
24;
Len(varJson) - 24));;
PenInputtoSP_v2.Run(
varJson;
BrowseGallery_Projekty.Selected.ID_projektu & "_" & Gallery_colServisnyProtokol.Selected.ID_zAPP.Text & "_ZastupcaNaStavbe_ser.jpg");;
Reset(PenInput_ZastupcaNaStavbe_2);;
Set( varJson; "");;
// Hláška
Notify( "Proces byl spuštěn, počkejte na email..."; NotificationType.Success);;
// Vymažem premenné
Set( varFoto_zAPP; "");;
Set(varID_zAPP_SP;"");;
// Vymažeme kolekciu
Clear(colServisnyProtokol);;
// Resetneme ovládacie prvky
Reset(ComboBox_Firma_2);;
Reset(TextInput_HlasenaZavada);;
Reset(TextInput_ZistenaZavada);;
Reset(TextInput_NavrhOpravy);;
Reset(ComboBox_ServisnyTechnik);;
Reset(Radio5);;
Reset(TextInput_FotoDovod);;
Reset(TextInput_VMeste_2);;
Reset(DatePicker_Datum_2);;
Reset(ComboBox_MenoVeducehoTechnika_2);;
Reset(TextInput_MenoZodpZastupcuNaStavbe_2);;
Reset(PenInput_VeduciTechnik_2);;
Reset(PenInput_ZastupcaNaStavbe_2);;
Reset(TextInput_KopiaEmail_2);;
Reset(ComboBox_DruhProhlidky);;
Reset(TextInput_ZistenaZavada);;
Clear(colZisteneZavady);;
// Zmeníme obrazovku
Navigate( BrowseScreen_Projekty; ScreenTransition.UnCoverRight)
Proces v Power Automate
Určite ste si všimli, že po odoslaní nastalo aj vyčistenie fromulárov a premenných, odoslanie notifikácie a zmena obrazovky, skrátka bežné veci pre maximálny komfort a príjemný pocit z appky pre užívateľa. Odoslaním sa spustil automatický proces v Power Automate, ktorý vytvorí dokument, napríklad servisný protokol, vloží do neho všetky potrebné údaje o stroji, jeho závadách, navrhnutých opravách, objednaných náhradných dieloch a tak podobne vrátane podpisu od klienta a celý dokument vygeneruje do PDF, uloží v SharePointe a odošle klientovi na email.
Power Platform
najlepšie online kurzy:
Najlepší online kurz Power Apps - moja prvá appka je zameraný priamo na tvorbu mobilných aplikácií v cloudovom prostredí Microsoft 365. Dozviete sa, ako rýchlo appku vytvoriť, ako všetko potrebné nastaviť a čo znamenajú jednotlivé možnosti vrátane ich použitia.
najlepší online kurz
- doživotný prístup
- bez obmedzení
- appky z praxe
Ďalší skvelý online kurz Power Automate - faktúra s By Square kódom vás rýchlo naučí tvoriť automatizované postupy v cloude na vaše každodenné opakujúce sa rutinné úlohy a činnosti. Veľmi rýchlo pochopíte prepojenie a možnosti aplikácií v skupine Power Platform.
skvelý online kurz
- riešenia z praxe
- doživotný prístup
- skúsený lektor
Páčil sa vám tento článok alebo máte otázku?
Ak sa vám článok páčil, ohodnoťte ho v úvodnej (hornej) časti. Ak máte nejaké otázky k podpisu na obrazovke v Power Apps, napíšte nám.
#PowerAppsSK #SoftverNaMieru #PowerApps
Máte pre nás nový projekt?
Populárne príspevky
-
29 nov 2021Formuláre v Power Apps
-
05 nov 2021Power Apps - načítanie údajov z kolekcie, odoslanie emailu
-
16 okt 2021Power Apps - uloženie fotky v knižnici SharePoint
-
09 júl 2022Power Automate Desktop - prevodník PDF dokumentu na TXT a Excel
-
03 sep 2021Vytvárajte kolekcie v Power Apps s viac ako 2000 riadkami v zozname SharePoint
Power Apps najlepší kurz:
moja prvá appka
Power Apps je úžasná cloudová služba v prostredí Microsoft 365, kde vás veľmi rýchlo naučíme vytvárať jednoducho skvelé, moderné firemné aplikácie bez nutnosti programovania, iba klikaním myškou a/alebo písaním vzorcov podobným spôsobom ako v Exceli. Vaše mobilné aplikácie budú rovnako fungovať na počítačoch, tabletoch aj smartfónoch a na operačných systémoch Windows, iOS alebo Android.
Žiadne zbytočné akademické koncepty a poučky, len praktické lekcie zo skutočnej praxe a tvorby mobilných aplikácií pre klientov.
Žiadne zbytočné akademické koncepty a poučky, len praktické lekcie zo skutočnej praxe a tvorby mobilných aplikácií pre klientov.
Power Automate skvelý kurz:
faktúra s By Square kódom
Power Automate je rovnako skvelá cloudová služba (ako Power Apps) v prostredí Microsoft 365 - Power Platform, kde vás veľmi rýchlo naučíme vytvárať automatizované postupy (procesy, toky) jednoduchým klikaním myškou (vyžadujúce iba minimálne písanie vzorcov) a využívanie stoviek predpripravených konektorov, ktoré umožňujú ľahko automatizovať opakujúce sa firemné (podnikové) úlohy.