8.2 手工任务服务驱动程序

手工任务服务驱动程序用于通知一个或多个用户已发生了一个数据事件,以及是否需要用户进行任何操作。 在员工提供的方案中,数据事件可能是新用户对象的创建,而用户操作可能包括:通过将数据输入 eDirectory,或在应用程序中输入数据来指定办公室编号。 其它方案包括:通知管理员已创建了新用户对象,通知管理员用户对某个对象进行数据修改等。

配置手工任务服务驱动程序通常包括配置两个既相互独立又相关联的子系统: 订购者通道策略和电子邮件模板,以及发布者通道万维网服务器模板和策略。

另外,必须配置驱动程序参数(例如,SMTP 服务器名称、万维网服务器端口号等)。

本节包括:

8.2.1 安装

  • 安装: 使用 Identity Manager 安装程序安装“Metadirectory 服务器”选项时,将自动安装手工任务服务驱动程序。

  • 平台: 此驱动程序可以在 Identity Manager 和远程装载程序支持的平台上运行。

  • 激活: 此驱动程序无需单独激活。 激活 Metadirectory 引擎时,也就激活了该驱动程序。

8.2.2 概述

在本节中,您可以查找到有关各个驱动程序功能如何工作的信息。

操作方式

支持两种主要操作方式:

  • 数据直接请求: 发送电子邮件,要求用户将数据输入到 eDirectory(可能供其它应用程序使用)中。 电子邮件收件人通过单击邮件中的 URL 来响应此邮件。 URL 指向手工任务服务驱动程序发布者通道中运行的万维网服务器。 用户随即与万维网服务器所生成的动态万维网页交互,以鉴定到 eDirectory™ 并输入要求的数据。

  • 事件通知: 向用户发送电子邮件,而不涉及发布者通道。 此电子邮件可能只是通告 eDirectory 中发生的某些事件,或是要求通过发布者通道万维网服务器以外的方法(例如,Novell iManager、其它应用程序或自定义界面)来传输的数据。

示例: 订购者通道电子邮件,发布者通道万维网服务器响应

下面是一名员工提供的假设示例,在此示例中新的员工经理给该员工指定一个房间号:

  1. 在 eDirectory 中创建一个新用户对象(例如,通过公司人力资源系统的 DirXML 驱动程序)。
  2. 手工任务服务驱动程序的订购者向此用户的经理和经理助理发送一封 SMTP 邮件。 此 SMTP 邮件包含引用发布者通道万维网服务器的 URL。 此 URL 还包含标识用户和标识那些授权给提交请求数据的数据项。
  3. 经理或经理助理单击此电子邮件中的 URL,即在万维网浏览器中显示出 HTML 表格。 然后,经理或助理可进行下列操作:
    • 选择其 eDirectory 用户对象的 DN 作为标识此电子邮件响应者的方法。
    • 输入其 eDirectory 口令。
    • 输入新员工的房间号。
    • 单击“提交”按钮。
  4. 新员工的房间号通过手工任务服务驱动程序的发布者通道提交给 eDirectory。

示例: 订购者通道电子邮件,无发布者通道响应

下面是一个假设示例,此示例中新员工经理在资产管理系统中给员工指定一台计算机:

  1. 在 eDirectory 中创建一个新用户对象(例如,通过公司人力资源系统的 DirXML 驱动程序)。
  2. 手工任务服务驱动程序的订购者向此用户的经理和经理助理发送一封 SMTP 邮件。 此 SMTP 邮件包含将数据输入到资产管理系统的指令。
  3. 经理或助理将数据输入到资产管理系统中。
  4. (可选)计算机的标识数据通过资产管理系统的 DirXML 驱动程序调入到 eDirectory 中。

如何通过手工任务服务驱动程序创建电子邮件和万维网页

电子邮件、HTML 万维网页和 XDS 文档都可以看作文档。 根据提供给驱动程序的信息,手工任务服务驱动程序可以动态地创建文档。

模板是 XML 文档,其内容包括样板文件、文档固定部分以及指示出现动态、替换、结尾部分和构造文档的替换标记。

