IBM FileNet P8 Application Integration 支持定制用于 Microsoft® Outlook、Word、Excel 和 PowerPoint 的“文件”、“插入”和“帮助”弹出菜单。Application Integration 利用 COM 附加组件,通过添加定制附加组件菜单来扩展这些应用程序。开发者可以通过使用提供的 XML 文件来修改这些定制菜单,这些文件包含 Application Integration 用于为 Microsoft 应用程序配置菜单内容的信息。
在安装 Application Integration 之后,开发者可以手动修改这些 XML 文件的内容,以定制附加组件菜单来满足他们的应用程序需求。然后可以将定制的 XML 文件复制到组织中的其他系统,以便为特定用户或用户类提供一种控制应用程序环境和功能可用性的方法。每当特定应用程序需要进行新的更改时,都可以更新相应的 XML 文件并再次将其复制到适当的系统。
以下各节描述了现有附加组件菜单,并提供了关于如何进行修改的指示信息和注意事项:
开发者可以按如下所述定制附加组件菜单:
定制... | 描述 |
---|---|
可视性 | 指定菜单上应该可视的 Application Integration 命令和弹出子菜单。此技术允许从菜单中完全除去某个子菜单或命令,以控制某个功能的可用性。 |
启用状态 | 指定应该可视但处于禁用状态(已变成灰色)的 Application Integration 命令和弹出子菜单。此技术使开发者能够控制是否可以打开特定菜单或者是否可以执行命令。 |
标签或文字说明 | 指定应该对用户显示的 Application Integration 命令和弹出子菜单的标签或文字说明。例如,开发者可以将“检入”命令重命名为“存储文档”,或在名为“制作”的子菜单上将某些命令组合在一起。 |
命令操作 | 指定当选择了某个 Application Integration 命令时应该执行哪个
Application Integration 操作。 注意:您无法指定供应商命令。 |
菜单层次结构 | 指定菜单上 Application Integration 命令的排列方式,包括命令的顺序以及它们是否包含在弹出子菜单文件夹层次结构中。 |
在安装 Application Integration 期间,会将 XML 文件写至安装目录(缺省安装目录是 C:\Program Files\FileNet\AppInt\)。每当打开某个受支持的 Microsoft 应用程序时,Application Integration 都会在安装目录中搜索相应的 XML 文件,然后根据该 XML 文件中包含的指定内容来为此应用程序配置附加组件菜单。如果 Application Integration 在安装目录中找不到 XML 文件,那么它会尝试从 Module 目录中收集这些文件。(Module 目录通常是存储 Microsoft Office 应用程序的位置,缺省情况下位于 C:\Program Files\Microsoft Office\Office 中。)
注意:虽然开发者可以修改 XML 文件的内容,但不能更改 XML 文件的名称,并且这些文件必须位于安装目录或 module 目录中,以便 Application Integration 能够找到并利用这些 XML 文件来配置附加组件菜单。
下表标识这些 XML 文件的名称、每个 XML 文件所影响的 Microsoft Office 应用程序以及每个应用程序的受支持版本。
XML 文件的名称 | 相应的应用程序 | 受支持版本 |
---|---|---|
FnAppIntExcelMenus.xml | Excel | 2003、XP 和 2007 |
FnAppIntOutlookMenus.xml | Outlook Explorer(项浏览窗口) Outlook Inspector(项编辑窗口) |
2003、XP 和 2007 |
FnAppIntPowerPointMenus.xml | PowerPoint | 2003、XP 和 2007 |
FnAppIntWordMenus.xml | Word | 2003、XP 和 2007 |
在修改 XML 文件之前,应该考虑以下几点:
附加组件菜单的 XML 模式基本结构如下所示:
addInMenusConfiguration
- 模式中的顶级对象,它确定下列 XML 对象是否描述应用程序的附加组件菜单。此对象还指定正在使用的模式版本
。applicationName
- 标识正在配置其附加组件菜单的目标应用程序。applicationVersion
- 指定目标应用程序的受支持版本。addInMenusDefinition
- 每个 addInMenusConfiguration
对象由下列其中一个对象(在使用 Microsoft Outlook 的情况下,则可以是多个对象)组成:这些对象包含用于指定应该如何为应用程序配置每个附加组件菜单(“文件”、“插入”或“帮助”)的对象。此对象还指定应该创建的附加组件菜单类型
。Application Integration 支持下列类型:用于 Word、Excel 和
PowerPoint 的 main
,以及用于 Outlook 的 explorer
和 inspector
。addInMenuItem
- 每个
addInMenusDefinition
对象由一个或多个以下对象组成:这些对象描述每个菜单的子菜单层次结构和命令按钮行为。通过使用
itemType
标记来实现此目的,可以将该标记设置为
popup
或 button
。
itemType="popup"
时,addInMenuItem
对象可以包含其自己的 addInMenuItem
对象子代列表
,从而允许创建子菜单结构。可以重复此分层结构至任何必要的深度,以满足组织需求。itemType="button"
时,XML 结构将终止,因为只有
popup
菜单项才能具有子代菜单项。setting
- 每个 addInMenuItem
对象(popup
或
button
)都包含一些 setting
标记,这些标记定义子菜单或按钮的外观和行为,例如菜单项的描述、可视标签或文字说明、菜单插入位置以及打开或选择菜单项时要执行的相应
Application Integration 操作。Setting 标记一节提供了
setting
标记的完整详细信息。要获取如何在 XML 模式中使用这些标记的示例,请参阅样本 XML 模式。
每个 addInMenuItem
对象都使用
setting
标记来定义附加组件菜单子菜单或命令按钮的外观和行为。该标记的语法随要定义的
key
而不同。例如,某些
key
需要 type
字段,而其他则不需要:
<setting key="itemType">popup</setting>
<setting key="parent" type="menuId">30002</setting>
在下表中,当 key
不需要使用
type
字段或不需要指定的值时,类型或值列中的条目是“不适用”。当 key
的值不是已知的
Application Integration 变量(例如 popup
或 button
)时,值列中的条目将以斜体字显示;例如,30002
。另外,当 key
不是必需项时,描述列中的条目包含 [可选] 指示符。
Application Integration 支持下列 setting
标记。
键 | 类型 | 值 | 描述 |
---|---|---|---|
itemType |
不适用 | popup |
指示附加组件菜单项是一个具有子代的弹出子菜单,它可以包含命令按钮和其他弹出子菜单。 |
不适用 | button |
指示附加组件菜单项是一个不具有子代的命令按钮。 | |
description |
不适用 | P8 File Menu | [可选] 提供附加组件菜单项的描述,仅供参考;用户无法看到此描述。 |
label |
enum |
eOpenSubMenuName |
使用下列其中一个枚举常量为附加组件菜单项提供可视标签或文字说明:
|
resourceID |
119 | 通过指定一个与资源本地化文件中定义的资源标识相对应的整数值,来为附加组件菜单项提供可视标签或文字说明。 | |
text |
Checkin... | 通过提供实际文本字符串为附加组件菜单项提供可视标签或文字说明。 | |
visible |
不适用 | true |
指定附加组件菜单项(如果该菜单项是弹出子菜单,那么还包括任何子代)对于用户是可视的。 |
false |
指定附加组件菜单项(如果该菜单项是弹出子菜单,那么还包括任何子代)对于用户是不可视的(即,该菜单项不会显示在附加组件菜单中)。 | ||
enabled |
不适用 | true |
指定将启用附加组件菜单项,因此用户可以打开弹出子菜单或选择命令按钮。 |
False |
指定用户无法打开或选择附加组件菜单项(即,该菜单项在附加组件菜单中处于禁用状态)。 | ||
parent |
menuId |
30002 | 为附加组件菜单项的父菜单提供“menuId”值。当该菜单项是弹出子菜单时,此值通常是现有 Microsoft Office 弹出菜单的控制标识。有关 Microsoft Office 应用程序中菜单标识的更多信息,请参阅 Microsoft Office Developers Guide for Office 2003/XP/2007。 |
topLevel |
不适用 | 当附加组件菜单项是弹出子菜单时,此键/类型对指示该子菜单位于应用程序的顶级菜单栏中。注意:此键/类型对仅对弹出子菜单有效。 | |
不适用 | 不适用 |
当附加组件菜单项是命令按钮时,将通过使用
<list key="children"> 标记来暗示指定的 XML 中存在父代。因此,不需要在 XML 的此
setting 位置指定父代。注意:此键/类型对仅对命令按钮有效。 |
|
location |
不适用 | 4 |
指定此附加组件菜单项在父菜单中的插入位置。值 -1 指示该菜单项将附加到现有菜单的底部。注意:此值指示菜单项在父弹出菜单中的期望位置。 |
command |
standard |
OfficeAdd-In. |
指定当用户选择某个命令按钮时要执行的 Application Integration 操作。可以指定下列其中一个枚举常量:
|
standard |
不适用 | 当附加组件菜单项是弹出子菜单时,将忽略对菜单的单击。因此,不需要在 XML 的此
setting 位置指定命令。注意:此键/类型对仅对弹出子菜单有效。 |
要获取如何在 XML 模式中使用这些标记的示例,请参阅样本 XML 模式。
以下代码片段举例说明了用于 Excel 应用程序的附加组件菜单的基本 XML 模式结构:
<?xml version="1.0" ?> <!-- IBM FileNet P8 Application Integration 4.0 Excel Add-In Menus--> <!-- Add-In Menus - Configuration Info --> <object key="addInMenusConfiguration" version="1.0"> <setting key="applicationName">Excel</setting> <array key="applicationVersion"> <value>2003</value> <value>XP</value> <value>2007</value> </array> <!-- Add-In Menus - Main Menu Definitions --> <object key="addInMenusDefinition" type="main"> <list key="children"> <!-- P8 File Menu --> <object key="addInMenuItem"> <setting key="itemType">popup</setting> ... <list key="children"> <!-- Open Document SubMenu --> <object key="addInMenuItem"> <setting key="itemType">popup</setting> <setting key="description">Submenu of commands for opening documents.</Setting>
<setting key="label" type="text">Open Document</setting> <setting key="visible">true</setting> <setting key="enabled">true</setting> <setting key="location">3</setting> <setting key="command" type="standard"></setting>
<list key="children"> <!-- Open Document - My Checkouts... Button --> <object key="addInMenuItem"> <setting key="itemType">button</setting>
... <list key="children" /> </object> <!-- Open Document - Select Item... Button --> <object key="addInMenuItem"> <setting key="itemType">button</setting> ... <list key="children" /> </object> </list> <list key="children" /> </object> <!-- Add Document SubMenu --> <object key="addInMenuItem"> <setting key="itemType">popup</setting> ... <list key="children" /> </object> ... <!-- Add Folder... Button --> <object key="addInMenuItem"> <setting key="itemType">button</setting> <setting key="description">Performs the Add Folder Wizard</setting>
<setting key="label" type="enum">eAddFolderButtonName</setting> <setting key="visible">true</setting> <setting key="enabled">true</setting> <setting key="parent" type="menuId">30002</setting> <setting key="location">1</setting> <setting key="command" type="standard">OfficeAdd-In.AddFolderUseAddWizard</setting> <list key="children" /> </object> ... </list> <list key="children" /> </object> <!-- P8 Insert Menu --> <object key="addInMenuItem"> <setting key="itemType">popup</setting> ... <list key="children"> ... </list> <list key="children" /> </object> <!-- P8 Help Menu --> <object key="addInMenuItem"> <setting key="itemType">popup</setting> ... <list key="children"> ... </list> <list key="children" /> </object> </list> </object> </object> ...