定制“文件”、“插入”和“帮助”附加组件菜单

IBM FileNet P8 Application Integration 支持定制用于 Microsoft® Outlook、Word、Excel 和 PowerPoint 的“文件”、“插入”和“帮助”弹出菜单。Application Integration 利用 COM 附加组件,通过添加定制附加组件菜单来扩展这些应用程序。开发者可以通过使用提供的 XML 文件来修改这些定制菜单,这些文件包含 Application Integration 用于为 Microsoft 应用程序配置菜单内容的信息。

在安装 Application Integration 之后,开发者可以手动修改这些 XML 文件的内容,以定制附加组件菜单来满足他们的应用程序需求。然后可以将定制的 XML 文件复制到组织中的其他系统,以便为特定用户或用户类提供一种控制应用程序环境和功能可用性的方法。每当特定应用程序需要进行新的更改时,都可以更新相应的 XML 文件并再次将其复制到适当的系统。

以下各节描述了现有附加组件菜单,并提供了关于如何进行修改的指示信息和注意事项:

XML 定制技术

开发者可以按如下所述定制附加组件菜单:

定制... 描述
可视性 指定菜单上应该可视的 Application Integration 命令和弹出子菜单。此技术允许从菜单中完全除去某个子菜单或命令,以控制某个功能的可用性。
启用状态 指定应该可视但处于禁用状态(已变成灰色)的 Application Integration 命令和弹出子菜单。此技术使开发者能够控制是否可以打开特定菜单或者是否可以执行命令。
标签或文字说明 指定应该对用户显示的 Application Integration 命令和弹出子菜单的标签或文字说明。例如,开发者可以将“检入”命令重命名为“存储文档”,或在名为“制作”的子菜单上将某些命令组合在一起。
命令操作 指定当选择了某个 Application Integration 命令时应该执行哪个 Application Integration 操作。

注意:您无法指定供应商命令。

菜单层次结构 指定菜单上 Application Integration 命令的排列方式,包括命令的顺序以及它们是否包含在弹出子菜单文件夹层次结构中。

XML 文件的名称和位置

在安装 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 文件之前,应该考虑以下几点:

XML 附加组件菜单模式

附加组件菜单的 XML 模式基本结构如下所示:

要获取如何在 XML 模式中使用这些标记的示例,请参阅样本 XML 模式

Setting 标记

每个 addInMenuItem 对象都使用 setting 标记来定义附加组件菜单子菜单或命令按钮的外观和行为。该标记的语法随要定义的 key 而不同。例如,某些 key 需要 type 字段,而其他则不需要:

<setting key="itemType">popup</setting>

<setting key="parent" type="menuId">30002</setting>

在下表中,当 key 不需要使用 type 字段或不需要指定的值时,类型列中的条目是“不适用”。当 key 的值不是已知的 Application Integration 变量(例如 popupbutton)时,列中的条目将以斜体字显示;例如,30002。另外,当 key 不是必需项时,描述列中的条目包含 [可选] 指示符。

Application Integration 支持下列 setting 标记。

类型 描述
itemType 不适用 popup 指示附加组件菜单项是一个具有子代的弹出子菜单,它可以包含命令按钮和其他弹出子菜单。
  不适用 button 指示附加组件菜单项是一个不具有子代的命令按钮。
description 不适用 P8 File Menu [可选] 提供附加组件菜单项的描述,仅供参考;用户无法看到此描述。
label enum eOpenSubMenuName 使用下列其中一个枚举常量为附加组件菜单项提供可视标签或文字说明:
  • eFileMenuName
  • eOpenButtonName
  • eOpenSubMenuName
  • eOpenMyCheckoutsButtonName
  • eOpenSelectItemButtonName
  • eAddDocumentButtonName
  • eAddDocumentSubMenuName
  • eAddDocumentUseWizardButtonName
  • eAddDocumentSelectTemplateButtonName
  • eAddFolderButtonName
  • eCheckinSubMenuName
  • eCheckinQuickButtonName
  • eCheckinUseWizardButtonName
  • eTasksMyInboxButtonName
  • eSaveButtonName
  • eCancelCheckoutButtonName
  • ePropertiesButtonName
  • eLogoffButtonName
  • eInsertMenuName
  • eInsertButtonName
  • eInsertHyperlinkButtonName
  • eInsertPropPageButtonName
  • eInsertPropertyButtonName
  • eRefreshPropertyButtonName
  • eDeletePropertyButtonName
  • eHelpButtonName
  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.
OpenSelection
指定当用户选择某个命令按钮时要执行的 Application Integration 操作。可以指定下列其中一个枚举常量:
  • OfficeAdd-In.AddFolderUseAddWizard
  • OfficeAdd-In.OpenMyCheckouts
  • OfficeAdd-In.OpenSelectItem
  • OfficeAdd-In.AddDocumentUseAddWizard
  • OfficeAdd-In.AddDocumentSelectTemplate
  • OfficeAdd-In.CheckinDocumentUseCheckinWizard
  • OfficeAdd-In.CheckinDocumentQuickCheckin
  • OfficeAdd-In.Save
  • OfficeAdd-In.CancelCheckout
  • OfficeAdd-In.GetInfo
  • OfficeAdd-In.TasksMyInbox
  • OfficeAdd-In.Logoff
  • OfficeAdd-In.Help
  • OfficeAdd-In.InsertItem
  • OfficeAdd-In.InsertProperty
  • OfficeAdd-In.RefreshProperties
  • OfficeAdd-In.DeleteProperties
  • OfficeAdd-In.InsertHyperlink
  • OfficeAdd-In.InsertPropertiesPage
  standard 不适用 当附加组件菜单项是弹出子菜单时,将忽略对菜单的单击。因此,不需要在 XML 的此 setting 位置指定命令。注意:此键/类型对仅对弹出子菜单有效。

要获取如何在 XML 模式中使用这些标记的示例,请参阅样本 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>
...