Столбец в PPOME с выводом разряда и оклада/ЧТС

Нашел в архивах свой опус. Можно добавить колонку в PPOME/PPOSE с выводом разряда, оклада/тарифной ставки.

Создаем свою колонку, и сюда прописываем этот ФМ T77COL-CB_CONTENT.

Под катом исходник на страничку. 

Читать далее


Безопасность продуктива и LSMW

Один из хороших людей написал для нас всех материал, которым стоит поделиться. Речь про дырки в системах, про безопасность продуктива и как ее обойти с помощью LSMW — инструмента миграции данных, стандартного для проектов SAP.

Как обычно в работе консультанта периодически возникает «крайняя необходимость» что-нибудь поправить в таблице или в отладчике поправить переменную, а добрые дядечки из службы безопасности и столь же добрые администраторы, давно решили что это нам не нужно да и вообще, сложилось впечатление, что лучше всего когда мы не работаем в системе за компом, а смотрим на нее из далека и на ментальном уровне мигрируем данные или разбираем инциденты сыплющиеся как из рога изобилия на наши больные после вчерашнего долгого трудового дня головы.

И вот тут то нам может помочь один из способов махонького поправления настроек системы в нужную сторону (все что нам требуется — это «совсем крохотные» полномочия на s_develop). Один из них я ниже и постараюсь описать. Выбор пал на LSMW, и так сказать упал он не случайно, так чаще всего project, subproject и object создавать все же разрешают, но полномочиями на ABAP-редактор в продуктивной системе все те же добрые люди не делятся. Но лиха беда начало! Если есть доступ к системе разработки, в которой такой подарок судьбы вполне имеет право существовать, да и даже в случае если таких полномочий нет, не стоит отчаиваться, редактирование текста LSMWэшки в «Блокноте» нам и вам в помощь. Итак, смысл в том, что проект LSMW можно как экспортировать, так и импортировать, поэтому грех не воспользоваться такой прекрасной возможностью.

Читать далее


Хранение списков значений

И еще один бонус. Есть такая штука, которая использовалась в старом Report Writer, как списки значений. Их можно заводить плоскими, многоуровневыми (иерархическими) в транзакциях GS01 — GS03.

А потом в абапе читать и подставлять в переменные. Удобно использовать для инициализации селекционных экранов отчетов, так как записи в запросы не складываются. Это слегка усложненный вариант STVARV (транзакция).

DATA: et_values TYPE TABLE OF rgsb4.
DATA: es_values TYPE rgsb4.

CALL FUNCTION ‘G_SET_GET_ALL_VALUES’
EXPORTING
setnr = ‘ZABS_SENIOR’
table = ‘T554S’
class = ‘0000’
fieldname = ‘SUBTY’
TABLES
set_values = et_values
EXCEPTIONS
set_not_found = 1
OTHERS = 2.

DATA: er_awart TYPE RANGE OF t554s-subty.
DATA: es_awart LIKE LINE OF er_awart.
LOOP AT et_values INTO es_values.
es_awart-sign = ‘I’.
es_awart-option = ‘BT’.
es_awart-low = es_values-from.
es_awart-high = es_values-to.
APPEND es_awart TO er_awart.
ENDLOOP.


Копирование организационной структуры

Сегодня мы будем выполнять копирование организационной структуру. Например, ко мне пришла заявка на копирование одной шахты в другую. Без людей. Вроде бы все просто. Первым делом я зашел в PPOME и попробовал скопировать оргединицу «Шахта 1» в «Шахта 2». Система умная — скопировала. Только без подчиненных объектов. Тут-то приключения и начались. Помня о некоторой стандартной программе для копирования объектов организационного менеджмента, я пошел по меню искать желаемое. И нашел! Программа RHCOPYSTRUCT, транзакция RE_RHCOPYSTRUCT. И она тоже работает! За одним исключением.

Читать далее


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

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

Для генерации отпусков за работу во вредных условиях труда (ВУТ) создаем лимит  (например, код 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.

Читать далее