扩展批处理更新任务

批量更新任务可以帮助您迁移数据,并将资产移到 IBM® Rational® Asset Manager 服务器中。可使用文件系统选项来扩展批处理更新任务并可将任务扩展为读取任何类型的源数据并将源数据映射到资产。

关于此任务

扩展批处理更新任务

您可以将批量更新任务扩展为读取任何类型的源数据并映射到 Rational Asset Manager 中的资产。

Rational Asset Manager 批量更新任务通过查找资产和执行合并而不是每次都创建资产来执行智能映射。

com.ibm.ram.rich.ui.extension 插件包含文件系统扩展的源,它作为已安装的 Rational Asset Manager Eclipse 客户机的一部分包括在 /plugins 文件夹中。 您可以在 Eclipse 客户机安装目录中的 /eclipse/plugins/com.ibm.ram.rich.ui.extension_7.5.1.v.jar 处找到 JAR 文件。 解压缩该文件时,您可以在 /src 目录中找到 Java 文件。

文件系统扩展代码位于以下两个目录中:src\com\ibm\ram\internal\batch\filesystem\src\com\ibm\ram\internal\batch\filesystem\ui\

准备扩展和数据源

对于所有数据源,要准备扩展和数据,请执行以下操作:
  1. 确定哪些数据将移到 Rational Asset Manager 中。
  2. 准备要上载的数据。
  3. 创建用于扩展 Rational Asset Manager 批量更新任务类的 Eclipse 插件。
  4. 构建并部署 Eclipse 插件。
在“示例”部分,Microsoft Excel 是数据源。通过使用 Excel 电子表格解决步骤 1 和 2。

要使用文件系统选项扩展批处理更新任务,必须创建新的插件项目并实现扩展点的扩展。

批处理更新任务提供了两个要实现的扩展点:batchDataSource 和 batchDataSourceUI。

可通过两个扩展点来实现批处理更新任务:
  • batchDataSource:com.ibm.ram.rich.core 插件提供 batchDataSource 扩展点。此扩展点帮助您定义 Rational Asset Manager 批处理客户机的数据源扩展。在批处理更新中,batchDataSource 扩展点从存储库中获取数据并将数据移至 Rational Asset Manager 服务器。
  • batchDataSourceUI:com.ibm.ram.rich.ui.extension 插件提供 batchDataSourceUI 扩展点。此扩展点帮助您将用户界面元素添加至 Rational Asset Manager 批处理更新编辑器。

简化的文件系统扩展

此处是文件系统扩展的简化版本,您可以将其导出为可部署插件。该文件系统扩展可以从文件夹以及给定根文件夹中的 .zip 文件创建资产。该示例使用一个根文件夹,任何子文件夹或 .zip 文件都成为资产。子文件夹或归档文件的名称将成为资产的名称。子文件夹/文件的内容将成为工件,除必需的 .asset_info 文件以外。

有两个 Java 类扩展了 Rational Asset Manager 批处理 API 类:
  • FileSystemBatchDataSource.java - 扩展 BatchDataSource。
  • FileSystemBatchUIContributor.java - 扩展 AbstractBatchUIContributor。

FileSystemBatchDataSource 类基于根路径创建和返回资产。在该文件中,您可以指定批处理客户机扩展的数据源以从文件夹以及给定根文件夹中的 .zip 文件创建资产。那些文件夹和 .zip 文件必须包含名为 .asset_info 的文件。

.asset_info 文件内容必须使用 .properties 文件的格式(通常,每行一个键=值对),并包含资产的特定属性,如 FileSystemBatchDataSource.java 文件中所列:
  • name (可选。如果省略,将使用文件/文件夹名称。)
  • version (可选。如果省略,将使用 1.0。)
  • community(必需)
  • asset_type(必需)
  • short_description(可选。如果省略,将使用文件/文件夹名称。)
  • description(可选)

FileSystemBatchUIContributor 类创建新数据源,方法是打开目录选择对话框,用户可以从中选择根目录,然后使用选择的内容来创建资产。 有关根目录的必需结构,请参阅 FileSystemBatchDataSource java 文件。

由简单文件系统示例用来挂进批处理客户机的扩展点在 plugin.xml 文件中定义:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension point="com.ibm.ram.rich.core.batchDataSource">
      <dataSourceType
            class="com.ibm.ram.batch.example.FileSystemBatchDataSource"
            id="com.ibm.ram.batch.example.filesystem">
      </dataSourceType>
   </extension>
   <extension point="com.ibm.ram.rich.ui.extension.batchDataSourceUI">
      <batchDataSourceUI
            class="com.ibm.ram.batch.example.FileSystemBatchUIContributor"
            dataSourceID="com.ibm.ram.batch.example.filesystem"
            icon="icon.gif"
            name="File System Example">
      </batchDataSourceUI>
   </extension>
</plugin>

这些扩展的代码示例在此:使用批处理上载文件系统扩展

您还可以使用 Rational Asset Manager Java API 来运行批量上载操作并上载多个资产。请参阅执行批处理上载

示例

本示例描述了如何为 Microsoft Excel 文件创建扩展。在本示例中,Microsoft Excel 文件是数据源,批量更新任务扩展被构建为 Eclipse 插件。批量更新任务可读取已设置格式的 Excel 文件,并将 Excel 行映射到 Rational Asset Manager 内的资产中。然后,用户可以在将数据提交 Rational Asset Manager 前对其进行修改。另请参阅批量上载示例

准备数据源

在上载 Excel 电子表格之前,必须对电子表格进行格式化。 在此示例中,电子表格以如下方式进行格式化:
表 1.
  A B C D E F
