To ελληνικό blog για το Power Automate και το Dataverse

Τι είναι το scope και γιατί να το χρησιμοποιώ στα flows

Το σημερινό post αφορά στο action Scope στα Cloud Power Automate flows. Θα δούμε τι ακριβώς είναι, πως το χρησιμοποιούμε και που μπορεί να φανεί χρήσιμο.

Τι είναι το scope

Παρόλο που το scope τυπικά είναι action, στην ουσία είναι ένα container για άλλα actions. Ένας τρόπος χρήσης του είναι για την οργάνωση και την ομαδοποίηση άλλων actions, ώστε να είναι πιο εύκολο να τα διαβάσουμε και να τα κατανοήσουμε. Επίσης μπορούμε να το χρησιμοποιήσουμε για την καλύτερη διαχείριση σφαλμάτων στη ροή ενός flow.

Οργάνωση

Οργώνοντας λογικά τα διάφορα action ενός flow μέσα σε scopes, μπορούμε να έχουμε γρήγορα μια “πανοραμική” εικόνα του και να εστιάζουμε κάθε φορά εκεί που θέλουμε να δουλέψουμε, κλείνοντας και ανοίγοντας τα αντίστοιχα scopes κάθε φορά.

Ειδικά σε σύνθετα flows και μόνο αυτή η ιδιότητα μπορεί να είναι σωτήρια. Για παράδειγμα ορίστε ένα απόσπασμα από ένα flow εγκρίσεως αδειών με τα scope κλειστά:

Με χρήση scope

και εδώ το ίδιο κομμάτι χωρίς scopes:

Χωρίς χρήση scope

Ο χρόνος και η προσπάθεια που χρειάζεται για να καταλάβεις τι κάνει το πρώτο flow σε σχέση με το δεύτερο είναι χαώδης.

Διαχείριση σφαλμάτων

Η πιο σημαντική ιδιότητα του scope είναι ότι έαν “χτυπήσει” κάποιο action που περιέχεται σε αυτό, τότε η ροή θα οδηγηθεί αυτόματα στην έξοδο του scope και το scope θα είναι failed. Ας δούμε πως μπορούμε να εκμεταλλευτούμε αυτή την ιδιότητα.

Έλεγχος για errors

Κανονικά εάν θέλουμε να διαχειριστούμε την αποτυχία κάποιου action τότε με την χρήση του “run after” βάζουμε ένα action που τρέχει στο failed και ένα που τρέχει στο success. (Περισσότερα για το run after εδώ)

Αντί λοιπόν να κάνουμε αυτή τη διαδικασία για κάθε action μπορούμε να το κάνουμε μια φορά για ένα scope που θα τα περιέχει.

Try – Catch – Finally

Χρησιμοποιώντας το scope μπορούμε να εξομοιώσουμε το try-catch-finally structure που συναντάμε σε γλώσσες προγραμματισμού. Με το structure αυτό:

  1. Εκτελείτε ότι βρίσκεται στο Try
  2. Αν κάτι από το Try αποτύχει εκτελείτε ότι βρίσκεται στο catch
  3. Αν όλα στο Try εκτελεστούν χωρίς error το catch αγνοείτε
  4. Στο τέλος, σε κάθε περίπτωση, εκτελείτε ότι βρίσκεται στο finally.

Χρησιμοποιώντας 3 scopes όπως παρακάτω έχουμε την ίδια λειτουργικότητα.

Σύνοψη

Μέσα στο scope βάζουμε άλλα actions είτε για να οργανώσουμε ένα flow σε λογικές ενότητες, είτε για να διαχειριστούμε εύκολα σφάλματα που μπορούν να προκύψουν.

Ρυθμίζοντας το Run After στο Power Automate

Τι είναι το “Run After”

Η επιλογή “Run After” μας επιτρέπει να ρυθμίσουμε αν θα τρέξει ένα action ανάλογα με το τι έχει γίνει στο προηγούμενο action. Για παράδειγμα μπορούμε να πούμε ότι ένα action θα τρέξει μόνο έαν το προηγούμενο έχει αποτύχει. Συνεπώς είναι μια πολύ χρήσιμη λειτουργικότητα όταν θέλουμε να διαχειριστούμε σφάλματα κατά την εκτέλεση ενός flow.

Οδηγός ρυθμίσεων

Για να ρυθμίσεις το “Run After” για ένα action απλά επιλέγεις τις 3 τελείες στη δεξιά μεριά του action και από εκεί “Configure run after”

Οι δυνατές επιλογές είναι 4:

  • Is successful – Το προηγούμενο action έτρεξε επιτυχώς. Είναι η default επιλογή
  • Has failed  Το προηγούμενο action απέτυχε για οπουδήποτε λόγο εκτός από timeout
  • Is skipped  Το προηγούμενο action παραλήφθηκε.
  • Has timed out  Το προηγούμενο action έκανε time out.
Παράδειγμα

Έστω ότι έχουμε ένα action που διαβάζει από το SharePoint και θέλουμε στην περίπτωση λάθους να μας στείλει ένα notification, διαφορετικά να συνεχίσει κανονικά.

Τότε το flow μας μπορεί να έχει είτε αυτή τη μορφή (χρησιμοποιώντας ένα parallel branch):

Είτε και αυτή την όχι και τόσο προφανή μορφή:

Η λογική πίσω από την τελευταία μορφή είναι ότι:

  • Το “Send me an email notification” θα τρέξει μόνο εαν το “Get Items” γίνει Failed, Skipped ή Timed Out. Διαφορετικά δεν θα τρέξει (άρα θα γίνει Skipped)
  • To “Apply to each” θα τρέξει μόνο έαν το “Send me an email notification” γίνει Skipped. Αυτό θα συμβεί μόνο έαν το “Get Items” είναι Successful
Επίλογος

Είδαμε λοιπόν πόσο εύκολα μπορεί να ρυθμιστεί το Run After και πως μπορεί να μας βοηθήσει στην διαχείριση σφαλμάτων κατά την εκτέλεση ενός flow.

Στο επόμενο post θα δούμε πώς συνδυάζοντας το Scope με το Run After μπορούμε να εξομοιώσουμε ένα Try-Catch-Finally statement.

Θέλεις να μάθεις πώς να βάλεις το ChatGPT στο Teams χωρίς κώδικα; Έλα μαζί μου στο Func No Code – Summer Edition

Με μεγάλο ενθουσιασμό ενημερώνω ότι θα είμαι ένας από τους ομιλητές στο Func No Code – Summer Edition, στις 22 Ιουνίου , 7 μ.μ. στη Microsoft Hellas.

Θα αναπτύξω το πώς μπορεί κάποιος να φτιάξει ένα chatGPT bot στο MS Teams χωρίς γραμμή κώδικα. Ακούγεται ωραίο, σωστά; Εάν θέλεις να μάθεις περισσότερα, μπορείς να εγγραφείς στην εκδήλωση εδώ:

https://lnkd.in/dnt5mvr9

Ελπίζω να σας δω εκεί!