请求管理:软件包请求
软件包请求流程提供一个处理多个软件包请求的流程 — 即在单个请求中集合多个服务。该流程处理软件包的授权,然后自动为软件包中所包含的每个服务创建子请求。当所有子请求都完成时,可以完成软件包请求。
该流程开始时的授权序列与常规服务请求流程中的序列(如请求管理:常规服务请求页面中所述。
当授权完成后,会通知发起人其请求已获得授权。然后,有两个自动操作可以创建构成软件包的服务的子请求:
- 第一个操作是用“父请求”上选择作为服务项目的软件包来填充“父请求”上的软件包。“软件包”字段未添加到“请求”窗口。
此操作使用以下计算:
import System
static def GetAttributeValue(Request):
Value = null
if Request._ConfigItemRequested != null:
if Request._ConfigItemRequested.Class.Name == "Bundle":
Value = Request._ConfigItemRequested
return Value
该计算的第 3、4 行缩进一个空格;第 5 行缩进两个空格;第 6 行缩进三个空格;最后一行不缩进。
如果所选服务项目为软件包,则该计算会将软件包字段的值设置为“请求”窗口上服务项目字段中所选择的值。
该计算在软件包字段的值设置为 null(空值)的情况下也能运行。然后,如果请求的 ConfigItemRequested 字段值不为空,则将检查 ConfigItemRequested 字段的类名称是否设置为软件包。如果是,则表示 ConfigItemRequested 是软件包(ConfigItemRequested 存储在“请求”窗口上的服务项目字段中)。
如果该计算确定所选的 ConfigItemRequested 是软件包,则该计算将软件包字段的值设置为在“请求”窗口上的服务项目字段中所选择的值。
- 第二个自动操作用软件包中每个 CI 的请求值填充“子请求”上的服务项目、请求类型和流程字段。
使用涉及在第一个自动操作中所复制的软件包的值类型来完成该操作。
软件包中的 CI 存储在一个名为目录项目的集合中,这是一种与名为配置项目软件包的链接对象之间的关系。这意味着需要选择的值类型为:
服务项目 – _Bundle/CatalogueItems*/ConfigItem.
请求类型 – {_Bundle/CatalogueItems*/ConfigItem/CatalogueHierarchy}
流程 – {_Bundle/CatalogueItems*/ConfigItem/Lifecycle}
第二个自动操作还可将“子请求”的布尔属性父对象是软件包?设置为真。然后该属性将用在子请求中,以绕开子请求中的授权步骤。
如果软件包包括未设置生命周期的 CI,将收到错误消息“未将对象引用设置为对象实例”。请确保所有通过服务目录提供的服务都具有相关联的生命周期。
创建子请求之后,软件包请求完成,留下子请求来完成服务部署。
每个“等待授权”状态都具有添加注释和添加分配可选操作。