Если в BW не загружаются временные данные по вновь принятым сотрудникам

Всякое бывает. У меня все обновленное, красивое установлено, а не заработало. Хотя ноты обещали, что с 2012 года все вновь принятые сотрудники будут автоматически загружаться в BW в части временных данных (экстрактор 0HR_PT_2) при дельта-обновлениях, но увы — не полетело. Убил несколько часов в поисках. Оказалось, что при дельта-обновлениях временных данных на загрузку в BW влияют три вещи:

  • Глобальная настройка дат с — по для загрузки данных в BW. Ракурс V_T569R, типы дат 05 и 06.
  • Активирован ли BADi PTDW_CREATE_0439.
  • Наличие записи в инфотипе 0439 с галочкой ‘Repeat transfer’ и датой начала передачи.

Первый аспект обязателен. Второй и третий — что-то одно на выбор. БАДи создает эту самую запись в 439 инфотипе, если ее нет. Но с какой-то версии экстрактор сам стал умным и должен ее создавать без БАДи. Вот этого у меня и не случилось. Как только создал запись с 0002 подтипом (временные данные), то выгрузка по новым работникам сразу заработала.

Век живи, а все равно дураком помрешь 🙂


Экстрактор 0HR_PT_2 еще граната

Так, товарищи. Печальная новость — найдена еще одна недокументированная граната экстрактора 0HR_PT_2. Точнее не так, она документирована, но специфично. В табличке V_T569R есть два модификатора (05 и 06), которые определяют временное окно, в котором BW экстрактор ищет данные для загрузки. Если вы только стартанули или нужно сделать полную загрузку данных, то нужно модификатор 05 (самая ранняя дата перерасчета) установить на дату старта (или когда у вас появились данные в системе).

Если вы уже сделали полную загрузку, отработали годик, а потом вам нужно перезагрузить весь объем данных, то увы, система выдаст данные только в указанном временном окне. Поэтому алгоритм таков:

  1. Перед полной загрузкой (или инициализацией дельты) меняем дату на самую раннюю в табличке V_T569R
  2. Как закрыли год от изменений, то меняем дату на начало следующего года
  3. При перезагрузке см. пункт 1.

Investigation efforts: 1 час.


Странности экстрактора 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.

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