Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Όπως γνωρίζετε, η SAP προσφέρει μια πλήρη γκάμα λογισμικού τόσο για τη διατήρηση δεδομένων συναλλαγών όσο και για την επεξεργασία αυτών των δεδομένων σε συστήματα ανάλυσης και αναφοράς. Συγκεκριμένα, η πλατφόρμα SAP Business Warehouse (SAP BW) είναι μια εργαλειοθήκη αποθήκευσης και ανάλυσης δεδομένων με εκτεταμένες τεχνικές δυνατότητες. Παρά όλα τα αντικειμενικά του πλεονεκτήματα, το σύστημα SAP BW έχει ένα σημαντικό μειονέκτημα. Αυτό είναι ένα υψηλό κόστος αποθήκευσης και επεξεργασίας δεδομένων, ιδιαίτερα αισθητό όταν χρησιμοποιείτε το SAP BW που βασίζεται σε cloud στο Hana.

Τι γίνεται αν αρχίσετε να χρησιμοποιείτε κάποιο προϊόν που δεν είναι SAP και κατά προτίμηση ένα προϊόν OpenSource ως αποθηκευτικό χώρο; Εμείς στο X5 Retail Group επιλέξαμε την GreenPlum. Αυτό, φυσικά, λύνει το ζήτημα του κόστους, αλλά ταυτόχρονα προκύπτουν άμεσα ζητήματα που επιλύθηκαν σχεδόν από προεπιλογή κατά τη χρήση του SAP BW.

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Συγκεκριμένα, πώς να ανακτήσετε δεδομένα από συστήματα πηγής, τα οποία είναι ως επί το πλείστον λύσεις SAP;

Το HR Metrics ήταν το πρώτο έργο στο οποίο ήταν απαραίτητο να λυθεί αυτό το πρόβλημα. Στόχος μας ήταν να δημιουργήσουμε ένα αποθετήριο δεδομένων ανθρώπινου δυναμικού και να δημιουργήσουμε αναλυτικές αναφορές στον τομέα της συνεργασίας με τους υπαλλήλους. Στην περίπτωση αυτή, η κύρια πηγή δεδομένων είναι το σύστημα συναλλαγών SAP HCM, στο οποίο πραγματοποιούνται όλες οι δραστηριότητες προσωπικού, οργανωτικές και μισθολογικές.

Εξαγωγή δεδομένων

Στο SAP BW υπάρχουν τυπικοί εξαγωγείς δεδομένων για συστήματα SAP. Αυτοί οι εξαγωγείς μπορούν να συλλέγουν αυτόματα τα απαραίτητα δεδομένα, να παρακολουθούν την ακεραιότητά τους και να προσδιορίζουν τα δέλτα αλλαγών. Εδώ, για παράδειγμα, είναι η τυπική πηγή δεδομένων για τα χαρακτηριστικά των υπαλλήλων 0EMPLOYEE_ATTR:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Το αποτέλεσμα της εξαγωγής δεδομένων από αυτό για έναν υπάλληλο:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Εάν είναι απαραίτητο, ένας τέτοιος εξολκέας μπορεί να τροποποιηθεί για να ταιριάζει στις δικές σας απαιτήσεις ή μπορεί να δημιουργηθεί ο δικός σας εξαγωγέας.

Η πρώτη ιδέα που προέκυψε ήταν η δυνατότητα επαναχρησιμοποίησής τους. Δυστυχώς, αυτό αποδείχθηκε αδύνατο. Το μεγαλύτερο μέρος της λογικής εφαρμόζεται στην πλευρά του SAP BW και δεν ήταν δυνατός ο ανώδυνος διαχωρισμός του εξολκέα στην πηγή από το SAP BW.

Έγινε προφανές ότι θα έπρεπε να αναπτύξουμε τον δικό μας μηχανισμό για την εξαγωγή δεδομένων από συστήματα SAP.

Δομή αποθήκευσης δεδομένων στο SAP HCM

