SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Белгилүү болгондой, SAP транзакциялык маалыматтарды сактоо үчүн да, бул маалыматтарды талдоо жана отчеттуулук системаларында иштетүү үчүн да программалык камсыздоонун толук спектрин сунуштайт. Атап айтканда, SAP Business Warehouse (SAP BW) платформасы кеңири техникалык мүмкүнчүлүктөрү бар маалыматтарды сактоо жана талдоо үчүн курал. Бардык объективдүү артыкчылыктарга карабастан, SAP BW тутумунун бир олуттуу кемчилиги бар. Бул Hana булут негизделген SAP BW колдонууда өзгөчө байкалат, сактоо жана маалыматтарды иштеп чыгуу үчүн жогорку наркы болуп саналат.

Эгер сиз SAP эмес жана OpenSource продуктуну сактагыч катары колдоно баштасаңызчы? Биз X5 Retail Group компаниясында GreenPlumди тандадык. Бул, албетте, нарк маселесин чечет, бирок ошол эле учурда, SAP BW колдонууда дээрлик демейки боюнча чечилген маселелер дароо пайда болот.

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Атап айтканда, негизинен SAP чечимдери болгон булак системаларынан маалыматтарды кантип алуу керек?

HR Metrics бул көйгөйдү чечүү үчүн зарыл болгон биринчи долбоор болгон. Биздин максат HR маалыматтарынын репозиторийин түзүү жана кызматкерлер менен иштөө жаатында аналитикалык отчеттуулукту түзүү болчу. Бул учурда, маалыматтардын негизги булагы SAP HCM транзакциялык системасы болуп саналат, анда бардык персоналдык, уюштуруучулук жана эмгек акы боюнча иш-чаралар жүргүзүлөт.

Маалыматтарды чыгаруу

SAP BWде SAP системалары үчүн стандарттуу маалымат чыгаруучу бар. Бул экстракторлор керектүү маалыматтарды автоматтык түрдө чогултуп, анын бүтүндүгүн көзөмөлдөп, дельталардын өзгөрүшүн аныктай алат. Бул жерде, мисалы, 0EMPLOYEE_ATTR кызматкер атрибуттары үчүн стандарттык маалымат булагы:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Андан бир кызматкер үчүн маалыматтарды алуунун натыйжасы:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Зарыл болсо, мындай экстракторду өз талаптарыңызга ылайыкташтырууга болот же өзүңүздүн экстракторду түзө аласыз.

Аларды кайра колдонуу мүмкүнчүлүгү пайда болгон биринчи идея. Тилекке каршы, бул мүмкүн эмес иш болуп чыкты. Логиканын көбү SAP BW тарабында ишке ашырылат, ал эми SAP BW булагындагы экстракторду оорутпай бөлүү мүмкүн болгон жок.

SAP системаларынан маалыматтарды алуу үчүн өзүбүздүн механизмибизди иштеп чыгышыбыз керек экени айкын болду.

SAP HCMде маалыматтарды сактоо структурасы

Мындай механизмге коюлган талаптарды түшүнүү үчүн алгач бизге кандай маалыматтар керек экенин аныктап алышыбыз керек.

SAP HCMдеги көпчүлүк маалыматтар жалпак SQL таблицаларында сакталат. Бул маалыматтардын негизинде, SAP тиркемелери колдонуучуга уюштуруу структураларын, кызматкерлерди жана башка HR маалыматтарды визуализациялайт. Мисалы, SAP HCMде уюштуруу структурасы ушундай көрүнөт:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Физикалык жактан мындай дарак эки таблицада сакталат - hrp1000 объекттеринде жана hrp1001де бул объекттердин ортосундагы байланыштар.

"1-бөлүм" жана "1-кабинет" объекттери:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Объекттердин ортосундагы байланыш:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Объекттердин эки түрү жана алардын ортосундагы байланыштардын түрлөрү көп болушу мүмкүн. Объекттердин ортосунда стандарттуу байланыштар жана сиздин жеке муктаждыктарыңыз үчүн ылайыкташтырылган байланыштар бар. Мисалы, уюмдук бирдик менен толук убакыттагы кызмат орунунун ортосундагы стандарттык B012 байланышы бөлүмдүн башчысын көрсөтөт.

