Σύνδεση μιας εφαρμογής Boomi Flow με integration processes
Πώς πρέπει μια εφαρμογή workflow να μιλά με το ERP: η λογική στα integration processes, κλήση τους ως services, και υλοποίηση με Flow Service σε Boomi Flow και Boomi Integration.
Στο Ροή έγκρισης αιτημάτων αγοράς στο Boomi Flow φτιάξαμε μια εφαρμογή που συλλέγει ένα αίτημα και το δρομολογεί για έγκριση. Δύο πράγματα έμεναν χειροκίνητα: η λίστα προμηθευτών ήταν στατική και, μετά την έγκριση, κάποιος έπρεπε να περάσει την παραγγελία αγοράς στο ERP. Σε αυτό το άρθρο εξηγούμε πώς πρέπει μια εφαρμογή workflow να μιλά με τα συστήματα στο παρασκήνιο και μετά τη συνδέουμε με integration processes του Boomi που διαβάζουν τους προμηθευτές από το ERP και δημιουργούν την παραγγελία αγοράς.
Το πρόβλημα: εφαρμογές που μιλούν απευθείας με το ERP
Ο γρήγορος δρόμος είναι να καλεί η εφαρμογή το API του ERP από κάθε οθόνη. Δουλεύει για demo και φέρνει προβλήματα αργότερα:
- Η λογική του ERP διαρρέει στην εφαρμογή. Κωδικοί εταιρειών, τύποι παραστατικών και κανόνες πεδίων σκορπίζονται σε σελίδες και αποφάσεις, όπου πρέπει να τους συντηρούν όσοι σχεδιάζουν workflows.
- Κάθε εφαρμογή ξανακάνει την ίδια δουλειά. Η εφαρμογή αγορών, η εφαρμογή εξόδων και η εφαρμογή επιστροφών υλοποιούν η καθεμιά λίγο διαφορετικά το «δημιούργησε παραστατικό στο ERP».
- Πολλαπλασιάζονται τα διαπιστευτήρια. Κάθε εφαρμογή κρατά τον δικό της ισχυρό λογαριασμό ERP.
- Τα λάθη εμφανίζονται σε λάθος σημείο. Ένα timeout του ERP γίνεται «χαλασμένη» οθόνη, χωρίς retry και χωρίς log.
Το pattern: η εφαρμογή ζητά, το integration εκτελεί
Μοιράστε τις ευθύνες:
- Η εφαρμογή workflow έχει τους ανθρώπους, τις οθόνες και τις αποφάσεις. Ζητά επιχειρησιακές λειτουργίες με επιχειρησιακούς όρους: «δώσε μου τους ενεργούς προμηθευτές», «δημιούργησε παραγγελία αγοράς για αυτό το εγκεκριμένο αίτημα».
- Τα integration processes έχουν τα συστήματα. Ξέρουν πώς να καλέσουν το ERP, να κάνουν το mapping, να χειριστούν λάθη και να ξαναδοκιμάσουν.
- Ανάμεσά τους υπάρχει ένα μικρό συμβόλαιο service: λειτουργίες με όνομα, request και response, χωρίς τίποτα ειδικό για το ERP.
Εφαρμογή Flow ──► "List suppliers" ──► integration process ──► ERP
──► "Create purchase order" ──► integration process ──► ERP
Το ίδιο συμβόλαιο μπορεί να εξυπηρετήσει και άλλες εφαρμογές, και το ERP μπορεί να αλλάξει χωρίς να αγγίξετε το flow. Είναι η ίδια ιδέα με το API facade, εφαρμοσμένη σε εφαρμογές. (Δείτε το Το ERP σας ως REST API με το Boomi για την εκδοχή με API.)
Δύο κανόνες κάνουν το συμβόλαιο να δουλεύει:
- Οι λειτουργίες ανάγνωσης είναι γρήγορες και ασφαλείς. Το «List suppliers» επιστρέφει λίγα, φιλτραρισμένα δεδομένα και δεν αλλάζει τίποτα.
- Οι λειτουργίες εγγραφής είναι idempotent. Το «Create purchase order» παίρνει τον κωδικό του αιτήματος
(
PR-2026-118) και ελέγχει αν υπάρχει ήδη παραγγελία για αυτόν. Αν ο χρήστης πατήσει δύο φορές ή το Flow ξαναδοκιμάσει, παίρνετε πάλι μία παραγγελία.
Υλοποίηση στο Boomi
Το Boomi συνδέει το Flow με το Integration με μερικά ειδικά κομμάτια:
- ένα component Flow Service στο Boomi Integration, που ορίζει τις λειτουργίες (message actions) που μπορεί να καλέσει η εφαρμογή·
- integration processes που ξεκινούν με τον connector Boomi Flow Services Server και υλοποιούν κάθε λειτουργία·
- τον connector Boomi Integration Service στο Boomi Flow, που δείχνει στο Flow Service που έχει γίνει deploy.
Οι ονομασίες και οι επιλογές μπορεί να αλλάζουν από έκδοση σε έκδοση· η σειρά της δουλειάς παρακάτω μένει ίδια.
Βήμα 1: Σχεδιάστε τις δύο λειτουργίες
Γράψτε πρώτα το συμβόλαιο, σε JSON:
// List suppliers: request
{ "category": "IT equipment" }
// List suppliers: response
{ "suppliers": [ { "supplierId": "S-0381", "name": "Techno Hellas AE" },
{ "supplierId": "S-0412", "name": "Office Point" } ] }
// Create purchase order: request
{ "requestId": "PR-2026-118", "supplierId": "S-0381", "costCentre": "210",
"description": "3 laptops για την αποθήκη", "amount": 2450.00, "approvedBy": "k.nikolaou" }
// Create purchase order: response
{ "requestId": "PR-2026-118", "poNumber": "PO-77815", "status": "Created" }
Δημιουργήστε ένα JSON profile στο Boomi Integration για κάθε request και response.
Βήμα 2: Τα integration processes
Για το List suppliers:
- Δημιουργήστε process με Start shape που χρησιμοποιεί τον connector Boomi Flow Services Server με action Listen.
- Διαβάστε από το ERP τους ενεργούς προμηθευτές (με τον connector του ERP ή τον HTTP Client connector), φιλτραρισμένους ανά κατηγορία.
- Κάντε mapping του αποτελέσματος στο response profile και τελειώστε με ένα shape Return Documents.
Για το Create purchase order:
- Ίδια ρύθμιση στο Start, με το request profile της δημιουργίας.
- Ελέγξτε πρώτα αν υπάρχει ήδη παραγγελία για το
requestId(για παράδειγμα σε ένα πεδίο αναφοράς του παραστατικού στο ERP). Αν υπάρχει, επιστρέψτε αυτόν τον αριθμό αντί να δημιουργήσετε νέα. - Αλλιώς κάντε mapping του αιτήματος στη μορφή παραγγελίας αγοράς του ERP και δημιουργήστε την.
- Επιστρέψτε τον αριθμό παραγγελίας. Σε αποτυχία, επιστρέψτε καθαρή κατάσταση και μήνυμα, αντί να αφήσετε το process να αποτύχει σιωπηλά, ώστε το flow να δείξει κάτι χρήσιμο.
Βήμα 3: Το component Flow Service
- Δημιουργήστε ένα component Flow Service και δώστε του path, για παράδειγμα
/purchasing. - Προσθέστε δύο message actions,
List SuppliersκαιCreate Purchase Order. Για το καθένα επιλέξτε request και response profile και το αντίστοιχο process από το βήμα 2. - Κάντε deploy το Flow Service και τα δύο processes στο ίδιο runtime περιβάλλον (Atom, Molecule ή Atom Cloud). Το service δουλεύει μόνο όταν όλα έχουν γίνει deploy μαζί.
Βήμα 4: Εγκατάσταση του connector στο Boomi Flow
- Στο Boomi Flow, προσθέστε έναν connector Boomi Integration Service.
- Επιλέξτε το runtime και δώστε το path του Flow Service (
/purchasing). Κάντε authentication με έναν αποκλειστικό χρήστη integration και token, όχι με προσωπικό λογαριασμό. - Εγκαταστήστε τον. Το Flow διαβάζει τον ορισμό του service και δημιουργεί types από τα profiles σας, καθώς και τις actions που μπορείτε να καλέσετε.
Βήμα 5: Χρήση των actions στο flow
- Φόρτωση προμηθευτών. Πριν από τη σελίδα του αιτήματος, προσθέστε ένα Message element που καλεί το
List Suppliersκαι αποθηκεύει το αποτέλεσμα σε ένα value λίστας. Δέστε το combobox του προμηθευτή σε αυτή τη λίστα. - Δημιουργία παραγγελίας. Μετά το outcome
Έγκριση(και τη διαδρομήAuto-approved), προσθέστε ένα Message element που καλεί τοCreate Purchase Orderμε τοCurrent Request. Αποθηκεύστε τονpoNumberπου επιστρέφει στο αίτημα. - Χειρισμός αποτυχίας. Προσθέστε ένα Decision μετά την κλήση: αν το
statusδεν είναιCreated, οδηγήστε σε σελίδα ή ειδοποίηση για την ομάδα προμηθειών, αντί να πείτε στον αιτούντα ότι όλα πήγαν καλά.
Βήμα 6: Δοκιμή από άκρη σε άκρη
- Ανοίξτε τη σελίδα του αιτήματος και ελέγξτε ότι η λίστα προμηθευτών συμφωνεί με το ERP.
- Υποβάλετε αίτημα 2.450 €, εγκρίνετέ το και ελέγξτε ότι η παραγγελία υπάρχει στο ERP με σωστό προμηθευτή και ποσό.
- Καλέστε τη δημιουργία δύο φορές για τον ίδιο κωδικό αιτήματος και επιβεβαιώστε ότι υπάρχει μόνο μία παραγγελία.
- Διακόψτε τη σύνδεση με το ERP (ή δείξτε σε λάθος host στο test) και επιβεβαιώστε ότι δουλεύει η διαδρομή αποτυχίας.
- Ελέγξτε τις εκτελέσεις των processes στο process reporting του Boomi για κάθε δοκιμή, ώστε να ξέρετε πού να κοιτάξετε στην παραγωγή.
Πριν βγείτε σε παραγωγή
- Λογαριασμός ERP με ελάχιστα δικαιώματα. Ο χρήστης integration χρειάζεται μόνο ανάγνωση προμηθευτών και δημιουργία παραγγελιών αγοράς.
- Προσέξτε τους χρόνους απόκρισης. Ένα Message element που περιμένει ένα αργό ERP αφήνει τον χρήστη να κοιτάζει ένα spinner. Κρατήστε μικρές τις λειτουργίες ανάγνωσης και σκεφτείτε caching για δεδομένα αναφοράς που αλλάζουν σπάνια.
- Εγγραφές που αργούν. Αν η δημιουργία του παραστατικού μπορεί να κρατήσει πολύ, σχεδιάστε γι’ αυτό: αφήστε το flow να συνεχίσει και ενημερώστε την κατάσταση όταν τελειώσει το process, αντί να κρατάτε την οθόνη του χρήστη. Δείτε στην τεκμηρίωση του Flow Service πώς χειρίζεται η έκδοσή σας τις μεγάλες εκτελέσεις.
- Κωδικός αιτήματος παντού στα logs. Συνδέει την κατάσταση του flow, την εκτέλεση του process και το παραστατικό στο ERP.
- Επαναχρησιμοποίηση. Η επόμενη εφαρμογή που χρειάζεται προμηθευτές πρέπει να καλεί το ίδιο Flow Service, όχι να φτιάχνει δικό της.
Σύνοψη
Κρατήστε την εφαρμογή στους ανθρώπους και τις αποφάσεις και αφήστε τα συστήματα στα integration processes. Στο Boomi, ένα component Flow Service δημοσιεύει τις λειτουργίες, τα processes τις υλοποιούν και ο connector Boomi Integration Service τις κάνει διαθέσιμες στο flow. Κάντε τις εγγραφές idempotent και τις αποτυχίες ορατές. Για τη συνολική εικόνα, δείτε τον πρακτικό οδηγό για την αυτοματοποίηση ροών εργασιών, και για στρατηγικές retry στα processes πίσω από το service, το άρθρο μας για χειρισμό λαθών και retries στο Boomi.