Για να κατανοήσουμε τις απαιτήσεις για έναν τέτοιο μηχανισμό, πρέπει πρώτα να προσδιορίσουμε ποια δεδομένα χρειαζόμαστε.

Τα περισσότερα δεδομένα στο SAP HCM αποθηκεύονται σε επίπεδους πίνακες SQL. Με βάση αυτά τα δεδομένα, οι εφαρμογές SAP οπτικοποιούν τις οργανωτικές δομές, τους υπαλλήλους και άλλες πληροφορίες ανθρώπινου δυναμικού στον χρήστη. Για παράδειγμα, έτσι φαίνεται η οργανωτική δομή στο SAP HCM:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Φυσικά, ένα τέτοιο δέντρο αποθηκεύεται σε δύο πίνακες - σε αντικείμενα hrp1000 και σε hrp1001 τις συνδέσεις μεταξύ αυτών των αντικειμένων.

Αντικείμενα "Τμήμα 1" και "Γραφείο 1":

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Σχέση μεταξύ αντικειμένων:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Μπορεί να υπάρχει ένας τεράστιος αριθμός και των δύο τύπων αντικειμένων και τύπων συνδέσεων μεταξύ τους. Υπάρχουν τόσο τυπικές συνδέσεις μεταξύ αντικειμένων όσο και προσαρμοσμένες για τις δικές σας συγκεκριμένες ανάγκες. Για παράδειγμα, η τυπική σχέση B012 μεταξύ μιας οργανικής μονάδας και μιας θέσης πλήρους απασχόλησης υποδεικνύει τον επικεφαλής ενός τμήματος.

Εμφάνιση διαχειριστή στο SAP:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Αποθήκευση σε πίνακα βάσης δεδομένων:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Τα δεδομένα των εργαζομένων αποθηκεύονται σε πίνακες pa*. Για παράδειγμα, δεδομένα για συμβάντα προσωπικού για έναν υπάλληλο αποθηκεύονται στον πίνακα pa0000

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Αποφασίσαμε ότι η GreenPlum θα λάβει «ακατέργαστα» δεδομένα, π.χ. απλώς αντιγράψτε τα από πίνακες SAP. Και απευθείας στο GreenPlum θα υποβληθούν σε επεξεργασία και θα μετατραπούν σε φυσικά αντικείμενα (για παράδειγμα, Τμήμα ή Υπάλληλος) και μετρήσεις (για παράδειγμα, μέσος αριθμός ατόμων).

Ορίστηκαν περίπου 70 πίνακες, δεδομένα από τα οποία πρέπει να μεταφερθούν στο GreenPlum. Μετά από αυτό αρχίσαμε να επεξεργαζόμαστε μια μέθοδο για τη μετάδοση αυτών των δεδομένων.

Το SAP προσφέρει έναν αρκετά μεγάλο αριθμό μηχανισμών ολοκλήρωσης. Αλλά ο ευκολότερος τρόπος είναι ότι η άμεση πρόσβαση στη βάση δεδομένων απαγορεύεται λόγω περιορισμών αδειοδότησης. Έτσι, όλες οι ροές ενοποίησης πρέπει να υλοποιούνται σε επίπεδο διακομιστή εφαρμογών.
Το επόμενο πρόβλημα ήταν η έλλειψη δεδομένων σχετικά με τις διαγραμμένες εγγραφές στη βάση δεδομένων SAP. Όταν διαγράφετε μια σειρά στη βάση δεδομένων, διαγράφεται φυσικά. Εκείνοι. ο σχηματισμός ενός δέλτα αλλαγής με βάση την ώρα αλλαγής δεν ήταν δυνατός.

Φυσικά, το SAP HCM διαθέτει μηχανισμούς καταγραφής αλλαγών δεδομένων. Για παράδειγμα, για μεταγενέστερη μεταφορά σε συστήματα παραλήπτη, υπάρχουν δείκτες αλλαγής που καταγράφουν τυχόν αλλαγές και βάσει των οποίων σχηματίζεται ένα Idoc (αντικείμενο για μεταφορά σε εξωτερικά συστήματα).

