Вопрос-ответ 16. Распределенный CATS

Вопрос:

Добрый день!

Нужен Ваш совет, помогите, пожалуйста.
Похожая ситуация: есть две SAP-системы: из HCM необходимо передать результаты оценки времени в ERP для возможности настройки CATS (проверки при контировке на сверхурочные, ГРВ и пр. используют виды времени из таблицы ZES кластера B2)
Есть непреодолимое желание сделать передачу кластера стандартным способом, но пока не могу добиться результатов. Сориентируйте, пожалуйста, в какую сторону двигаться.

Варианты решений:

1) PU12 — пробовала настроить выгрузку через «Экспорт с форматом интерфейса, настроила свой интерфейс,но столкнулась с проблемами:
— непонятно как включить обработку нужной табл.ZES( есть только 3 табл ALP, C1, ZL)
-непонятно где физически сохраняются выгруженные данные (кластер Interface Format — где?) и можно ли передать эти данные через ALE?

2) Попробовала настроить напрямую базисный тип сегмента, сегмент с указанием полей табл. ZES (we30, we31), но не придумала как к IDoc’у привязать таблицу ZES.

Некрасивые, но, возможно, неизбежные варианты:
3) Написать ФМ для считывания кластера B2 на стороне HCM, вызывать удаленно из ERP

4) Записывать результаты оценки времени в свой(стандартный 2012?) инфо-тип, и передавать его через ale

Заранее спасибо!

Ответ:

Выглядит так, что достаточно просто передавать виды времени в CATS систему. Например, программой RPTIMEOVERVIEW_REPLICATE

http://help.sap.com/saphelp_45b/helpdata/en/36/b72123209a31f2e10000009b38f984/content.htm


Странности экстрактора 0HR_PT_2

Этот экстрактор настоящая редиска. Он выгружает данные из ERP системы по видам времени. Но делает
это весьма специфично в части определения периода выгрузки. В частности, сегодня я столкнулся с тем, что если у вас заведено какое-либо длительное отсутствие (декрет, например), на несколько лет вперед, а графика рабочего времени нет на будущие периоды, то всем привет. В США есть отсутствие «Компенсация работникам по нетрудоспособности» (Worker’s Compensation). Работник числится в компании, но выплаты ему делает государство до его реабилитации при несчастном случае. Так вот, дата выхода работника неизвестна, поэтому мы вводим отсутствие без ограничения срока. Понятно, что графики до 9999 года не сгенерированы, и система вываливается с предупреждением, что персональный график не найдет на какой-то там год.

Подлый экстрактор помечает всю загрузку желтым и останавливает дальнейшую обработку. Технически мы можем сказать системе все желтые статусы помечать как «хорошие» и продолжать обработку, либо изменить статус вручную. Но это уже ручная работа и мониторинг.


BW: грузим время бочками

Привет.

Сегодня мы будем грузить время из ERP системы в BW. Для этого нам понадобится экстрактор 0HR_PT_2 «Actual personnel times», который можно найти в транзакции RSA5 на стороне ERP системы. Экстрактор глупый и работает просто. В кластере ракурсов VC_T557I есть настройка видов времени для отчетности. Это те самые виды времени (виртуальные), которые мы можем увидеть в SAP Query для временных инфотипов, так и в BW. Суть их в том, чтобы объединить данные из ERP системы (инфотипы, кластер) и выдать в одном формате, унифицированно. Если вы откроете любой вид времени, то в нем увидите возможность определить его через виды присутствий/отсутствий, виды времени из оценки времени и виды оплаты из оценки времени (табличка ZL). Если со всеми характеристиками все понятно, то в с закорючкой «Payroll hours/days» не очень. Это две дополнительные колонки. Только сегодня я познал истину, что это такое.

Рассказываю! Колонки Days/Hours считывают время из соответствующих полей инфотипа 2001 или 2002 (дни/часы). Значения в экстракторе выдаются в поле DUR_ACTUAL «Actual time». А колонки Payroll hours/days выдают информацию из полей Payroll инфотипа (расчетные дни/часы). И эти значения выдаются в поле DUR_VALUE «Acct-relevant time». Таким образом, нужно помнить, что правила подсчета отсутствий/присутствий повляют на результат, который выдает экстрактор в BW.

А во всем остальном никаких изысков, данные передаются один в один по каждому календарному дню.


Сокращение лимитов отсутствий

Ни разу не пользовался такой функцией как сокращение лимитов отсутствий. Появилась задачка сокращать отпуск на время отсутствия работника. В России, помню, писал user-exits для этого. А в США нашелся стандартный способ. Создаем правило сокращения следующего вида.

В правилах генерации лимитов присваиваем это правило. Теперь система будет сокращать базовое право, но только по календарным дням. Отсутствия, которые необходимо использовать для сокращения, указываются в ракурсе V_554S_M.  Обратите внимание, что отсутствие будет учтено для сокращения только в случае, если при сохранении его в 2001 инфотипе будет заполнено поле «Календарные дни».