FAQ. Расширение логической базы данных (ЛБД)

Вопрос:

На проекте возникает необходимость в использовании различных аналитик для выборок сотрудников в стандартных отчетах на ЛБД PNP*.
Нужны аналитики вида:
1. Не суммированный/Суммированный учет квартал/Суммированный учет год/…
2. Руководитель/специалист/рабочий/…
3. Высший менеджмент/Средний/Младший/…
4. Член правления/Не член правления/…
5. И возможно еще несколько…Для некоторых аналитик возможно пользоваться категориями персонала, например:
1а    РукОклад
1б    РукОкладСумМес
1в    РукОкладСумГод
1г    РукОкладСумКвартал
1д    РукОкладСумДваМес
2е    СпецОклад

Вопрос: Каким образом правильнее решить эту проблему? Как расширять ЛБД? Может быть есть стандартные инфотипы, которые можно использовать на экране выбора в стандартных отчетах?

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

pt60_selscreen

Теоретически изменить содержимое этого экрана можно. Например, добавить свои инфотипы, которые будут использованы как критерии для выборки. Это все делается через класс HR отчета и экран представление выбора (Selection View). Само представление создается в транзакции SE80 — Selection View для таблицы или в SE36->Extras->Selection Views для ЛБД. Как это делать написано вот тут в подсказке к настройке:

spro

Беда в том, что у меня так и не получилось заставить это работать. Но надежда есть 🙂 Если кто делал такое, то помогите общественности.

FAQ. Расширение логической базы данных (ЛБД): 7 комментариев

  1. ZGilGelad

    Тоже как-то смотрел в сторону этой штуки, но в HR она у меня особо не заработала и, на сколько, я помню, дело в наших ЛБД.

    Я обычно в таких случая рекомендую пользоваться оперзапросом:
    многократный выбор (у поля ТН)->многократный выбор (F6)->свободный поиск — и тут открывается оперзапрос.
    Как подключить свой оперзапрос к этому ср-ву поиска — я не помню. Скоро на проекте до этого у меня должны дойти руки и как сделаю — напишу. А может кто напишет и мне не надо будет вспоминать)

    Если пользователям неудобно указывать кучу критериев, то всегда есть доп.поля в оперзапросе (которые делаются в спро и с возможностью установки значения на выбор). Но там есть еще один момент) Доступность указания поля на выбор в оперзапросе появляется, только не работает:) За это в ответе (как и вообще за поиск в оперзапросе) ФМ HR_SELECT_PERSONS и HR_SELECT_OBJECTS

  2. Bully

    Это не является расширением ЛБД 🙂

    Какой Selection View использовать в отчёте указывается при помощи Report Category.

    Во времена преподавания HR350 всегда показывал эту фишку своим слушателям.
    Посмотри в учебных материалы к нему — там хорошо описано.

  3. VanoIvanov

    ZGilGelad и Bully правы отчасти, автор пошел в неправильном направлении и даже никуда не пришел.
    Хотел написать подробно какие ручки крутить, но не в этот раз, не интересно, даже не думал, что в этом еще копаются, прошу извинить.

    P.S. Лучше бы вам не видеть код который внутри всего этого и под капотом лбд.

  4. Роман Величко

    Автор пошел очень правильным путем — потому что это для Пма сокращает трудозатраты на разработку/адаптацию отчетов, а от того что таких нюансов наши консультанты которые «лучше не видеть, что там под капотом» не знают, а предлагают с нуля переписать САП, так ну их нафик таких консультантов 🙂

    Что касается исходного кода, он достаточно прост, понятен и ничего в нем страшного нет.

  5. ovetchenkoandrey

    Виталий, возможно есть какие нибудь еще способы? На днях обнаружили инфотип 0039 Доп. орг. присвоение. Справка говорит, что в нем можно хранить доп атрибуты, но более ничего не нагуглил на него. На проекте принцип «решать все стандартом». Поэтому ЛБД расширять не хочется.

    VanoIvanov, никто не сомневается в Вашей компетенции. Копаемся там, где нам интересно.

  6. Pilsner

    Крутая штука эти динамические ограничения! Позволяет предварительно ограничить выборку табельных по любому инфо-типу (по другим таблицам не тестил, но возможно подойдет любая таблица где есть ключик PERNR), чтоб уменьшить число итераций цикла ЛБД. В ЛБД PNP(CE) для этого стоит SELECT с произвольными полями из произвольной таблицы (в скобках вписаны переменные, которые заполняются из этого ракурса выбора).
    Что еще нужно знать по этой фиче — после того, как создадите свой ракурс выбора в SE80, он не появится в средстве поиска в ракурсе отчета — там оно некорректно работает 🙂 Просто впишите его туда ручками и проверяйте, как работает.

Добавить комментарий