Ebben a bejegyzésben egy canvas appban egy egyszerű példán keresztül megmutatom, hogy hogyan használhatunk Dataverse action-t, azaz hívhatunk meg plugin-eket és használhatjuk a visszatérő értéküket. És ez bizony nem egy április tréfa, hanem egy preview feature, a Microsoft még februárban jelentette be. A példa alkalmazásunkban egy szót adunk meg, majd a beküldést követően ebben a korábbi bejegyzésben készült plugin-ünket használva átkonvertáljuk nagy betűssé.
A Dataverse action-ök elérésének engedélyezése
Ahhoz, hogy az appból hozzáférjünk az aciton-ökhöz előbb be kell kapcsoljunk ezt a funkciót:
- Kattintsunk a „Settings” vagy „Beállítások” gombra a menüszalagon, majd
- válasszuk a felugró ablakban az „Upcoming features” menüpontot és
- szűrjünk az „action” szóra,
- kapcsoljuk be az „Enable access to Microsoft Dataverse actions” feature-t.
A bekapcsolás után figyelmeztetést kapunk, hogy frissítenünk kell az oldalt, érdemes előtte menteni is.
Dataverse action hívása
Így már az „Environment” objektumon keresztül elérhetővé válik a környezetben található összes művelet a canvas appban:
Ügyelni kell rá, hogy a bemenő paraméter egy objektum kell legyen JSON formátumban beadva, amiben az action bemenő paraméterei alapján adhatjuk meg az értékeinket property-nként. Ebben az esetben egy bemenő paraméter van a „inputText”, ezt szeretnénk nagybetűssé konvertálni az action-nel. A visszatérő értékeket ugyanúgy, mint pl. egy flow hívása esetén nyerhetjük ki, ez most esetünkben az „outputText”:
Végeredményként az egyszerű kis appunk a visszakapott csupa nagybetűs szóval:
Mikor használjunk action-t canvas appban?
Előfordulhat, hogy már létezik a logika, amire az appunkban szükség van, így nem kell flow-ban újra összeraknunk ugyanazt, ezzel növelve a redundás részeket. Másrészt az is lehet, hogy gyári action-t is használhatunk, amik például Dynamics 365 appokkal telepóltek. Harmadrészt sok esetben szükségünk lehet olyan funkciókra, amik flow-ban nem léteznek, de C#-ban könnyedén lefejleszthetők és ott teszteket is írhatunk rájuk.
Hibakezelés
Érdemes ugyanúgy ügyelnünk a hibakezelésre is, mint egy Patch vagy flow hívás esetében. Így ugyanúgy használhatjuk például az „IfError()” függvényen belül is a plugin hívásokat.
Limitációk
Egy ilyen hívás ugyanúgy 1 db API hívásnak felel meg a Dataverse connector-on keresztül, így a throttling limitbe bele számít. Továbbá a plugin futására vonatkozóan a 2 perces futási limit is olykor izgalmas lehet, ezért érdemes a kódban is az optimumra törekedni.

English
Vélemény, hozzászólás?