Ограничение удаления прикрепленных файлов (GOS)

В SAP очень часто используют возможность прикрепленя файлов к различным объектам, таким как ОЗМ или контракт.

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

Есть известное решение, которое заключается в запрете кнопки «Удалить» на панели инструментов путём расширения метода SET_TOOLBAR  в классе CL_GOS_ATTACHMENTS, однако оно имеет существенный недостаток — остается возможность удалить прикрепленный объект из контекстного меню:

Правильный способ ограничения удаления заключается в обработке действия пользователя в методах IF_CMD_HANDLER~EXECUTE_ITEMS_CMD и IF_CMD_HANDLER~EXECUTE_LINKS_CMD(при необходимости).

Для этого создаем PreExit данных методов где проверяем команду пользователя в переменной ip_cmd. Если пользователь пытается удалить, то значение этой переменной равно %ATTA_DELETE (константа cl_gos_attachments=>gc_cmd_delete). В этом случае мы можем проверить полномочия пользователя, выдать сообщение пользователю и выйти.

Заодно опишу работу с GOS-объектами:

В таблице lt_linkbuff содержится список объектов и можно получить свойства каждого объекта

Или можно выполнить некоторые действия, например открыть прикрепленный файл

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *