SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Ma'lumki, SAP tranzaksiya ma'lumotlarini saqlash va tahlil va hisobot tizimlarida ushbu ma'lumotlarni qayta ishlash uchun to'liq dasturiy ta'minotni taklif etadi. Xususan, SAP Business Warehouse (SAP BW) platformasi keng texnik imkoniyatlarga ega maʼlumotlarni saqlash va tahlil qilish uchun asboblar toʻplamidir. Barcha ob'ektiv afzalliklariga qaramay, SAP BW tizimi bitta muhim kamchilikka ega. Bu ma'lumotlarni saqlash va qayta ishlashning yuqori xarajati, ayniqsa Hana-da bulutli SAP BW-dan foydalanganda seziladi.

Xotira sifatida SAP bo'lmagan va afzalroq OpenSource mahsulotidan foydalanishni boshlasangiz nima bo'ladi? Biz X5 Chakana savdo guruhida GreenPlumni tanladik. Bu, albatta, xarajat masalasini hal qiladi, lekin shu bilan birga, SAP BW-dan foydalanganda deyarli sukut bo'yicha hal qilingan muammolar darhol paydo bo'ladi.

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Xususan, asosan SAP yechimlari bo'lgan manba tizimlaridan ma'lumotlarni qanday olish mumkin?

HR Metrics bu muammoni hal qilish uchun zarur bo'lgan birinchi loyiha edi. Bizning maqsadimiz HR ma'lumotlari omborini yaratish va xodimlar bilan ishlash sohasida analitik hisobotlarni yaratish edi. Bunday holda, ma'lumotlarning asosiy manbai SAP HCM tranzaksiya tizimi bo'lib, unda barcha xodimlar, tashkiliy va ish haqi faoliyati amalga oshiriladi.

Ma'lumotlarni chiqarish

SAP BW-da SAP tizimlari uchun standart ma'lumotlar ekstraktorlari mavjud. Ushbu ekstraktorlar avtomatik ravishda kerakli ma'lumotlarni to'plashi, uning yaxlitligini kuzatishi va o'zgarishlar deltalarini aniqlashi mumkin. Bu erda, masalan, 0EMPLOYEE_ATTR xodim atributlari uchun standart ma'lumotlar manbai:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Undan bitta xodim uchun ma'lumotlarni olish natijasi:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Agar kerak bo'lsa, bunday ekstraktor o'z ehtiyojlaringizga mos ravishda o'zgartirilishi yoki o'zingizning ekstraktoringiz yaratilishi mumkin.

Ulardan qayta foydalanish imkoniyati paydo bo'lgan birinchi g'oya edi. Afsuski, bu imkonsiz vazifa bo'lib chiqdi. Mantiqning aksariyati SAP BW tomonida amalga oshiriladi va SAP BW dan manbadagi ekstraktorni og'riqsiz ajratish mumkin emas edi.

SAP tizimlaridan ma'lumotlarni olish uchun o'z mexanizmimizni ishlab chiqishimiz kerakligi ayon bo'ldi.

SAP HCM da ma'lumotlarni saqlash tuzilishi

Bunday mexanizmga qo'yiladigan talablarni tushunish uchun birinchi navbatda bizga qanday ma'lumotlar kerakligini aniqlashimiz kerak.

SAP HCM-dagi aksariyat ma'lumotlar tekis SQL jadvallarida saqlanadi. Ushbu ma'lumotlarga asoslanib, SAP ilovalari tashkiliy tuzilmalarni, xodimlarni va boshqa HR ma'lumotlarini foydalanuvchiga ingl. Masalan, SAP HCMda tashkiliy tuzilma shunday ko'rinadi:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Jismoniy jihatdan bunday daraxt ikkita jadvalda saqlanadi - hrp1000 ob'ektlarda va hrp1001da bu ob'ektlar orasidagi bog'lanishlar.

