Настройка отпусков для совместителей (CE)

8 часов отладчика и счастье есть. Если у вас активирован функционал CE, то вы можете связывать несколько табельных номеров в одного человека. Этот человек в разных местах может ходить в отпуска (где это видано?). И если мы хотим, чтобы одним отсутствием на одном месте исчерпывались отпуска с разных мест работы, то нам поможет пулемет. Отладчик и полное отсутствие адекватной документации, что опять же привычно САПовскому консультанту.

Отпуска настраиваются как обычно для каждого присвоения. Отличия в следующем:

  1. При настройке отсутствия, которое будет исчерпывать отпуска с разных мест работы, в нем нужно поставить галочку, что оно для множественных присвоений. V_T554S-ABSTYP_SHARED_CE
  2. При настройке лимита также ставится такая же галочка (причем на обоих присвоениях). V_T556A-QUOTA_SHARED_CE
  3. При настройке правил исчерпания лимита появляется новая галочка, которая позволяет списывать лимиты сначала с текущего присвоения, а потом уже со всех других. Е556R-QTTPR_CE.

Это все очевидно, написано в документации к галочкам. А теперь фокусы.

  1. Если у вас присвоения табельных номеров к центральному лицу в рамках одной страны, то все работает по умолчанию. Если же нужно сделать присвоение между странами, то для лимитов нужно поменять ключик SAQD в ракурсе V_T7CCE_GPASGM на XNON. Эти ключи позволяют системе определить какие данные и как должны связываться между разными присвоениями. 
  2. Самое неприятное, что коды лимитов на разных присвоениях должны совпадать. Нельзя на присвоении 1 иметь лимит 10, на присвоении 2 лимит 05 и списывать одним отсутствием с обоих лимитов. Это прописано хардкодом, к сожалению, и очень неудобно.

В итоге одно отсутствие списывает два лимита на разных табельных номерах (присвоениях), и выглядит это вот так.


Отпуск за вредные условия труда

Нашел в старых записках описание, как создавать отпуск за вредные/особые условия труда. Критиковать кривизну реализации бессмысленно, так как это было в «мохнатые» годы. Поэтому приветствуется только улучшайзинг! В САП главное понять принцип, получить вектор, а дальше включить фантазию 😉

Для генерации отпусков за работу во вредных условиях труда (ВУТ) создаем лимит  (например, код 06) с автоматической генерацией в оценке времени. Для генерации лимита необходимы два условия:

  1. Наличие связи штатной должности (S) с объектом вредных условий (CH). Для объекта CH создаем инфотип 9100, в котором указывается количество дней отпуска за ВУТ (IT9100-ZDAYS). При генерации лимита в user-exit EXIT_SAPLHRLV_004 читается этот ИТ на оцениваемую дату и устанавливается количество базового права в лимите согласно HRP9100-ZDAYS. Транзакция CMOD для создания расширения.
  2. Сотрудник должен отработать более 50% рабочего времени за смену для получения права на отпуск. Для этого используется вид времени 9000. В правиле вычисляется процент отработанного времени путем:  вид времени 0002/вид времени 0050. Если больше 0.5, то вид времени 9000 = 1, иначе – 0. В функции QUOTA при генерации лимита производится умножение начисленного права на отпуск за день на вид времени 9000 «Фактич время > 50%». То есть, отработал больше 0.5 смены, то умножаем начисленное право на 1, в противном случае на ноль.

При накоплении права на отпуск кратного целой единице, система переносит целую единицу в 2006 ИТ. То есть, за 3 дня накопили 1,12 дня отпуска, то один день отпуска начислится в ИТ2006.

Читать далее