Тикет управления конфигурациями

	// Setup
	//
	'dependencies' => array(
		'itop-change-mgmt-itil/2.2.0',
	),

Прописал.
Toolkit дал добро во вкладке Data Model Consistency

Ok, no problem detected.

Теперь обновляйте и идите смотреть Стандартное Изменение.

https://wiki.openitop.org/doku.php?id=2_2_0:customization:start#using_the_toolkit

@vladimir сейчас изменений никаких. как теперь правильно убрать лишние переходы статусов и вкладки?

А какие должны быть?

Вкладки убираются переопределением presentation.
Переходы переопределяются в livecycle. Посмотрите как там сделаны переходы в transations и сделайте свой переход Назначен → Реализован в обход Запланирован аналогично переходу из Реализован → Закрыт.

Что-то я не понял:(

вот весь код моего модуля

<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <constants>
  </constants>
  <classes>
<class id="RoutineChange">
      <parent>Change</parent>
      <properties>
        <category>bizmodel,searchable,changemgmt</category>
        <abstract>false</abstract>
        <key_type>autoincrement</key_type>
        <db_table>change_routine</db_table>
        <db_key_field>id</db_key_field>
        <db_final_class_field/>
        <naming>
          <attributes>
            <attribute id="ref"/>
          </attributes>
        </naming>
        <display_template/>
        <icon>images/change.png</icon>
        <reconciliation>
          <attributes>
            <attribute id="ref"/>
          </attributes>
        </reconciliation>
        <order>
          <columns>
            <column id="ref" ascending="false"/>
          </columns>
        </order>
      </properties>
      <fields/>
      <lifecycle>
        <attribute>status</attribute>
        <stimuli>
          <stimulus id="ev_assign" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_reopen" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_plan" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_approve" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_replan" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_notapprove" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_implement" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_monitor" xsi:type="StimulusUserAction"/>
          <stimulus id="ev_finish" xsi:type="StimulusUserAction"/>
        </stimuli>
        <states>
          <state id="new">
            <flags>
              <attribute id="ref">
                <read_only/>
              </attribute>
              <attribute id="agent_id">
                <hidden/>
              </attribute>
              <attribute id="team_id">
                <hidden/>
              </attribute>
              <attribute id="title">
                <mandatory/>
              </attribute>
              <attribute id="start_date">
                <hidden/>
              </attribute>
              <attribute id="end_date">
                <hidden/>
              </attribute>
              <attribute id="last_update">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <hidden/>
              </attribute>
              <attribute id="reason">
                <hidden/>
              </attribute>
              <attribute id="requestor_id">
                <mandatory/>
              </attribute>
              <attribute id="creation_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <hidden/>
              </attribute>
              <attribute id="supervisor_group_id">
                <hidden/>
              </attribute>
              <attribute id="supervisor_id">
                <hidden/>
              </attribute>
              <attribute id="manager_group_id">
                <hidden/>
              </attribute>
              <attribute id="manager_id">
                <hidden/>
              </attribute>
              <attribute id="outage">
                <hidden/>
              </attribute>
              <attribute id="fallback">
                <hidden/>
              </attribute>
            </flags>
            <transitions>
              <transition id="ev_assign">
                <target>assigned</target>
                <actions/>
              </transition>
            </transitions>
          </state>
          <state id="validated">
            <flags>
              <attribute id="ref">
                <read_only/>
              </attribute>
              <attribute id="agent_id">
                <hidden/>
              </attribute>
              <attribute id="title">
                <mandatory/>
              </attribute>
              <attribute id="description">
                <read_only/>
              </attribute>
              <attribute id="start_date">
                <hidden/>
              </attribute>
              <attribute id="end_date">
                <hidden/>
              </attribute>
              <attribute id="last_update">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <hidden/>
              </attribute>
              <attribute id="reason">
                <read_only/>
              </attribute>
              <attribute id="requestor_id">
                <read_only/>
              </attribute>
              <attribute id="creation_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <hidden/>
              </attribute>
              <attribute id="team_id">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="supervisor_group_id">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="supervisor_id">
                <hidden/>
              </attribute>
              <attribute id="manager_group_id">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="manager_id">
                <hidden/>
              </attribute>
              <attribute id="outage">
                <hidden/>
              </attribute>
              <attribute id="fallback">
                <hidden/>
              </attribute>
            </flags>
            <transitions/>
          </state>
          <state id="rejected">
            <flags>
              <attribute id="ref">
                <read_only/>
              </attribute>
              <attribute id="agent_id">
                <hidden/>
              </attribute>
              <attribute id="title">
                <mandatory/>
              </attribute>
              <attribute id="start_date">
                <hidden/>
              </attribute>
              <attribute id="end_date">
                <hidden/>
              </attribute>
              <attribute id="last_update">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <hidden/>
              </attribute>
              <attribute id="reason">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="requestor_id">
                <mandatory/>
              </attribute>
              <attribute id="creation_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <hidden/>
              </attribute>
              <attribute id="supervisor_group_id">
                <hidden/>
              </attribute>
              <attribute id="supervisor_id">
                <hidden/>
              </attribute>
              <attribute id="manager_group_id">
                <hidden/>
              </attribute>
              <attribute id="manager_id">
                <hidden/>
              </attribute>
              <attribute id="outage">
                <hidden/>
              </attribute>
              <attribute id="fallback">
                <hidden/>
              </attribute>
            </flags>
            <transitions/>
          </state>
          <state id="assigned">
            <inherit_flags_from>new</inherit_flags_from>
            <flags>
              <attribute id="description">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <must_prompt/>
                <mandatory/>
              </attribute>
              <attribute id="agent_id">
                <must_prompt/>
                <mandatory/>
              </attribute>
              <attribute id="reason">
                <read_only/>
              </attribute>
              <attribute id="requestor_id">
                <read_only/>
              </attribute>
              <attribute id="supervisor_group_id">
                <mandatory/>
              </attribute>
              <attribute id="supervisor_id">
                <must_prompt/>
                <mandatory/>
              </attribute>
              <attribute id="manager_group_id">
                <mandatory/>
              </attribute>
              <attribute id="manager_id">
                <must_prompt/>
                <mandatory/>
              </attribute>
            </flags>
            <transitions>
              <transition id="ev_plan">
                <target>plannedscheduled</target>
                <actions/>
              </transition>
            </transitions>
          </state>
          <state id="plannedscheduled">
            <inherit_flags_from>assigned</inherit_flags_from>
            <flags>
              <attribute id="org_id">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <mandatory/>
              </attribute>
              <attribute id="agent_id">
                <mandatory/>
              </attribute>
              <attribute id="start_date">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="end_date">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="impact">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="supervisor_id">
                <mandatory/>
              </attribute>
              <attribute id="manager_id">
                <mandatory/>
              </attribute>
              <attribute id="outage">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="fallback">
                <mandatory/>
                <must_prompt/>
              </attribute>
            </flags>
            <transitions>
              <transition id="ev_implement">
                <target>implemented</target>
                <actions/>
              </transition>
            </transitions>
          </state>
          <state id="approved">
            <flags>
              <attribute id="ref">
                <read_only/>
              </attribute>
              <attribute id="org_id">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <mandatory/>
              </attribute>
              <attribute id="agent_id">
                <mandatory/>
              </attribute>
              <attribute id="title">
                <mandatory/>
              </attribute>
              <attribute id="description">
                <read_only/>
              </attribute>
              <attribute id="start_date">
                <mandatory/>
              </attribute>
              <attribute id="end_date">
                <mandatory/>
              </attribute>
              <attribute id="last_update">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <hidden/>
              </attribute>
              <attribute id="reason">
                <read_only/>
              </attribute>
              <attribute id="requestor_id">
                <read_only/>
              </attribute>
              <attribute id="creation_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <read_only/>
              </attribute>
              <attribute id="supervisor_group_id">
                <read_only/>
              </attribute>
              <attribute id="supervisor_id">
                <read_only/>
              </attribute>
              <attribute id="manager_group_id">
                <read_only/>
              </attribute>
              <attribute id="manager_id">
                <read_only/>
              </attribute>
              <attribute id="outage">
                <read_only/>
              </attribute>
              <attribute id="fallback">
                <mandatory/>
              </attribute>
            </flags>
            <transitions/>
          </state>
          <state id="notapproved">
            <flags>
              <attribute id="ref">
                <read_only/>
              </attribute>
              <attribute id="org_id">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <mandatory/>
              </attribute>
              <attribute id="agent_id">
                <mandatory/>
              </attribute>
              <attribute id="title">
                <mandatory/>
              </attribute>
              <attribute id="description">
                <read_only/>
              </attribute>
              <attribute id="start_date">
                <mandatory/>
              </attribute>
              <attribute id="end_date">
                <mandatory/>
              </attribute>
              <attribute id="last_update">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <hidden/>
              </attribute>
              <attribute id="reason">
                <mandatory/>
                <must_prompt/>
              </attribute>
              <attribute id="requestor_id">
                <read_only/>
              </attribute>
              <attribute id="creation_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <read_only/>
              </attribute>
              <attribute id="supervisor_group_id">
                <read_only/>
              </attribute>
              <attribute id="supervisor_id">
                <read_only/>
              </attribute>
              <attribute id="manager_group_id">
                <read_only/>
              </attribute>
              <attribute id="manager_id">
                <read_only/>
              </attribute>
              <attribute id="outage">
                <mandatory/>
              </attribute>
              <attribute id="fallback">
                <mandatory/>
              </attribute>
            </flags>
            <transitions/>
          </state>
          <state id="implemented">
            <inherit_flags_from>plannedscheduled</inherit_flags_from>
            <flags>
              <attribute id="title">
                <read_only/>
              </attribute>
              <attribute id="start_date">
                <read_only/>
              </attribute>
              <attribute id="impact">
                <read_only/>
              </attribute>
              <attribute id="supervisor_group_id">
                <read_only/>
              </attribute>
              <attribute id="supervisor_id">
                <read_only/>
              </attribute>
              <attribute id="manager_group_id">
                <read_only/>
              </attribute>
              <attribute id="manager_id">
                <read_only/>
              </attribute>
              <attribute id="outage">
                <read_only/>
              </attribute>
            </flags>
            <transitions>
              <transition id="ev_monitor">
                <target>monitored</target>
                <actions/>
              </transition>
              <transition id="ev_finish">
                <target>closed</target>
                <actions>
                  <action>
                    <verb>SetCurrentDate</verb>
                    <params>
                      <param xsi:type="attcode">close_date</param>
                    </params>
                  </action>
                </actions>
              </transition>
            </transitions>
          </state>
          <state id="monitored">
            <inherit_flags_from>implemented</inherit_flags_from>
            <flags>
              <attribute id="caller_id">
                <read_only/>
              </attribute>
              <attribute id="parent_id">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <read_only/>
                <read_only/>
              </attribute>
              <attribute id="agent_id">
                <read_only/>
              </attribute>
              <attribute id="end_date">
                <read_only/>
              </attribute>
              <attribute id="fallback">
                <read_only/>
              </attribute>
            </flags>
            <transitions>
              <transition id="ev_finish">
                <target>closed</target>
                <actions>
                  <action>
                    <verb>SetCurrentDate</verb>
                    <params>
                      <param xsi:type="attcode">close_date</param>
                    </params>
                  </action>
                </actions>
              </transition>
            </transitions>
          </state>
          <state id="closed">
            <inherit_flags_from>implemented</inherit_flags_from>
            <flags>
              <attribute id="caller_id">
                <read_only/>
              </attribute>
              <attribute id="private_log">
                <read_only/>
              </attribute>
              <attribute id="parent_id">
                <read_only/>
              </attribute>
              <attribute id="team_id">
                <read_only/>
                <read_only/>
              </attribute>
              <attribute id="agent_id">
                <read_only/>
              </attribute>
              <attribute id="end_date">
                <read_only/>
              </attribute>
              <attribute id="close_date">
                <read_only/>
              </attribute>
              <attribute id="fallback">
                <read_only/>
              </attribute>
            </flags>
            <transitions/>
          </state>
        </states>
      </lifecycle>
      <methods/>
      <presentation _delta="redefine">
        <details>
          <items>
            <item id="functionalcis_list">
              <rank>10</rank>
            </item>
            <item id="contacts_list">
              <rank>20</rank>
            </item>
            <item id="workorders_list">
              <rank>30</rank>
            </item>
            <item id="related_request_list">
              <rank>40</rank>
            </item>
            <item id="related_incident_list">
              <rank>50</rank>
            </item>
            <item id="related_problems_list">
              <rank>60</rank>
            </item>
            <item id="child_changes_list">
              <rank>70</rank>
            </item>
            <item id="col:col1">
              <rank>80</rank>
              <items>
                <item id="fieldset:Ticket:baseinfo">
                  <rank>10</rank>
                  <items>
                    <item id="ref">
                      <rank>10</rank>
                    </item>
                    <item id="org_id">
                      <rank>20</rank>
                    </item>
                    <item id="status">
                      <rank>30</rank>
                    </item>
                    <item id="title">
                      <rank>40</rank>
                    </item>
                    <item id="description">
                      <rank>50</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Ticket:contact">
                  <rank>20</rank>
                  <items>
                    <item id="caller_id">
                      <rank>10</rank>
                    </item>
                    <item id="team_id">
                      <rank>20</rank>
                    </item>
                    <item id="agent_id">
                      <rank>30</rank>
                    </item>
                    <item id="supervisor_group_id">
                      <rank>40</rank>
                    </item>
                    <item id="supervisor_id">
                      <rank>50</rank>
                    </item>
                    <item id="manager_group_id">
                      <rank>60</rank>
                    </item>
                    <item id="manager_id">
                      <rank>70</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
            <item id="col:col2">
              <rank>90</rank>
              <items>
                <item id="fieldset:Ticket:resolution">
                  <rank>10</rank>
                  <items>
                    <item id="reason">
                      <rank>10</rank>
                    </item>
                    <item id="impact">
                      <rank>20</rank>
                    </item>
                    <item id="outage">
                      <rank>30</rank>
                    </item>
                    <item id="fallback">
                      <rank>40</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Ticket:relation">
                  <rank>20</rank>
                  <items>
                    <item id="parent_id">
                      <rank>10</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
            <item id="col:col3">
              <rank>100</rank>
              <items>
                <item id="fieldset:Ticket:date">
                  <rank>10</rank>
                  <items>
                    <item id="creation_date">
                      <rank>10</rank>
                    </item>
                    <item id="start_date">
                      <rank>20</rank>
                    </item>
                    <item id="end_date">
                      <rank>30</rank>
                    </item>
                    <item id="last_update">
                      <rank>40</rank>
                    </item>
                    <item id="close_date">
                      <rank>50</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
          </items>
        </details>
        <search>
          <items>
            <item id="ref">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="title">
              <rank>40</rank>
            </item>
            <item id="description">
              <rank>50</rank>
            </item>
            <item id="caller_id">
              <rank>60</rank>
            </item>
            <item id="team_id">
              <rank>70</rank>
            </item>
            <item id="agent_id">
              <rank>80</rank>
            </item>
            <item id="supervisor_group_id">
              <rank>90</rank>
            </item>
            <item id="supervisor_id">
              <rank>100</rank>
            </item>
            <item id="manager_group_id">
              <rank>110</rank>
            </item>
            <item id="manager_id">
              <rank>120</rank>
            </item>
            <item id="reason">
              <rank>130</rank>
            </item>
            <item id="impact">
              <rank>140</rank>
            </item>
            <item id="outage">
              <rank>150</rank>
            </item>
            <item id="parent_id">
              <rank>160</rank>
            </item>
            <item id="creation_date">
              <rank>170</rank>
            </item>
            <item id="start_date">
              <rank>180</rank>
            </item>
            <item id="end_date">
              <rank>190</rank>
            </item>
            <item id="last_update">
              <rank>200</rank>
            </item>
            <item id="close_date">
              <rank>210</rank>
            </item>
          </items>
        </search>
        <list>
          <items>
            <item id="finalclass">
              <rank>10</rank>
            </item>
            <item id="title">
              <rank>20</rank>
            </item>
            <item id="org_id">
              <rank>30</rank>
            </item>
            <item id="start_date">
              <rank>40</rank>
            </item>
            <item id="end_date">
              <rank>50</rank>
            </item>
            <item id="status">
              <rank>60</rank>
            </item>
            <item id="agent_id">
              <rank>70</rank>
            </item>
          </items>
        </list>
      </presentation>
    </class>
  </classes>
  <menus>
  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Замечательно.
Что в этом коде вы изменили?

Пока ничего. я спрашивал как правильно это сделать.
предполагаю так:
сократить число статусов в блоке stimuli

   <stimuli>
      <stimulus id="ev_assign" xsi:type="StimulusUserAction"/>
      <stimulus id="ev_implement" xsi:type="StimulusUserAction"/>
      <stimulus id="ev_finish" xsi:type="StimulusUserAction"/>
    </stimuli>

Удалить лишние блоки state, а именно:

<state id="validated">
<state id="rejected">
<state id="plannedscheduled">
<state id="approved">
<state id="notapproved">
<state id="monitored">

Правильно будет удалить лишние transitions (переходы). Нет перехода — нет статуса и стимула.

      <state id="assigned">
        <transitions _delta="redefine">
          <transition id="ev_implement">
            <target>implemented</target>
            <actions/>
          </transition>
        </transitions>
      </state>

Выше переход из Назначен в Реализован напрямую.

Получилось @vladimir, работает!
Переход выполняется, как и требовалось
назначен>реализация>закрыт
спасибо.

а для того чтобы при назначении оставить выбор только команды исполнителя(агент), достаточно удалить атрибуты в блоке state id=“assigned” ?

везде закомментрировал атрибуты

 <!--            <attribute id="supervisor_group_id">
                <read_only/>
              </attribute>
              <attribute id="supervisor_id">
                <read_only/>
              </attribute>
              <attribute id="manager_group_id">
                <read_only/>
              </attribute>
              <attribute id="manager_id">
                <read_only/>
              </attribute> -->

но не помогло

  <attribute id="supervisor_id">
     <hidden/>
  </attribute>

https://wiki.openitop.org/doku.php?id=2_2_0:customization:xml_reference#xml_general_structure
Смотрите lifecycle и ниже.

@vladimir во всех атрибутах выставил значения для: supervisor_group_id, supervisor_id, manager_group_id, manager_id значение hidden, но все равно при назначении тикета, требует указывать эти роли.
Что не так?

Как скрыть item’ы в presentation?

@igsao10, значит что-то забыли, чудес не бывает. delta=“redefine”? Обновление в toolkit?
Покажите содержимое lifecycle и содержимое вкладки Модель данных >> Тикет (Ticket) >> Изменение (Change) >> RoutineChange >> Жизненный цикл.

Сделать redefine всего presentation или delete на отдельных item.

Убрать роли получилось. Я не сделал redefine для states.

а вот скрыть вкладки не вышло.

  <presentation _delta="redefine">
    <details>
      <items>
        <item id="functionalcis_list">
          <rank>10</rank>
        </item>
        <item id="contacts_list">
          <rank>20</rank>
        </item>
        <item id="workorders_list" _delta="delete">
          <rank>30</rank>
        </item>
        <item id="related_request_list" _delta="delete">
          <rank>40</rank>
        </item>
        <item id="related_incident_list" _delta="delete">
          <rank>50</rank>
        </item>
        <item id="related_problems_list" _delta="delete">
          <rank>60</rank>
        </item>
        <item id="child_changes_list" _delta="delete">
          <rank>70</rank>
        </item>
        <item id="col:col1">
          <rank>80</rank>
          <items>

Либо redefine всего представления, либо delete конкретных item. Если делаете переопределение вышестоящего узла (presentetion), то ненужные нижестоящие узлы просто не указываете.

   <presentation _delta="redefine">
     <details>
      <items>
         <item id="functionalcis_list">
          <rank>10</rank>
        </item>
        <item id="contacts_list">
          <rank>20</rank>
        </item>
        <item id="col:col1">
          <rank>80</rank>
          <items>
```

Понял, спасибо.

@vladimir я тут строку текстовую попытался добавить в данный тикет:

 <fields>
  	<field id="jira_id" xsi:type="AttributeText" _delta="define">
  <sql>jira_id</sql>
  <default_value>jira_id</default_value>
  <is_null_allowed>true</is_null_allowed>
  <width>100px</width>
  <height>30px</height>
</field>
  </fields>

видимость вставил в зависимость

<item id="fieldset:Ticket:relation">
                  <rank>20</rank>
                  <items>
                    <item id="parent_id">
                      <rank>10</rank>
                    </item>
                    <item id="jira_id">
                      <rank>20</rank>
                    </item>
                  </items>
                </item>

toolkit не сругнулся и пропустил на компиляцию. после компиляции открываю тикет, а там вываливается “фатальная ошибка”

mysql_error = Unknown column 'RoutineChange_change_routine.jira_id' in 'field list', mysql_errno = 1054.

Что я не правильно сделал?

Скорее всего выбрали не ту кнопку на второй вкладке toolkit. Базу обновляли?