Παράδειγμα IDoc για αλλαγή τύπου πληροφοριών 0302 για υπάλληλο με αριθμό προσωπικού 1251445:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Ή διατήρηση αρχείων καταγραφής αλλαγών δεδομένων στον πίνακα DBTABLOG.

Ένα παράδειγμα αρχείου καταγραφής για τη διαγραφή μιας εγγραφής με το κλειδί QK53216375 από τον πίνακα hrp1000:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Αλλά αυτοί οι μηχανισμοί δεν είναι διαθέσιμοι για όλα τα απαραίτητα δεδομένα και η επεξεργασία τους σε επίπεδο διακομιστή εφαρμογών μπορεί να καταναλώσει πολλούς πόρους. Επομένως, η μαζική ενεργοποίηση της καταγραφής σε όλους τους απαραίτητους πίνακες μπορεί να οδηγήσει σε αισθητή υποβάθμιση της απόδοσης του συστήματος.

Το επόμενο σημαντικό πρόβλημα ήταν οι ομαδοποιημένοι πίνακες. Η εκτίμηση χρόνου και τα δεδομένα μισθοδοσίας στην έκδοση RDBMS του SAP HCM αποθηκεύονται ως ένα σύνολο λογικών πινάκων για κάθε εργαζόμενο για κάθε υπολογισμό. Αυτοί οι λογικοί πίνακες αποθηκεύονται ως δυαδικά δεδομένα στον πίνακα pcl2.

Ομάδα μισθοδοσίας:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Τα δεδομένα από συγκεντρωμένους πίνακες δεν μπορούν να θεωρηθούν ως εντολή SQL, αλλά απαιτούν τη χρήση μακροεντολών SAP HCM ή ειδικών λειτουργικών μονάδων. Κατά συνέπεια, η ταχύτητα ανάγνωσης τέτοιων πινάκων θα είναι αρκετά χαμηλή. Από την άλλη πλευρά, τέτοια συμπλέγματα αποθηκεύουν δεδομένα που χρειάζονται μόνο μία φορά το μήνα - τελική μισθοδοσία και εκτίμηση χρόνου. Άρα η ταχύτητα σε αυτή την περίπτωση δεν είναι τόσο κρίσιμη.

Αξιολογώντας τις επιλογές για το σχηματισμό ενός δέλτα αλλαγών δεδομένων, αποφασίσαμε να εξετάσουμε επίσης την επιλογή της πλήρους εκφόρτωσης. Η επιλογή μεταφοράς gigabyte αμετάβλητων δεδομένων μεταξύ συστημάτων κάθε μέρα μπορεί να μην φαίνεται καλή. Ωστόσο, έχει επίσης μια σειρά από πλεονεκτήματα - δεν χρειάζεται τόσο η εφαρμογή του δέλτα στην πλευρά της πηγής όσο και η εφαρμογή της ενσωμάτωσης αυτού του δέλτα στην πλευρά του δέκτη. Αντίστοιχα, το κόστος και ο χρόνος υλοποίησης μειώνονται και η αξιοπιστία της ολοκλήρωσης αυξάνεται. Ταυτόχρονα, καθορίστηκε ότι σχεδόν όλες οι αλλαγές στο SAP HR συμβαίνουν εντός ορίζοντα τριών μηνών πριν από την τρέχουσα ημερομηνία. Έτσι, αποφασίστηκε να επιλεγεί η ημερήσια πλήρης λήψη δεδομένων από το SAP HR N μήνες πριν από την τρέχουσα ημερομηνία και η μηνιαία πλήρης λήψη. Η παράμετρος N εξαρτάται από τον συγκεκριμένο πίνακα
και κυμαίνεται από 1 έως 15.

Προτάθηκε το ακόλουθο σχήμα για την εξαγωγή δεδομένων:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Το εξωτερικό σύστημα δημιουργεί ένα αίτημα και το στέλνει στο SAP HCM, όπου αυτό το αίτημα ελέγχεται για την πληρότητα των δεδομένων και τα δικαιώματα πρόσβασης σε πίνακες. Εάν ο έλεγχος είναι επιτυχής, το SAP HCM εκτελεί ένα πρόγραμμα που συλλέγει τα απαραίτητα δεδομένα και τα μεταφέρει στη λύση ενσωμάτωσης Fuse. Το Fuse καθορίζει το απαιτούμενο θέμα στον Κάφκα και μεταφέρει τα δεδομένα εκεί. Στη συνέχεια, τα δεδομένα από τον Κάφκα μεταφέρονται στο Stage Area GP.

Σε αυτήν την αλυσίδα, μας ενδιαφέρει το θέμα της εξαγωγής δεδομένων από το SAP HCM. Ας το δούμε πιο αναλυτικά.

Διάγραμμα αλληλεπίδρασης SAP HCM-FUSE.

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Το εξωτερικό σύστημα καθορίζει την ώρα της τελευταίας επιτυχούς αίτησης στο SAP.
Η διαδικασία μπορεί να ξεκινήσει με ένα χρονόμετρο ή άλλο συμβάν, συμπεριλαμβανομένου του καθορισμού χρονικού ορίου για την αναμονή απάντησης με δεδομένα από το SAP και την εκκίνηση ενός αιτήματος επανάληψης. Στη συνέχεια δημιουργεί ένα αίτημα delta και το στέλνει στο SAP.

Τα δεδομένα αιτήματος αποστέλλονται στο σώμα σε μορφή json.
Μέθοδος http: POST.
Παράδειγμα αιτήματος:

Εξαγωγή δεδομένων από το SAP HCM σε αποθήκες δεδομένων εκτός SAP

Η υπηρεσία SAP παρακολουθεί το αίτημα για πληρότητα, συμμόρφωση με την τρέχουσα δομή SAP και διαθεσιμότητα άδειας πρόσβασης στον ζητούμενο πίνακα.

Σε περίπτωση σφαλμάτων, η υπηρεσία επιστρέφει μια απάντηση με τον κατάλληλο κωδικό και περιγραφή. Εάν ο έλεγχος είναι επιτυχής, δημιουργεί μια διαδικασία παρασκηνίου για τη δημιουργία ενός δείγματος, δημιουργεί και επιστρέφει συγχρονισμένα ένα μοναδικό αναγνωριστικό περιόδου σύνδεσης.

Σε περίπτωση σφάλματος, το εξωτερικό σύστημα το καταγράφει στο αρχείο καταγραφής. Σε περίπτωση επιτυχούς απάντησης, μεταδίδει το αναγνωριστικό περιόδου σύνδεσης και το όνομα του πίνακα για τον οποίο υποβλήθηκε το αίτημα.

Το εξωτερικό σύστημα καταχωρεί την τρέχουσα περίοδο λειτουργίας ως ανοιχτή. Εάν υπάρχουν άλλες συνεδρίες για αυτόν τον πίνακα, αυτές κλείνουν με μια προειδοποίηση καταγεγραμμένη.

Η εργασία παρασκηνίου SAP δημιουργεί έναν δρομέα με βάση τις καθορισμένες παραμέτρους και ένα πακέτο δεδομένων του καθορισμένου μεγέθους. Μέγεθος παρτίδας είναι ο μέγιστος αριθμός εγγραφών που διαβάζει μια διεργασία από τη βάση δεδομένων. Από προεπιλογή, θεωρείται ότι είναι ίσο με 2000. Εάν υπάρχουν περισσότερες εγγραφές στο δείγμα της βάσης δεδομένων από το μέγεθος του χρησιμοποιούμενου πακέτου, μετά τη μετάδοση του πρώτου πακέτου, το επόμενο μπλοκ σχηματίζεται με την αντίστοιχη μετατόπιση και τον αυξημένο αριθμό πακέτου. Οι αριθμοί αυξάνονται κατά 1 και αποστέλλονται αυστηρά διαδοχικά.

