Лимит это банка, в которой лежат орешки. Достали орешек, количество лимита уменьшилось. Вернули — увеличилось. В системе есть два вида лимитов: лимиты отсутствий (инфотип 2006) и лимиты присутствий (инфотип 2007). Когда мы вводим отсутствие или присутствие, которое исчерпывает лимит (забирает орешек), система сокращает так называемое базовое право. Базовое право это количество орешков в банке — сколько всего дней или часов можно взять за определенный период.

У лимита есть две важные характеристики: когда мы его заработали и когда можно его потратить. Сначала зарабатываем, потом тратим. Период зарабатывания называется периодом действия. Тратим мы лимит в период использования. Если не успели потратить, то все сгорает — приходит грызун и ночью кушает все орешки.

Лимиты можно зарабатывать двумя способами. Либо кто-то выдает нам целую банку с орешками за отработанный период, либо нам каждый маленький промежуток времени дают по одному орешку в банку. Первый это генерация через инфотип программой RP_QTA00. Второй через оценку времени.

Чтобы отслеживать связь отсутствий с лимитом (аналогично связь присутствия с лимитом присутствия) система использует промежуточную таблицу. Таблица PTQUODED содержит несколько важных параметров: ссылку на лимит, ссылку на отсутствие, табельный номер и сколько орешков было взято. При создании отсутствия или лимита система генерирует уникальный номер, который справа добавляется номером инфотипа: XXXXXX2006 или XXXXX2001. Даже если вы не сохраняете запись, номер все равно выделяется.

Если отсутствие исчерпывает лимит, то каждый день, который согласно правилу подсчета отсутствия, должен скушать лимит, записывается в PTQUODED. Если отсутствие длится 10 дней, то в PTQUODED будет 10 записей по одному дню.

Если мы вносим погашение лимита через 416 инфотип, то такая запись также имеет свой уникальный номер с суффиксом 0416, а в PTQUODED сохраняется одной строчкой. Когда мы создаем запись ИТ0416, где указывается несколько лимитов для компенсации, то на самом деле создается несколько записей в PTQUODED, по одной на каждый лимит, а экранная логика 0416 собирает по PTQUODED внешний вид инфотипа.

Таким образом система всегда знает кто и каким образом исчерпал лимит (стащил орешки). Именно с помощью PTQUODED система в приказе на отпуск в российской локализации определяет за какой период был этот отпуск.

Еще интересный момент. В 2001, 2006, 0416 инфотипах есть отдельное поле для логической системы. То есть система учитывает в какой системе было внесено отсутствие, лимит или 416. При этом у SAP нет стандартных механизмов для удаленной работы с лимитами или 416 инфотипом. Казалось бы загадка, для чего нужна логическая система? Ответ простой — CATS. Это единственный инструмент, который как и организацинонный мендежмент относится к Cross Application Components — универсальный инструмент для всех модулей системы. CATS может учитывать время из разных систем, а так как в CATS есть отсутствия и присутствия, то они могут сливаться в HR из разных систем через стандартные BAPI интерфейсы. Здесь-то и нужна логическая система, чтобы понять откуда прилетело отсутствие или присутствие.

В системе нет ни одного IDOC для передачи 2001, 2006 или 0416 инфотипов. Это также связано с тем, что уникальные номера генерируются в каждой системе в рамках своих диапазонов, а значит есть риск пересечения, когда данные попадут в одну систему. Видимо поэтому вендор и отказался от реализации интеграции по этим инфотипам. Если вы хотите сделать реализацию передачи этих инфотипов, то нужно помнить о нумерации и PTQUODED. При приеме такого самодельного IDOC с одним из вышеуказанных инфотипов нужно самостоятельно отслеживать и формировать уникальные номера, учитывать их в PTQUODED, пересчитывать лимиты. Вы же помните, что IDOC ложится в базу «как есть», без логики инфотипа?

Как сделать свой IDOC можно здесь Передача российских инфотипов по ALE

Подписывайтесь, распространяйте материал — скоро я расскажу про специфику передачи отдельных инфотипов по ALE. Об этом никто кроме отладчика вам не расскажет. Разве что заядлые интеграторы, но таких я всего пару-тройку человек в стране знаю.