Hide last authors
superadmin 1.1 1 = 通知 =
2
3 iTop 集成了与生命周期相关的通知系统 的对象。这允许管理员定义电子邮件 给定类的对象进入或离开时的通知规则 指定状态、创建新对象时、更新 从门户发生,或者当达到特定阈值时发生。
4
5 通知机制分为两部分:
6
7 * (((
8 触发器定义**何时**通知 必须发送。示例:当票证达到状态 “已分配”。
9 )))
10 * (((
11 操作**定义将**要执行的操作。 在当前版本的 iTop 中,唯一可用的 action 类型 包括发送电子邮件。
12 )))
13
14 对于给定的触发器,您可以定义多个操作 执行了 (Executed) 及其顺序。此外,还可以执行给定的操作 通过几个触发器。
15
16 使用“管理工具”菜单中的“通知”链接进行管理 触发器和操作:
17
18 [[image:https://www.itophub.io/wiki/media?w=500&tok=d3b973&media=3_0_0:admin:notifications.png]]
19
20 * (((
21 “Triggers” 选项卡显示所有已创建 触发器。
22 )))
23 * (((
24 “Actions” 选项卡显示所有操作
25 )))
26
27 == 创建一个 行动 ==
28
29 在创建有用的触发器之前,必须至少有一个操作是 定义。电子邮件操作是用于将邮件格式化为的模板 被发送,则定义消息的内容以及 主题、发件人和收件人。
30
31 要创建新操作,请转到“操作”选项卡并单击 “新...”。此时将显示以下向导:
32
33 [[[[image:https://www.itophub.io/wiki/media?w=400&tok=aabd40&media=3_0_0:admin:new-action.png||alt="新建操作"]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:new-action.png]]
34
35 电子邮件操作的必填字段包括:
36
37 * (((
38 **Name**:此的标识符 操作,以便您可以检索它。
39 **名称**:此操作的标识符,以便您可以检索它。
40 )))
41 * (((
42 **Subject**:的 消息。可以使用占位符动态构建,例如 如下所述。
43 **主题**:消息的主题。可以使用占位符动态构建,如下所述。
44 )))
45 * (((
46 **Body**:消息的正文。五月 使用占位符动态构建,如下所述。 默认情况下,iTop 发送所有带有 MIME 类型的 text/html 的消息 对于电子邮件的正文。
47 )))
48 * (((
49 **From (email):**静态 电子邮件地址或类似 .请注意,某些电子邮件 如果 “from” 地址不是 “from” 地址,服务器将拒绝邮件 有效。$this->agent_id->email$
50 )))
51 * (((
52 **From (label):**静态 label 或占位符(如 .$this->agent_id->friendlyname$
53 )))
54
55 当然,您必须指定**至少一个** 3 个字段,用于邮件收件人,**收件人、 抄送**或**密件抄送**。
56
57 其他字段:
58
59 * (((
60 **描述**:可识别的自由文本 电子邮件操作的用途。未在电子邮件中发送 消息。
61 )))
62 * (((
63 **状态**:
64
65 *
66
67 在生产中:将电子邮件发送给检索到的人员 按 To、Cc 和 Bcc 查询
68
69 *
70
71 正在接受测试:电子邮件将发送到电子邮件地址Test recipient
72
73 *
74
75 Inactive:不发送电子邮件
76 )))
77 * (((
78 **Language**:要使用的语言 生成的电子邮件中插入的占位符。这会影响 主要是枚举的标签(如工单的状态)和 日期和时间格式。
79 )))
80 * (((
81 **HTML 模板**:一个文件 包含一个 HTML 模板,用于以良好的格式包装您的电子邮件。上传的 HTML 文件可以 包含所有常用占位符以及一个特定的占位符,该占位符指示内容所在的区域 将插入 **Body 的 Body**。$content$
82 )))
83 * (((
84 **测试收件人**:使用的电子邮件地址 而不是 To、Cc 和 Bcc (当状态为Being tested
85 )))
86 * (((
87 **回复 (email):**静态 电子邮件地址或类似 .这是一个标准 电子邮件消息的属性。它通过邮件自动使用 工具作为要使用的地址,当用户在 电子邮件。如果省略,则地址为 使用。$this->team_id->email$from
88 )))
89 * (((
90 **回复 (label):**静态 label 或占位符(如 .这是一个标准 电子邮件消息的属性。它通过邮件自动使用 tools 作为标签,当用户对电子邮件执行 “回复” 操作时 在他的邮件中。如果省略,则标签为 使用。$this->team_id->friendlyname$from
91 )))
92 * (((
93 **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”.
94 **忽略通知标志**:在确定要通知的联系人列表时(在每个 收件人:CC: 和 Bcc: 字段中),是否考虑联系人上的**通知**标志。当此字段设置为“Yes”时,要通知的联系人列表正是 OQL 表达式指定的内容。如果设置为“否”,则会自动向 OQL 表达式添加一个条件以排除联系人,其中“通知标志”设置为“否”。
95 )))
96
97 === Defining recipients 定义收件人 ===
98
99 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”.
100 要在“收件人”、“抄送”和“密件抄送”中通知的联系人由 OQL 查询定义。这允许为通知指定多个收件人,例如 “附加到工单的所有联系人” 或 “受影响站点上的所有联系人”。
101
102 If all list returned by the OQL queries are empty no email will be sent.
103 如果 OQL 查询返回的所有列表都为空,则不会发送电子邮件。
104
105 If the field “Ignore Notify flag” of this action is set to “No”, the condition is automatically appended to the OQL.notify = 'yes'
106 如果此操作的“忽略通知标志”字段设置为“否”,则该条件将自动附加到 OQL。notify = 'yes'
107
108 === Using predefined queries 使用预定义查询 ===
109
110 The easiest mean to define who will receive those notifications is to retrieve the query using the magnifier icon and select the appropriate query
111 定义谁将接收这些通知的最简单方法是使用放大镜图标检索查询并选择适当的查询
112
113 [[image:https://www.itophub.io/wiki/media?w=600&tok=d5166d&media=3_0_0:admin:predefined-queries-search.png]][[[[image:https://www.itophub.io/wiki/media?w=400&tok=ae4cfe&media=3_0_0:admin:predefined-queries.png]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:predefined-queries.png]]
114
115 它会在字段中复制相应的 OQL。你可以选择一个 每个字段的不同预定义查询:
116
117 |[[[[image:https://www.itophub.io/wiki/media?w=500&tok=369e0d&media=3_0_0:admin:predefined-queries-results.png]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:predefined-queries-results.png]]|To: 中的调用方:
118
119 {{{SELECT Person WHERE id= :this->caller_id}}}(((
120
121 在 抄送 中,链接到工单的联系人:
122
123 {{{SELECT Contact
124 JOIN lnkContactToTicket AS L ON L.contact_id = Contact.id
125 WHERE L.ticket_id = :this->id}}}
126
127
128 在 Bcc 中,票证所属的团队成员 派出:
129
130 {{{SELECT Person AS P
131 JOIN lnkPersonToTeam AS L ON L.person_id=P.id
132 WHERE L.team_id = :this->team_id}}}
133 )))
134
135 如果查询不是 100% 的需要,您可以修改查询。
136
137 === 编写 自己的查询 ===
138
139 您可以从头开始编写自己的查询并对其进行测试:请参阅 [[Object Query 有关>>url:https://www.itophub.io/wiki/page?id=3_0_0:oql:start]]编写 OQL 的更多信息,请参阅语言 查询
140
141 [[[[image:https://www.itophub.io/wiki/media?w=600&tok=7a33de&media=3_0_0:admin:predefined-queries-test.png||alt="Icon to test a query"]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:predefined-queries-test.png]][[[[image:https://www.itophub.io/wiki/media?w=600&tok=a21b24&media=3_0_0:admin:run-query.png||alt="Run Query screen"]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:run-query.png]]
142
143 此 OQL 查询必须返回包含**单个** email 属性的对象列表,即:
144
145 * (((
146 联系
147 )))
148 * (((
149
150 )))
151 * (((
152 团队
153 )))
154
155 例如,要通知所有名字以 John 开头的人, **To** 字段可以包含:
156
157 {{{SELECT Person WHERE name LIKE 'John%'}}}
158
159 要通知所有附加到 CI 的 Person,请将其附加到 票证,用途:
160
161 {{{SELECT Person AS P
162 JOIN lnkContactToFunctionalCI AS L1 ON L1.contact_id = P.id
163 JOIN FunctionalCI AS CI ON L1.functionalci_id = CI.id
164 JOIN lnkFunctionalCIToTicket AS L2 ON L2.functionalci_id = CI.id
165 WHERE L2.ticket_id = :this->id}}}
166
167 如果您不想通知 标志设置为 、 的人员 将此条件添加到 WHERENotificationNo
168
169 {{{ Person.notify = 'yes'}}}
170
171 **从 iTop 3.1.0 开始**,您可以实现相同的功能 结果,只需设置字段 **Ignore Notify flag** 设置为 “No” 以执行此操作。
172
173 === 用 占位符 ===
174
175 查询可以包含引用
176
177 * (((
178 **当前对象**,其中 正在发送通知。语法为 **:this->attribute**。
179 )))
180 * (((
181 已完成 事件源处的操作。语法为 **:current_contact->attribute**。
182 )))
183
184 例如,仅当代理执行 不会自行触发事件,**则 To** 字段将 包含:
185
186 {{{SELECT Person WHERE id= :this->agent_id AND id != :current_contact->id}}}
187
188 //此语法也有效: :current_contact_id 等效于 :current_contact->id
189 此语法也有效: :current_contact_id 相当于 :current_contact->id//
190
191 == 消息内容和占位符
192 消息内容和占位符 ==
193
194 邮件正文使用 [[WYSIWYG HTML 编辑器>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:rich_text_limitations]]进行编辑。
195 邮件正文使用 [[WYSIWYG HTML 编辑器>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:rich_text_limitations]]进行编辑。
196
197 **从 iTop 3.1.0 开始**,您还可以上传自己的 HTML 模板 电子邮件。**HTML 模板**和 **Body** 字段都可以通过插入 placeholder **$content$** 在 HTML 模板中。这 content 将替换占位符。$content$
198 **从 iTop 3.1.0 开始**,您还可以为电子邮件上传自己的 HTML 模板。通过在 HTML 模板中插入占位符 **$content$**,可以组合 **HTML 模板**和 **Body** 字段。**Body** 字段的内容将替换占位符。$content$
199
200 **自 iTop 3.1.0 起**, **一旦 Action** 具有 得救了。您可以使用它来检查电子邮件的内容和 可视化占位符。但是,请注意,将 HTML 位于 浏览器可能与电子邮件中呈现的内容完全不同 客户。
201 **从 iTop 3.1.0 开始**,保存 Action 后即可使用 **Preview** 选项卡。您可以使用它来检查电子邮件的内容并可视化占位符。但是,请注意,浏览器中 HTML 的呈现可能与电子邮件客户端中呈现的内容完全不同。[[[[image:https://www.itophub.io/wiki/media?w=800&tok=dd506f&media=3_0_0:admin:email-notification-preview.png]]>>url:https://www.itophub.io/wiki/media-detail?id=3_0_0:admin:notifications&media=3_0_0:admin:email-notification-preview.png]]
202
203 “Subject” 和 “Body” 部分可以使用 占位符。用于此类占位符的语法为 。$xxxx$
204 “Subject” 和 “Body” 部分可以通过使用占位符动态构建。用于此类占位符的语法为 。$xxxx 美元
205
206 |用于 ... 用于 ...|具有不同的语法 具有不同的语法|例 例
207 |收件人查询(TO、CC、BCC...)
208 收件人查询(TO、CC、BCC...)|在 **OQL** 中,占位符以 **:** //colon//
209 在 **OQL** 中,placeholder 以 **:**//冒号// 开头|例如。**:current_contact->友好名称**
210 例如。 **:current_contact->friendlyname**
211 |消息部分(主题、正文)
212 消息部分(主题、正文)|在 **HTML** 文本中, 占位符 开头和结尾为**$**
213 在 **HTML** 文本中,占位符以 $ 开头和结尾|例如。**$current_contact->friendlyname$**
214
215 有几种类型的占位符:
216 有几种类型的占位符:
217
218 * (((
219 $CONSTANT$指固定值 命名为 //constant//。
220 $CONSTANT$ 是指名为 //constant// 的固定值。
221 )))
222 * (((
223 $this->function()$指的是 内置//函数//执行的 触发操作的对象。
224 $this->function()$ 是指在触发操作的对象上下文中执行的内置//函数//。
225 )))
226 * (((
227 $this->attribute$指的是 field //属性//触发了 行动。
228 $this->attribute$ 是指触发该操作的对象的 field //属性//。
229 )))
230 * (((
231 $this->attribute_external_key->attribute$指 指向对象的 field //属性//,//attribute_external_key// it-self 是对象的一个字段 触发了该操作。
232 $this->attribute_external_key->attribute$ 指 //attribute_external_key// it-self 所指向的对象的 field 属性,该//属性//是触发该动作的对象的 field。
233 )))
234 * (((
235 $this->representation(attribute)$是指触发操作的对象的 field //属性//的内置//表示//形式。例如:。$this->html(name)$
236 $this->representation(attribute)$ 是指触发操作的对象的 field //属性//的内置//表示//形式。例如:。$this->html(名称)$
237 )))
238 * (((
239 特定占位符可以 **仅在 HTML 模板中使用**,以 指示在以下情况下必须插入 **Body** 的位置 生成电子邮件。$content$
240 特定占位符**只能在 HTML 模板内**使用,以指示生成电子邮件时必须插入 **Body** 的位置。$content 美元
241 )))
242
243 在此处查看这些[[不同类型占位符>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:placeholders]]
244 在此处查看这些[[不同类型占位符>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:placeholders]]的详细信息的详细信息
245
246 == 测试 通知 测试通知 ==
247
248 要测试新操作,您可以使用状态 “正在测试” 和 在“测试收件人”中填写测试地址。在这种情况下, 通知将发送到后一个地址。一旦 通知已经过测试,请将其状态更改为 “In Production” 以将通知流向其实际收件人。
249 要测试新操作,您可以使用状态“正在测试”,并在“测试收件人”中填写测试地址。在这种情况下,通知将发送到后一个地址。测试通知后,将其状态更改为“In Production”,以使通知流向其实际收件人。
250
251 如果要停用操作,只需将其状态设置为 “非活动”。
252 如果要停用某个操作,只需将其状态设置为“非活动”即可。
253
254 == 创建 触发 创建触发器 ==
255
256 要创建新触发器,请单击“新建”下拉列表 对于 “Trigger” 选项卡中的给定类别。以下向导 出现:
257 要创建新触发器,请单击“触发器”选项卡中给定类别的“新建”操作下拉列表。此时将显示以下向导:
258
259 [[image:https://www.itophub.io/wiki/media?w=600&tok=2fd8e4&media=3_0_0:admin:new-trigger1.png]]
260
261 您必须选择要创建的触发器类型:
262 您必须选择要创建的触发器类型:
263
264 * (((
265 当对象进入给定状态时 = Trigger (进入一个州时)
266 当对象进入给定状态时 = Trigger(在进入状态时)
267 )))
268 * (((
269 当对象离开给定状态时 = Trigger (在 离开状态)
270 当对象离开给定状态时 = Trigger(离开状态时)
271 )))
272 * (((
273 创建新对象时 = 触发器(在对象上 创建)
274 创建新对象时 = 触发器(在创建对象时)
275 )))
276 * (((
277 删除对象时 = 触发器(在对象上 删除)
278 删除对象时 = 触发器(删除对象时)
279 )))
280 * (((
281 当日志中提及对象时 = Trigger (在 对象提及)
282 当日志中提及对象时 = Trigger(提及对象时)
283 )))
284 * (((
285 修改对象时 = 触发器(在对象上 更新)
286 修改对象时 = 触发器(在对象更新时)
287 )))
288 * (((
289 下载附件时 = 触发(打开 对象的附件下载)
290 下载附件时 = 触发器(在下载对象的附件时)
291 )))
292 * (((
293 下载文档时 = 触发(打开 对象的文档下载)
294 下载文档时 = 触发器(在对象的文档下载时)
295 )))
296 * (((
297 当解决时间 (TTR) 或达到拥有时间 (TTO) = 触发器(阈值)
298 当达到解决时间 (TTR) 或拥有时间 (TTO) 的给定阈值时 = 触发器(阈值)
299 )))
300 * (((
301 当需要批准工单时 = 触发 (当 请求批准)//由扩展带来[[审批流程 自动化>>url:https://www.itophub.io/wiki/page?id=extensions:approval_extended]]//
302 当需要审批工单时 = Trigger(请求审批时)//由分机带来的[[审批流程自动化>>url:https://www.itophub.io/wiki/page?id=extensions:approval_extended]]//
303 )))
304 * (((
305 在 Console 中更新日志时 = Trigger (当日志更新时)//由分机带来 [[电子邮件回复>>url:https://www.itophub.io/wiki/page?id=extensions:email_reply]]//
306 当日志在控制台中更新时 = 触发器(当日志更新时),//由分机[[带来 电子邮件回复>>url:https://www.itophub.io/wiki/page?id=extensions:email_reply]]//
307 )))
308 * (((
309 当通过电子邮件更新日志时 = 触发器(当 通过邮件更新)//由扩展 [[Ticket Creation 从 电子邮件>>url:https://www.itophub.io/wiki/page?id=extensions:ticket-from-email]]//
310 当通过电子邮件更新日志时 = 由//扩展 [[电子邮件中的票证创建>>url:https://www.itophub.io/wiki/page?id=extensions:ticket-from-email]]带来的//触发器(通过邮件更新时)
311 )))
312 * (((
313 从 iTop 门户更新对象时 = 触发器(从门户更新时)
314 从 iTop 门户更新对象时 = 触发器(从门户更新时)
315 )))
316
317 最后三个可以替换为 combined with the context 和字段Trigger (on object update)
318 最后三个可以替换为与上下文和字段Trigger (on object update) 的组合
319
320 其他扩展可以添加更多 Triggers。例如。[[Notify On Expiration>>url:https://www.itophub.io/wiki/page?id=extensions:combodo-notify-on-expiration]] & [[Send updates by email>>url:https://www.itophub.io/wiki/page?id=extensions:email_reply]]
321 其他扩展可以添加更多 Triggers。例如。[[到期通知>>url:https://www.itophub.io/wiki/page?id=extensions:combodo-notify-on-expiration]]并[[通过电子邮件发送更新>>url:https://www.itophub.io/wiki/page?id=extensions:email_reply]]
322
323 选择触发器类型后,您将获得以下内容 形式:
324 选择触发器类型后,您将获得以下表单:
325
326 [[image:https://www.itophub.io/wiki/media?w=400&tok=311fe1&media=3_0_0:admin:new-trigger2.png]]
327
328 === 常见字段 常见字段 ===
329
330 任何类型的触发器都需要您指定三个 参数:
331 任何类型的触发器都需要您指定三个参数:
332
333 * (((
334 //描述//留给您进一步 确定此触发器的用途。
335 //Description// 留给您进一步确定此触发器的用途。
336 )))
337 * (((
338 //Target class// 定义对象的类 此触发器适用。
339 //Target 类// 定义此触发器适用的对象类。
340 )))
341 * (((
342 //Filter// 限制 trigger 适用。它是一个 [[OQL 查询>>url:https://www.itophub.io/wiki/page?id=3_0_0:oql:start]],返回所有 将激活触发器。将其留空意味着:所有对象 预期类。
343 //Filter// 限制触发器应用到的对象。它是一个 [[OQL 查询>>url:https://www.itophub.io/wiki/page?id=3_0_0:oql:start]],返回将激活触发器的所有对象。将其留空意味着:预期类的所有对象。
344 )))
345
346 ==== 滤波器 滤波器 ====
347
348 OQL 筛选器不应引用当前的 object,它没用且不起作用。OQL 何时为 执行时,iTop 会检查当前对象是否是 范围。
349 OQL 过滤器不应对当前对象进行任何引用,它毫无用处且不起作用。当 OQL 执行时,iTop 会检查当前对象是否属于 scope。
350
351 示例:调用方请求的用户请求,他本人是 负责在该服务上交付 Tickets 的团队 subcategory (//请注意,这是一个非标准数据模型,也是 一个有意义的!//)
352 示例:调用者请求的用户请求,他自己是负责在该服务子类别上交付 Tickets 的团队的一员(//请注意,这是一个非标准数据模型,也是一个有意义的数据模型!//
353
354 ; [[不工作 例>>url:https://www.itophub.io/wiki/page?do=export_code&id=3_0_0:admin:notifications&codeblock=6]]
355 :
356
357 {{{SELECT UserRequest AS u
358 JOIN ServiceSubcategory AS s ON u.servicesubcategory_id = s.id
359 JOIN Team AS t ON s.delivery_team_id = t.id
360 JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id
361 WHERE lnk.person_id = :this->caller_id}}}
362
363 无需在当前对象上添加任何条件。
364 无需在当前对象上添加任何条件。
365
366 ; [[更好>>url:https://www.itophub.io/wiki/page?do=export_code&id=3_0_0:admin:notifications&codeblock=7]]
367 :
368
369 {{{SELECT UserRequest AS u
370 JOIN ServiceSubcategory AS s ON u.servicesubcategory_id = s.id
371 JOIN Team AS t ON s.delivery_team_id = t.id
372 JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id
373 WHERE lnk.person_id = u.caller_id}}}
374
375 iTop 可能会添加 也许不是这样,但会添加完全相同的 结果。AND u.id=:this→id
376 iTop 可能会添加,但结果完全相同。AND u.id=:this→id
377
378 如果要触发 通知仅限于通过电子邮件创建的工单,请使用 origin='mail' 在 Trigger Filter 中。
379 如果要触发仅限于通过电子邮件创建的工单的通知,请在触发器过滤器中使用 origin='mail'。
380
381 ==== 上下文 上下文 ====
382
383 //上下文//允许您指定在哪些[[上下文中>>url:https://www.itophub.io/wiki/page?id=3_0_0:customization:context]],触发器应为 激活。
384 //上下文//允许您指定应在哪些[[上下文中>>url:https://www.itophub.io/wiki/page?id=3_0_0:customization:context]]激活触发器。
385
386 * (((
387 警告:某些上下文在 Trigger 上不可用 (特定的 Datasynchro 或特定的 CRON 任务不能是 指定)
388 警告:某些上下文在 Trigger 上不可用(无法指定特定的 Datasynchro 或特定的 CRON 任务)
389 )))
390
391 [[image:https://www.itophub.io/wiki/media?w=400&tok=96b53a&media=3_0_0:admin:trigger-context.png]]
392
393 使用上下文//在对象更新时//触发 = 可以在//从门户更新时//替换触发器,并且更具体,如下所示 指定特定门户和/或特定修改 领域Portal
394 使用上下文//在对象更新时//触发 = 可以在//从门户更新时//替换触发器,并通过指定特定门户和/或特定修改的字段门户来更具体地
395
396 旧版本扩展带来的触发器不会提出 上下文。
397 旧版本的扩展带来的触发器不会建议 Context。
398
399 * (((
400 对于//阈值//触发器,上下文为 CRON, 所以如果你定义了 Contexts,请确保把它放进去。
401 对于 //on threshold// trigger,context 是 CRON,因此如果您定义了 Contexts,请确保输入它。
402 )))
403 * (((
404 对于 Email Reply,上下文仅限于扩展的设计。Console
405 对于 Email Reply,上下文仅限于扩展的设计。安慰
406 )))
407 * (((
408 对于“Notify on Expiration”等其他功能,请使用 Contexts 是扩展设计的 CRON。
409 对于其他功能,如“Notify on Expiration”,上下文在扩展的设计上是 CRON。
410 )))
411
412 ==== 触发的操作 触发的操作 ====
413
414 “Triggered Actions” 选项卡定义将要执行的操作 在此触发器触发时执行。请记住,一个操作可以是 链接到多个触发器,因此可以重用某些操作。 “Order” 字段确定给定触发器的 操作被执行(操作以升序方式启动 order) 的
415 “Triggered Actions” 选项卡定义此触发器触发时将执行哪些操作。请记住,一个操作可以链接到多个触发器,因此可以重复使用某些操作。“Order”字段确定对于给定触发器,操作的执行顺序(操作按升序启动)。
416
417 查看[[步骤 例>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:notifications-step-by-step#link_the_trigger_to_the_email_action]]
418 查看[[分步示例>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:notifications-step-by-step#link_the_trigger_to_the_email_action]]
419
420 ----
421
422 //检查下面的触发器特定参数和 行为:
423 请查看以下内容,了解触发器特定的参数和行为://
424
425 === 在对象上 更新 对象更新时 ===
426
427 此触发器建议指定 //Target 字段//。 指定 none 表示任何字段都将触发触发器。 否则,至少需要更改一个指定的字段 以激活触发器。
428 此触发器建议指定 //Target 字段//。指定 none 表示任何字段都将触发触发器。否则,至少需要更改一个指定的字段才能激活触发器。
429
430 过滤器是在对象写入数据库**后**应用的,因此 编写 OQL Filter 以测试 object 之后的新值 修改。
431 筛选器已应用 在将对象写入数据库**后**,请编写 OQL Filter 以测试对象修改后的新值。
432
433 === 上 进入/离开状态
434 进入/离开状态时 ===
435
436 两个触发器都需要 //State//。要为 为 “state” 输入的是 state 的内部代码,因为 在数据模型中定义。州代码可以在“Life Cycle“ 选项卡的 ”Data Model“,部分 ”Transitions”。价值 code 是括号之间列出的值。
437 两个触发器都需要 //State//。要为 “state” 输入的值是 state 的内部代码,如数据模型所定义。状态代码可以在 “Data Model” 的 “Life Cycle” 选项卡的 “Transitions” 部分看到。值代码是括号中列出的值。
438
439 === 阈值时 阈值时 ===
440
441 此触发器需要秒表和阈值。预期的 秒表的值是属性代码。用户请求和 事故票附带两个秒表:**tto** 和 **ttr**。阈值是目标的百分比 秒表。对于标准数据模型,您可以使用 75 或 100.
442 此触发器需要秒表和阈值。秒表的预期值是属性代码。User Requests 和 Incident 工单附带两个秒表:**tto** 和 **ttr**。阈值是秒表目标的百分比。使用标准数据模型,您可以使用 75 或 100。
443
444 对于那些特定的触发器 要发生,iTop [[cron.php>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:cron]] 必须正在运行
445 要发生这些特定触发器,iTop [[cron.php>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:cron]]必须正在运行
446
447 === 当 log 为 更新 更新日志时 ===
448
449 此触发器需要在 //Class// 上指定 log code 属性。然后**,仅当**配置了**触发器和活动操作**时,它才会在 仅限控制台,编辑该日志时有一个复选框,以手动允许 用户可以根据需要禁用通知。
450 此触发器需要在 //类//。然后**,仅当**触发器和 **active** 操作,它会在编辑该日志时仅在 Console 上添加一个复选框,以允许用户根据需要手动禁用通知。
451
452 === 提及时 提及时 ===
453
454 此触发器需要指定 //Mentioned 过滤器//,该过滤器是指定 Object 的 OQL 查询(通常为 Persons),该对象可以在特定的 //Target 类//对象上提及。此查询可以使用占位符来限制返回的 Person 基于目标类对象属性。
455 此触发器需要指定 //Mentioned 筛选条件// ,这是一个指定 Object 的 OQL 查询(通常, 人员),该类可以在特定 //Target 类//中提及 对象。此查询可以使用占位符来限制返回的 Person 基于目标类对象属性。
456
457 ==== 行为 行为 ====
458
459 此功能目前为 仅限于 iTop 控制台
460 此功能目前仅限于 iTop 控制台
461
462 在类上设置此类 Trigger 后,**在编辑 一个日志**,如果用户输入特殊字符(默认为 @ 对于 Person,它在配置文件中定义),后跟一个 几个字符,然后 iTop 搜索与输入的 Person 匹配的 Person 字符。返回的 Person 可以受现有 的限制。Trigger (on mention)
463 在类上设置了这样的 Trigger 后,在**编辑日志**时,如果用户输入一个特殊字符(Person 默认为 @,它在配置文件中定义),后跟几个字符,则 iTop 会搜索与输入的字符匹配的 Person。返回的 Person 可以受现有 的限制。触发器(提及时)
464
465 * (((
466 触发器必须适用于当前的 object 类,因此将 //Target 类//作为父类 class 或被编辑对象的类本身。
467 Triggers 必须适用于当前对象类,因此 //Target 类//是父类或已编辑对象的类本身。
468 )))
469 * (((
470 Trigger 上的 //Mentioned 过滤器//必须 return Person (或 Contact 或任何类)
471 Trigger 上的 //Mentioned 过滤器//必须返回 Person(或 Contact 或任何类)
472 )))
473 * (((
474 当有多个适用的 时,iTop 会执行 各种 //Mentioned 过滤器//Trigger (on mention)
475 )))
476 * (((
477 返回的 Person 数量限制为 配置参数max_autocomplete_results
478 返回的 Person 数量限制为 Configuration Parameter max_autocomplete_results
479 )))
480 * (((
481 触发器适用,即使它们不适用 链接到活动电子邮件通知,则应考虑 filter 人员
482 的 触发器 ,即使它们未链接到活动的电子邮件通知,也会考虑在内以筛选人员
483 )))
484
485 通过此机制,如果您使用的是 iTop as a Service 提供商,您可以避免在 工单 上提及客户联系人 这将是针对另一个不相关的客户。
486 通过这种机制,如果您使用 iTop 作为服务提供商,您可以避免在工单上提及客户联系人,这将是另一个不相关的客户。
487
488 当然,相同的行为也适用于其他类,而不是 Person,如果配置文件提到了其他允许的类,则 具有自己的特殊字符(见下文)
489 当然,如果配置文件提到其他允许的类,并且具有它们自己的特殊字符(见下文),则相同的行为也适用于 Person 以外的其他类
490
491 这仅适用于 Caselog, 无法处理其他文本或 HTML 字段
492 这仅适用于 Caselog,不适用于其他文本或 HTML 字段
493
494 ==== 配置 配置 ====
495
496 此触发器有一个特殊的配置,它来自 自然而然:
497 此触发器有一个特殊的 Configuration,它会自动出现:
498
499 ; [[配置 文件>>url:https://www.itophub.io/wiki/page?do=export_code&id=3_0_0:admin:notifications&codeblock=8]]
500 :
501
502 {{{ // mentions.allowed_classes: Classes which can be mentioned through the autocomplete in the logs.
503 // Key of the array must be a single character that will trigger the autocomplete,
504 // Value must be a DM class (eg. "@" => "Person", "?" => "FAQ")
505 'mentions.allowed_classes' => ('@' => 'Person'),}}}
506
507 要完全禁用 OnMention 功能,请按以下方式设置:
508 要完全禁用 OnMention 功能,请按以下方式进行设置:
509
510 {{{'mentions.allowed_classes' => array('@' => 'NonExistingCLassName'), \\}}}
511
512 在 iTop Setup 过程中,对于每个具有 caselog 的类, 系统会自动为此类创建一个 Trigger (mention 时) 作为 //Target 类//。
513 在 iTop Setup 过程中,对于每个具有 caselog 的类, 会自动为此类创建一个 Trigger(提及时),作为 //Target 类//。
514
515 * (((
516 触发器的范围不受限制。我们 考虑一下这个功能在该类的日志中提及某人 在所有对象上都可用,但可以更改此设置。
517 触发器的范围不受限制。我们认为在该类的日志中提及某人的功能在所有对象上都可用,但这是可以更改的。
518 )))
519 * (((
520 设置 //Mentioned 过滤器//,以便检索 当前用户组织的任何活动人员。如果 //Target 类//有一个字段,则任何 active Person 属于当前对象的 Organization 也被提议。org_id
521 设置 //Mentioned 过滤器//,以便检索当前用户组织的任何活动 Person。如果 //Target 类//有一个字段,则还会建议属于当前对象的 Organization 的任何活动 Person。org_id
522 )))
523
524 {{{SELECT Person WHERE ((`status` = 'active')
525 AND ((`org_id` = :current_contact->org_id) OR (`org_id` = :this->org_id)))}}}
526
527 并且每个 Trigger 都链接到一个创建的 Email 通知 with:
528 每个触发器都链接到一个已创建的电子邮件通知,其中包含:
529
530 * (((
531 //从//成为提及 that Person 在 Log 中,因此当前用户
532 //从//在日志中提及该 Person 的 person 电子邮件,到当前用户
533 )))
534 * //To// 应该是被提及的人, 你可以这样得到:
535 //To// 应该是被提及的 Person,你可以这样得到:
536
537 {{{SELECT Contact WHERE id = :mentioned->id}}}
538 * (((
539 //主题//是“您已被提及 XXXX“,XXXX 是您所在的日志的对象的名称 提到
540 //主题//是“您在 XXXX 中被提及”,XXXX 是您在日志中被提及的对象的名称
541 )))
542 * (((
543 电子邮件通知的//正文//为:
544 )))
545
546 ; [[身体>>url:https://www.itophub.io/wiki/page?do=export_code&id=3_0_0:admin:notifications&codeblock=11]]
547 :
548
549 {{{ Hello $mentioned->first_name$,
550
551 You have been mentioned by $current_contact->friendlyname$ in $this->hyperlink()$}}}
552
553 将占位符记为 use 字段 Person.
554 对于任何消息,您可以使用标准占位符(请参阅 下面)$mentioned->attribute$
555
556 当然,您可以自定义 //Subject// 和 //Body//,但不建议更改 //To//!
557 当然,您可以自定义 //Subject// 和 //Body//,但不建议更改 //To//!
558
559 您还可以拆分此通用通知,以便为每个 触发器,以便提供更准确的 修改已完成,例如最后一个 caselog 条目。
560 您还可以拆分此通用通知,以便使用它为每个触发器创建一个,以便它提供有关已完成修改的更准确信息,例如最后一个 caselog 条目。
561
562 当前限制:您有 没有意思知道您在哪个日志中被提及,以防 对象具有多个日志。所以使用 $this->head_html(public_log)$ 可能会返回与 提及操作(如果在工单的 private_log 中完成) 例如。
563 当前限制:如果对象有多个日志,则无法知道在哪个日志中提到了您。因此,如果在 //Ticket//(工单)的private_log中使用 $this->head_html(public_log)$ 可能会返回与提及操作完全无关的内容。
564
565 您可以使用此机制来 通知与上述业务流程关联的联系人, 应用程序、服务器、更改、常见问题解答,...
566 您可以使用此机制通知与上述 Business Process、Application、Server、Change、FAQ 关联的联系人,...
567
568 === 在文档上 下载 下载文件时 ===
569
570 的 当有人下载 file 属性(例如 在类中)在 Backoffice 或 End-User Portal 的 Portal。Trigger (on object's document download)FileDocument File
571 当有人在后台或最终用户门户中下载文件属性(例如,在类上)时,将激活 。 Trigger (on object's document download) 文件文档 文件
572
573 此触发器允许您访问操作中的新占位符 (当然,标准的仍然可用):
574 此触发器允许您访问操作中的新占位符(当然,标准占位符仍然可用):
575
576 * (((
577 $file->mime_type$MIME 类型的 文件(例如。“image/png”)
578 $file->mime_type$ 文件的 MIME 类型(例如。“image/png”)
579 )))
580 * (((
581 $file->file_name$文件名、 如上传。
582 $file->file_name$ 上传的文件的名称。
583 )))
584 * (((
585 $file->downloads_count$数量 下载文件的时间。请注意,它是 BEFORE 的计数 当前下载,因此您可以挂接一些检查来防止它 超出阈值。
586 $file->downloads_count$ 文件下载的次数。请注意,这是当前下载之前的计数,因此您可以挂接一些检查,以便在超过阈值时防止它。
587 )))
588 * (((
589 $file->data$的二进制内容 文件
590 $file->data$ 文件的二进制内容
591 )))
592 * (((
593 $file->data_as_base64$基地 64 编码内容,可用于与 其他应用
594 文件的 $file->data_as_base64 Base64 编码内容可用于与其他应用程序的集成
595 )))
596
597 === 附着时 下载 在附件下载时 ===
598
599 的 当有人在后台下载附件时激活,或者 最终用户门户。Trigger (on object's attachment download)
600 当有人在后台或最终用户门户中下载附件时,将激活 。 Trigger (on object's attachment download)
601
602 此触发器允许您访问操作中的新占位符 (当然,标准的仍然可用):
603 此触发器允许您访问操作中的新占位符(当然,标准占位符仍然可用):
604
605 * (((
606 $attachment->xxx$相同 可能性至于但与 attachment 本身( 是 object it is attached to)$this->xxx$$this
607 $attachment->xxx$ 与 for 相同,但附件本身(即它所连接的物体)$this->xxx$$this
608 )))
609 * (((
610 $attachment->mime_type$MIME 类型 的文件(例如。“image/png”)
611 $attachment->mime_type$ 文件的 MIME 类型(例如。“image/png”)
612 )))
613 * (((
614 $attachment->file_name$名称 文件,如上传时所示。
615 $attachment->file_name$ 上传的文件的名称。
616 )))
617 * (((
618 $attachment->downloads_count$文件已下载的次数。请注意,它是 count 之前,这样你就可以将一些检查挂接到 如果超过阈值,则阻止它。
619 $attachment->downloads_count$ 下载文件的次数。请注意,这是当前下载之前的计数,因此您可以挂接一些检查,以便在超过阈值时防止它。
620 )))
621 * (((
622 $attachment->data$二进制内容 的文件
623 $attachment->data$ 文件的二进制内容
624 )))
625 * (((
626 $attachment->data_as_base64$基地 64 编码内容,可用于与 其他应用
627 文件的 $attachment->data_as_base64$ Base64 编码内容可用于与其他应用程序的集成
628 )))
629
630 谨慎使用它们的输出可能会 巨大。$xxx->data$$xxx->data_as_base64$
631 请谨慎使用,因为它们的输出可能很大。$xxx->data$$xxx->data_as_base64$
632
633 == 测试 触发 测试触发器 ==
634
635 我们强烈建议您进行测试 触发器和操作,在将它们移动到生产环境之前,通过使用 操作的 “Being Tested” 状态。
636 我们强烈建议您在将触发器和操作移至生产环境之前,通过在操作上使用“正在测试”状态来测试它们。
637
638 您可以查看为给定工单发送了哪个通知 (用户请求、事件、更改)使用 工单的详细信息。
639 您可以使用工单详细信息中的“通知”选项卡查看为给定工单(用户请求、事件、更改)发送的通知。
640
641 [[[[image:https://www.itophub.io/wiki/media?w=600&tok=2c7e14&media=3_0_0:admin:notifications-ur.png||alt="Notifications tab on ticket|"]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:notifications-ur.png]]
642
643 您还可以列出所有已发送和 使用“管理工具”/“运行”页面失败的通知 Queries“并运行查询:
644 您还可以使用“管理工具”/“运行查询”页面并运行查询来列出所有已发送和失败的通知:
645
646 {{{SELECT EventNotification}}}
647
648 如果您在 Linux 服务器,sendmail_path请确保 php.ini. 例如:
649 如果你在 Linux 服务器上运行 iTop,请确保变量 “sendmail_path” 值php.ini。例如:
650
651 {{{sendmail_path = "/usr/sbin/sendmail -t -i"}}}
652
653 根据您的实际环境,配置可能是 不同。例如,也可以使用 SSMTP 作为代理 到实际的电子邮件服务器,如以下链接中所述:[[http:~~/~~/tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/>>url:http://tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/]]
654 根据您的实际环境,配置可能是 不同。例如,也可以使用 SSMTP 作为代理 到实际的电子邮件服务器,如以下链接所述: [[http:~~/~~/tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/>>url:http://tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/]]
655
656 如果您在 Windows 服务器,您需要确保 php.ini 文件 包含以下行:
657
658 {{{SMTP = <smtp server>
659 smtp_port = 25}}}
660
661 为了测试您可以使用的电子邮件通知,“测试 Page“(点击”通知“页面中的链接)或键入:
662
663 http:~/~/<itop 服务器位置>/setup/email.test.php
664 http:~/~/<itop 服务器位置>/setup/email.test.php
665
666 测试页面对 PHP 执行许多检查 配置,并允许您将纯文本电子邮件发送到 收件人。这对于验证 服务器的 PHP 配置确实适合发送 电子邮件。
667
668 [[[[image:https://www.itophub.io/wiki/media?w=500&tok=9a0811&media=3_0_0:admin:email-test.png||alt="Email sending test page"]]>>url:https://www.itophub.io/wiki/media?media=3_0_0:admin:email-test.png]]  
669
670 === 电子邮件 配置 电子邮件配置 ===
671
672 iTop 支持两种发送电子邮件的方式:PHP 或 SMTP 的内置功能通过 [[Swift Mailer 库>>url:http://http//swiftmailer.org/]](随 iTop 一起安装)。配置参数确定使用哪种方法 从 iTop 发送电子邮件。如果参数的值为 (这是默认值),则使用内置函数。如果值为 SMTP,则 SMTP 使用 Swift Mailer 的运输。mailemail_transportemail_transportPHPMailmail()SMTP
673
674 当使用 PHP 的函数时,语言的 设置。有关更多信息,请查看 [[PHP 文档>>url:http://www.php.net/manual/en/mail.configuration.php]]。mail
675
676 使用 SMTP 传输时,以下参数可以是 在 iTop 配置文件中设置:
677
678 |=配置参数|=类型|=可见|=描述 描述|=默认值
679 |email_transport_smtp.encryption|字符串|不|TLS 或 SSL(可选)|
680 |email_transport_smtp.host|字符串|不|主机名或 IP 地址(可选)|本地主机
681 |email_transport_smtp.password|字符串|不|身份验证密码(可选)|
682 |email_transport_smtp.port|整数|不|端口号(可选)|25
683 |email_transport_smtp.username|字符串|不|身份验证用户(可选)|
684 |email_transport_smtp.verify_peer|布尔|不|验证对等证书|真
685
686 虽然使用 默认传输方式(PHP 邮件),缺点是缺少报告 当它失败时。例如,您可能会收到错误消息“//否 此邮件的有效收件人。//对于配置问题。 有关更多信息,请参阅 [[Swift Mailer 传输文档>>url:http://swiftmailer.org/docs/sending.html#the-mail-transport]]。 因此,我们强烈建议您使用 SMTP 传输 ,这将返回详细的错误消息。
687
688 === 通知和 应用程序响应能力
689 通知和应用程序响应能力 ===
690
691 发送电子邮件是一项相对较慢的操作。取决于您 电子邮件服务器,发送一封电子邮件可能需要几秒钟 (建立与服务器的连接、发送数据等)。 在 iTop 中创建或更新票据时,可能会有多封邮件 emitted,具体取决于配置的通知。这可以采用 几秒钟即可完成。为了提高 应用程序,则通知可以通过 进程在 Web 服务器的后台运行。激活 异步发送通知,在配置文件中设置 并确保[[后台进程>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:cron]]已启动并正在运行。'email_asynchronous' ⇒ true,
692
693 如果你非常依赖 通知,请注意,使用传输的直接 SMTP 连接通常比 PHP 的 内置邮件函数 (),所以可能值得 额外的配置工作。SMTPPHPMail
694 如果您非常依赖通知,请注意,使用传输的直接 SMTP 连接通常比 PHP 的内置邮件函数 () 快一点,因此可能值得进行额外的配置工作。SMTPPHPMail
695
696 == 配置通知 CSS
697 配置通知 CSS ==
698
699 它是 iTop 配置中的一个变量 (email_css),它允许 以重载用于电子邮件通知的默认 CSS。 查看以下[[教程>>url:https://www.itophub.io/wiki/page?id=3_0_0:customization:customize-notification-css]] 了解如何个性化您自己的 CSS。
700 这是 iTop 配置中的一个变量 (email_css),它允许重载用于电子邮件通知的默认 CSS。查看以下[[教程>>url:https://www.itophub.io/wiki/page?id=3_0_0:customization:customize-notification-css]],了解如何个性化您自己的 css。
701
702 == A 步骤 步骤示例
703 Step by Step 示例 ==
704
705 **[[教程 创建您的第一个通知
706 创建第一个通知的教程>>url:https://www.itophub.io/wiki/page?id=3_0_0:admin:notifications-step-by-step]]**
深圳市艾拓先锋企业管理咨询有限公司