PowerApps

Narzędzie PowerApps staje się coraz bardziej potężnym produktem do tworzenia aplikacji biznesowych w podejściu „no-code”. Używanie SharePoint jako źródła danych dla aplikacji jest poniekąd naturalne (pomimo tego, że istnieją dużo lepsze alternatywy, jak SQL Server czy Common Data Service), mając na uwadze ich bliską integrację.

Tworzenie nowych formularzy dla list SharePoint z użyciem PowerApps jest bardzo proste. Kontrolka „Formularz”, obecna w rozwiązaniu, może zostać dodana i powiązana z listą zaledwie z użyciem kilku kliknięć i konfiguracją trybu wyświetlania (nowy, edycja, podgląd).

Tworzenie formularzy list SharePoint w PowerApps
Tworzenie formularzy list SharePoint w PowerApps

Tym niemniej, gdy tworzymy rozwiązania biznesowe, aplikacje dedykowane do obsługi procesów, bardzo istotne jest, by oprócz możliwości dodawania i edycji rekordów, móc je również usuwać. Aktualnie w PowerApps nie istnieje żadne, „pudełkowe” rozwiązanie do obsługi tego scenariusza, jednak można to osiągnąć z użyciem Microsoft Flow.

Jak usunąć rekord w SharePoint z PowerApps?

Oczywiście z pomocą Microsoft Flow! Najpierw jednak musisz pomyśleć nad logiką aplikacji, określić w jaki sposób użytkownik będzie docierać do konkretnego rekordu. Na przykład, użyj kontrolkę „Galeria” lub „Tabela danych”. Następnie obsłuż kliknięcie – gdy użytkownik zaznaczy rekord, przenieś go na inny ekran, na którym obecny będzie formularz, który użyje ID zaznaczonego rekordu by pobrać z listy kontekst.

Poniżej dodaj przyciski, do zapisu i usuwania rekordu. Obsługa zapisu jest prosta, praktycznie domyślnie skonfigurowana. Wystarczy dla akcji „OnSelect” przycisku wstawić poniższe wyrażenie:

SubmitForm(NAZWA_FORMULARZA)

By obsłużyć usuwanie, użyj „Akcje” –> „Przepływy” by stworzyć nowy Flow i powiązać go z przyciskiem. W moim przypadku i dla moich potrzeb stworzyłem generyczny Flow, który potrafi usuwać rekordy z dowolnej listy w danej witrynie:

Generic Flow for removing records from SharePoint
  1. To jest wyzwalacz przepływu – request z PowerApps.
  2. Inicjuję zmienną Status Code z wartością 200 – ta zmienna zostanie użyta do zwrócenia wyniku do PowerApps.
  3. Akcja „Zredaguj” (ang. „Compose”), służąca do pobrania ID rekordu do usunięcia.
  4. Akcja „Zredaguj” (ang. „Compose”), służąca do pobrania nazwy listy, z której rekord zostanie usunięty.
  5. Akcja usuwająca. Konfiguruję ją, podając ID i nazwę listy jako „Własna wartość” (ang. Custom value):

6. Ustawienie wartości jest wykonywane tylko w przypadku, gdy usuwanie rekordu zakończy się błędem. Ta akcja ma skonfigurowane „Uruchom po” (ang. Run after), by została wykonana wyłącznie w przypadku błędu akcji poprzedniej.
7. Gdy usuwanie zostanie zakończone kod statusu (200 lub 409) zostaje zwrócony do PowerApps (to dość młoda funkcja, dostępna publicznie od kwietnia 2018, https://flow.microsoft.com/en-us/blog/return-data-to-powerapps/).

Obsługa informacji zwrotnej z Microsoft Flow w PowerApps
Obsługa informacji zwrotnej z Microsoft Flow w PowerApps
  1. Nazwa zmienne, która będzie przechowywać informację zwrotną z Flow.
  2. Nazwa przepływu Flow, który zostanie uruchomiony po kliknięciu na przycisk, wraz z parametrami, określone w akcji „OnSelect” przycisku.

Następne kroki

Gdy odpowiedź zostanie odebrana, można (nawet należy!) ją obsłużyć. Np. można stworzyć ukryte panele, jeden z informacją o błędzie, drugi o sukcesie i pokazywać je odpowiednio w zależności od wartości kodu, otrzymanego z Flow:

Set(
    ResponseCode,
    DeleteRecordinSharePoint.Run(
        SharePointIntegration.Selected.ID,
        "My entity"
    )
);
If(
    Value(ResponseCode.status) <> 200,
    SHOW_ERROR_HIDDEN_PANEL,
    SHOW_SUCCESS_HIDDEN_PANEL
)

Podoba Ci się to, co przeczytałeś? Zostaw komentarz!

Cześć! Nazywam się Tomasz. Jestem wielkim fanem automatyzacji procesów i analizy biznesowej. Skupiam się na rozwijaniu moich umiejętności w pracy z produktami Nintex i Microsoft: w szczególności Office 365, SharePoint, Flow, PowerApps. Posiadam ponad 8 lat doświadczenia w pracy z SharePoint.