本帖最后由 adminlily 于 2020-12-8 11:40 编辑
OCS库存详情
名称:自动创建对象的配置器
描述:基于现有对象的模板。
版本:1.1.2
发布:2019-03-26
itop-version-min:2.6.0
码:用于自动对象创建的combodo配置器
状态:稳定
下载:[ ttps://store.itophub.io/en_US/products/combodo-configurator-for-automatic-object-creation]https://store.itophub.io/en_US/products/combodo-configurator-for-automatic-object-creation[/url]
备用名称:模板(模板)
扩散:iTop集线器
该组件的其他版本:1.0.14
该扩展旨在改进终端用户生产效率。它会自动从现有数据中创建一组预填充的对象。
在可能的用法中,您可以:
- 当将请求分配给处理人员时,将执行用户请求的预设工单,即所选服务的依赖。
- 在选定的服务上的合同和依赖上预设一个特性列表,以便在创建合同时立即进行记录。
- 在…上预设SLA依赖
- 预设服务器接口
可以将其与对象复印机结合使用,例如:从配置项创建“移至生产”请求。将自动(或不)分配请求,然后预先填写工作单。
请注意,在大多数情况下,您将不得不更改现有的数据模型来定义模板类。
原则触发方式
在以下情况下将复制模板:
- 在创建对象时
- 或当对象达到给定状态时(需要生命周期)
可以通过OQL过滤掉触发器的范围中的对象:SELECT UserRequest WHERE team_id_friendlyname ='Doers'。
操作活动
满足触发条件后,模块将执行以下操作:
- 查找模板。这是通过OQL来完成的。例如。 SELECT WorkOrderTemplate WHERE service_id = :trigger->service_id
- 对于每个模板,
- 实例化一个称为副本的对象
- 在副本上执行一系列功能。这被形式化为操作活动的列表。例如,“clone(description)+set(ticket_id,$trigger->id$)” ”将从模板复制属性描述,然后将父工单设置为触发复制的工单
- (可选)找到当前模板的子代,并对每个子代执行相同的操作; (即,a + b + c,以递归方式)
- (可选)在触发对象上执行一系列操作活动(设置价值,施加刺激)。
在触发对象上显示报告(尽管这是可选的):
修订记录
日期 | 版本 | 描述 | 2019-03-26 | 1.1.2 | -修复了使用对象复印机复制列表时的问题
-修复了模具操作活动中的自定义日期格式 | 2019-01-16 | 1.1.1 | 安全硬化 | 2018-12-19 | 1.1.0 | -支持附件复印
-修复了从配置项创建工单的重复链接 | 2018-06-26 | 1.0.14 | 为CaseLog属性添加copy_head动词,进行ES翻译 | 2017-11-15 | 1.0.13 | 修复错误消息或工具提示中显示的有关设置只读属性的错误。 | 2017-09-29 | 1.0.12 | 仅在目标类可写时,才在对象中显示功能的详细信息。 | 2017-04-04 | 1.0.11 | 案例日志:在案例日志上使用set时,该条目设置了两次,HTML格式丢失,并且如果该日志是首次从源复制而来,则该日志已损坏。 | 2017-03-27 | 1.0.10 | 通过一些自定义(在工单日期上预设),中断了相关字段的刷新。 iTop 2.3中引入的回归 | 2017-03-23 | 1.0.9 | XSS脆弱性的修复 | 2016-08-09 | 1.0.8 | 修复了与iTop 2.3.0的兼容性(仍向后兼容):使用隐藏字段和案例日志时,可以正确处理面包屑+错误修复程序。 | 2015-10-05 | 1.0.7 | 修复了与iTop 2.2.0的兼容性(向后兼容) | 2015-09-30 | 1.0.6 | 新动词:nullify。用于保留日期或日期时间未定义(与动词重置不同,因为此类属性的默认价值为“现在”) | 2015-07-02 | 1.0.5 | 将数据从触发对象传输到副本:copy_from_trigger。自定义操作活动的新动词:call_method。 | 2015-04-08 | 1.0.3 | 将数据从副本升级到触发对象:retrofit_from_copy | 2015-02-13 | 1.0.2 | 处理创建的对象的情况(无生命周期) | 2015-02-06 | 1.0.1 | 修复了报告中的错误:当应用多个规则时,仅显示最后一个报告 | 2015-02-03 | 1.0.0 | 首次发布的版本 |
安装
展开ZIP文件,然后将itop-stencils和itop-object-copier文件夹的内容复制到iTop的扩展文件夹中,然后再次启动安装程序。
在启动安装程序之前,请确保Web服务器具有足够的权利来读取扩展文件夹及其所有子文件夹的内容。
当提示您选择要安装的扩展时,请在可用的扩展列表中检查“对象复印机”和“模具”。
配置
规则是由… 规则设定名称 | 描述 | 例 | name | 唯一标识符(尚未使用) | | trigger_class | 触发复制的对象类别 | 用户请求 | trigger_scope | trigger_class类的所有OQL返回对象 | SELECT UserRequest JOIN Team … WHERE Team.org_id = 123 | trigger_state | 可选:到达状态。如果保留为空白,则对象创建的内容将为触发器和操作活动。如果定义了生命周期,则指定“ new”与将参数留为空白具有相同的作用。 | 已分配 | report_label | 可选:在创建的修改后的触发对象上显示的报告的标签或字典条目(附加标语)。如果缺少此条目,则禁用反馈 | 已为工单创建任务列表 | templates | OQL。触发对象上的过滤器可以使用参数:触发器-> xxx | SELECT Template WHERE team_id = :trigger->team_id | copy_class | 为每个模板创建的对象类 | 工作指示 | copy_actions | 一系列操作活动(请参阅以下说明),将在每个对模板上执行 | … | copy_hierarchy | 可选的。必须设置为复制分层模板 | array('template_parent_attcode'⇒'parent_id', 'copy_parent_attcode'⇒'parent_id') | retrofit_from_copy | 可选:对于每个副本,将在触发对象上执行一系列操作活动(请参阅以下说明)(副本是从中选择值的对象) | … | copy_from_触trigger | 1.0.4中的新增功能-可选:要在副本上执行的一系列操作活动(请参见以下说明),触发对象是数据的源 | … | retrofit | 一系列操作活动(请参阅以下说明)将在触发对象上执行。将执行一次,并且在执行完Retrofit_from_copy操作活动之后 | … |
report_label可以本地化,而无需创建字典。为此,请为每种支持的语言创建设置report_labell <language_code>(例如“ menu_label/FR FR”)。设置report_label将是默认的报告。
如果设置了copy_hierarchy,请确保查询模板不会同时返回模板及其子模板之一。否则,子模板将被实例化多次(首先作为模板,然后作为其中一个模板的子模板)。在大多数情况下,添加条件AND parent_id = 0就足够了。
功能被指定为格式为“ verb(arg1 [,arg2 […]]])”的字符串。这意味着源对象和目标对象。源对象和目标对象都依赖于定义了一系列对象的上下文:
- copy_actions:来源是当前模板对象,目的地是相应的副本
- copy_from_trigger (1.0.4中的新增功能):源是触发对象,目标是副本
- retrofit_from_copy:源是顶级副本,目标是触发对象
- retrofit:源和目标是触发对象
以下动词可用:
动词 | 参量 | 描述 | clone_scalars | <无> | 将所有标量属性从源复制到目标 | clone | attcode1,attcode2,... | 将给定的属性从源复制到目标 | reset | 密码 | 将属性(在目标位置)重置为其默认的价值 | nullify | 密码 | 1.0.6中的新增功能-将属性重置为空的价值(从最终用户的角度来看,它似乎是未定义) | copy | att_to_read,att_to_write | 从att_to_read (source) to att_to_write (destination) | append | 密码,字符串 | 将字符串追加到属性(目标)。该字符串可以包含占位符(请参见下面的说明)。逗号必须以反斜杠转义。允许换行(\ n)。字符集必须为utf-8. | set | attcode,价值 | 设置一个价值(目的地)。如果价值是字符串,则它可以包含占位符(请参阅下面的说明)。逗号必须以反斜杠转义。允许换行(\ n)。字符集必须为utf-8. | add_to_list | attRead,attWrite,attLink,价值 | attRead(源)是一个外部键,attWrite(目标)是一个N-N链接集,attLink是链接类上的属性,它将被设置为<价值> | apply_stimulus | 刺激代码 | 在目的地上施加刺激。请注意,此动词会执行记录和对象 | call_method | 职能名称 | 1.0.4中的新增功能-在编写的对象上调用提供的方法。其原型必须为“公众职能xxxx($ oSource)”。如果是职能,则职能可以发送异常。在这种情况下,失效消息将显示在log/error.log文件中 | clone_attachments | <无> | 1.1.0中的新增功能-将所有附件从源复制到目标 |
没有用于记录(动词更新)的动词,因为该模块负责该动词。在实现call_method时,这尤其有意义:您无需在目标上调用DBUpdate。另一方面,如果您修改源对象,则必须将其保存到DB。无论如何,明智的做法是从另一个操作活动集执行修改,修改后的对象实际上将成为目的地。
可用的占位符:
- $ this-> attcode $,其中表示源对象
- $trigger-> attcode $,其中触发器表示触发触发器(仅适用于副本对象)
- $ current_contact_id $
- $ current_contact_friendlyname $
- $current_date$
- $current_time$
局限性
- 在1.1.2之前的iTop 2.4.0或更高版本中,如果您为iTop定义了自定义日期格式,则在$this->attcode$ or $trigger->attcode$​, 时,日期属性不能正确解码,导致到错误| Error | itop-stencils: rule #3 - Action: set(start_date,$trigger->start_date$) - Wrong format for date attribute start_date, expecting "Y-m-d H:i:s" and got "13-12-2018 00:00:00".
- 从1.1.2(和iTop从2.4.0开始)仅用于Date(或DateTime)属性,将使用以下语法:
- $this->​raw(attcode)$ or $trigger->​raw(attcode)$
配置示例
'itop-stencils' => (
'rules' => (
(
'name' => 'Work orders',
'trigger_class' => 'UserRequest',
'trigger_scope' => 'SELECT UserRequest',
'trigger_state' => 'assigned', // triggered when reaching this state
'report_label' => 'A task list has been created for the ticket', // Label
or dictionary entry
'report_label/FR FR' => 'Une liste de tache a été créée pour ce ticket',
'templates' => 'SELECT WorkerOrderTemplate WHERE service_id = :trigger-
>service_id', // A query to define how to look for the templates
'copy_class' => 'WorkOrder', // Class of the copied templates
'copy_actions' => ( // Series of actions to preset the object in the
creation form
'clone(name)',
'clone(description)',
'set(ticket_id,$trigger->id$)',
'set(team_id,$trigger->team_id$)',
'set(agent_id,$trigger->agent_id$)',
),
'copy_hierarchy' => (
'template_parent_attcode' => 'parent_id',
'copy_parent_attcode' => 'workorder_parent_id'
),
'retrofit' => ( // Series of actions to retrofit some information from the
created object to the source object
'set(private_log,A task list has been created for the ticket)',
),
),
),
),
局限性
这些是对象复印机的局限性。
当前未处理以下类型的属性,因此无法预先设置(并且未提供错误消息)
变通方案将使用动词“ call_method”(1.0.4中的新增功能)并将您的需要作为目标对象的一种方法来实现。
故障排除
所有错误均记录到文件log/error.log中
从终端用户的角度来看,行为是:
- 如果未找到模板,则忽略该规则
- 如果找到错误(错误的OQL,则无法写入目标对象,…),则GUI中未显示任何内容。
|