Найти пересечения периодов. Оператор PROVIDE

Очень часто в HR необходимо найти все пересечения ИТ т.е. те периоды в которых данные ТН остаются неизменны. Для этого существует оператор PROVIDE .

PROVIDE FIELDS {*|{comp1 comp2 ...}}
               FROM itab1 INTO wa1 VALID flag1
               BOUNDS intliml1 AND intlimu1
               [WHERE log_exp1]
        FIELDS {*|{comp1 comp2 ...}}
               FROM itab2 INTO wa2 VALID flag2
               BOUNDS intliml2 AND intlimu2
               [WHERE log_exp2]
               ...
        BETWEEN extliml AND extlimu
        [INCLUDING GAPS].
  ...
ENDPROVIDE.

Читать далее «Найти пересечения периодов. Оператор PROVIDE»

Сравнение версий объекта в разных системах

Столкнулся с тем, что не все знают как это делать. Ну, что же, возможно, кому-то пригодится.

  1. Заходим в наш объект, например, в программу в SE38

2. Попадаем на вкладку с версиями. Здесь мы можем Сравнивать версии объекты, восстанавливать прошлые.
Для того чтобы произвести сравнение с другой системой нужно нажать кнопку "Remote-сравнение"

3. В открывшемся окошке выбираем целевую систему из списка

Далее откроется окно с выбором версий в целевой системе. Выбираем нужную и еще раз жмем "Remote-сравнение"

4. Получаем примерно такую штуку

Как видно, смотреть различия не очень удобно, но если нажать кнопку "В 1 столбец\Параллельно" все будет в более удобном виде

Дамп по тайм ауту

Если программа вываливается по тайм ауту, то один из способов устранения проблемы( считаем, что оптимизация не возможна) является использование ФМ TH_REDISPATCH .

Также можно изменить параметр 'rdisp/max_wprun_time' в транзакции RZ11. Параметр применяется без перезагрузке сервера.

Пробежать по одинаковым столбцам структуры. Оператор DO – VARYING

Порой возникает необходимость пробежаться по повторяющимся столбцам структуры. Особенно часто эта необходимость бывает при обработке ИТ 0008 и 0041. В таком случае можем использовать оператор DO - VARYING
Для разработчиков в HR это довольно привычный оператор, в других модулях используются гораздо реже. Собственно поэтому и делаю заметку, может быть для кого-нибудь будет полезным.

Много писать не буду, вот пример кода:

Остальное легко найдете в справке.

 

Транзакция для кластера ракурсов или ракурса

В транзации SE93 можно создать Транзакцию для непосредственного запуска ведения или просмотра кластера ракурсов.

Открываем транзакцию SE93, вводим имя желаемой транзакции и жмем "Создать"

В "Значения по умолчанию" вводим имя нашего кластера

UPDATE - X означает автоматическое нажатие кнопки UPDATE.

При необходимости можно нажать просмотр SHOW = X  .

TRANSPORT = X - открыть окно для выбора транспортного запроса. Если ракурс сгенерирован со стандартной подпрограммой записи.

Можно запускать и другие транзакции подобным образом.

Создание кластера ракурсов

Для создания кластера ракурса необходимо создать ракурсы ведения для отдельных таблиц в SE11 и объединить их в SE54

Подробнее:

Читать далее «Создание кластера ракурсов»

ФМы для чтения ИТ и ЛБД в HR. Почему их надо использовать

Немного сумбурных мыслей.
Информация для разработчиков, которые ранее не работали с модулем HR и не очень понимают, зачем при разработке в данном модуле использовать ЛБД или ФМ для выборки данных вместо селектов. Как всегда более подробно в курсах. В данном случае это HR350. Не претендую на идеальное и полное изложение материала. 

Читать далее «ФМы для чтения ИТ и ЛБД в HR. Почему их надо использовать»

BDC – пакетный ввод

BDC - это технология для записи и воспроизведения транзакций.  Не всегда известна логика работы транзакции, а провести при помощи нее данные необходимо или нам нужен ввод каких-либо повторяющихся данных. 
Транзакция в которой осуществляется запись сеанса пакетного ввода является SHDB или SM35.
Читать далее «BDC – пакетный ввод»

Действия с ведущими нулями\пробелами

Удалить ведущие нули\пробелы(space):

Также можно использовать PACK/UNPACK

Также можно использовать ФМы