将警报定义从一个系统复制到另一个系统

您可以将一个系统上创建的警报定义复制到另一个系统。

关于此任务

当您有多个系统包含类似的流程应用程序集合时,从一个系统复制警报定义并对其进行修改而不为其他系统创建新的警报定义集合,这样可能更容易。

过程

  1. 在源系统中,使用以下 API 来检索您要复制的警报定义
    • REST:
      GET /rest/bpm/wle/v1/system/alertDefinitions[?categories={category1,category2,...}]
    • JavaScript:
      BPMAlertDefinition[] getAlertDefinitions(String[] categoryFilter , Boolean checkAuthorization)
    该过滤器用于仅检索流程实例警报定义,仅检索任务警报定义,或者检索这两种类别中的警报定义。
  2. 使用以下 API 将警报定义保存到目标系统:
    • REST:
      PUT/POST /rest/bpm/wle/v1/system/alertDefinitions[?importMode=false]
    • JavaScript:
      BPMAlertDefinition[] saveAlertDefinitions(BPMAlertDefinition[], Boolean importMode, Boolean checkAuthorization)
    importMode 参数确定以下行为:
    • 您是要保存仅监视位于服务器上的流程应用程序、Snapshot 和流程(业务流程定义)的警报定义,还是保存所有警报定义(无论其所监视的内容是什么)。
    • 是要更新现有警报定义,还是创建新的警报定义(如果存在匹配名称)。
    如果 importMode 参数为 false(缺省值),那么仅当流程应用程序、Snapshot 和流程在目标系统上存在时,才会保存警报定义。如果目标系统中已存在同名的警报定义,那么 API 会更新该定义。如果 importMode 参数为 true,那么不管目标系统是否有该流程应用程序、Snapshot 和流程,都会保存警报定义。如果目标系统中已存在同名的警报定义,那么 API 会生成一个新名称以创建不同的警报定义。此操作会保留原始警报定义,以便原始定义和刚保存的定义可以共存。
    API 会保存符合以下限制的警报定义:
    • 警报定义的名称必须已指定。
    • 阈值和运算符必须已指定且有效。
    • 实例状态和任务状态值必须为空或有效。
    • BPMAlertDefinition 对象中,projectIdsnapshotIdbpdId 属性是外部 String 格式的有效标识,category 属性的值为 INSTANCETASK。流程管理控制台中创建的警报定义具有有效的属性值。
  3. 在新系统上打开流程管理控制台。
  4. 复审已导入的警报定义并根据需要对其进行编辑。 特别是,如果该定义所监视的内容在服务器上不存在,那么以下字段的值可能很奇怪:
    • Process App
    • Snapshot
    • Process

    例如,如果您使用设置为 true 的 importMode 参数保存警报定义,并且该定义所监视的 Snapshot 在目标服务器上不存在,那么该定义的 snapshot 字段可能包含一组看起来随机的字符。在这种情况下,编辑警报定义以指向适当的 Snapshot。