Service Manager 中的管理包
Service Manager 中对象和功能的所有自定义都使用管理包实现。 本部分描述管理包以及如何使用和管理这些管理包,以通过不同的自定义方法来实施各种类型的自定义项。
有关管理包的关键概念
在 Service Manager 中使用管理包之前,应熟悉以下管理包概念。
密封和未密封的管理包
有以下两种类型的管理包:
密封管理包:无法修改密封管理包(.mp 文件)。
未密封的管理包:未密封的管理包(.xml 文件)可修改。
除了列表和表单之外,不能自定义密封管理包中定义的视图等对象。 自定义一个在密封管理包中定义的列表包括添加列表项。 自定义一个在密封管理包中定义的表单包括添加字段。
无法取消密封的管理包。 若要修改存储在已密封的管理包中的对象,可以修改创建密封管理包的原始未密封管理包文件。 或者,你也可以导入密封的管理包,然后将其导出到一个可进行修改的新的未密封管理包。 导入密封管理包后,在删除密封版本之前,无法导入同一管理包的未密封版本。
模型管理包
模型管理包是指包含诸如类、组合类和关系类型等基本对象的定义的管理包。
构建模型管理包使得其他自定义项(通常是与模板、视图和任务等演示相关的自定义项)可存储在依赖于模型扩展的单独管理包中。 此外,模型管理包可轻松传输到数据仓库以用于存档和报表目的。
依赖项、资源和捆绑管理包
管理包可以依赖于另一种密封的管理包。 例如,一个管理包中的自定义模板可以依赖于在另一个管理包中定义的列表。 必须密封包含基本定义(如列表)的管理包,其他定义依赖于这些基本定义。 管理包还可能需要单独存储的资源,如表单或图像。
部署具有资源要求的管理包时,必须将所需的资源和管理包捆绑到可导入 Service Manager 的单个管理包文件中。
此外,如果一个管理包依赖于其他管理包,则必须先导入这些从属管理包。 作为替代方案,你可以将从属管理包连同所需资源和从属管理包捆绑在一起。
有关如何将管理包与其资源和依赖管理包捆绑在一起的详细信息,请参阅 “如何捆绑管理包和资源文件”。
管理包自定义
你可能必须自定义和扩展默认预导入的管理包,以便组织中的信息技术(IT)专业人员和其他用户可以扩展现有解决方案并对其进行自定义以满足业务需求。 若要自定义 Service Manager 中的功能,可以添加新对象或修改与该功能相关的对象。
自定义一个对象是指进行适用于该对象的基本定义的修改。 为了使自定义项能够应用于某一基本定义,该基本定义必须存储在密封的管理包中。 由于不能将自定义项保存在包含对象基本定义的密封管理包中,因此始终必须使用或创建另一个未密封的管理包来存储自定义项。
通常,在从默认的、预导入的管理包中自定义对象时,需要使用两个管理包。 第一个管理包是指包含对象的基本定义的密封管理包,第二个管理包(最初未密封)包含基本对象的自定义项。 在这种情况下,包含自定义项的管理包依赖于包含该对象的基本定义的管理包。
自定义在未密封的管理包中定义的对象时,可以使用同一管理包来存储自定义项。
完成自定义后,可以通过将管理包导入 Service Manager 来部署它们。 在导入密封管理包期间,Service Manager 会将 Service Manager 数据库和数据仓库数据库与管理包中的定义同步。 在导入未密封的管理包(除了列表定义)期间,Service Manager 仅将 Service Manager 数据库与管理包中的定义同步。 未密封的管理包中的列表定义会被同步到这两个数据库。
管理包的准则和最佳做法
本部分介绍了以下有关在 Service Manager 中使用管理包的准则和最佳做法。
将自定义项分组成单独的管理包。
密封模型管理包。
尽可能创建你自己的自定义管理包。
导出自定义的管理包。
跨多个管理组工作。
将自定义项分组到单独的管理包中
将自定义项分组成单独的管理包,如下所示:
在单独的管理包中存储模型扩展和展示扩展。
我们建议你在模型管理包中存储下列对象:
新类和类扩展,包括属性和对应的图标
新列表
组合类
关系
不应修改的子枚举值
表单(用于查看和编辑已定义类的对象)以及各自的程序集资源
按要开发的解决方案对自定义进行分组。 例如,将事件管理的相关自定义项与设置和更改管理的相关自定义项与设置分开存储。
根据使用注意事项,将自定义项分组。 例如,将测试和部署所需的自定义项作为一个单元存储在同一管理包中。
密封模型管理包
应密封包含基类的管理包和其他模型对象,而其他管理包中其他定义所依赖的其他模型对象。 将管理包密封可以防止管理包被修改。 此外,请务必密封管理包,以便在导入期间将其定义与数据仓库数据库同步。 这样,你就可以以后添加自定义项(在另一个管理包中),例如演示文稿,具体取决于密封管理包中的基本对象。
尽可能创建自己的自定义管理包
某些特定于解决方案、预导入、未密封的管理包(“配置”管理包)包含特定解决方案的可自定义元素。 在某些情况下,必须将自定义项存储在这些预导入的管理包中,以确保管理包遵守依赖项规则。 例如,使用“配置”管理包中定义的列表值的模板必须存储在同一管理包中。 这是因为使用的列表值在另一个未密封的管理包中定义,并且不支持依赖未密封的管理包。
但是,我们仍然建议你尽量创建新的管理包来存储你的自定义项。 创建你自己的管理包将简化管理包的传送,并且它能简化升级。
例如,当你通过添加对象(即与已密封管理包中定义的其他对象存在依赖关系的对象,如视图、任务、组、队列和表单自定义项)来扩展解决方案时,你应创建新的管理包来存储自定义对象。
导出自定义管理包
定期从 Service Manager 数据库导出自定义管理包,并将备份文件存储在硬盘驱动器上。 这将确保自定义管理包与 Service Manager 数据库中的管理包同步。 此外,还可以根据需要将自定义项还原到 Service Manager 数据库。
跨多个管理组工作
确保不会对不同管理组中的同一管理包进行不同的自定义。 若要跨多个管理组实施自定义项,你可以在其他管理组中导入同一自定义的管理包。
例如,你希望多个管理组中具有相同的枚举,则可以在一个管理组中进行更改,然后将自定义的管理包复制到其余管理组中。 这样,管理包的版本和标识在所有管理组中均能保持完全相同。
后续步骤
- 在 Service Manager 控制台中处理管理包。
- 在 Service Manager 创作工具中使用管理包。
- 使用管理包 XML 文件。