"1-bo'lim" va "1-ofis" ob'ektlari:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Ob'ektlar o'rtasidagi munosabatlar:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Har ikkala turdagi ob'ektlar va ular orasidagi bog'lanish turlari juda ko'p bo'lishi mumkin. Ob'ektlar o'rtasida ham standart ulanishlar, ham shaxsiy ehtiyojlaringiz uchun moslashtirilganlar mavjud. Misol uchun, tashkiliy birlik va to'liq vaqtli lavozim o'rtasidagi standart B012 munosabatlari bo'lim boshlig'ini ko'rsatadi.

SAP-da menejer displeyi:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Ma'lumotlar bazasi jadvalida saqlash:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Xodimlar haqidagi ma'lumotlar pa * jadvallarida saqlanadi. Masalan, xodim uchun kadrlar voqealari to'g'risidagi ma'lumotlar pa0000 jadvalida saqlanadi

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Biz GreenPlum "xom" ma'lumotlarni olishga qaror qildik, ya'ni. ularni faqat SAP jadvallaridan nusxa ko'chiring. Va to'g'ridan-to'g'ri GreenPlum-da ular qayta ishlanadi va jismoniy ob'ektlarga (masalan, Departament yoki Xodim) va ko'rsatkichlarga (masalan, o'rtacha xodimlar soni) aylantiriladi.

70 ga yaqin jadvallar aniqlandi, ulardan ma'lumotlar GreenPlum-ga o'tkazilishi kerak. Shundan so'ng biz ushbu ma'lumotlarni uzatish usulini ishlab chiqishni boshladik.

SAP juda ko'p sonli integratsiya mexanizmlarini taklif qiladi. Ammo eng oson yo'li - litsenziyalash cheklovlari tufayli ma'lumotlar bazasiga to'g'ridan-to'g'ri kirish taqiqlangan. Shunday qilib, barcha integratsiya oqimlari dastur serveri darajasida amalga oshirilishi kerak.
Keyingi muammo SAP ma'lumotlar bazasida o'chirilgan yozuvlar haqida ma'lumotlarning etishmasligi edi. Ma'lumotlar bazasidagi qatorni o'chirsangiz, u jismonan o'chiriladi. Bular. o'zgarish vaqtiga asoslangan o'zgarish deltasining shakllanishi mumkin emas edi.

Albatta, SAP HCM ma'lumotlar o'zgarishlarini qayd etish mexanizmlariga ega. Masalan, keyinchalik qabul qiluvchi tizimlarga o'tkazish uchun har qanday o'zgarishlarni qayd etadigan o'zgartirish ko'rsatkichlari mavjud va ular asosida Idoc (tashqi tizimlarga o'tkazish uchun ob'ekt) shakllanadi.

Xodimlar soni 0302 bo'lgan xodim uchun 1251445 ma'lumot turini o'zgartirish uchun IDoc misoli:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Yoki DBTABLOG jadvalidagi ma'lumotlar o'zgarishi jurnallarini saqlash.

Hrp53216375 jadvalidan QK1000 kaliti bilan yozuvni o'chirish jurnaliga misol:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Ammo bu mexanizmlar barcha kerakli ma'lumotlar uchun mavjud emas va ularni dastur serveri darajasida qayta ishlash juda ko'p resurslarni iste'mol qilishi mumkin. Shuning uchun, barcha kerakli jadvallarda tizimga kirishni ommaviy ravishda yoqish tizim ish faoliyatini sezilarli darajada yomonlashishiga olib kelishi mumkin.

Keyingi asosiy muammo klasterli jadvallar edi. SAP HCM ning RDBMS versiyasida vaqtni hisoblash va ish haqi to'lash ma'lumotlari har bir hisob uchun har bir xodim uchun mantiqiy jadvallar to'plami sifatida saqlanadi. Ushbu mantiqiy jadvallar pcl2 jadvalida ikkilik ma'lumotlar sifatida saqlanadi.

Ish haqi klasteri:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Klasterlangan jadvallardan olingan ma'lumotlarni SQL buyrug'i sifatida ko'rib chiqish mumkin emas, lekin SAP HCM makrolari yoki maxsus funktsiya modullaridan foydalanishni talab qiladi. Shunga ko'ra, bunday jadvallarni o'qish tezligi ancha past bo'ladi. Boshqa tomondan, bunday klasterlar oyiga bir marta zarur bo'lgan ma'lumotlarni saqlaydi - yakuniy ish haqi va vaqtni hisoblash. Shunday qilib, bu holda tezlik unchalik muhim emas.

Ma'lumotlar o'zgarishi deltasini shakllantirish variantlarini baholab, biz to'liq tushirish variantini ham ko'rib chiqishga qaror qildik. Tizimlar o'rtasida har kuni o'zgarmagan gigabayt ma'lumotlarni uzatish varianti yaxshi ko'rinmasligi mumkin. Shu bilan birga, u bir qator afzalliklarga ham ega - deltani manba tomonda amalga oshirish va ushbu deltani qabul qiluvchi tomonda joylashtirishni amalga oshirishning hojati yo'q. Shunga ko'ra, xarajatlar va amalga oshirish vaqti qisqaradi va integratsiyaning ishonchliligi oshadi. Shu bilan birga, SAP HR-dagi deyarli barcha o'zgarishlar joriy sanadan uch oy oldin ufqda sodir bo'lishi aniqlandi. Shunday qilib, joriy sanadan N oy oldin SAP HR-dan ma'lumotlarni kunlik to'liq yuklab olishni va oylik to'liq yuklab olishni tanlashga qaror qilindi. N parametri aniq jadvalga bog'liq
va 1 dan 15 gacha.

Ma'lumotlarni olish uchun quyidagi sxema taklif qilindi:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Tashqi tizim so'rovni yaratadi va uni SAP HCM ga yuboradi, u erda ushbu so'rov ma'lumotlarning to'liqligi va jadvallarga kirish uchun ruxsatlar uchun tekshiriladi. Agar tekshirish muvaffaqiyatli bo'lsa, SAP HCM kerakli ma'lumotlarni to'playdigan va uni Fuse integratsiya yechimiga o'tkazadigan dasturni ishga tushiradi. Fuse Kafkada kerakli mavzuni aniqlaydi va u yerga ma'lumotlarni uzatadi. Keyinchalik, Kafkadan olingan ma'lumotlar Stage Area GP ga uzatiladi.

Ushbu zanjirda biz SAP HCM dan ma'lumotlarni olish masalasiga qiziqamiz. Keling, buni batafsil ko'rib chiqaylik.

SAP HCM-FUSE o'zaro ta'sir diagrammasi.

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

Tashqi tizim SAPga so'nggi muvaffaqiyatli so'rovning vaqtini belgilaydi.
Jarayon taymer yoki boshqa hodisa orqali boshlanishi mumkin, shu jumladan SAP ma'lumotlari bilan javobni kutish va takroriy so'rovni boshlash uchun vaqt tugashini belgilash. Keyin u delta so'rovini yaratadi va uni SAPga yuboradi.

So'rov ma'lumotlari json formatida jismga yuboriladi.
Usul http: POST.
Misol so'rovi:

SAP HCM dan SAP bo'lmagan ma'lumotlar omborlariga ma'lumotlarni chiqarish

SAP xizmati so'rovning to'liqligi, joriy SAP tuzilmasiga muvofiqligi va so'ralgan jadvalga kirish uchun ruxsat mavjudligini nazorat qiladi.

Xatolar bo'lsa, xizmat tegishli kod va tavsif bilan javob qaytaradi. Agar boshqaruv muvaffaqiyatli bo'lsa, u namuna yaratish uchun fon jarayonini yaratadi, noyob sessiya identifikatorini yaratadi va sinxron tarzda qaytaradi.

Xato bo'lsa, tashqi tizim uni jurnalga yozib qo'yadi. Muvaffaqiyatli javob bo'lsa, u seans identifikatorini va so'rov qilingan jadval nomini uzatadi.

Tashqi tizim joriy seansni ochiq deb qayd etadi. Agar ushbu jadval uchun boshqa seanslar mavjud bo'lsa, ular ogohlantirish bilan yopiladi.

SAP fon ishi belgilangan parametrlar va belgilangan o'lchamdagi ma'lumotlar paketi asosida kursorni yaratadi. Partiya hajmi - jarayon ma'lumotlar bazasidan o'qiydigan yozuvlarning maksimal soni. Odatiy bo'lib, u 2000 ga teng deb qabul qilinadi. Agar ma'lumotlar bazasi namunasida foydalanilgan paket hajmidan ko'proq yozuvlar mavjud bo'lsa, birinchi paketni uzatgandan so'ng, keyingi blok mos keladigan ofset va oshirilgan paket raqami bilan hosil bo'ladi. Raqamlar 1 ga oshiriladi va qat'iy ketma-ket yuboriladi.

Keyinchalik, SAP paketni tashqi tizimning veb-xizmatiga kirish sifatida uzatadi. Va tizim kiruvchi paketni boshqarishni amalga oshiradi. Qabul qilingan identifikatorli sessiya tizimda ro'yxatdan o'tgan bo'lishi va u ochiq holatda bo'lishi kerak. Agar paket raqami > 1 bo'lsa, tizim oldingi paketning muvaffaqiyatli qabul qilinishini qayd etishi kerak (paket_id-1).

Agar boshqaruv muvaffaqiyatli bo'lsa, tashqi tizim jadval ma'lumotlarini tahlil qiladi va saqlaydi.

Bundan tashqari, agar paketda yakuniy bayroq mavjud bo'lsa va ketma-ketlashtirish muvaffaqiyatli bo'lsa, integratsiya moduliga seansni qayta ishlash muvaffaqiyatli yakunlanganligi haqida xabar beriladi va modul seans holatini yangilaydi.

Nazorat/tahlil xatosi bo'lsa, xato qayd qilinadi va ushbu seans uchun paketlar tashqi tizim tomonidan rad etiladi.

Xuddi shunday, qarama-qarshi holatda, tashqi tizim xatoni qaytarsa, u jurnalga yoziladi va paketni uzatish to'xtaydi.

SAP HSM tomonida ma'lumotlarni so'rash uchun integratsiya xizmati joriy etildi. Xizmat ICF doirasida amalga oshiriladi (SAP Internet Communication Framework - help.sap.com/viewer/6da7259a6c4b1014b7d5e759cc76fd22/7.01.22/en-US/488d6e0ea6ed72d5e10000000a42189c.html). Bu sizga maxsus jadvallar yordamida SAP HCM tizimidan ma'lumotlarni so'rash imkonini beradi. Ma'lumotlar so'rovini yaratishda kerakli ma'lumotlarni olish uchun muayyan maydonlar va filtrlash parametrlari ro'yxatini belgilash mumkin. Shu bilan birga, xizmatni amalga oshirish hech qanday biznes mantig'ini nazarda tutmaydi. Deltani hisoblash algoritmlari, so'rovlar parametrlari, yaxlitlik monitoringi va boshqalar tashqi tizim tomonida ham amalga oshiriladi.

Ushbu mexanizm bir necha soat ichida barcha kerakli ma'lumotlarni to'plash va uzatish imkonini beradi. Ushbu tezlik maqbul chegarada, shuning uchun biz ushbu yechimni vaqtinchalik deb hisoblaymiz, bu esa loyihada qazib olish vositasiga bo'lgan ehtiyojni to'ldirishga imkon berdi.
Maqsadli rasmda ma'lumotlarni olish muammosini hal qilish uchun Oracle Golden Gate kabi CDC tizimlari yoki SAP DS kabi ETL vositalaridan foydalanish imkoniyatlari o'rganilmoqda.

Manba: www.habr.com

a Izoh qo'shish