手工任务服务驱动程序的订购者通道和发布者通道都采用模板来创建文档。 其中订购者通道创建电子邮件,而发布者通道创建万维网页和 XDS 文档。

文档的动态部分通过替换数据来提供。 订购者通道中的替换数据由订购者通道策略(例如,命令转换策略)提供。 发布者通道中的替换数据是由到万维网服务器的 HTTP 数据提供(URL 数据和 HTTP POST 数据)。 手工任务服务驱动程序能自动地提供其已知的特定数据(例如,万维网服务器地址)。

通过 XSLT 样式表处理此模板。 这些模板处理用的样式表与订购者或发布者通道中的 DirXML 策略所用的样式表是相互独立的。

替换数据是作为 XSLT 样式表的参数提供。 样式表处理输出的是一个 XML、HTML 或文本文档(用作电子邮件正文、万维网页或发布者通道中 DirXML 提交内容)。

替换数据通过电子邮件中的 URL,从订购者通道传送到发布者通道。 URL 具有一个包含替换数据项的查询部分。

对于创建电子邮件文档、HTML 文档和 XDS 文档,手工任务服务驱动程序所附带的预定义样式表足以对模板进行处理。 如果需要,还可以编写其它自定义样式表提供其它处理选项。

创建文档也有高级的方法,此方法只使用一个 XSLT 样式表和替换数据。 不涉及到任何模板。 然而,因为模板方法无需具备 XSLT 编程知识,并且配置和维护更简单,因此本指南将采用模板方法。

模板

本节描述文档创建模板(如手工任务服务驱动程序中所用)。

模板是 XML 文档,此文档通过样式表处理以便生成输出文档。 此输出文档可以是 XML、HTML 或纯文本(或通过 XSLT 生成的其它格式)。

模板用于在订购者通道上生成电子邮件文本,以及在发布者通道上生成动态万维网页和 XDS 文档。

模板包含文本、要素和替换标记。 在输出文档内,替换标记被替换为提供给模板处理样式表的数据。

下面是不同用途模板的几个示例。 在该示例中,替换标记是位于两个 $ 字符之间且显示为粗体的字符串。

模板也可包含操作要素。 操作要素是由模板处理样式表解释的控制要素。 有关操作要素的信息,请参见部分 F.0, 手工任务服务驱动程序: 模板操作要素参照。 以下示例中,操作要素也显示为粗体。

下面的示例模板用于生成 HTML 电子邮件正文:

<html xmlns:form="http://www.novell.com/dirxml/manualtask/form"> <head></head> <body> Dear $manager$,<p/> <p> This message is to inform you that your new employee <b>$given-name$ $surname$</b> has been hired. <p> You need to assign a room number for this individual. Click <a href="$url$">Here</a> to do this. </p> <p> Thank you,<br/> HR Department </p> </body> </html>

下面的示例模板用于生成纯文本电子邮件正文:

<form:text xmlns:form="http://www.novell.com/dirxml/manualtask/form"> Dear $manager$,

This message is to inform you that your new employee $given-name$ $surname$ has been hired. 

You need to assign a room number for this individual. Use the following link to do this:

$url$

Thank you,

The HR Department

</form:text>

要求使用 <form:text> 要素,因为模板必须是 XML 文档。 <form:text> 要素将被清除,这是模板处理工作的一部分。

下面的模板用于生成 HTML 表格,该表格可用作输入数据的万维网页:

<html  xmlns:form="http://www.novell.com/dirxml/manualtask/form"> <head> <title>Enter room number for $subject-name$</title> </head> <body> <link href="novdocmain.css" rel="style sheet" type="text/css"/> <br/><br/><br/><br/> <form class="myform" METHOD="POST" ACTION="$url-base$/process_template.xsl"> <table cellpadding="5" cellspacing="10" border="1" align="center"> <tr><td> <input TYPE="hidden" name="template" value="post_form.xml"/> <input TYPE="hidden" name="subject-name" value="$subject-name$"/> <input TYPE="hidden" name="association" value="$association$"/> <input TYPE="hidden" name="response-style sheet" value="process_template.xsl"/> <input TYPE="hidden" name="response-template" value="post_response.xml"/> <input TYPE="hidden" name="auth-style sheet" value="process_template.xsl"/> <input TYPE="hidden" name="auth-template" value="auth_response.xml"/> <input TYPE="hidden" name="protected-data" value="$protected-data$"/> You are:<br/>           <form:if-single-item name="responder-dn">           <input TYPE="hidden" name="responder-dn" value="$responder-dn$"/> $responder-dn$           </form:if-single-item>          <form:if-multiple-items name="responder-dn">            <form:menu name="responder-dn"/>          </form:if-multiple-items> </td></tr> <tr><td> Enter your password: <br/> <input name="password" TYPE="password" SIZE="20" MAXLENGTH="40"/> </td></tr> <tr><td> Enter room number for $subject-name$:<br/> <input TYPE="text" NAME="room-number" SIZE="20" MAXLENGTH="20" value="$query:roomNumber$"/> </td></tr> <tr><td> <input TYPE="submit" value="Submit"/> <input TYPE="reset" value="Clear"/> </td></tr> </table> </form> </body> </html>

下面的模板用于生成 XDS 文档:

<nds> <input> <modify class-name="User" src-dn="not-applicable"> <association>$association$</association> <modify-attr attr-name="roomNumber"> <remove-all-values/> <add-value> <value>$room-number$</value> </add-value> </modify-attr> </modify> </input> </nds>

替换标记

以上示例模板中由 $ 界定的项目是替换标记。 例如,$manager$ 将替换为经理的真实姓名。

替换标记可显示为文本或 XML 特性值(注意上面第一个示例中,<a> 要素上的 href 值)。

替换数据

替换数据由字符串组成,这些字符串将代替由模板生成的输出文档中的替换标记。 替换数据由订购者通道数据或发布者通道 HTTP 数据提供,或由驱动程序自动提供。 替换数据的附加类型是通过 Identity Manager 从 eDirectory 检索的数据(查询数据)。 有关替换数据的完整信息,请参见部分 D.0, 手工任务服务驱动程序: 替换数据

订购者通道数据: 订购者通道替换数据有两种类型。 第一种类型用作模板(用于创建电子邮件)中替换标记的替换值。 第二种类型位于 URL 的查询部分,以便在将 URL 提交到发布者万维网服务器后,便可在发布者通道上使用此数据。

HTTP 数据: 替换数据提供给发布者通道万维网服务器,用作 URL 查询字符串数据、HTTP POST 数据,或两者兼有。

自动数据: 手工任务服务驱动程序提供自动数据。 有关自动数据项的信息,请参见部分 E.0, 手工任务服务驱动程序: 自动替换数据项

查询数据: 以查询开始的替换标记: 视作要求从 eDirectory 获取当前数据的请求。 位于查询后的标识部分: 是 eDirectory 对象特性的名称。 要查询的对象由某个替换数据项指定:associationsrc-dnsrc-entry-id。 上述项将按在前句中出现的顺序来处理。

模板操作要素

操作要素是模板中的名称空间限定要素,此操作要素用于简单逻辑控制或创建 HTML 表格的 HTML 要素。 用于限定要素的名称空间是 http://www.novell.com/dirxml/manualtask/form。 在该文档和手工任务服务驱动程序附带的样本模板中,所用的前缀是“form”。

以上示例中以粗体显示的要素是操作要素。

有关操作要素的信息,详见部分 F.0, 手工任务服务驱动程序: 模板操作要素参照

订购者通道电子邮件

手工任务服务驱动程序的订购者通道用于发送电子邮件。 为实现此功能,驱动程序支持名为 <mail> 的自定义 XML 要素。 订购者通道上的策略根据对某个 eDirectory 事件(例如,用户创建)的响应来构造 <mail> 要素。 下面为 <mail> 要素的示例:

