通知

iTop 集成了与生命周期相关的通知系统 的对象。这允许管理员定义电子邮件 给定类的对象进入或离开时的通知规则 指定状态、创建新对象时、更新 从门户发生,或者当达到特定阈值时发生。

通知机制分为两部分:

  • 触发器定义何时通知 必须发送。示例:当票证达到状态 “已分配”。

  • 操作定义将要执行的操作。 在当前版本的 iTop 中,唯一可用的 action 类型 包括发送电子邮件。

对于给定的触发器,您可以定义多个操作 执行了 (Executed) 及其顺序。此外,还可以执行给定的操作 通过几个触发器。

使用“管理工具”菜单中的“通知”链接进行管理 触发器和操作:

https://www.itophub.io/wiki/media?w=500&tok=d3b973&media=3_0_0:admin:notifications.png

  • “Triggers” 选项卡显示所有已创建 触发器。

  • “Actions” 选项卡显示所有操作

创建一个 行动

在创建有用的触发器之前,必须至少有一个操作是 定义。电子邮件操作是用于将邮件格式化为的模板 被发送,则定义消息的内容以及 主题、发件人和收件人。

要创建新操作,请转到“操作”选项卡并单击 “新...”。此时将显示以下向导:

新建操作

电子邮件操作的必填字段包括:

  • Name:此的标识符 操作,以便您可以检索它。
    名称:此操作的标识符,以便您可以检索它。

  • Subject:的 消息。可以使用占位符动态构建,例如 如下所述。
    主题:消息的主题。可以使用占位符动态构建,如下所述。

  • Body:消息的正文。五月 使用占位符动态构建,如下所述。 默认情况下,iTop 发送所有带有 MIME 类型的 text/html 的消息 对于电子邮件的正文。

  • From (email):静态 电子邮件地址或类似 .请注意,某些电子邮件 如果 “from” 地址不是 “from” 地址,服务器将拒绝邮件 有效。$this->agent_id->email$

  • From (label):静态 label 或占位符(如 .$this->agent_id->friendlyname$

当然,您必须指定至少一个 3 个字段,用于邮件收件人,收件人、 抄送密件抄送

其他字段:

  • 描述:可识别的自由文本 电子邮件操作的用途。未在电子邮件中发送 消息。

  • 状态

    • 在生产中:将电子邮件发送给检索到的人员 按 To、Cc 和 Bcc 查询
    • 正在接受测试:电子邮件将发送到电子邮件地址Test recipient
    • Inactive:不发送电子邮件
  • Language:要使用的语言 生成的电子邮件中插入的占位符。这会影响 主要是枚举的标签(如工单的状态)和 日期和时间格式。

  • HTML 模板:一个文件 包含一个 HTML 模板,用于以良好的格式包装您的电子邮件。上传的 HTML 文件可以 包含所有常用占位符以及一个特定的占位符,该占位符指示内容所在的区域 将插入 Body 的 Body。$content$

  • 测试收件人:使用的电子邮件地址 而不是 To、Cc 和 Bcc (当状态为Being tested

  • 回复 (email):静态 电子邮件地址或类似 .这是一个标准 电子邮件消息的属性。它通过邮件自动使用 工具作为要使用的地址,当用户在 电子邮件。如果省略,则地址为 使用。$this->team_id->email$from

  • 回复 (label):静态 label 或占位符(如 .这是一个标准 电子邮件消息的属性。它通过邮件自动使用 tools 作为标签,当用户对电子邮件执行 “回复” 操作时 在他的邮件中。如果省略,则标签为 使用。$this->team_id->friendlyname$from

  • Ignore Notify Flag: Whether or not to take into account the Notify flag on Contacts when determining the list of contacts to notify (in each of the To: CC: and Bcc: fields). When this field is set to “Yes”, the list of contacts to notify is exactly what is specifed by the OQL expression. If set to “No” a condition is automatically added to the OQL expression to exclude the Contacts which “Notify flag” is set to “No”.
    忽略通知标志:在确定要通知的联系人列表时(在每个 收件人:CC: 和 Bcc: 字段中),是否考虑联系人上的通知标志。当此字段设置为“Yes”时,要通知的联系人列表正是 OQL 表达式指定的内容。如果设置为“否”,则会自动向 OQL 表达式添加一个条件以排除联系人,其中“通知标志”设置为“否”。

Defining recipients 定义收件人

The contacts to be notified in the “To”, “Cc”, and “Bcc” are defined by an OQL query. This allows to specify multiple recipients for the notification, like “all the contacts attached to a ticket” or “all the contacts on the impacted site”.
要在“收件人”、“抄送”和“密件抄送”中通知的联系人由 OQL 查询定义。这允许为通知指定多个收件人,例如 “附加到工单的所有联系人” 或 “受影响站点上的所有联系人”。

If all list returned by the OQL queries are empty no email will be sent.
如果 OQL 查询返回的所有列表都为空,则不会发送电子邮件。

If the field “Ignore Notify flag” of this action is set to “No”, the condition is automatically appended to the OQL.notify = 'yes'
如果此操作的“忽略通知标志”字段设置为“否”,则该条件将自动附加到 OQL。notify = 'yes'

Using predefined queries 使用预定义查询

The easiest mean to define who will receive those notifications is to retrieve the query using the magnifier icon and select the appropriate query
定义谁将接收这些通知的最简单方法是使用放大镜图标检索查询并选择适当的查询

https://www.itophub.io/wiki/media?w=600&tok=d5166d&media=3_0_0:admin:predefined-queries-search.pnghttps://www.itophub.io/wiki/media?w=400&tok=ae4cfe&media=3_0_0:admin:predefined-queries.png

它会在字段中复制相应的 OQL。你可以选择一个 每个字段的不同预定义查询:

https://www.itophub.io/wiki/media?w=500&tok=369e0d&media=3_0_0:admin:predefined-queries-results.pngTo: 中的调用方:
SELECT Person WHERE id= :this->caller_id

在 抄送 中,链接到工单的联系人:

SELECT Contact 
JOIN lnkContactToTicket AS L ON L.contact_id = Contact.id 
WHERE L.ticket_id = :this->id

在 Bcc 中,票证所属的团队成员 派出:

SELECT Person AS P 
JOIN lnkPersonToTeam AS L ON L.person_id=P.id
WHERE L.team_id = :this->team_id

如果查询不是 100% 的需要,您可以修改查询。

编写 自己的查询

您可以从头开始编写自己的查询并对其进行测试:请参阅 Object Query 有关编写 OQL 的更多信息,请参阅语言 查询

Icon to test a queryRun Query screen

此 OQL 查询必须返回包含单个 email 属性的对象列表,即:

  • 联系

  • 团队

例如,要通知所有名字以 John 开头的人, To 字段可以包含:

SELECT Person WHERE name LIKE 'John%'

要通知所有附加到 CI 的 Person,请将其附加到 票证,用途:

SELECT Person AS P 
    JOIN lnkContactToFunctionalCI AS L1 ON L1.contact_id = P.id 
    JOIN FunctionalCI AS CI ON L1.functionalci_id = CI.id 
    JOIN lnkFunctionalCIToTicket AS L2 ON L2.functionalci_id = CI.id 
    WHERE L2.ticket_id = :this->id

如果您不想通知 标志设置为 、 的人员 将此条件添加到 WHERENotificationNo

  Person.notify = 'yes'

从 iTop 3.1.0 开始,您可以实现相同的功能 结果,只需设置字段 Ignore Notify flag 设置为 “No” 以执行此操作。

用 占位符

查询可以包含引用

  • 当前对象,其中 正在发送通知。语法为 :this->attribute

  • 已完成 事件源处的操作。语法为 :current_contact->attribute

例如,仅当代理执行 不会自行触发事件,则 To 字段将 包含:

SELECT Person WHERE id= :this->agent_id AND id != :current_contact->id

此语法也有效: :current_contact_id 等效于 :current_contact->id
此语法也有效: :current_contact_id 相当于 :current_contact->id

消息内容和占位符

邮件正文使用 WYSIWYG HTML 编辑器进行编辑。

从 iTop 3.1.0 开始,您还可以上传自己的 HTML 模板 电子邮件。HTML 模板和 Body 字段都可以通过插入 placeholder $content$ 在 HTML 模板中。这 content 将替换占位符。$content$
从 iTop 3.1.0 开始,您还可以为电子邮件上传自己的 HTML 模板。通过在 HTML 模板中插入占位符 $content$,可以组合 HTML 模板和 Body 字段。Body 字段的内容将替换占位符。$content$

自 iTop 3.1.0 起, 一旦 Action 具有 得救了。您可以使用它来检查电子邮件的内容和 可视化占位符。但是,请注意,将 HTML 位于 浏览器可能与电子邮件中呈现的内容完全不同 客户。
从 iTop 3.1.0 开始,保存 Action 后即可使用 Preview 选项卡。您可以使用它来检查电子邮件的内容并可视化占位符。但是,请注意,浏览器中 HTML 的呈现可能与电子邮件客户端中呈现的内容完全不同。https://www.itophub.io/wiki/media?w=800&tok=dd506f&media=3_0_0:admin:email-notification-preview.png

“Subject” 和 “Body” 部分可以使用 占位符。用于此类占位符的语法为 。$xxxx$
“Subject” 和 “Body” 部分可以通过使用占位符动态构建。用于此类占位符的语法为 。$xxxx 美元

用于 ... 用于 ...具有不同的语法 具有不同的语法例 例
收件人查询(TO、CC、BCC...)
收件人查询(TO、CC、BCC...)
在 OQL 中,占位符以  colon
在 OQL 中,placeholder 以 冒号 开头
例如。:current_contact->友好名称
例如。 :current_contact->friendlyname
消息部分(主题、正文)
消息部分(主题、正文)
在 HTML 文本中, 占位符 开头和结尾为$
在 HTML 文本中,占位符以 $ 开头和结尾
例如。$current_contact->friendlyname$

有几种类型的占位符:

  • $CONSTANT$指固定值 命名为 constant
    $CONSTANT$ 是指名为 constant 的固定值。

  • $this->function()$指的是 内置函数执行的 触发操作的对象。
    $this->function()$ 是指在触发操作的对象上下文中执行的内置函数

  • $this->attribute$指的是 field 属性触发了 行动。
    $this->attribute$ 是指触发该操作的对象的 field 属性

  • $this->attribute_external_key->attribute$指 指向对象的 field 属性attribute_external_key it-self 是对象的一个字段 触发了该操作。
    $this->attribute_external_key->attribute$ 指 attribute_external_key it-self 所指向的对象的 field 属性,该属性是触发该动作的对象的 field。

  • $this->representation(attribute)$是指触发操作的对象的 field 属性的内置表示形式。例如:。$this->html(name)$
    $this->representation(attribute)$ 是指触发操作的对象的 field 属性的内置表示形式。例如:。$this->html(名称)$

  • 特定占位符可以 仅在 HTML 模板中使用,以 指示在以下情况下必须插入 Body 的位置 生成电子邮件。$content$
    特定占位符只能在 HTML 模板内使用,以指示生成电子邮件时必须插入 Body 的位置。$content 美元

在此处查看这些不同类型占位符的详细信息

测试 通知

要测试新操作,您可以使用状态 “正在测试” 和 在“测试收件人”中填写测试地址。在这种情况下, 通知将发送到后一个地址。一旦 通知已经过测试,请将其状态更改为 “In Production” 以将通知流向其实际收件人。

要测试新操作,您可以使用状态“正在测试”,并在“测试收件人”中填写测试地址。在这种情况下,通知将发送到后一个地址。测试通知后,将其状态更改为“In Production”,以使通知流向其实际收件人。

如果要停用操作,只需将其状态设置为 “非活动”。
如果要停用某个操作,只需将其状态设置为“非活动”即可。

创建 触发 创建触发器

要创建新触发器,请单击“新建”下拉列表 对于 “Trigger” 选项卡中的给定类别。以下向导 出现:
要创建新触发器,请单击“触发器”选项卡中给定类别的“新建”操作下拉列表。此时将显示以下向导:

https://www.itophub.io/wiki/media?w=600&tok=2fd8e4&media=3_0_0:admin:new-trigger1.png

您必须选择要创建的触发器类型:
您必须选择要创建的触发器类型:

  • 当对象进入给定状态时 = Trigger (进入一个州时)
    当对象进入给定状态时 = Trigger(在进入状态时)

  • 当对象离开给定状态时 = Trigger (在 离开状态)
    当对象离开给定状态时 = Trigger(离开状态时)

  • 创建新对象时 = 触发器(在对象上 创建)
    创建新对象时 = 触发器(在创建对象时)

  • 删除对象时 = 触发器(在对象上 删除)
    删除对象时 = 触发器(删除对象时)

  • 当日志中提及对象时 = Trigger (在 对象提及)
    当日志中提及对象时 = Trigger(提及对象时)

  • 修改对象时 = 触发器(在对象上 更新)
    修改对象时 = 触发器(在对象更新时)

  • 下载附件时 = 触发(打开 对象的附件下载)
    下载附件时 = 触发器(在下载对象的附件时)

  • 下载文档时 = 触发(打开 对象的文档下载)
    下载文档时 = 触发器(在对象的文档下载时)

  • 当解决时间 (TTR) 或达到拥有时间 (TTO) = 触发器(阈值)
    当达到解决时间 (TTR) 或拥有时间 (TTO) 的给定阈值时 = 触发器(阈值)

  • 当需要批准工单时 = 触发 (当 请求批准)由扩展带来审批流程 自动化
    当需要审批工单时 = Trigger(请求审批时)由分机带来的审批流程自动化

  • 在 Console 中更新日志时 = Trigger (当日志更新时)由分机带来 电子邮件回复
    当日志在控制台中更新时 = 触发器(当日志更新时),由分机带来 电子邮件回复

  • 当通过电子邮件更新日志时 = 触发器(当 通过邮件更新)由扩展 Ticket Creation 从 电子邮件
    当通过电子邮件更新日志时 = 由扩展 电子邮件中的票证创建带来的触发器(通过邮件更新时)

  • 从 iTop 门户更新对象时 = 触发器(从门户更新时)
    从 iTop 门户更新对象时 = 触发器(从门户更新时)

最后三个可以替换为 combined with the context 和字段Trigger (on object update)
最后三个可以替换为与上下文和字段Trigger (on object update) 的组合

其他扩展可以添加更多 Triggers。例如。Notify On Expiration & Send updates by email
其他扩展可以添加更多 Triggers。例如。到期通知通过电子邮件发送更新

选择触发器类型后,您将获得以下内容 形式:
选择触发器类型后,您将获得以下表单:

https://www.itophub.io/wiki/media?w=400&tok=311fe1&media=3_0_0:admin:new-trigger2.png

常见字段 常见字段

任何类型的触发器都需要您指定三个 参数:
任何类型的触发器都需要您指定三个参数:

  • 描述留给您进一步 确定此触发器的用途。
    Description 留给您进一步确定此触发器的用途。

  • Target class 定义对象的类 此触发器适用。
    Target 类 定义此触发器适用的对象类。

  • Filter 限制 trigger 适用。它是一个 OQL 查询,返回所有 将激活触发器。将其留空意味着:所有对象 预期类。
    Filter 限制触发器应用到的对象。它是一个 OQL 查询,返回将激活触发器的所有对象。将其留空意味着:预期类的所有对象。

滤波器 滤波器

OQL 筛选器不应引用当前的 object,它没用且不起作用。OQL 何时为 执行时,iTop 会检查当前对象是否是 范围。
OQL 过滤器不应对当前对象进行任何引用,它毫无用处且不起作用。当 OQL 执行时,iTop 会检查当前对象是否属于 scope。

示例:调用方请求的用户请求,他本人是 负责在该服务上交付 Tickets 的团队 subcategory (请注意,这是一个非标准数据模型,也是 一个有意义的!)
示例:调用者请求的用户请求,他自己是负责在该服务子类别上交付 Tickets 的团队的一员(请注意,这是一个非标准数据模型,也是一个有意义的数据模型!

不工作 例
 
SELECT UserRequest AS u
  JOIN ServiceSubcategory AS s ON u.servicesubcategory_id = s.id
  JOIN Team AS t ON s.delivery_team_id = t.id
  JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id
 WHERE lnk.person_id = :this->caller_id

无需在当前对象上添加任何条件。
无需在当前对象上添加任何条件。

更好
 
SELECT UserRequest AS u
  JOIN ServiceSubcategory AS s ON u.servicesubcategory_id = s.id
  JOIN Team AS t ON s.delivery_team_id = t.id
  JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id
 WHERE lnk.person_id = u.caller_id

iTop 可能会添加 也许不是这样,但会添加完全相同的 结果。AND u.id=:this→id
iTop 可能会添加,但结果完全相同。AND u.id=:this→id

如果要触发 通知仅限于通过电子邮件创建的工单,请使用 origin='mail' 在 Trigger Filter 中。
如果要触发仅限于通过电子邮件创建的工单的通知,请在触发器过滤器中使用 origin='mail'。

上下文 上下文

上下文允许您指定在哪些上下文中,触发器应为 激活。
上下文允许您指定应在哪些上下文中激活触发器。

  • 警告:某些上下文在 Trigger 上不可用 (特定的 Datasynchro 或特定的 CRON 任务不能是 指定)
    警告:某些上下文在 Trigger 上不可用(无法指定特定的 Datasynchro 或特定的 CRON 任务)

https://www.itophub.io/wiki/media?w=400&tok=96b53a&media=3_0_0:admin:trigger-context.png

使用上下文在对象更新时触发 = 可以在从门户更新时替换触发器,并且更具体,如下所示 指定特定门户和/或特定修改 领域Portal
使用上下文在对象更新时触发 = 可以在从门户更新时替换触发器,并通过指定特定门户和/或特定修改的字段门户来更具体地

旧版本扩展带来的触发器不会提出 上下文。
旧版本的扩展带来的触发器不会建议 Context。

  • 对于阈值触发器,上下文为 CRON, 所以如果你定义了 Contexts,请确保把它放进去。
    对于 on threshold trigger,context 是 CRON,因此如果您定义了 Contexts,请确保输入它。

  • 对于 Email Reply,上下文仅限于扩展的设计。Console
    对于 Email Reply,上下文仅限于扩展的设计。安慰

  • 对于“Notify on Expiration”等其他功能,请使用 Contexts 是扩展设计的 CRON。
    对于其他功能,如“Notify on Expiration”,上下文在扩展的设计上是 CRON。

触发的操作 触发的操作

“Triggered Actions” 选项卡定义将要执行的操作 在此触发器触发时执行。请记住,一个操作可以是 链接到多个触发器,因此可以重用某些操作。 “Order” 字段确定给定触发器的 操作被执行(操作以升序方式启动 order) 的
“Triggered Actions” 选项卡定义此触发器触发时将执行哪些操作。请记住,一个操作可以链接到多个触发器,因此可以重复使用某些操作。“Order”字段确定对于给定触发器,操作的执行顺序(操作按升序启动)。

查看步骤 例
查看分步示例


检查下面的触发器特定参数和 行为:
请查看以下内容,了解触发器特定的参数和行为:

在对象上 更新 对象更新时

此触发器建议指定 Target 字段。 指定 none 表示任何字段都将触发触发器。 否则,至少需要更改一个指定的字段 以激活触发器。
此触发器建议指定 Target 字段。指定 none 表示任何字段都将触发触发器。否则,至少需要更改一个指定的字段才能激活触发器。

过滤器是在对象写入数据库应用的,因此 编写 OQL Filter 以测试 object 之后的新值 修改。
筛选器已应用 在将对象写入数据库,请编写 OQL Filter 以测试对象修改后的新值。

上 进入/离开状态
进入/离开状态时

两个触发器都需要 State。要为 为 “state” 输入的是 state 的内部代码,因为 在数据模型中定义。州代码可以在“Life Cycle“ 选项卡的 ”Data Model“,部分 ”Transitions”。价值 code 是括号之间列出的值。
两个触发器都需要 State。要为 “state” 输入的值是 state 的内部代码,如数据模型所定义。状态代码可以在 “Data Model” 的 “Life Cycle” 选项卡的 “Transitions” 部分看到。值代码是括号中列出的值。

阈值时 阈值时

此触发器需要秒表和阈值。预期的 秒表的值是属性代码。用户请求和 事故票附带两个秒表:tto 和 ttr。阈值是目标的百分比 秒表。对于标准数据模型,您可以使用 75 或 100.
此触发器需要秒表和阈值。秒表的预期值是属性代码。User Requests 和 Incident 工单附带两个秒表:tto 和 ttr。阈值是秒表目标的百分比。使用标准数据模型,您可以使用 75 或 100。

对于那些特定的触发器 要发生,iTop cron.php 必须正在运行
要发生这些特定触发器,iTop cron.php必须正在运行

当 log 为 更新 更新日志时

此触发器需要在 Class 上指定 log code 属性。然后,仅当配置了触发器和活动操作时,它才会在 仅限控制台,编辑该日志时有一个复选框,以手动允许 用户可以根据需要禁用通知。
此触发器需要在 。然后,仅当触发器和 active 操作,它会在编辑该日志时仅在 Console 上添加一个复选框,以允许用户根据需要手动禁用通知。

提及时 提及时

此触发器需要指定 Mentioned 过滤器,该过滤器是指定 Object 的 OQL 查询(通常为 Persons),该对象可以在特定的 Target 类对象上提及。此查询可以使用占位符来限制返回的 Person 基于目标类对象属性。
此触发器需要指定 Mentioned 筛选条件 ,这是一个指定 Object 的 OQL 查询(通常, 人员),该类可以在特定 Target 类中提及 对象。此查询可以使用占位符来限制返回的 Person 基于目标类对象属性。

行为 行为

此功能目前为 仅限于 iTop 控制台
此功能目前仅限于 iTop 控制台

在类上设置此类 Trigger 后,在编辑 一个日志,如果用户输入特殊字符(默认为 @ 对于 Person,它在配置文件中定义),后跟一个 几个字符,然后 iTop 搜索与输入的 Person 匹配的 Person 字符。返回的 Person 可以受现有 的限制。Trigger (on mention)
在类上设置了这样的 Trigger 后,在编辑日志时,如果用户输入一个特殊字符(Person 默认为 @,它在配置文件中定义),后跟几个字符,则 iTop 会搜索与输入的字符匹配的 Person。返回的 Person 可以受现有 的限制。触发器(提及时)

  • 触发器必须适用于当前的 object 类,因此将 Target 类作为父类 class 或被编辑对象的类本身。
    Triggers 必须适用于当前对象类,因此 Target 类是父类或已编辑对象的类本身。

  • Trigger 上的 Mentioned 过滤器必须 return Person (或 Contact 或任何类)
    Trigger 上的 Mentioned 过滤器必须返回 Person(或 Contact 或任何类)

  • 当有多个适用的 时,iTop 会执行 各种 Mentioned 过滤器Trigger (on mention)

  • 返回的 Person 数量限制为 配置参数max_autocomplete_results
    返回的 Person 数量限制为 Configuration Parameter max_autocomplete_results

  • 触发器适用,即使它们不适用 链接到活动电子邮件通知,则应考虑 filter 人员
    的 触发器 ,即使它们未链接到活动的电子邮件通知,也会考虑在内以筛选人员

通过此机制,如果您使用的是 iTop as a Service 提供商,您可以避免在 工单 上提及客户联系人 这将是针对另一个不相关的客户。
通过这种机制,如果您使用 iTop 作为服务提供商,您可以避免在工单上提及客户联系人,这将是另一个不相关的客户。

当然,相同的行为也适用于其他类,而不是 Person,如果配置文件提到了其他允许的类,则 具有自己的特殊字符(见下文)
当然,如果配置文件提到其他允许的类,并且具有它们自己的特殊字符(见下文),则相同的行为也适用于 Person 以外的其他类

这仅适用于 Caselog, 无法处理其他文本或 HTML 字段
这仅适用于 Caselog,不适用于其他文本或 HTML 字段

配置 配置

此触发器有一个特殊的配置,它来自 自然而然:
此触发器有一个特殊的 Configuration,它会自动出现:

配置 文件
 
  // mentions.allowed_classes: Classes which can be mentioned through the autocomplete in the logs. 
  // Key of the array must be a single character that will trigger the autocomplete, 
  // Value must be a DM class (eg. "@" => "Person", "?" => "FAQ")
        'mentions.allowed_classes' => ('@' => 'Person'),

要完全禁用 OnMention 功能,请按以下方式设置:
要完全禁用 OnMention 功能,请按以下方式进行设置:

'mentions.allowed_classes' => array('@' => 'NonExistingCLassName'), \\

在 iTop Setup 过程中,对于每个具有 caselog 的类, 系统会自动为此类创建一个 Trigger (mention 时) 作为 Target 类
在 iTop Setup 过程中,对于每个具有 caselog 的类, 会自动为此类创建一个 Trigger(提及时),作为 Target 类

  • 触发器的范围不受限制。我们 考虑一下这个功能在该类的日志中提及某人 在所有对象上都可用,但可以更改此设置。
    触发器的范围不受限制。我们认为在该类的日志中提及某人的功能在所有对象上都可用,但这是可以更改的。

  • 设置 Mentioned 过滤器,以便检索 当前用户组织的任何活动人员。如果 Target 类有一个字段,则任何 active Person 属于当前对象的 Organization 也被提议。org_id
    设置 Mentioned 过滤器,以便检索当前用户组织的任何活动 Person。如果 Target 类有一个字段,则还会建议属于当前对象的 Organization 的任何活动 Person。org_id

SELECT Person WHERE ((`status` = 'active') 
AND ((`org_id` = :current_contact->org_id) OR (`org_id` = :this->org_id)))

并且每个 Trigger 都链接到一个创建的 Email 通知 with:
每个触发器都链接到一个已创建的电子邮件通知,其中包含:

  • 成为提及 that Person 在 Log 中,因此当前用户
    在日志中提及该 Person 的 person 电子邮件,到当前用户

  • To 应该是被提及的人, 你可以这样得到:
    To 应该是被提及的 Person,你可以这样得到:
SELECT Contact WHERE id = :mentioned->id
  • 主题是“您已被提及 XXXX“,XXXX 是您所在的日志的对象的名称 提到
    主题是“您在 XXXX 中被提及”,XXXX 是您在日志中被提及的对象的名称

  • 电子邮件通知的正文为:

身体
 
  Hello $mentioned->first_name$,
 
  You have been mentioned by $current_contact->friendlyname$ in $this->hyperlink()$

将占位符记为 use 字段 Person.
对于任何消息,您可以使用标准占位符(请参阅 下面)$mentioned->attribute$

当然,您可以自定义 Subject 和 Body,但不建议更改 To
当然,您可以自定义 Subject 和 Body,但不建议更改 To

您还可以拆分此通用通知,以便为每个 触发器,以便提供更准确的 修改已完成,例如最后一个 caselog 条目。
您还可以拆分此通用通知,以便使用它为每个触发器创建一个,以便它提供有关已完成修改的更准确信息,例如最后一个 caselog 条目。

当前限制:您有 没有意思知道您在哪个日志中被提及,以防 对象具有多个日志。所以使用 $this->head_html(public_log)$ 可能会返回与 提及操作(如果在工单的 private_log 中完成) 例如。
当前限制:如果对象有多个日志,则无法知道在哪个日志中提到了您。因此,如果在 Ticket(工单)的private_log中使用 $this->head_html(public_log)$ 可能会返回与提及操作完全无关的内容。

您可以使用此机制来 通知与上述业务流程关联的联系人, 应用程序、服务器、更改、常见问题解答,...
您可以使用此机制通知与上述 Business Process、Application、Server、Change、FAQ 关联的联系人,...

在文档上 下载 下载文件时

的 当有人下载 file 属性(例如 在类中)在 Backoffice 或 End-User Portal 的 Portal。Trigger (on object's document download)FileDocument File
当有人在后台或最终用户门户中下载文件属性(例如,在类上)时,将激活 。 Trigger (on object's document download) 文件文档 文件

此触发器允许您访问操作中的新占位符 (当然,标准的仍然可用):
此触发器允许您访问操作中的新占位符(当然,标准占位符仍然可用):

  • $file->mime_type$MIME 类型的 文件(例如。“image/png”)
    $file->mime_type$ 文件的 MIME 类型(例如。“image/png”)

  • $file->file_name$文件名、 如上传。
    $file->file_name$ 上传的文件的名称。

  • $file->downloads_count$数量 下载文件的时间。请注意,它是 BEFORE 的计数 当前下载,因此您可以挂接一些检查来防止它 超出阈值。
    $file->downloads_count$ 文件下载的次数。请注意,这是当前下载之前的计数,因此您可以挂接一些检查,以便在超过阈值时防止它。

  • $file->data$的二进制内容 文件
    $file->data$ 文件的二进制内容

  • $file->data_as_base64$基地 64 编码内容,可用于与 其他应用
    文件的 $file->data_as_base64 Base64 编码内容可用于与其他应用程序的集成

附着时 下载 在附件下载时

的 当有人在后台下载附件时激活,或者 最终用户门户。Trigger (on object's attachment download)
当有人在后台或最终用户门户中下载附件时,将激活 。 Trigger (on object's attachment download)

此触发器允许您访问操作中的新占位符 (当然,标准的仍然可用):
此触发器允许您访问操作中的新占位符(当然,标准占位符仍然可用):

  • $attachment->xxx$相同 可能性至于但与 attachment 本身( 是 object it is attached to)$this->xxx$$this
    $attachment->xxx$ 与 for 相同,但附件本身(即它所连接的物体)$this->xxx$$this

  • $attachment->mime_type$MIME 类型 的文件(例如。“image/png”)
    $attachment->mime_type$ 文件的 MIME 类型(例如。“image/png”)

  • $attachment->file_name$名称 文件,如上传时所示。
    $attachment->file_name$ 上传的文件的名称。

  • $attachment->downloads_count$文件已下载的次数。请注意,它是 count 之前,这样你就可以将一些检查挂接到 如果超过阈值,则阻止它。
    $attachment->downloads_count$ 下载文件的次数。请注意,这是当前下载之前的计数,因此您可以挂接一些检查,以便在超过阈值时防止它。

  • $attachment->data$二进制内容 的文件
    $attachment->data$ 文件的二进制内容

  • $attachment->data_as_base64$基地 64 编码内容,可用于与 其他应用
    文件的 $attachment->data_as_base64$ Base64 编码内容可用于与其他应用程序的集成

谨慎使用它们的输出可能会 巨大。$xxx->data$$xxx->data_as_base64$
请谨慎使用,因为它们的输出可能很大。$xxx->data$$xxx->data_as_base64$

测试 触发 测试触发器

我们强烈建议您进行测试 触发器和操作,在将它们移动到生产环境之前,通过使用 操作的 “Being Tested” 状态。
我们强烈建议您在将触发器和操作移至生产环境之前,通过在操作上使用“正在测试”状态来测试它们。

您可以查看为给定工单发送了哪个通知 (用户请求、事件、更改)使用 工单的详细信息。
您可以使用工单详细信息中的“通知”选项卡查看为给定工单(用户请求、事件、更改)发送的通知。

Notifications tab on ticket|

您还可以列出所有已发送和 使用“管理工具”/“运行”页面失败的通知 Queries“并运行查询:
您还可以使用“管理工具”/“运行查询”页面并运行查询来列出所有已发送和失败的通知:

SELECT EventNotification

如果您在 Linux 服务器,sendmail_path请确保 php.ini. 例如:
如果你在 Linux 服务器上运行 iTop,请确保变量 “sendmail_path” 值php.ini。例如:

sendmail_path = "/usr/sbin/sendmail -t -i"

根据您的实际环境,配置可能是 不同。例如,也可以使用 SSMTP 作为代理 到实际的电子邮件服务器,如以下链接中所述:http://tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/
根据您的实际环境,配置可能是 不同。例如,也可以使用 SSMTP 作为代理 到实际的电子邮件服务器,如以下链接所述: http://tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/

如果您在 Windows 服务器,您需要确保 php.ini 文件 包含以下行:

SMTP = <smtp server>
smtp_port = 25

为了测试您可以使用的电子邮件通知,“测试 Page“(点击”通知“页面中的链接)或键入:

http://<itop 服务器位置>/setup/email.test.php
http://<itop 服务器位置>/setup/email.test.php

测试页面对 PHP 执行许多检查 配置,并允许您将纯文本电子邮件发送到 收件人。这对于验证 服务器的 PHP 配置确实适合发送 电子邮件。

Email sending test page  

电子邮件 配置 电子邮件配置

iTop 支持两种发送电子邮件的方式:PHP 或 SMTP 的内置功能通过 Swift Mailer 库(随 iTop 一起安装)。配置参数确定使用哪种方法 从 iTop 发送电子邮件。如果参数的值为 (这是默认值),则使用内置函数。如果值为 SMTP,则 SMTP 使用 Swift Mailer 的运输。mailemail_transportemail_transportPHPMailmail()SMTP

当使用 PHP 的函数时,语言的 设置。有关更多信息,请查看 PHP 文档。mail

使用 SMTP 传输时,以下参数可以是 在 iTop 配置文件中设置:

配置参数类型可见描述 描述默认值
email_transport_smtp.encryption字符串TLS 或 SSL(可选) 
email_transport_smtp.host字符串主机名或 IP 地址(可选)本地主机
email_transport_smtp.password字符串身份验证密码(可选) 
email_transport_smtp.port整数端口号(可选)25
email_transport_smtp.username字符串身份验证用户(可选) 
email_transport_smtp.verify_peer布尔验证对等证书

虽然使用 默认传输方式(PHP 邮件),缺点是缺少报告 当它失败时。例如,您可能会收到错误消息“否 此邮件的有效收件人。对于配置问题。 有关更多信息,请参阅 Swift Mailer 传输文档。 因此,我们强烈建议您使用 SMTP 传输 ,这将返回详细的错误消息。

通知和 应用程序响应能力
通知和应用程序响应能力

发送电子邮件是一项相对较慢的操作。取决于您 电子邮件服务器,发送一封电子邮件可能需要几秒钟 (建立与服务器的连接、发送数据等)。 在 iTop 中创建或更新票据时,可能会有多封邮件 emitted,具体取决于配置的通知。这可以采用 几秒钟即可完成。为了提高 应用程序,则通知可以通过 进程在 Web 服务器的后台运行。激活 异步发送通知,在配置文件中设置 并确保后台进程已启动并正在运行。'email_asynchronous' ⇒ true,

如果你非常依赖 通知,请注意,使用传输的直接 SMTP 连接通常比 PHP 的 内置邮件函数 (),所以可能值得 额外的配置工作。SMTPPHPMail
如果您非常依赖通知,请注意,使用传输的直接 SMTP 连接通常比 PHP 的内置邮件函数 () 快一点,因此可能值得进行额外的配置工作。SMTPPHPMail

配置通知 CSS
配置通知 CSS

它是 iTop 配置中的一个变量 (email_css),它允许 以重载用于电子邮件通知的默认 CSS。 查看以下教程 了解如何个性化您自己的 CSS。
这是 iTop 配置中的一个变量 (email_css),它允许重载用于电子邮件通知的默认 CSS。查看以下教程,了解如何个性化您自己的 css。

A 步骤 步骤示例 
Step by Step 示例

教程 创建您的第一个通知
创建第一个通知的教程

标签:
由 superadmin 在 2024/12/13, 16:23 创建
     
深圳市艾拓先锋企业管理咨询有限公司