27.10.2009, 15:08 | #1 |
Вопрошающий
|
Задачи, примечания и наследование createdby и modifiedby с помощью workflow в них
Добый день.
Прошу помощи ибо совсем уже запутался в правах на объекты, наследование и протчая... Суть такова: Есть стандартный объект Задача 1) Задача должна быть связана с 2 пользователями: Постановщиком и Исполнителем, при этом Постанощик и Исполнитель - могут находиться в разных подразделениях и на разных уровнях иерархии подразделений (напрямую никак не связанных). Каждый пользователь ОДНОВРЕМЕННО может быть как Постановщиком для одних задач, так и Исполнителем для других. В кач-ве атрибута Исполнитель используется стандартный системный атрибут Ответственный (ownerid). В кач-ве Постановщика используется стандартный системный атрибут Создано (createdby) Необходимо, чтобы а) при постановке задачи, Постановщик (пока задача открыта) ВСЕГДА мог редактировать атрибуты объекта (в т.ч. и при назначении задачи Исполнителю) б) Исполнитель НЕ МОГ редактировать ничего, кроме атрибута Описание и добавления примечаний в) Каждый пользователь мог отдельно видеть - назначенные ему задачи - назначенные им задачи Насчет пункта в) проблем не вижу - используем стандартное представление "Мои Задачи" и добавляем представление "Мои поручения" (Задачи, назначенные данным пользователем кому-либо А вот насчет пунктов а) и б) меня терзают смутные сомнения... и вот по какому поводу: - хотелось бы все сделать без вмешательства программистов, масимум на уровне скриптов клиентской части - с точки зрения логики раздачи прав на объекты: комкакие права давать - ведь в одном случае у пользователя одна роль, в другом - другая... и эти роли не должны суммироваться... 2) При изменении какого либо атрибута объекта Задача, необходимо создавать примечание для этой Задачи, созданное от имени пользователя, изменившего саму задачу. На данный момент на изменение атрибутов Задачи посажен wokflow, который - создает Примечание и записывает в его атрибут Описание некий текст, - вызывает дочерний процесс, срабатывающий на создание Примечания, который апдейтит ownerid на значение, равное Задача.Изменено. Все казалось бы хорошо, но а) в представлении Примечания выводятся поля "Кто создал" и "Кем модифицировано", при этом в них записывается пользователь - ответственный за бизнес-процесс (который отличается от пользователя, модифицировавшего задачу): т.е. б) поле Ответственный (ownerid который и меняется с помощью БП) в Примечании как раз и не выводится, а он то как раз и интересен... При этом при настройке Workfow на создание примечания невозможно достучаться до полей Ответственный, Создатель и Кто модифицировал... Ну или если описать ситуацию "на пальцах": - задачу создал пользователь А - назначена она пользователю В - к данной задаче предоставлен доступ пользователю С - Wokflow настроен и ответственный у него пользователь D - Пользователь С(А или B как частные случаи) изменяет что-либо в задаче. что происходит: - Срабатывает Wokflow, который создает примечание, в котором видно что данное Примечание создал пользователь D - хозяин БП) Что нужно: - Чтобы wokwlow сратывал от имени Пользователя С(А или B cоответственно) т.е. от текущего пользователя. Нужен совет - как с помощью шамана и бубна (НО опять таки БЕЗ программистов) с помощью кастомизации, в т.ч. и ансаппорт (да-да, знаю что очень плохо, но... таковы реалии - в данном проекте для выполнения данных работ по плану программистам нет работы)... Честно говоря, перепробовал массу способов которые смог найти (в т.ч. и то, что нашел на ахфоруме... безрезультатно... Спасите грешную душу - хотя бы подскажите в каком направлении копать (посылов в SDK нинада :-) ) ПыСы Все больше склоняюсь к мысли создать свой объект Задания и Примечания и работать с ними.. пусть даже и с потерей части стандартной функциональности...
__________________
Победивший противника - силен, победивший себя - величественнен Последний раз редактировалось Dissident; 27.10.2009 в 15:11. |
|
|
|