<mail src-dn="\PERIN-TAO\novell\Provo\Joe"> <to>JStanley@novell.com</to> <cc>carol@novell.com</cc> <reply-to>HR@novell.com</reply-to> <subject>Room Assignment Needed for: Joe the Intern</subject> <message mime-type="text/html"> <stylesheet>process_template.xsl</stylesheet> <template>html_msg_template.xml</template> <replacement-data> <item name="manager">JStanley</item> <item name="given-name">Joe</item> <item name="surname">The Intern</item> <url-data> <item name="file">process_template.xsl</item> <url-query> <item name="template">form_template.xml</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\phb</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\carol</item> <item name="subject-name">Joe The Intern</item> </url-query> </url-data> </replacement-data> <resource cid="css-1">novdocmain.css</resource> </message> <message mime-type="text/plain"> <stylesheet>process_text_template.xsl</stylesheet> <template>txt_msg_template.xml</template> <replacement-data> <item name="manager">JStanley</item> <item name="given-name">Joe</item> <item name="surname">The Intern</item> <url-data> <item name="file">process_template.xsl</item> <url-query> <item name="template">form_template.xml</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\phb</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\carol</item> <item name="subject-name">Joe The Intern</item> </url-query> </url-data> </replacement-data> </message> <attachment>HR.gif</attachment> </mail>

手工任务服务驱动程序的订购者使用 <mail> 要素中包含的信息来构造 SMTP 电子邮件。 可构造一个 URL 并将其插入电子邮件中,通过这个 URL 电子邮件收件人即可响应此电子邮件。 URL 可指向订购者通道万维网服务器或指向某个其它万维网服务器。

有关 <mail> 要素及其内容的信息,详见部分 G.0, 手工任务服务驱动程序: <mail> 要素参照

订购者通道万维网服务器

手工任务服务驱动程序的发布者通道运行着一台万维网服务器,该服务器已配置为用户可通过万维网浏览器将数据输入到 eDirectory 中。 万维网服务器设计为与手工任务服务驱动程序的订购者通道发送的电子邮件一起使用。

订购者通道万维网服务器可提供静态文件和动态内容。 静态文件的示例有 .css 样式表、图像等;动态内容的示例则包括:根据 URL 或 HTTP POST 数据中包含的替换数据而变化的万维网页。

通常,订购者通道万维网服务器配置为允许用户将数据输入到 eDirectory 中,作为对订购者通道发送的电子邮件的响应。 用户与万维网服务器的典型交互如下:

  1. 用户使用万维网浏览器,将电子邮件的 URL 提交给万维网服务器。 URL 指定用于创建动态万维网页的样式表、模板和替换数据(通常包含 HTML 表格)。
  2. 万维网服务器通过使用样式表和替换数据处理模板,从而创建 HTML 页。 由 URL 引用的资源将作为 HTML 页返回用户的万维网浏览器。
  3. 浏览器显示 HTML 页,然后用户输入要求的信息。
  4. 浏览器发送 HTTP POST 请求,其中包含已输入的信息以及源于电子邮件 URL 的其它信息。 响应电子邮件的用户 DN 和用户的口令必须位于 POST 数据中。
  5. 万维网服务器使用用户的 DN 和口令来鉴定用户。 如果鉴定失败,则返回包含失败讯息的万维网页,它将作为 POST 请求的结果。 可使用 POST 数据中指定的样式表和模板构造失败讯息。 如果鉴定成功,则处理继续。
  6. 万维网服务器使用 POST 数据中指定的样式表和模板构造 XDS 文档。 XDS 文档将提交给订购者通道上的 Identity Manager。
  7. XDS 文档的提交结果以及 POST 数据中指定的样式表和模板用于构造万维网页,此万维网页向用户指示数据提交的结果。 将此万维网页发送到浏览器作为 POST 请求的结果。

8.2.3 配置

本节描述如何配置手工任务服务驱动程序的参数和模板。

驱动程序设置

本节描述驱动程序对象用户界面的“驱动程序设置”一节中出现的参数。

事实上,这些参数大多用于订购者通道万维网服务器。 它们出现在驱动程序设置区域中,因为手工任务服务驱动程序订购者也需要对它们进行访问。

文档基址的 DN

