SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Bildiyiniz kimi, SAP həm tranzaksiya məlumatlarının saxlanması, həm də təhlil və hesabat sistemlərində bu məlumatların işlənməsi üçün proqram təminatının tam çeşidini təklif edir. Xüsusilə, SAP Business Warehouse (SAP BW) platforması geniş texniki imkanlara malik məlumatların saxlanması və təhlili üçün alətlər dəstidir. Bütün obyektiv üstünlükləri ilə SAP BW sisteminin bir əhəmiyyətli çatışmazlığı var. Bu, Hana-da bulud əsaslı SAP BW istifadə edərkən xüsusilə nəzərə çarpan məlumatların saxlanması və emalının yüksək qiymətidir.

Bəs bəzi qeyri-SAP və tercihen OpenSource məhsulunu depo kimi istifadə etməyə başlasanız nə olacaq? Biz X5 Retail Group-da GreenPlum-u seçdik. Bu, əlbəttə ki, xərc məsələsini həll edir, lakin eyni zamanda, SAP BW istifadə edərkən, demək olar ki, standart olaraq həll edildiyi dərhal suallar yaranır.

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Xüsusilə, əsasən SAP həlləri olan mənbə sistemlərindən məlumatları necə götürmək olar?

"HR Metrics" bu problemi həll etmək üçün lazım olan ilk layihə idi. Məqsədimiz HR məlumatlarının anbarını yaratmaq və işçilərlə iş istiqamətində analitik hesabatların qurulması idi. Eyni zamanda, əsas məlumat mənbəyi bütün kadr, təşkilati və əmək haqqı fəaliyyətinin saxlanıldığı SAP HCM əməliyyat sistemidir.

Məlumatların çıxarılması

SAP sistemləri üçün SAP BW standart məlumat çıxaranlara malikdir. Bu ekstraktorlar avtomatik olaraq lazımi məlumatları toplaya, onların bütövlüyünü izləyə və dəyişiklik deltalarını təyin edə bilər. Burada, məsələn, 0EMPLOYEE_ATTR işçi atributları üçün standart məlumat mənbəyidir:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Ondan bir işçi üçün məlumatların çıxarılmasının nəticəsi:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Lazım gələrsə, belə bir ekstraktor öz tələblərinizə uyğun olaraq dəyişdirilə bilər və ya öz ekstraktorunuzu yarada bilərsiniz.

İlk fikir onlardan təkrar istifadə etmək idi. Təəssüf ki, bu mümkün olmayan bir iş oldu. Məntiqin çox hissəsi SAP BW tərəfində həyata keçirilir və mənbədəki ekstraktoru SAP BW-dən ağrısız şəkildə ayırmaq mümkün deyildi.

Aydın oldu ki, SAP sistemlərindən məlumatların çıxarılması üçün öz mexanizmimizi inkişaf etdirmək lazımdır.

SAP HCM-də məlumat saxlama strukturu

Belə bir mexanizmə olan tələbləri başa düşmək üçün ilk növbədə hansı növ məlumatlara ehtiyacımız olduğunu müəyyən etməliyik.

SAP HCM-dəki məlumatların əksəriyyəti düz SQL cədvəllərində saxlanılır. Bu məlumatlara əsaslanaraq, SAP proqramları təşkilati strukturları, işçiləri və digər HR məlumatlarını istifadəçiyə vizuallaşdırır. Məsələn, SAP HCM-də təşkilati struktur belə görünür:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Fiziki olaraq, belə bir ağac iki cədvəldə saxlanılır - hrp1000 obyektlərində və hrp1001-də bu obyektlər arasındakı əlaqələr.

"1-ci şöbə" və "1-ci şöbə" obyektləri:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Obyektlər arasında əlaqə:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Çox sayda obyekt növləri, eləcə də onların arasında əlaqə növləri ola bilər. Obyektlər arasında həm standart əlaqələr, həm də öz xüsusi ehtiyaclarınız üçün fərdiləşdirilmiş bağlantılar var. Məsələn, təşkilat bölməsi ilə işçi vəzifəsi arasındakı standart əlaqə B012 şöbə müdirini göstərir.

SAP-da menecer göstərilir:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

DB cədvəlində saxlama:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

İşçi məlumatları pa* cədvəllərində saxlanılır. Məsələn, bir işçi üçün kadr fəaliyyəti haqqında məlumatlar pa0000 cədvəlində saxlanılır

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

GreenPlum-un "xam" məlumatları toplayacağına qərar verdik, yəni. sadəcə onları SAP cədvəllərindən köçürün. Və artıq birbaşa GreenPlum-da onlar emal olunacaq və fiziki obyektlərə (məsələn, Departament və ya İşçi) və ölçülərə (məsələn, orta işçi sayına) çevriləcək.

Məlumatların GreenPlum-a ötürülməli olduğu 70-ə yaxın cədvəl müəyyən edilmişdir. Bundan sonra biz bu məlumatları ötürmək üçün bir yol hazırlamağa başladıq.

