上一主题: 删除操作下一主题: 排定程序?


如何发布事件

您可以发布事件作为模仿用户操作的自动化的方式,例如,目录用户提交请求、请求经理批准请求或目录管理员更新用户或业务单位的详细信息。 在这两种情况(发布事件或用户操作)中,事件发生时,其规则将被评估。 如果规则的条件得到满足,将执行规则操作。

发布事件对于执行使用自动化和带有值和操作的任务非常有帮助。 例如,您可以发布事件为 CA Service Catalog 和其他的 CA 产品之间的集成指定自定义值。 此主题介绍如何通过 HTTP URL 发布 CA Service Catalog 事件。 您还可以使用规则操作中类型为 HTTP Post 的 URL。

重要信息! 如果您发布事件,请在将它移至生产环境之前对其进行彻底测试。 确认触发操作时该事件不会循环运行。

要发布事件,请执行以下步骤:

  1. 搜集来自事件的数据以编写 HTTP URL。
  2. 指定 HTTP URL 格式。 本主题使用 URL 示例来阐述如何发布事件。

    注意:您还可以使用 Web 服务发布事件。 这两个技术会得到同样的结果。

  3. 确认事件已被发布。

搜集来自事件的数据以编写 HTTP URL

从 URL 的事件定义搜集以下值。

此示例使用“工具”、“事件 - 规则 - 操作”页面上的“数据调解汇总”事件。 单击事件名以显示该事件的详细信息,包括以下详细信息。 使用这些详细信息来帮助指定 HTTP URL,如以下文本所示:

指定 HTTP URL

要指定 HTTP URL 以将事件发布到系统,请使用以下语法:

注意:在以下行及后面的示例中,换行符为了阅读方便。 在产品 UI 中,输入此代码作为单个连续的行。

http://hostname:port/usm/wpf?Node=icguinode.postevent
&username=userid&pass=password&domain=businessunit
&Args=eventsource&Args=nsppath&Args=transactionname&Args=eventtypename
&Args=transactiontype&Args=eventdescription&Args=associatedobjectid
&Args=false&Args=param1|oldvalue1!param#|oldvalue#!
&Args=param1|newvalue1!param#|newvalue#!

示例 URL 如下:

http://hostname:port/usm/wpf?Node=icguinode.postevent
&username=spadmin&pass=spadmin&domain=ca.com&Args=LOGICAL
&Args=DATA_MEDIATION_AGGREGATION:MODIFIED
&Args=DATA_MEDIATION_AGGREGATION&Args=MODIFIED&
Args=LOGICAL&Args=Modified&Args=$id$&Args=false
&Args=end_date|abc!start_date|abc!status|123!status_date|abc!
&Args=end_date|abd!start_date|abd!status|124!status_date|abd!

注意:当您从 Java 或一些其他工具通过 URL 发布事件时,您可能需要通过将不受支持的字符替换为代码来编码 URL。 例如,您可能需要将和号(&)替换为 %26,或将单个空格替换为 %20。

注意:Catalog 系统在评估事件规则的规则筛选时将同时使用旧值和新值。

下面是对一些参数的解释:

userid

指定用于身份验证的有效用户 ID。

密码

指定用户 ID 的密码。

businessunit

为用户 ID 的角色指定业务单位。

eventsource

根据事件详细信息指定“事件源”:LOGICAL,PHYSICAL,CommonDB。

在此示例中,值是 LOGICAL。

nsppath

指定名称空间路径,只是一个占位符值。 目录系统不使用实际值,但需要一个占位符值。

采用以下格式:

<事务名称>-<事务类型>

<事务类型> - MODIFIED,ADDED 或 DELETED。

<事务名称> - 如事件详细信息中所显示。

在此示例中,值是 DATA_MEDIATION_AGGREGATION:MODIFIED。

transactionname

为事件指定事务名。

如事件详细信息所示,在此示例中,值是 DATA_MEDIATION_AGGREGATION。

eventtypename

指定事件类型的名称:MODIFIED,ADDED 或 DELETED。

在此示例中,值是 MODIFIED。

transactiontype

为事件指定事务类型。

此值与事件源参数的值一样。

在此示例中,值是 LOGICAL。

eventdescription

(Web 服务可选)指定事件的说明。

如事件详细信息中所显示指定“事务类型”。

在此示例中,值是 Modified。

associatedobjectid

指定要与此事件关联的对象的 ID。

您可以选择为此值指定事件参数之一。 此值用于关联在“更改事件”中记录的报警。

此示例使用虚拟值: $id$。

ispartial

指定此事件是否是部分的;此值始终为 False。

param#|oldvalue#

指定参数名和值。 使用垂直栏分隔名称和值。 使用感叹号分隔每个名称-值对。

在此示例中,值如下所示:

end_date|abc!start_date|abc!status|123!status_date|abc!

注意:此示例使用虚拟值作为事件属性。 不要指定 $all$ 属性的值,因为它读取所有值。

param#|newvalue#

指定参数名和值。 使用垂直栏分隔名称和值。 使用感叹号分隔每个名称-值对。

在此示例中,值如下所示:

end_date|abd!start_date|abd!status|124!status_date|abd!

之前参数的注释也适用于此参数。

确认事件已发布

要确认事件发布,遵循这些步骤:

  1. 禁用您要发布的事件的所有规则。
  2. 仅启用一个不包含筛选的规则和一个命令行操作,如下所示:
    cmd /c echo Posted Event: $all$ >> C:\PostEventCheck.txt
    
  3. 确认 PostEventCheck.txt 文件在 CA Service Catalog 的应用程序服务器的 C:\ 驱动器上创建。

注意:您也可以使用其中一个 postEvent 管理网站服务方式发布事件。

详细信息:

使用 Web 服务