×

微信扫一扫,快捷登录!

二次开发-数据环境-变迁状态

标签: 暂无标签
本帖最后由 adminlily 于 2020-12-15 16:44 编辑

强制生命周期强制字段
先决条件:您必须熟悉教程中使用的语法 并且已经创建了一个扩展.

学习:强制在某些状态转换中填充字段

水平:[ ttps://www.itophub.io/wiki/page?id=level&dataflt%5B0%5D=level_%3DIntermediate]中间[/url]

域:[ ttps://www.itophub.io/wiki/page?id=domains&dataflt%5B0%5D=domains_%3DXML]XML[/url], [ ttps://www.itophub.io/wiki/page?id=domains&dataflt%5B0%5D=domains_%3DPHP]PHP[/url], [ ttps://www.itophub.io/wiki/page?id=domains&dataflt%5B0%5D=domains_%3DConstrain]constrain[/url], [ ttps://www.itophub.io/wiki/page?id=domains&dataflt%5B0%5D=domains_%3DLifecycle]Lifecycle[/url]

最低版本:2.1.0

用例只是其中一种[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Acustomization%3Amandatory-field]强制提供字段.[/url]

对于这些用例,我们将使用UserRequest类,因为它具有生命周期。当对象具有生命周期时,iTop数据模型允许在转换和“状态”上指定必须填写哪些字段。

生命周期上的标志适用于控制台和门户,但在使用CSV导入,DataSynchro或API REST/JSON修改创建对象时,不强制提供该字段


转换上的强制性

例如,当用户请求从状态New移到Assigned状态时,您可能决定必须记录服务。

该动作称为转换,由初始状态和所施加的刺激唯一地标识。

[ ttps://www.itophub.io/wiki/page?do=export_code&id=2_7_0%3Acustomization%3Amandatory-on-transition&codeblock=0]itop_design / classes[/url]


<class id="UserRequest">
      <lifecycle>
        <states>
          <!-- For User Request in State New... -->
          <state id="new">
            <transitions>
              <!-- On the transition, trigger by ev_assign stimulus... -->
              <transition id="ev_assign" _delta="must_exist">
                <flags>
                  <!-- We want to force the Service... -->
                  <attribute id="service_id" _delta="define" >
                    <!-- to be provided -->
                    <mandatory/>
                  </attribute>
                </flags>
              </transition>
            </transitions>
          </state>
        </states>
      </lifecycle>
    </class>



强制性的
在此用例中,我们要确保所有处于Assigned状态的UserRequest都定义了服务。

在状态级别定义“强制”标志时,即使未在转换级别上指定,它也会自动应用于以该状态结束的所有转换。

[ ttps://www.itophub.io/wiki/page?do=export_code&id=2_7_0%3Acustomization%3Amandatory-on-transition&codeblock=1]itop_design / classes[/url]


<class id="UserRequest" _created_in="itop-request-mgmt-ITIL" _delta="must_exist">
      <lifecycle>
        <states>
          <state id="assigned" _delta="must_exist">
            <!-- setting no _delta is equivalent to _delta="merge" -->
            <flags>
              <!-- Here we assume that no other extension nor the default


datamodel... -->
              <!-- has set flags on field 'service-id' for state 'assigned' already


-->
              <attribute id="service_id" _delta="define>
                <mandatory/>
              </attribute>
            </flags>
          </state>
        </states>
      </lifecycle>
    </class>


迁移:对安装程序没有可见的影响,但是在提供服务之前,不能再在控制台或门户中修改不兼容的对象。创建审计规则以检索不符合此新约束的对象并进行修复。






上一篇:二次开发-数据环境-增加状态及状态变迁
下一篇:二次开发-数据环境-创建类
Hoop

写了 280 篇文章,拥有财富 1487,被 3 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部