Στη συνέχεια, το SAP μεταβιβάζει το πακέτο ως είσοδο στην υπηρεσία web του εξωτερικού συστήματος. Και το σύστημα εκτελεί ελέγχους στο εισερχόμενο πακέτο. Μια συνεδρία με το ληφθέν αναγνωριστικό πρέπει να είναι καταχωρημένη στο σύστημα και να είναι σε κατάσταση ανοιχτής. Εάν ο αριθμός πακέτου > 1, το σύστημα θα πρέπει να καταγράψει την επιτυχή παραλαβή του προηγούμενου πακέτου (package_id-1).

Εάν ο έλεγχος είναι επιτυχής, το εξωτερικό σύστημα αναλύει και αποθηκεύει τα δεδομένα του πίνακα.

Επιπλέον, εάν υπάρχει η τελική σημαία στο πακέτο και η σειριοποίηση ήταν επιτυχής, η ενότητα ενσωμάτωσης ειδοποιείται για την επιτυχή ολοκλήρωση της επεξεργασίας της περιόδου σύνδεσης και η λειτουργική μονάδα ενημερώνει την κατάσταση της περιόδου σύνδεσης.

Σε περίπτωση σφάλματος ελέγχου/ανάλυσης, το σφάλμα καταγράφεται και τα πακέτα για αυτήν τη συνεδρία θα απορριφθούν από το εξωτερικό σύστημα.

Ομοίως, στην αντίθετη περίπτωση, όταν το εξωτερικό σύστημα επιστρέφει ένα σφάλμα, καταγράφεται και η μετάδοση πακέτων σταματά.

Για να ζητήσετε δεδομένα από την πλευρά SAP HСM, εφαρμόστηκε μια υπηρεσία ενοποίησης. Η υπηρεσία υλοποιείται στο πλαίσιο ICF (SAP Internet Communication Framework - help.sap.com/viewer/6da7259a6c4b1014b7d5e759cc76fd22/7.01.22/en-US/488d6e0ea6ed72d5e10000000a42189c.html). Σας επιτρέπει να αναζητάτε δεδομένα από το σύστημα SAP HCM χρησιμοποιώντας συγκεκριμένους πίνακες. Κατά τη δημιουργία ενός αιτήματος δεδομένων, είναι δυνατό να καθοριστεί μια λίστα με συγκεκριμένα πεδία και παραμέτρους φιλτραρίσματος προκειμένου να ληφθούν τα απαραίτητα δεδομένα. Ταυτόχρονα, η υλοποίηση της υπηρεσίας δεν συνεπάγεται καμία επιχειρηματική λογική. Αλγόριθμοι υπολογισμού δέλτα, παραμέτρων ερωτήματος, παρακολούθησης ακεραιότητας κ.λπ. υλοποιούνται επίσης στο πλάι του εξωτερικού συστήματος.

Αυτός ο μηχανισμός σας επιτρέπει να συλλέγετε και να μεταδίδετε όλα τα απαραίτητα δεδομένα σε λίγες ώρες. Αυτή η ταχύτητα είναι στα όρια του αποδεκτού, επομένως θεωρούμε αυτή τη λύση ως προσωρινή, η οποία κατέστησε δυνατή την κάλυψη της ανάγκης για ένα εργαλείο εξαγωγής στο έργο.
Στην εικόνα στόχο, για την επίλυση του προβλήματος της εξαγωγής δεδομένων, διερευνώνται επιλογές για τη χρήση συστημάτων CDC όπως το Oracle Golden Gate ή εργαλεία ETL όπως το SAP DS.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο