Решение задачи с уровнями вложенности подразделений

Ха! Я всех обманул и мне не стыдно! На каждом большом проекте каждый кадровик кричал, что оргструктуру нужно выводить строго до такого-то уровня. А консультанты ныли, что это невозможно стандартом, вообще так нельзя и ваш сап какашка. Можно!

Есть задача: вывести оргстуктуру до уровня департаментов, отделы и группы не трогать. В 9 из 10 случаев придумывают кодировки в поле Код оргединицы, создают новые объекты для отражения уровня вложенности организационной структуры.

Что делают читатели блога SAP HR от Витальки? Правильно, открывают хелп и курят вдумчиво. Транзакция OOAW для создания путей анализа. При определении пути анализа внимательный читатель/настраиватель вражеской системы кликнет F1 на поле Приоритет. И окажется, что там можно написать что-то, а потом это что-то прочитать. Непонятно? Перевожу.

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

В соединении корневой организационной единицы с департаментами я проставлю такой же приоритет для всех оргединиц первого уровня вложенности.

Запускаем отчет с таким путем анализа.

Если нужно сделать отчет до 2 уровня вложенности, то делаем второй путь анализа, условно ZOO2, где прописываем приоритет 1 и приоритет 2. Соответственно меняем соединения от уровня 1 до уровня 2, заполняя поле приоритет. Стандарт, мать его!


Множественный выбор данных в SE16N

Привет ничегонекоментирующиеинепросящие читатели. Сегодня я расскажу самому себе маленькую полезную хитрость с множественным выбором данных в SE16N.

Я точно знаю, что при запуске этой транзакции мы можем на экране выбора указать несколько параметров, по которым система отфильтрует значения при выборке данных из таблицы. Система будет считывать значения по принципу логического “И”: хочу все записи, где продукт Бублик И Вареник. Если я хочу попросить еще что-то, то не смогу это сделать в виде: Бублик И Вареник ИЛИ Конфетку.

Оказывается, в SE16N есть возможность просить немного больше и использовать логическое ИЛИ для выбора данных. Для множественного выбора нужно активировать технический ракурс в меню Дополнительная информация (кнопки Shift+F11), а затем там же включить Многократный ввод (Ctrl+F9).

В моем примере я хочу выбрать объект с конкретным идентификатором 50000102 или все объекты с вариантом плана 02.

С помощью этой возможности система выдаст такой результат.

Это очень удобно, хотя жалко, что нельзя задавать более двух условий множественного выбора.


Видео. Расширяем инфотип 1001 соединения

В системе есть такая клевая штука, про которую мало кто знает. Скорее никто не знает, чем знает. Это дополнительные данные для инфотипа 1001 Соединения.

Представляю вашему вниманию ролик на эту тему


Сравниваем значения до и после в отчете

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

Потыкавшись в стандарте я не нашел ни одного способа как это можно сделать без разработки своего отчета на ABAP. Поэтому открыл лучшую в мире ERP систему Microsoft Excel, выгрузил в нее данные из какой-то шаражки SAP HCM и построил отчет. Никакого абапа!

Для того, чтобы построить отчет и сравнить данные до и после относительно какого-то момента, нам нужно немного включить фантазии и гугла. У нас инфотипы имеют разные периоды действия. То есть, квери может выгрузить данные на дату для всех инфотипов, но не может выгрузить на индивидуальную дату для каждого сотрудника. Грубо говоря, я не могу сказать ему выгрузить в одну строчку данные по 0, 1, 2, 7, 8 инфотипам на дату мероприятия каждого сотрудника в выборке. Поэтому изголяемся.

Шаг 1. Выгружаем все мероприятия с переводом/повышением

Это просто. Выгружаем за нужный нам период, например, 2018 год только мероприятия из ИТ0000.

Шаг 2. Выгружаем каждый инфотип отдельно

Да, муторно, но увы и ах. Причем выгружать нужно всю историю, так как периоды изменений у всех сотрудников могут быть разные. Одна закладка, один инфотип. Так проще связи потом рисовать в Excel.

Шаг 3. Включаем магию

А теперь самое интересное. У нас есть отдельная закладка вида Табельный номер, Дата повышения. Есть другие листы, где указаны интервалы дат С – ПО и данные, которые мы собственно хотим проанализировать. Нам нужно найти только те записи, которые своими С-ПО попадают в нашу ключевую дату перевода. Для этого есть многоэтажная матершиная формула примерно такого вида:

=INDEX(INDEX(IT0008,,5),SUMPRODUCT((O2>=INDEX(IT0008,,4))(O2<=INDEX(IT0008,,3))(P2=INDEX(IT0008,,1)),MATCH(ROW(INDEX(IT0008,,4)),ROW(INDEX(IT0008,,4)))))

IT0008 – таблица (именованный диапазон), в котором лежит наш ИТ0008.

O2 – ключевая дата перевода

P2 – табельный номер

Колонка 5 – ссылка на колонку с данными, которую мы хотим сравнить

Колонки 3 и 4 – даты С и ПО

Вывод

За пару часов (включая выгрузки, поиск в интернете формул, тестирование) удалось собрать отчет из 5 инфотипов (включая пользовательские) и 30 колонок сравнительного анализа ДО и ПОСЛЕ. Разумеется, что без VLOOKUP (ВПР) не обошлось, но это все и так знают.

Для примера прикладываю мини-файл с формулами.

Как видите, сравнить данные в экселе чаще быстрее и проще, чем разрабатывать программу. Да и сопровождать порой такие вещи дешевле. Делаем шаблончики, преднастроенные квери и вперед. Клик-чик-пук и готов 🙂


Как оценить отсутствие в оценке времени?

В жизни современного бизнеса случаются совершенно разные алгоритмические несуразности. То одни требование, то другие, то законы подоспели – одним словом всегда нашему брату найдется работа. Я сейчас разрабатываю курс по оценке времени в SAP HCM, поэтому приходится вспомнить какие-то случаи из жизни. Одной из задач на проекте было как оценить отсутствие в оценке времени? В зарплате вроде просто, есть пара табличек, на выходе виды оплаты рождаются. А если надо с “подвыпертом”?

Шаловливые ручки пошли смотреть и вспоминать. Вспомнил как минимум два способа реализации: один через настройки, второй через схему. Об этом и расскажу вам сегодня.

Задача на входе звучит так: нужно создать отдельный вид отсутствия “Абракадабра”. Его нужно оплачивать “по-особому”. Как именно мы будем оплачивать это оцениваемое отсутствие нам сейчас не важно, об этом мы поговорим в заработной плате. Нам нужно сформировать вид оплаты с часами и аналитикой из вида отсутствия.

Читать далее