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 емес деректер қоймаларына деректерді шығару

Қызметкерлер туралы деректер pa* кестелерінде сақталады. Мысалы, қызметкердің кадрлық оқиғалары туралы деректер 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 біріктіру шешіміне тасымалдайтын бағдарламаны іске қосады. Сақтандырғыш Кафкадағы қажетті тақырыпты анықтайды және сол жерде деректерді тасымалдайды. Әрі қарай, Кафкадан алынған деректер 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 құралдарын пайдалану опциялары зерттелуде.

Ақпарат көзі: www.habr.com

пікір қалдыру