此参数是树枝对象的 eDirectory DN。 手工任务服务驱动程序可以从 eDirectory 和磁盘装载 XML 文档(包括 XSLT 样式表)。 如果要从 eDirectory 装载 XML 文档,则此参数将标识从其装载文档的根树枝。

从 eDirectory 装载的文档在 eDirectory 对象的特性值中。 如果未指定,则此特性为 XmlData。 此特性也可指定,方法是向包含此文档的对象的名称添加 # 字符(后跟特性名称)作为后缀。

例如,假设文档基址 DN 指定为 “novell\Manual Task Documents”,并且 “Manual Task Documents” 下存在一个名为 “templates” 的树枝

如果名为 “e-mail _template” 的 DirXML 样式表位于 “templates” 目录下,则下列资源标识符可用于引用 XML 文档: “templates/e-mail _template” 或 “templates/e-mail _template#XmlData”。

资源标识符可提供为替换数据、URL 数据或 HTTP POST 数据。 例如,下列要素可能会显示在订购者通道上的 <message> 要素下:

<template>templates/e-mail _template#XmlData</template>
文档目录

此参数标识文件系统目录,此目录用作定位资源(例如,订购者通道万维网服务器维护的模板、XSLT 样式表和其它文件资源)的基本目录。 示例值包括:

Windows

c:\Novell\Nds\mt_files

NetWare

SYS:\SYSTEM\mt_files

UNIX

/usr/lib/dirxml/rules/manualtask/mt_files

使用 HTTP 服务器 (true|false)

此参数指示是否要发布者通道运行万维网服务器。 如果要运行万维网服务器,则参数设为 true,或如果不运行万维网服务器,则参数设为 false。

如果手工任务服务驱动程序仅用于发送电子邮件而不带有响应 URL,或带有指向其它应用程序的 URL,则不应运行 HTTP 服务器,以节省系统资源。

HTTP IP 地址或主机名

此参数允许用户指定在若干本地 IP 地址中,发布者通道万维网服务器将监听哪个 IP 地址的 HTTP 请求。

将 HTTP IP 地址或主机名参数值留为空,可使发布者通道万维网服务器监听默认的 IP 地址。 对于带有单个 IP 地址的服务器,此设置已足够了。 将点表示法 IP 地址置为参数值,可使发布者通道万维网服务器监听指定地址的 HTTP 请求。

请注意,如果邮件命令要素中未指定主机名或地址,则订购者通道邮件处理程序将使用为 HTTP IP 地址或主机名指定的值来构造 URL。 如果参数 Use HTTP server (true|false) 设置为 fasle,则可用 HTTP IP 地址或主机名来指定用于构造邮件 URL 的万维网服务器的地址或名称。

HTTP 端口

此参数是整数值,指示发布者通道万维网服务器应监听哪个 TCP 端口的进来请求。 如果未指定此值,则根据万维网服务器连接是否正使用 SSL,端口号将默认为 80 或 443。

如果 Identity Manager 服务器上正运行手工任务服务驱动程序(即,它没有通过远程计算机的远程装载程序运行),则 HTTP 端口应设为不同于 80 或 443 的值。这是因为 iMonitor 或其它进程通常使用端口 80 和端口 443。

KMO 名称

如果不为空,则此参数为 eDirectory 密钥资料对象(它包含发布者通道万维网服务器用于 SSL 的服务器证书和密钥)的名称。

设置此参数,可使发布者通道万维网服务器使用 SSL 来满足 HTTP 请求。

此参数优先于任何 Java* 密钥存储区参数(见下文)。

出于安全性考虑,建议使用 SSL,因为使用发布者通道万维网服务器时,eDirectory 口令将在 HTTP POST 数据中传输

密钥存储区文件名称

此参数以及密钥存储区口令、证书名称(密匙别名)和证书口令(密匙口令)用于指定 Java 密钥存储区文件,此文件包含通过发布者通道万维网服务器用于 SSL 的证书和密匙。

设置此参数,可使发布者通道万维网服务器使用 SSL 来满足 HTTP 请求。

