Αρχικά λοιπόν, κάνουμε drag-and-drop ένα parallel gateway και για τις περιπτώσεις (cases) που μας ενδιαφέρουν, προσθέτουμε τον ανάλογο αριθμό από exclusive gateways. Αυτά θα παίξουν των κόμβων απόφασης, για το αν θα εκτελεστεί αυτό το κλαδί (branch) του parallel gateway ή όχι.

Έπειτα, σε κάθε exclusive gateway θα δημιουργήσουμε μια συνθήκη (condition) που θα περιγράφει για το αν θα εκτελεστεί μια διαδικασία (με βάση τα περιεχόμενα του payload) ή θα πάμε απευθείας στο τέλος (εφόσον δεν υπάρχει αντικείμενο ενδιαφέροντος στο αρχικό μήνυμα). Εδώ έχουμε τη βοήθεια του XPath που μας επιτρέπει να ορίσουμε συνθήκες για τα περιεχόμενα του payload. Στο παράδειγμα που ακολουθεί, από το array των εγγραφών, επιλέγω μόνο αυτήν που έχει την ιδιότητα emsFileTypeid στην τιμή 7 ώστε στο επόμενο βήμα να διαχειριστώ αυτόν τον τύπο.

Ένα πλήρες διάγραμμα, μπορεί να δείχνει όπως το παρακάτω: Οι συνθήκες βρίσκονται στα exclusive gateways που έχουν ως default διαδρομή το τέλος της παράλληλης διαδικασίας. Αν όμως ισχύει κάποια συνθήκη (ή πολλές ταυτόχρονα) τότε θα ακολουθήσει η επεξεργασία στα βήματα PrepareTypeX, InvokeTypeX, για όσους τύπους είναι παρόντες στο αρχικό μήνυμα, ταυτόχρονα.

No comments:
Post a Comment