
Τι είναι το scope και γιατί να το χρησιμοποιώ στα flows
Το σημερινό post αφορά στο action Scope στα Cloud Power Automate flows. Θα δούμε τι ακριβώς είναι, πως το χρησιμοποιούμε και που μπορεί να φανεί χρήσιμο.
Τι είναι το scope
Παρόλο που το scope τυπικά είναι action, στην ουσία είναι ένα container για άλλα actions. Ένας τρόπος χρήσης του είναι για την οργάνωση και την ομαδοποίηση άλλων actions, ώστε να είναι πιο εύκολο να τα διαβάσουμε και να τα κατανοήσουμε. Επίσης μπορούμε να το χρησιμοποιήσουμε για την καλύτερη διαχείριση σφαλμάτων στη ροή ενός flow.
Οργάνωση
Οργώνοντας λογικά τα διάφορα action ενός flow μέσα σε scopes, μπορούμε να έχουμε γρήγορα μια “πανοραμική” εικόνα του και να εστιάζουμε κάθε φορά εκεί που θέλουμε να δουλέψουμε, κλείνοντας και ανοίγοντας τα αντίστοιχα scopes κάθε φορά.
Ειδικά σε σύνθετα flows και μόνο αυτή η ιδιότητα μπορεί να είναι σωτήρια. Για παράδειγμα ορίστε ένα απόσπασμα από ένα flow εγκρίσεως αδειών με τα scope κλειστά:

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

Ο χρόνος και η προσπάθεια που χρειάζεται για να καταλάβεις τι κάνει το πρώτο 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 αυτό:
- Εκτελείτε ότι βρίσκεται στο Try
- Αν κάτι από το Try αποτύχει εκτελείτε ότι βρίσκεται στο catch
- Αν όλα στο Try εκτελεστούν χωρίς error το catch αγνοείτε
- Στο τέλος, σε κάθε περίπτωση, εκτελείτε ότι βρίσκεται στο finally.
Χρησιμοποιώντας 3 scopes όπως παρακάτω έχουμε την ίδια λειτουργικότητα.

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