如果设置了 KMO 参数的名称,则忽略此参数及其关联的参数。

出于安全性考虑,建议使用 SSL,因为使用发布者通道万维网服务器时,eDirectory 口令将在 HTTP POST 数据中传输。

密钥存储区口令

此参数指定由密钥存储区文件参数的名称指定的 Java 密钥存储区文件的口令。

证书名称(密钥别名)

此参数指定由密钥存储区文件参数的名称指定的 Java 密钥存储区文件中使用的证书名称。

证书口令(密钥口令)

此参数指定使用证书名称(密钥别名)参数指定的证书的口令。

订购者设置

本小节描述订购者通道的设置。

SMTP 服务器

此参数指定 SMTP 服务器的名称,订购者通道将使用此服务器发送电子邮件。

SMTP 帐户名

如果使用 SMTP 服务器参数指定的 SMTP 服务器要求鉴定,则此参数将指定鉴定所用的帐户名。 所用的口令是与驱动程序鉴定参数相关联的应用程序口令。

默认 “From” 地址

如果已指定,此地址将是订购者通道发送的电子邮件的“SMTP from”(SMTP 源)字段中使用的电子邮件地址。 如果未指定,则发送给订购者的<mail> 要素必须包含一个 <from> 要素。

发送给订购者的 <from> 要素(位于 <mail> 要素下)优先于此参数。

附加处理程序

如果已指定,则为 Java 类名称的空格分隔列表。 各个类名称是自定义类,该类执行 com.novell.nds.dirxml.driver.manualtask.CommandHandler 界面并处理自定义 XDS 要素。 (<mail> 的处理程序是内置处理程序)。

有关自定义处理程序的附加信息,请参见部分 I.0, 手工任务服务驱动程序: 订购者通道的自定义要素处理程序

发布者设置

本小节描述发布者通道的设置。

附加服务器小程序

如果未留空,则为 Java 类名称的空格分隔列表。 各个类名称是自定义类,该类扩展 javax.servlet.http.HttpServer。自定义服务器小程序可用于扩展发布者通道万维网服务器的功能。

有关自定义服务器小程序的附加信息,请参见部分 J.0, 手工任务服务驱动程序: 发布者通道的自定义服务器小程序

订购者通道策略

订购者通道策略的配置取决于手工任务服务驱动程序所完成的特定安装。 然而,下面的准则可能会有帮助。

通常,命令转换策略是构造发送给订购者的 <mail> 要素的最好途经。 原因在于,命令到达命令转换策略时已完成的 DirXML 引擎处理最多。 这意味着已处理添加事件的创建策略(例如,允许禁止对象的添加事件,这些事件不具备生成电子邮件所需的全部特性)。 这也意味着无关联对象的修改事件已转换为添加事件。

构造电子邮件的 XSLT 样式表可能需要或不需要查询 eDirectory 以获取附加信息。

例如,如果此电子邮件只是新员工欢迎邮件,则添加命令可包含全部所需的信息: 名、姓和因特网电子邮件地址。 通过在创建策略中指定 Given Name(名)、Surname(姓)和 Internet E-mail Address(因特网电子邮件地址)是必需特性,即可完成此操作。 这样可确保只有包含所需信息的添加命令可以到达命令转换。

然而,如果此电子邮件是发给员工经理的邮件,则样式表需要查询 eDirectory。 可从员工用户对象的添加事件获得经理 DN,但由于经理电子邮件地址是经理用户对象的特性,所以必须进行查询以获得该信息。

另外,如果正在生成电子邮件通知,作为与驱动程序关联的对象的修改命令的结果,则必须进行查询以获得未包含在修改命令中的信息。

阻止命令到达订购者

如果要从添加事件之外的事件生成电子邮件,则必须允许添加事件到达要监视对象的订购者。 允许添加事件到达订购者将导致生成关联值,此值将从订购者返回到 Identity Manager。

手工任务服务驱动程序策略监视的 eDirectory 对象应具有手工任务服务驱动程序的关联,这一点非常重要。 只有具有关联的对象才能带有报告给驱动程序的删除、重命名和移动事件。 另外,在订购者通道事件转换之后,无关联对象上的修改事件将转换为添加事件。

