Цитата:
В ней передавал на выход как '', так и 'X'.
А где именно?
По-моему, этого не достаточно. У этого БАДИ 5 методов, нужно в GET_RESPONSIBLE_ORGUNITS реализовать свою проверку полномочий. На вход подаются список объектов из плана (IM_COSTUNITS_IN_PLAN), в методе нужно решить, какие из них будут доступны пользователю и вернуть достпуные в EX_RESP_ORGUNITS.
Это если планирование идет в разрезе ОргЕдиниц. Если в разрезе МВЗ, то нужно смотреть GET_RESPONSIBLE_CO_OBJECTS.
Подробнее можно посмотреть
Класс приложения CL_HCP_DETAIL_PLANNING_UI, метод PLAN_CALL_EXIT_RESP_OBJECTS
Вот кусок кода
Code:
* check if customer exit is implemted
IF S_EXIT_RESP_OBJECTS IS INITIAL.
CALL FUNCTION 'HR_GET_BUSINESS_ADD_IN'
EXPORTING
exit_name = 'HRHCP00_RESP_OBJECTS'
IMPORTING
is_implemented = S_EXIT_RESP_OBJECTS
CHANGING
instance = S_EXIT_INSTANCE_RESP_OBJECTS.
IF S_EXIT_RESP_OBJECTS IS INITIAL.
S_EXIT_RESP_OBJECTS = cl_hcp_global_constants=>c_switch_off.
l_is_used = cl_hcp_global_constants=>c_switch_off.
ELSE.
S_EXIT_RESP_OBJECTS = cl_hcp_global_constants=>c_switch_on.
ENDIF.
ENDIF.
IF S_EXIT_RESP_OBJECTS = cl_hcp_global_constants=>c_switch_on.
case IM_VIEW.
when CL_HCP_GLOBAL_CONSTANTS=>c_org_view.
refresh lt_hrobjects_in_plan.
loop at IM_COSTUNITS_IN_PLAN into ls_COSTUNITS_IN_PLAN.
move-corresponding ls_COSTUNITS_IN_PLAN to ls_hrobjects.
ls_hrobjects-plvar = IM_PLVAR.
append ls_hrobjects to lt_hrobjects_in_plan.
endloop.
CALL METHOD S_EXIT_INSTANCE_RESP_OBJECTS->GET_RESPONSIBLE_ORGUNITS
EXPORTING
IM_USER = IM_USER
IM_BEGDA = IM_BEGDA
IM_ENDDA = IM_ENDDA
IM_PLVAR = IM_PLVAR
IM_COSTUNITS_IN_PLAN = lt_hrobjects_in_plan
IM_TRANSACTION_TYPE = IM_TRANSACTION_TYPE
IMPORTING
EX_RESP_ORGUNITS = lt_hrobjects
EX_ERROR_TAB = EX_ERROR_TAB
EX_ON_OFF = l_is_used.
loop at lt_hrobjects into ls_hrobjects.
move-corresponding ls_hrobjects to ls_resp_objects.
append ls_resp_objects to EX_RESP_OBJECTS.
endloop.
when others.
дальше идет обработка для МВЗ