SAP kifayət qədər çox sayda inteqrasiya mexanizmləri təklif edir. Amma ən asan yol odur ki, lisenziya məhdudiyyətlərinə görə verilənlər bazasına birbaşa giriş qadağandır. Beləliklə, bütün inteqrasiya axınları proqram serveri səviyyəsində həyata keçirilməlidir.
Növbəti problem SAP verilənlər bazasında silinmiş qeydlər haqqında məlumatların olmaması idi. Verilənlər bazasında bir sıra sildiyiniz zaman o, fiziki olaraq silinir. Bunlar. dəyişmə zamanı dəyişikliyin deltasının formalaşması mümkün deyildi.

Əlbəttə ki, SAP HCM məlumat dəyişikliklərini düzəltmək üçün mexanizmlərə malikdir. Məsələn, alıcı sistemlərə sonrakı köçürmə üçün hər hansı bir dəyişikliyi düzəldən və onun əsasında Idoc-un (xarici sistemlərə ötürülməsi üçün obyekt) formalaşan dəyişiklik göstəriciləri var.

Kadr nömrəsi 0302 olan bir işçi üçün 1251445 məlumat tipini dəyişdirmək üçün IDoc nümunəsi:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Və ya DBTABLOG cədvəlində məlumat dəyişikliklərini qeyd edin.

hrp53216375 cədvəlindən QK1000 açarı ilə qeydi silmək üçün jurnalın nümunəsi:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Lakin bu mexanizmlər bütün lazımi məlumatlar üçün mövcud deyil və onların tətbiqi server səviyyəsində işlənməsi kifayət qədər çox resurs sərf edə bilər. Buna görə də, bütün lazımi cədvəllərə girişin kütləvi şəkildə daxil edilməsi sistem performansının nəzərəçarpacaq dərəcədə pisləşməsinə səbəb ola bilər.

Növbəti böyük problem qruplaşdırılmış masalar idi. SAP HCM-nin RDBMS versiyasında vaxtın qiymətləndirilməsi və əmək haqqı məlumatları hər bir işçiyə düşən məntiqi cədvəllər toplusu kimi saxlanılır. Bu məntiqi cədvəllər pcl2 cədvəlində ikili verilənlər kimi saxlanılır.

Əmək haqqı klasteri:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Kümelənmiş cədvəllərdən alınan məlumatları SQL əmri kimi oxumaq olmaz, lakin SAP HCM makrolarından və ya xüsusi funksiya modullarından istifadə tələb olunur. Müvafiq olaraq, belə cədvəllərin oxuma sürəti kifayət qədər aşağı olacaq. Digər tərəfdən, bu cür klasterlər ayda yalnız bir dəfə lazım olan məlumatları - yekun əmək haqqı və vaxt təxminlərini saxlayır. Beləliklə, bu vəziyyətdə sürət o qədər də kritik deyil.

Məlumat dəyişikliyi deltasının formalaşması ilə variantları qiymətləndirərək, biz də tam yükləmə ilə seçimi nəzərdən keçirmək qərarına gəldik. Hər gün sistemlər arasında gigabaytlarla dəyişməz məlumat ötürmə seçimi gözəl görünə bilməz. Bununla belə, onun bir sıra üstünlükləri də var - həm mənbə tərəfində deltanın həyata keçirilməsinə, həm də bu deltanın qəbuledici tərəfə daxil edilməsini həyata keçirməyə ehtiyac yoxdur. Müvafiq olaraq, xərc və icra müddəti azalır, inteqrasiyanın etibarlılığı artır. Eyni zamanda, SAP HR-də demək olar ki, bütün dəyişikliklərin cari tarixdən üç ay əvvəl üfüqdə baş verdiyi müəyyən edilmişdir. Beləliklə, cari tarixdən N ay əvvəl SAP HR-dən gündəlik tam məlumat yükləməsini və aylıq tam yükləməni dayandırmaq qərara alındı. N parametri xüsusi cədvəldən asılıdır
və 1 ilə 15 arasında dəyişir.

Məlumatların çıxarılması üçün aşağıdakı sxem təklif edilmişdir:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Xarici sistem sorğu yaradır və onu SAP HCM-ə göndərir, burada bu sorğu verilənlərin tamlığı və cədvəllərə daxil olmaq üçün icazələr yoxlanılır. Müvəffəqiyyətli yoxlama halında, SAP HCM lazımi məlumatları toplayan və Fuse inteqrasiya həllinə ötürən bir proqramı işə salır. Fuse Kafkada tələb olunan mövzunu müəyyənləşdirir və məlumatları oraya ötürür. Bundan əlavə, Kafkadan alınan məlumatlar Stage Area GP-yə ötürülür.

Bu zəncirdə biz SAP HCM-dən məlumatların çıxarılması məsələsi ilə maraqlanırıq. Onun üzərində daha ətraflı dayanaq.

