Создание пользовательской операции для драйвера RPTIME01

Авторский материал от ka. Нумерация вся слетела к бабушке…

Классы и интерфейс

Операции в RPTIME01 состоят из одного интерфейса и двух классов:

ZIF_PT_<имя операции>_IF  — это интерфейс, который содержит атрибуты класса, который описывает логику операции.

ZCL_PT_<имя операции> — это класс, который описывает логику работы операции. Непосредственно описание логики находится в методе OP_<имя операции> . Класс оперирует атрибутами из интерфейса ZIF_PT_<имя операции>_IF, которые из него считываются в методе IF_PT_EXECUTABLE~EXECUTE.  

ZCL_PT_<имя операции>_IF – это класс, который заполняет атрибуты интерфейса ZIF_PT_<имя операции>_IF.

Настройка

Связь имени операции с классом и интерфейсом (которые сначала надо создать) необходимо настроить ракурсе V_T7TIM_COPERA :

+ необходимо настроить саму операцию в PE04.

Читать далее


Новый курс SAP отладчик для консультантов

Друзья! Я собрался с силами и сделал небольшой курс для консультантов, которые никогда не работали с отладчиком.

Курс также может быть полезен начинающим программистам на ABAP. Для продвинутых перцев там вряд ли что-то будет интересным 🙂

В честь этого события традиционные скидки 🙂

Первые 3 человека получают курс бесплатно по ссылке https://www.udemy.com/sap-debugger-for-consultants/?couponCode=SAPDBF

Следующие 5 человек получают самую большую скидку по ссылке https://www.udemy.com/sap-debugger-for-consultants/?couponCode=SAPDB5

Подзадержавшиеся 5 человек получают утешительный приз в виде https://www.udemy.com/sap-debugger-for-consultants/?couponCode=SAPDB4

Напоминаю, что еще есть Youtube канал с моими видео о SAP по адресу https://youtube.com/virvit

Репосты всегда приветствуются!


SAP HR. Книга вторая. Схема TM04

Кусочек материала из второй книги по SAP HR от Витальки Поцелуева. Построчное описание схемы TM04. Остальное в книжке 🙂

Команды схемы Описание от автора
BINI MOD TMON GEN      EINI Блок инициализации, который запускается один раз для сотрудника и устанавливает управляющие параметры в правиле TMON. Обычно здесь определяются группировки для генерации лимитов отсутствий, видов оплаты.
BDAY Начало блока обработки данных дня. Запускается для всех сотрудников на каждый календарный день.
CHECK          PON                  Устанавливает глобальный флаг PON (Positive Or Negative). Обрабатывать табельные номера, у которых статус временных данных не равен 0.
CHECK          RPR                  Устанавливает глобальный флаг RPR (Recalculation PayRoll). Если в зарплате возник перерасчет, то оценка времени также будет перезапущена с даты перерасчета заработной платы
CHECK          FUT                  Устанавливает глобальный флаг FUT (FUTure). Разрешает запускать оценку времени в будущее, в космос. Удобно, если нужно использовать прогнозируемые данные для бюджета.
BLOCK     BEG                     Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени.
IF                  POS           IF = условие «ЕСЛИ». POS – позитивный учет (статус временных данных = 1 или 2). Если сотрудник на позитивном учете, то обрабатывать все что внутри этого блока команд.
IF           NOT  SIMF            NOT SIMF – не режим моделирования (галочка тест снята при запуске драйвера). Если запуск в боевом режиме, то выполнить команды ниже.
PERT  TD20 Загрузить ошибки по отметкам временных данных, если такие есть
P2011 Загрузить сам отметки из инфотипа 2011. На самом деле отметки хранятся в таблице TEVEN, а таблицы PA2011 согласно стандартной кодировки не сущестует.
ACTIO TD10 ACTIO – функция, запускающее правило из ее параметра на выполнение. При этом правило выполняется только один раз независимо от временных данных. Правило TD10 проверяет, закончился ли текущий день, чтобы его можно было оценить или нет. Если закончился, то оценка дня прерывается.
A2003 Функция считывает замещения из ИТ2003. Если для замещения установлена альтернативная оплата, то всем временным парам в будет установлен сплит (ссылка) на запись из таблицы ALP, в которой хранятся данные по альтернативной оплате.
P2001 Считать отсутствия из ИТ2001
P2002 Считать присутствия из ИТ2002
ELSE Если условие NOT  SIMF не выполнено, то система перейдет к блоку ELSE или следующему после ENDIF
COPY  TDT0 Выполнить подсхему TDT0
ENDIF Последняя команда блока условия IF NOT SIMF           
ELSE Относится к условию IF POS
COPY    TDT0 Выполнить подсхему TDT0
ENDIF Последняя команда блока условия IF POS
COPY      TF00 Выполнить подсхему
ACTIO     TD03 Выполнить правило TD03. Правило проверяет, если обрабатываемый день приходится на воскресенье и это праздник, то сделать понедельник оплачиваемым выходным. В России это обычно регулируется графиком рабочего времени и классами праздника.
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
ACTIO     TE20 Выполнить правило TE20. Правило проверяет обрабатываемый день на предмет ошибок: может ли сотрудник работать в выходной, продолжительность отсутствия сотрудника
PTIP      TE30 GEN Функция PTIP обрабатывает каждую строчку внутренней таблицы TIP. В таблице TIP хранятся временные пары С-ПО на каждое событие, которое произошло с человеком в этот день: нормальное рабочее время, отсутствие, сверхурочная работа, перерыв и пр. При выполнении к каждой строке таблицы TIP применяется правило из параметра. В данном случае TE30, которое проверяет каждую временную пару на ошибки.
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
TYPES Функция классифицирует временные пары в зависимости от того, откуда пара пришла в оценку времени: график, присутствие, отметка, отсутствие
PBRKS OWTI Функция обрабатывает перерывы в графике рабочего времени
COPY      TP01 Выполнить подсхему TP01
RTIP       TP09 GEN Функция RTIP аналогична PTIP, только в отличие от последней она не может менять содержимое таблицы TIP. Правило TP09 определяет время по каждой временной паре, если пара относится к нормативному графику, то часы сохраняются в вид времени 0000.
PTIPA     TP10 GEN Функция PTIPA аналогична PTIP, но работает, если в дне были отсутствия. Правило TP10 анализирует, есть ли у человека переработки. Если да, то время отсутствия сокращается на величину переработок. Своего рода суммированный учет, но в России такой подход не применяется.
RTIPA     TP20 GEN Функция RTIPA аналогична RTIP, но работает, если в дне были отсутствия. Правило TP20 анализирует, есть ли у человека переработки. Если да, и человек берет отгул, то размер сверхурочных сокращается.
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
SORT      TIP            P2 Функция SORT сортирует таблицу. В данном случае таблицу TIP по типа временых пар.
COPY      TW10 Выполнить подсхему
COPY      TW15 Выполнить подсхему
COPY      TW30 Выполнить подсхему
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
DAYMO     01   02   02   02 Функция DAYMO устанавливает различиные модификаторы и группировки для следующих двух функций
GWT            S    DZL Запустить генерацию видов оплаты для временных пар с типом обработки S и сохранить виды оплаты в таблице DZL
GWT            M    ZML Запустить генерацию видов оплаты для временных пар с типом обработки M и сохранить виды оплаты в таблице ZML
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
COPY      TW00 Выполнить подсхему
POVT      TC40 GEN Функция обрабатывает все виды оплаты со сверхурочной работой из таблицы ZML и формирует либо виды оплаты, либо время отдыха в зависимости от настроек вида оплаты и способа компенсации
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
BLOCK     BEG Команда BLOCK логически группирует команды, чтобы визуально выделить блоки в журнале оценки времени
RTIP      TR11 Правило TR11 формирует различные дневные балансы времени: нормативное время, время отсутствий и так далее.
P2012 Функция P2012 считывает инфотип 2012, который служит для корректировки баланса вида времени.
ACTIO     TR30 Правило TR30 также формирует баланы времени: продуктивное время, переработки.
LIMIT Функция LIMIT проверяет и ограничивает виды времени, если они превысили заданные пороговые значения.
IF                  EOP IF EOP проверяет, завершен ли расчетный период для единицы расчета
ACTIO   TR90 Правило TR90 формирует баланс рабочего времени за расчетный период. Если образовалась сверхурочная работа, то формируется отдельный вид времени.ы
ENDIF Окончание условия для IF EIOP
CUMBT Функция CUMBT аккумулирует виды времени (часы) согласно настроек. Не все виды времени нужно накапливать, кстати.
QUOTA Функция QUOTA генерирует лимиты отсутствий, которые формируются из оценки времени.
BLOCK     END Завершение логического блока команд, начатого командой BLOCK BEG
EDAY Завершение логического блока команд, начатого командой BDAY
BEND Начало логического блока финальной обработки. Блок выполняется только один раз для каждого сотрудника в конце оценки времени.
EXPRT Сохранение результатов оценки времени в кластер (в базу данных)
EEND Завершение логического блока команд, начатого командой BEND

Печатаем схему (вариант для склерозников)

Есть программка для печати схемы RPDASC00, о которой я писал на заре своего безумства и обожания SAP Сравниваем значения до и после в отчете

Сегодня я уже не так люблю SAP, еще меньше люблю зарплату, а память ваще стала дырявой. Поэтому вот вам способ распечатать схему по-другому.

В транзакции PE01 открываем схему.

Посмотрели, закрываем и идем спать. Склерозникам в SAP делать нечего. Остальные пишут команду PRINT, ищут принтер, заряжают его бумагой листов 200 (стандартная пачка) и идут домой. К утру распечатает.

Читать далее