Архив метки: BADI

Расширение в PHAP_CATALOG

Я тут для себя напишу, вы не читайте. Привет 🙂

Делали сегодня расширение в формуляре аттестации, чтобы считался процент выполнения цели. Вроде бы все просто должно быть. Сделал реализацию бади HRHAP00_VAL_DET. Прописал в настройках формуляра. Выбираю для столбца способ определения значения (Value Determination), а мне система в ответ говорит, что для столбца FAPP нельзя использовать расширение. И гугл молчит, и мне становится грустно.

И вот откопал, что оказывается надо в нашей реализации бади заполнить методы

IF_EX_HRHAP00_VAL_DET~CUST_CHECK_EXECUTABILITY

IF_EX_HRHAP00_VAL_DET~CUST_COLUMN_RESTRICTION

, которые отвечают за возможность использования этого расширения для конкретного типа столбца. Стоило поставить всем и всем можно (available = ‘X’ и executable ‘X’), перезайти, как все прописалось корректно 🙂 

Вот где об этом написано, ткните, пожалуйста?

Настрой-ка командировок. Часть 2

Мы рассмотрели одну часть – создание заявки на командировку. Сама по себе информация, которую мы смогли заполнить на предыдущем шаге, несет в себе не очень много ценности. Рассмотрим процесс с точки зрения системы и нашей жизни. В системе мы создаем заявку на командировку, чтобы обозначить ее период, цель, сумму аванса и отразить потенциальные затраты, чтобы система проверила есть ли бюджет на командировку. Заявку нам по умолчанию утверждает линейный руководитель по оргструктуре, либо ответственный сотрудник, который видит в отчете неутвержденную заявку и ее согласует. Этот процесс можно изменить, так как он построен на потоке операций (WS20000050). Менять поток мы научимся позже, когда будет отдельный курс по потокам операций.

Мы согласовали заявку на командировку. И теперь начинаются различия в процессах. На основании утвержденной заявки мы создаем маршрут командировки или план. В этом документе указывается весь маршрут нашего передвижения, а что еще интереснее, то там указываются и бронируются гостиницы, перелеты, переезды, автомобили. И это все в рамках стандартного решения. Исключение только то, что это решение ориентировано на прямой договор и соответственно доступ к системе Amadeus и немецким железным дорогам. То есть сотрудник сам может выбрать нужные билеты, отель и прочие параметры из системы бронирования. У нас же пока это делается либо вне системы, либо через секретаря, либо внутреннего или внешнего провайдера. Выход я пока вижу только один – писать интеграции с внешними провайдерами (система позволяет это сделать через badi).

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

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

Читать далее

Расширяем PTMW с помощью BADi

Всем привет.

Хочу напомнить, что BAdI HRPAD00INFTY работает только в транзакциях PA30, PA51, но не работает в PTMW. Поэтому приходится дублировать логику проверки/обработки данных инфотипов в двух местах, если вы используете транзакции как PTMW, так и PA*. По работе с BAdI в PTMW крайне мало документации и всего три ноты:

Note 367249 – Customer enhancements for the BLP

Note 447097 – Questions and answers concerning the TMW implementation

Note 897623 – User exits and BADIs in the PT area

Промучившись несколько часов с поиском решения по расширению PTMW для своих нужд, решил поделиться опытом с общественностью. Опять же, напоминаю, что на красоту и изящество кода не претендую. Моя задача – оставить заметку, чтобы не забыть в каком направлении искать решение.

Читать далее

Расширяем PTMW

Сегодня наткнулся на решение по расширению PTMW. Оказывается есть очень мощный инструмент для управления данными (но не экранами, к сожалению) при работе в этой транзакции. Называется сие чудо BLP (Business Logic Processor). Работает через BAdi и фильтры на определенные события.

Более подробно можно почитать в нотах (а там же и найти примеры реализации):

Note 447097 – Questions and answers concerning the TMW implementation
Note 367249 – Customer enhancements for the BLP

Проверено – работает, чему я очень рад. Раньше PTMW для меня был закрытым инструментом.

P.S. Если покопаться в настроечных табличках PTMW (которых нет в SPRO), то там для каждой области PTMW и каждого чиха есть свой класс. Что если сделать свои классы и там прописать? Вроде бы и “настроение” транзакции можно поменять.

Расширение кредитора на БЕ из делового партнера

Хотите автоматически создавать расширение кредитора на БЕ при синхронизации с деловыми партнерами? Вот вам! Код кривой, но лучше у меня нет времени и терпения 🙂 Кто поправит до красивого буду крайне благодарен! Это образец и только для моих нужд, адаптируйте. Надо сделать кнопочку Donate для пожертвований. Около 5 часов убил, чтобы найти где и как это сделать. Пожертвовали бы?

Реализуем BADI с таким интерфейсом IF_EX_CVI_CUSTOM_MAPPER~MAP_BP_TO_VENDOR

BADi искать тут: IMG – Cross-Application Components – Master Data Synchronization – Customer/Vendor Integration – Business Partner Settings – Business Add-Ins (BAdIS).

method IF_EX_CVI_CUSTOM_MAPPER~MAP_BP_TO_VENDOR.
DATA:
  l_pernr type pernr-pernr,
  lt_p0001 type table of p0001,
  wa_p0001 type p0001,
  ls_company_data type VMDS_EI_COMPANY,
  l_task TYPE VMD_EI_COMPANY_TASK,
  l_bank_detail type BUS_EI_BUPA_BANKDETAIL.
  l_pernr = i_partner-header-object_instance-bpartner.