SAP HCM-FUSE qarşılıqlı diaqramı.

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

Xarici sistem SAP-a son uğurlu sorğunun vaxtını müəyyən edir.
Proses taymer və ya digər hadisə ilə, o cümlədən SAP-dan verilənlərlə cavab gözləmək və təkrar cəhd sorğusuna başlamaq üçün vaxt aşımı təyin etməklə başlaya bilər. Sonra bir delta sorğu yaradır və onu SAP-a göndərir.

Sorğu məlumatları json formatında orqana ötürülür.
http metodu: POST.
Sorğu nümunəsi:

SAP HCM-dən qeyri-SAP məlumat anbarlarına məlumatların çıxarılması

SAP xidməti tamlıq sorğusuna, mövcud SAP strukturuna uyğunluğa və tələb olunan cədvələ daxil olmaq üçün icazənin mövcudluğuna nəzarət edir.

Səhvlər olduqda, xidmət müvafiq kod və təsviri olan cavab qaytarır. Uğurlu nəzarət halında, o, seçmə üçün fon prosesi yaradır, unikal sessiya identifikatorunu yaradır və sinxron şəkildə qaytarır.

Xarici sistem xəta baş verdikdə xətanı qeyd edir. Uğurlu cavab halında, o, sessiya id-sini və sorğunun edildiyi cədvəlin adını keçir.

Xarici sistem cari sessiyanı açıq kimi qeyd edir. Bu cədvəldə başqa seanslar varsa, onlar qeyd edilmiş xəbərdarlıqla bağlanır.

SAP fon işi müəyyən parametrlərə malik kursor və müəyyən edilmiş ölçüdə məlumat paketi yaradır. Partiya ölçüsü - prosesin verilənlər bazasından oxuduğu qeydlərin maksimum sayı. Varsayılan dəyər 2000-dir. Əgər verilənlər bazası seçimində istifadə olunan paket ölçüsündən daha çox qeyd varsa, birinci paketin ötürülməsindən sonra müvafiq ofset və artan paket nömrəsi ilə növbəti blok formalaşır. Nömrələr 1 artırılır və ciddi şəkildə ardıcıl olaraq göndərilir.

Sonra, SAP paketi xarici sistemin veb xidmətinin girişinə ötürür. Və daxil olan paketə nəzarəti həyata keçirən sistemdir. Alınan id ilə sessiya sistemdə qeydiyyatdan keçməli və açıq statusda olmalıdır. Paket nömrəsi > 1 olarsa, sistem əvvəlki paketin uğurlu alınmasını qeyd etməlidir (paket_id-1).

Uğurlu nəzarət halında, xarici sistem cədvəl məlumatlarını təhlil edir və saxlayır.

Əlavə olaraq, paketdə yekun bayraq varsa və seriallaşdırma uğurlu olarsa, inteqrasiya moduluna sessiyanın işlənməsinin uğurla başa çatdığı və modulun sessiya statusunu yenilədiyi bildirilir.

Nəzarət/analiz xətası baş verərsə, xəta qeyd olunur və bu sessiya üçün paketlər xarici sistem tərəfindən rədd ediləcək.

Eynilə, əks halda, xarici sistem xəta qaytardıqda, o, qeyd olunur və paketlərin ötürülməsi dayandırılır.

SAP HCM tərəfində məlumat tələb etmək üçün inteqrasiya xidməti həyata keçirildi. Xidmət ICF çərçivəsində həyata keçirilir (SAP Internet Communication Framework - help.sap.com/viewer/6da7259a6c4b1014b7d5e759cc76fd22/7.01.22/en-US/488d6e0ea6ed72d5e10000000a42189c.html). Bu, xüsusi cədvəllər üçün SAP HCM sistemindən məlumatları sorğulamağa imkan verir. Məlumat sorğusu formalaşdırarkən, lazımi məlumatları əldə etmək üçün xüsusi sahələrin siyahısını və filtrləmə parametrlərini təyin etmək mümkündür. Eyni zamanda, xidmətin həyata keçirilməsi heç bir biznes məntiqini nəzərdə tutmur. Xarici sistemin tərəfində də deltanın hesablanması alqoritmləri, sorğu parametrləri, tamlığa nəzarət və s. həyata keçirilir.

Bu mexanizm bir neçə saat ərzində bütün lazımi məlumatları toplamaq və ötürmək imkanı verir. Bu sürət məqbul ərəfəsindədir, buna görə də bu qərar bizim tərəfimizdən müvəqqəti olaraq qəbul edilir və bu, layihədə hasilat alətinə olan ehtiyacı aradan qaldırmağa imkan verdi.
Hədəf şəkildə, məlumatların çıxarılması problemini həll etmək üçün Oracle Golden Gate kimi CDC sistemlərindən və ya SAP DS kimi ETL alətlərindən istifadə variantları hazırlanır.

Mənbə: www.habr.com

Добавить комментарий