命令转换策略应阻止所有其它命令(修改、移动、重命名和删除),并防止这些命令到达订购者。 订购者仅处理 <add> 命令和 <mail> 命令。 其它命令将导致订购者返回错误。

生成电子邮件

订购者发送电子邮件以响应接收 <mail> 要素,此要素描述要发送的电子邮件。 请参见部分 G.0, 手工任务服务驱动程序: <mail> 要素参照以获取有关 <mail> 要素及其内容的说明。

可以生成电子邮件以响应任何 Identity Manager 事件(添加、修改、重命名、移动、删除)。

随 <mail> 要素的 <message> 要素子级提供的替换数据取决于两个主要因素:

  • 用于生成邮件正文的模板。 电子邮件模板所用的替换项目显示为 <replacement-data> 要素的子级。
  • 发布者通道上万维网页模板需要的信息(如果电子邮件将导致在发布者通道上作出响应)。 万维网页模板所用的替换项目显示为 <replacement-data> 的子级 <url-data> 的子级,<url-query> 要素。

如果电子邮件应包含一个指向发布者通道万维网服务器并用于征集用户信息的 URL,则此替换数据必须至少包含一个响应程序 DN 项。 响应程序 DN 项的值必须为邮件目标用户的用户对象的 DN。

如果模板中使用查询替换标记(请参见替换数据),则 <message> 要素的替换数据必须包含一个名为 src-dn 或 src-entry-id 的项,或具有相应值的关联。 如果要查询的 eDirectory 对象已具有手工任务服务驱动程序的关联,则只能使用关联项。 无法使用非关联对象的订购者生成的关联,因为发生查询时,此关联尚未写入 eDirectory 对象。

<message> 要素可指定邮件正文的 MIME 类型。 如果已指定 MIME 类型,但未指定样式表(即,无 <message> 的 <stylesheet> 要素子级),则使用两个默认样式表名称的一个。 MIME 类型是文本/纯文本,则默认样式表名称为 process_text_template.xsl。如果 MIME 类型是文本/纯文本之外的其它类型,则默认样式表名称为 process_template.xsl。

订购者通道电子邮件模板

电子邮件模板是包含样板文件和替换标记的 XML 文档。 电子邮件模板用于生成电子邮件正文文本。 有关模板的一般信息,请参见模板

电子邮件模板中使用的替换标记指示 <item> 要素,此要素必须作为 <replacement-data> 要素(由构造 <mail> 要素的订购者通道策略构造)的子级提供。 例如,如果电子邮件模板具有替换标记 $employee-name$,则 <message> 要素的替换数据中必须存在 <item name=“employee-name”> 要素。 如果员工姓名项不存在,则在生成的电子邮件正文中,由模板中的替换标记占用的位置处没有文本。

电子邮件模板可用于生成邮件正文(纯文本、HTML 或 XML)。

如果电子邮件模板生成纯文本邮件,则必须通过将纯文本指定为输出类型的样式表对其进行处理。 如果此样式表未将纯文本指定为它的输出类型,则将产生不希望出现的 XML 转义。 通常使用默认的手工任务服务驱动程序样式表 ( process_text_template.xsl) 来处理产生纯文本的模板。

发布者通道策略

在手工任务服务驱动程序的多数实现中,不需要发布者通道策略。 这是因为手工任务服务驱动程序可以构造万维网页面和 XDS 模板,以使它们准确地生成所需的 XDS,这些 XDS 无需由策略进一步处理。

具体安装时可能需要一些策略。

发布者通道万维网页模板

万维网页模板是包含样板文件和替换标记的 XML 文档。 万维网页模板用于生成万维网页文档(通常是 HTML 文档)。 有关模板的一般信息,请参见模板

万维网页模板中的替换标记指示订购者通道中作为 URL 查询数据提供的替换数据。 获取发布者通道上的替换数据的来源是 HTTP GET 请求的 URL 查询字符串以及 HTTP POST 请求的 URL 查询字符串和 POST 数据。

以替换数据从订购者通道通过电子邮件发送到发布者通道万维网服务器为例,请考虑以下方案。

手工任务服务驱动程序配置为要求新员工的经理为新员工分配房间号。 发送至经理的电子邮件的触发器为 <add> 命令,用于由订购者通道命令转换策略处理的新 User 对象。

经理单击电子邮件中的 URL,即可在经理的万维网浏览器中显示万维网页。 该万维网页必须指示经理正在为哪位员工输入房间号。

为了实现此功能,订购者通道上的 <url-query> 要素包含有一个替换数据项,用于按姓名标识新用户:

<item name=”subject-name”>Joe the Intern</item>

这使得 URL 查询字符串包含(与其它内容间杂)“subject-name=Joe%20the%20Intern”。 (“%20” 为 URL 编码空间)。

经理单击电子邮件中的 URL 时,他的万维网浏览器即将该 URL 提交至发布者通道万维网服务器。 万维网服务器将构造一个替换数据项,以值 Joe the Intern 来命名 subject-name。

万维网页模板也由 URL 指定,其中包含替换标记 $subject-name$。 由样式表处理万维网页模板以构造万维网页时,替换标记将由 Joe the Intern 替换,该值为创建用户对象导致电子邮件发送的员工自定义万维网页。

有关完整的订购者通道至发布者通道事务的其它信息,请参见部分 H.0, 手工任务服务驱动程序: 新员工的数据流方案

发布者通道 XDS 模板

XDS 模板是包含样板文件和替换标记的 XML 文档。 XDS 模板用于生成 XDS 文档,这些 XDS 文档将提交至手工任务服务驱动程序的发布者通道上的 Identity Manager。 有关模板的一般信息,请参阅“概述”一节下的“模板”。

XDS 模板中的替换标记指示:将提供给万维网服务器的某些替换数据作为 HTTP POST 请求中的数据。

例如,考虑以下 XDS 模板:

<nds> <input> <modify class-name="User" src-dn="not-applicable"> <association>$association$</association> <modify-attr attr-name="roomNumber"> <remove-all-values/> <add-value> <value>$room-number$</value> </add-value> </modify-attr> </modify> </input> </nds>

模板中的替换标记指示:HTTP POST 数据必须提供一个关联值和一个房间号值。

通常,关联值将从订购者通道中产生。 订购者通道电子邮件将放置关联=置于电子邮件中的 URL 的查询字符串中的部分值。 用于在 URL 提交至万维网服务器时生成万维网页的万维网页模板通常将关联值置于隐藏的 INPUT 要素中:

<INPUT TYPE="hidden" NAME="association" VALUE="$association$"/>

将关联值作为隐藏的 INPUT 要素放置,会导致作为 HTTP POST 数据的一部提交“association=some value”对。

使用与下面的要素相似的 INPUT 要素将房间号值输入万维网页:

<input TYPE="text" NAME="room-number" SIZE="20" MAXLENGTH="20"/>

如果经理输入 1234 然后单击“提交”,万维网浏览器将发送 “room-number=1234”,它将作为 HTTP POST 数据的一部分。

万维网服务器随后将生成一个 <item name=“association”> 替换数据项和一个 <item name=“room-number”> 替换数据项,这两个替换数据项将在处理 XDS 模板时使用。

通过使用 POST 数据中指定的样式表处理 XDS 模板,从而生成 XDS 文档。 随后该 XDS 文档将提交至手工任务服务驱动程序的发布者通道上的 Identity Manager。

跟踪设置

手工任务服务驱动程序可输出具有多种跟踪级别的讯息:

级别

跟踪讯息说明

0

无跟踪讯息

1

跟踪基本操作的单行讯息

2

无附加讯息(DirXML 引擎跟踪此级别及以上级别的 XML 文档)

3

无附加讯息

4

与从模板和样式表进行文档构造相关的讯息

5

跟踪的替换数据文档

8.2.4 其它信息

有关手工任务服务驱动程序设置的其它信息,请参考以下附录小节: