前页 后页

决策服务

该主题的某些部分已按原样使用,或已从DMN规范(可从以下 网址 获取)免费改编: https : //www.omg.org/spec/DMN 。该站点包含DMN及其功能的完整描述。

决策服务将决策模型中的一个或多个决策公开为可重用元素,可以在决策模型中的另一个决策内部调用,或者在BPMN流程模型中的任务外部调用。

当使用必要的输入数据和输入决策调用决策服务时,它将返回公开决策的输出。

决策服务的接口

决策服务的接口包括:

  • 输入数据-封装决策所需的所有输入数据的实例
  • 输入决策-所有输入决策的结果实例
  • 输出决策-使用提供的输入决策和输入数据评估(至少)所有输出决策的结果
当使用必要的输入数据和输入决策调用决策服务时,它将返回公开决策的输出。

该图显示了一个决策模型,其中包括六个决策和三项输入数据。

对于DecisionService1 ,:

  • 输出决策为{Decision1}
  • 输入决策为{Decision5},并且
  • 输入数据为{InputData1}
由于Decision1需要Decision2(未作为输入提供给服务),因此服务也必须封装Decision2;因此,封装的决策为{Decision1,Decision2}。

从图中可以明显看出,Decision6,Decision3,Decision4和InputData3不需要来自DecisionService1的任何决策。那么InputData2呢?尽管Decision5要求使用Decision5来确定它,而DecisionService1实际上不需要InputData2。这是因为将Decision5定义为输入决策。从决策服务的角度来看,我们忽略输入决策所需的任何决策或输入数据。

对于DecisionService2 ,:

  • 输出决策为{Decision3}
  • 输入决策为{Decision5},并且
  • 输入数据为{InputData3}
由于Decision3需要Decision4(未作为输入提供给服务),因此服务也必须封装Decision4;因此封装的决策为{Decision3,Decision4}。

优良作法是为每个决策服务创建一个单独的图。这样,该图将仅包含决策服务的接口元素和封装的决策;不相关的元素将不会显示在图表上。

为决策服务建模

我们可以从图工具箱的DMN页面创建一个Decision Service元素,并从上下文菜单中切换[输出]和[封装]分区。

仅在显示[输出]分区时才可以显示[封装的]分区。

将决策和输入数据放入正确的分区后,必须从上下文菜单中运行“ Update DecisionService Interface”命令来更新模型。

重要提示:为了使DMN模拟正常运行,请在以下情况下更新Decision Service界面:

  • 显示/隐藏决策服务分区
  • 将决策添加到决策服务
  • 从决策服务中删除决策
  • 在分区之间移动决定
  • 添加/删除决策服务输入:输入数据或输入决策

学到更多