SAPте менеджер дисплейи:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Маалыматтар базасынын таблицасында сактоо:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Кызматкерлердин маалыматтары па* таблицаларда сакталат. Мисалы, кызматкердин кадрдык окуялары боюнча маалыматтар pa0000 таблицасында сакталат

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Биз GreenPlum "чийки" маалыматтарды алат деп чечтик, б.а. жөн гана аларды SAP таблицаларынан көчүрүңүз. Жана түздөн-түз GreenPlumда алар иштетилет жана физикалык объекттерге (мисалы, Бөлүм же Кызматкер) жана метрикага (мисалы, орточо кызматкерлердин саны) айланат.

70ке жакын таблица аныкталган, алардан маалыматтар GreenPlumга өткөрүлүп берилиши керек. Андан кийин биз бул маалыматтарды берүү ыкмасын иштеп баштады.

SAP интеграциялык механизмдердин кыйла көп санын сунуш кылат. Бирок эң оңой жолу – лицензиялык чектөөлөрдөн улам маалымат базасына түз кирүүгө тыюу салынган. Ошентип, бардык интеграция агымдары колдонмо серверинин деңгээлинде ишке ашырылышы керек.
Кийинки көйгөй SAP базасында жок кылынган жазуулар жөнүндө маалыматтардын жоктугу болду. Базадагы сапты жок кылганыңызда, ал физикалык жактан жок кылынат. Ошол. өзгөрүү убактысынын негизинде өзгөрүү дельтасын түзүү мүмкүн болгон эмес.

Албетте, SAP HCM маалыматтардын өзгөрүшүн жазуу механизмдери бар. Мисалы, алуучу системаларга кийинчерээк өткөрүп берүү үчүн өзгөртүү көрсөткүчтөрү бар, алар ар кандай өзгөрүүлөрдү жазышат жана анын негизинде Idoc түзүлөт (тышкы системаларга өткөрүү объекти).

0302 штаттык номери бар кызматкер үчүн 1251445 маалымат түрүн өзгөртүү үчүн IDoc мисалы:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Же DBTABLOG таблицасында маалыматтарды өзгөртүү журналдарын сактоо.

hrp53216375 таблицасынан QK1000 ачкычы менен жазууну өчүрүү журналынын мисалы:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Бирок бул механизмдер бардык керектүү маалыматтар үчүн жеткиликтүү эмес жана аларды колдонмо серверинин деңгээлинде иштетүү көп ресурстарды талап кылышы мүмкүн. Ошондуктан, бардык керектүү таблицаларда журналды массалык түрдө иштетүү системанын иштешинин байкаларлык начарлашына алып келиши мүмкүн.

Кийинки негизги көйгөй кластердик таблицалар болду. SAP HCMнин RDBMS версиясында убакытты баалоо жана эмгек акы боюнча маалыматтар ар бир эсептөө үчүн ар бир кызматкер үчүн логикалык таблицалардын жыйындысы катары сакталат. Бул логикалык таблицалар pcl2 таблицасында бинардык маалыматтар катары сакталат.

Эмгек акынын кластери:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

Кластердик таблицалардан алынган маалыматтарды SQL буйругу катары кароого болбойт, бирок SAP HCM макросторун же атайын функция модулдарын колдонууну талап кылат. Демек, мындай таблицалардын окуу ылдамдыгы кыйла төмөн болот. Башка жагынан алганда, мындай кластерлер айына бир гана жолу керек болгон маалыматтарды сактайт - акыркы эмгек акы жана убакытты баалоо. Ошентип, бул учурда ылдамдык анча маанилүү эмес.

Маалыматтарды өзгөртүү дельтасын түзүүнүн варианттарын баалоо менен, биз толук түшүрүү вариантын да карап чыгууну чечтик. Күн сайын системалар ортосунда өзгөрүлбөгөн маалыматтарды гигабайттарды өткөрүп берүү опциясы жакшы көрүнбөшү мүмкүн. Бирок, анын бир катар артыкчылыктары да бар – дельтаны булак тарапка ишке ашыруунун да, бул дельтаны кабыл алуучу тарапка киргизүүнүн да кереги жок. Ошого жараша чыгым жана ишке ашыруу убактысы кыскарып, интеграциянын ишенимдүүлүгү жогорулайт. Ошол эле учурда, ал 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 маалыматтары менен жоопту күтүү жана кайталанма сурамды баштоо үчүн тайм-аутту орнотуу менен ишке ашырылышы мүмкүн. Андан кийин ал дельта өтүнүчүн жаратат жана аны SAPга жөнөтөт.

Сурамдын маалыматтары json форматында денеге жөнөтүлөт.
Метод http: POST.
Сурамдын мисалы:

SAP HCMден SAP эмес маалымат кампаларына маалыматтарды алуу

SAP кызматы суроо-талаптын толуктугуна, учурдагы SAP түзүмүнө шайкештигине жана суралган таблицага кирүү уруксатынын болушуна көз салат.

Ката болгон учурда, кызмат тиешелүү код жана сыпаттамасы менен жооп кайтарат. Башкаруу ийгиликтүү болсо, ал үлгүнү түзүү үчүн фон процессин түзөт, уникалдуу сеанс идентификаторун генерациялайт жана синхрондуу түрдө кайтарат.

Ката болгон учурда тышкы система аны журналга жазат. Ийгиликтүү жооп болгон учурда, ал сессиянын идентификаторун жана суроо-талап жасалган таблицанын атын өткөрүп берет.

Тышкы система учурдагы сессияны ачык деп каттайт. Бул таблица үчүн башка сессиялар бар болсо, алар журналга жазылган эскертүү менен жабылат.

SAP фондук тапшырмасы көрсөтүлгөн параметрлердин негизинде курсорду жана көрсөтүлгөн өлчөмдөгү маалымат пакетин жаратат. Партиянын өлчөмү - процесс маалымат базасынан окуй турган жазуулардын максималдуу саны. Демейки боюнча, ал 2000ге барабар деп болжолдонот. Эгерде маалымат базасынын үлгүсүндө колдонулган пакеттин өлчөмүнөн көбүрөөк жазуулар бар болсо, биринчи пакетти өткөрүп бергенден кийин, кийинки блок тиешелүү офсет жана көбөйтүлгөн пакет номери менен түзүлөт. Сандар 1ге көбөйүп, ырааттуу түрдө жөнөтүлөт.

Андан кийин, SAP пакетти тышкы системанын веб кызматына киргизүү катары өткөрүп берет. Ал эми система келген пакетте башкарууну ишке ашырат. Алынган идентификатор менен сеанс системада катталып, ачык статуста болушу керек. Эгерде пакеттин номери > 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 тутумунан белгилүү таблицаларды колдонуу менен маалыматтарды суроого мүмкүндүк берет. Маалымат суроо-талабын түзүүдө зарыл болгон маалыматтарды алуу үчүн конкреттүү талаалардын тизмесин жана чыпкалоо параметрлерин көрсөтүүгө болот. Ошол эле учурда, кызматтын ишке ашырылышы эч кандай бизнес логикасын билдирбейт. Тышкы системанын тарабында дельтаны эсептөө алгоритмдери, суроо параметрлери, бүтүндүккө мониторинг ж.б.у.с.

Бул механизм бир нече сааттын ичинде бардык керектүү маалыматтарды чогултууга жана берүүгө мүмкүндүк берет. Бул ылдамдык алгылыктуу чегинде турат, ошондуктан биз бул чечимди убактылуу деп эсептейбиз, бул долбоор боюнча экстракция куралына болгон муктаждыкты толтурууга мүмкүндүк берди.
Максаттуу сүрөттө, маалыматтарды алуу маселесин чечүү үчүн Oracle Golden Gate сыяктуу CDC системаларын же SAP DS сыяктуу ETL инструменттерин колдонуу варианттары изилденип жатат.

Source: www.habr.com

Комментарий кошуу