Утверждение UserRequest

Попробуйте создать профиль для утверждающих Request Approver и переписать SELECT для approver_id в классе UserRequest.
Тогда в списке утверждающих будут только те люди, которые имеют профиль Request Approver.

Текст datadomel примерно такой:

Извините. Вот текст:

<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <constants>
  </constants>
  <classes>
<class id="UserRequest" _delta="must_exist">	
  <fields>
    <field id="approver_id" xsi:type="AttributeExternalKey" _delta="redefine">
      <filter><![CDATA[SELECT Person AS pe JOIN User AS u1 ON u1.contactid=pe.id JOIN URP_UserProfile AS u2 ON u2.userid=u1.id WHERE u2.profile='Request Approver']]></filter>
      <sql>approver_id</sql>
      <target_class>Person</target_class>
      <is_null_allowed>true</is_null_allowed>
      <on_target_delete>DEL_MANUAL</on_target_delete>
      <allow_target_creation>false</allow_target_creation>
    </field>
  </fields>
 </classes>
  <menus>
 </menus>
 <user_rights>
<groups>
</groups>
<profiles>
  <profile id="50" _delta="define">
    <name>Request Approver</name>
    <description>Request Approver</description>
    <groups>
      <group id="UserRequest">
        <actions>
          <action id="ev_approve" xsi:type="stimulus">allow</action>
  		  <action id="ev_reject" xsi:type="stimulus">allow</action>
		      <action id="stimulus:ev_reopen">allow</action>
          <action id="action:write">allow</action>
          <action xsi:type="read">allow</action>
          <action xsi:type="bulk read">allow</action>
    	</actions>
      </group>
    </groups>
  </profile>
  </profiles>
  </user_rights>
  </itop_design>

Вариантов много. Один из них подсказал @iilitv. Но профиль делать не обязательно, можно просто поиграться с селектом в approver_id.

Если у вас структура простая и нет строгих ограничений, то можно просто выбрать всех Персон:

SELECT Person

Если структура такая:

  1. Компания 1
    1.1 Руководство 1
    1.2 Служба 1
    1.2.1 Отдел в службе 1
  2. Компания 2
    2.1 Руководство 2
    2.2 Отдел 2

То можно из Отдела в службе 1 можно выбрать Персон ветки Компании 1 так:

SELECT Person AS p
JOIN Organization AS node1 ON p.org_id = node1.id
JOIN Organization AS node2 ON node1.parent_id BELOW node2.id
JOIN Organization AS node3 ON node2.parent_id ABOVE node3.id
WHERE node3.id = :this->org_id

Именно так и хотелось сделать.
Спасибо! попробуем сделать!

Профиль сделан для того, что-бы не давать утверждающим никаких других прав в Админ. окне itop кроме как утвердить или отклонить. Иначе, для этого действия, придется давать рабочий профиль. И что они там натворят неизвестно.

Всем добрый день.
Была поставлена задача автоматически подачи Запроса на утверждение.
Добавил в подкат. услуг флаг автоутверждения и утверждающего.
В OnUpdate прописал
$oStatus = $this->Get(‘status’);
switch ($oStatus)
{
case ‘new’:
$oApprover1 = $this->Get(‘approver_id_1_service’);
if (!empty($oApprover1))
{
$this->Set(‘approver_id’, $oApprover1);
$this->Set(‘status’,‘waiting_for_approval’);
$this->ApplyStimulus(‘ev_wait_for_approval’);
$this->DBUpdate();
}
Статус меняется, но триггер не срабатывает и уведомление не отправляется.
Пробовал на начало состояния waiting_for_approval, на конец состояния new - ни один не срабатывает.
Подскажите пожалуйста - как заставить триггера работать.