1 资产类型: 编著者 社区: 技术基础结构        
2 资产:GUID 资产:版本 资产:名称 资产属性: 作者 类别模式: 许可证 忽略: IDE
  • 电子表格中的前两行描述了要映射到 Rational Asset Manager 中的信息模型。
    • 第一行处理资产类型和社区。请使用样本中的单元格格式;例如“资产类型: 编著者”。
    • 第二行处理资产级映射,如:
      • 资产:GUID
      • 资产:版本
      • 资产:名称
      • 资产属性: <资产名称>
      • 类别模式: <类别模式名称> 行包含模式中的值,且格式为“a/b/c”
      • 忽略: <名称> 上载时将忽略此列。
      如果资产的行中没有值,那么将在 Rational Asset Manager 中创建资产;否则,将执行合并。
  • 行 1 和 2 后面的行将映射为资产。

列标题使用一种资产中解析器所使用的特殊格式。行 1 和行 2 被保留。行 1 包含资产类型和社区声明。行 2 包含资产列的描述,如 GUID、版本、名称和资产属性。 要查看期望的格式,请检查样本电子表格。

创建 Eclipse 插件

该代码的结构为常规 Eclipse 插件;由您定义扩展点。

创建用于扩展 Rational Asset Manager 批量更新任务类的 Eclipse 插件时,请遵守以下准则:
  • 使用插件向导创建 Activator 类。
  • 至少写两个类,在本用例中为:ExcelBatchDataSource 和 ExcelBatchUIContributor。在数据源类中放置语法分析逻辑。
  • 在 Eclipse 中运行批量更新任务时,先选择数据源,然后选择与 Rational Asset Manager 的连接。
  • 在客户机中选择与 Rational Asset Manager 的连接时,将在数据源类中调用 fetchAssets 方法。使用 ExcelBatchDataSource.fetchAssets() 方法;这是大部分语法分析代码所发生的情况。注意:代码中不需要 Rational Asset Manager 会话对象。
  • 要获取工作表,请调用 createSpreadsheetAssets 然后打开 Excel 工作簿对象。
  • 要处理 GUID,请创建一个新的。但是,如果您发现“资产: GUID”列,请按照上述方式设置资产以使批处理更新任务执行更新,而非创建资产。
  • 在每一行中,选择要上载的列然后将其映射到资产。
要创建新插件项目,请执行以下操作:
  1. 在 Eclipse 菜单中,单击文件 > 新建 > 项目
  2. 展开插件开发 > 插件项目
  3. 输入项目的名称。
  4. 单击下一步
  5. 单击完成MANIFEST.MF 文件打开。
  6. 打开依赖性编辑器选项卡。
  7. 在“必需插件”部分中,单击添加
  8. 选择 com.ibm.ram.rich.ui.extension 插件并单击确定
  9. 单击完成
  10. 在“必需插件”部分中,单击添加
  11. 选择 com.ibm.ram.rich.ui.extension.batchDataSourceUI 扩展点。
  12. 单击完成
  13. 保存 MANIFEST 文件。

批处理更新任务会执行将资产提交到 Rational Asset Manager 的操作。

使用批处理更新任务

在示例中,Eclipse 客户机插件部署在您的机器上。

如要运行 Rational Asset Manager Excel 批量更新扩展以使用 Excel 文件创建新资产,并通过批量上载操作将其提交,请执行以下步骤:
  1. 单击文件 > 新建 > 批处理更新任务
  2. 选择 Excel 数据源然后选择 Excel 文件。将显示 Rational Asset Manager 批量更新编辑器。
  3. 单击数据源的图标,以映射到 Rational Asset Manager 中。此图标包含 Excel 图标。将显示一个文件资源管理器,用于浏览到准备好的 Excel 文件。
  4. 选择在 Eclipse 工作空间中定义的 Rational Asset Manager 存储库连接。
  5. 选择资产将上载到的目标 Rational Asset Manager 存储库。在本示例中,资产上载到本地机器上的 Rational Asset Manager 实例中。
  6. 要完成向 Rational Asset Manager 的映射,请添加配置项(如社区),并映射分类。

    选择目标 Rational Asset Manager 存储库后,批处理编辑器将读取 Excel 文件,并将其映射到目标 Rational Asset Manager 实例中。此时,不会上载任何资产。Rational Asset Manager 批处理编辑器提供初始映射的摘要。在本示例中,Excel 文件中的资产将特定 Rational Asset Manager 社区作为目标,而批处理编辑器在 Rational Asset Manager 中没有找到该社区。如本示例中所示,具有访问权的用户可立即创建社区。

    映射活动继续检查资产类型、资产版本信息以及关系类型等。在每种情况下,用户都可以映射到 Rational Asset Manager 中的现有配置信息,如果他们拥有访问权限,则可以添加该信息。

  7. 映射完成时,单击更新所有资产按钮。这些资产将上载到 Rational Asset Manager 中。在批处理编辑器中,将显示上载结果。

类结构和对象

对于资产,Rational Asset Manager API 有两种主要类结构:
  • 名称以“RAM”开始的类(如 RAMAsset 类)。
  • 名称不以“RAM”开始的类(如 Asset 类)。
RAM 类的对象从 Rational Asset Manager 服务器中检索,该服务器需要 Rational Asset Manager 会话对象;本示例中没有使用会话对象。诸如 Asset 的类中的对象在不具有已知 Rational Asset Manager 会话的情况下创建,然后提供给批量更新任务,最后提交或更新到 Rational Asset Manager 中。

反馈