Управляющие ключи SAP Query

Мы до сих пор вынуждены работать в веке динозавров. Страшные инструменты для отчетности, дорогие BI решения, фантазии на темы BigData.

Реалии возвращают нас к SAP Query. Работать с оперативным запросом умеют если не все, то практически многие. С базовым инструментом SAP Query умеют работать практически единицы и десятки на фоне нашей тысячной аудитории консультантов в СНГ.

В Query есть много нюансов, которые сбивают нас с толку, когда мы формируем отчеты, основанные на нескольких инфотипах. Всякие двойные записи, пересечение периодов и прочее.

По ссылке ниже очень старый и единственный документ, который мне попадался за всю мою карьеру, где описывается более-менее толково как настраивать SAP Query. Документ на английском.

SAP HR QUERY GENERATOR SWITCHES


Одна из самых интересных нот у SAP

Друзья, хочу представить вашему вниманию одну из самых интересных и полезных нот от вендора. Нота посвещена принципам отладки драйвера расчета заработной платы, различным тонкостям. Полезно прочитать бывалым зарплатчикам (я сам большую часть советов не знал), так и всем, кто хоть раз открывал абап или отладчик – есть что почерпнуть.

1818219 – Debugging the payroll Schema

На всякий случай прикладываю PDF версию здесь.

Debugging PY schema

P.S. Спасибо Наталье за эту ценную информацию.

P.S.S. Если непонятно, что написано внутри или есть проблемы с языком, но напишите в комментариях, я переведу.


Продвинутые перцы переходят на SE16H

Да. Появилась новая транзакция SE16H вместо SE16N для работы с таблицами. Основные новшества это возможность группировки полей таблицы, возможность пользовательской сортировки до начала выборки данных, возможность делать простые JOIN вьюхи. Не ахти что, но САП показал морковку.


Волшебная клавиша в отладчике

Бес в ребро, седина мне в бороду.

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

Встаете на строчку, куда нужно перейти из текущего положения и нажимаете Shift-F12. Система не выполняет код между текущим и целевым положением, а просто перепрыгивает. Команда JMP в ассемблере, GOTO в бейсике.

Супер-удобно!


Как работают лимиты отсутствий

Лимит это банка, в которой лежат орешки. Достали орешек, количество лимита уменьшилось. Вернули – увеличилось. В системе есть два вида лимитов: лимиты отсутствий (инфотип 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. Об этом никто кроме отладчика вам не расскажет. Разве что заядлые интеграторы, но таких я всего пару-тройку человек в стране знаю.