状态框架体系结构
重要
本主题中介绍的部分或全部功能作为预览版的一部分提供。 内容和功能可能会发生变化。
本文介绍 Microsoft Dynamics 365 Intelligent Order Management 中的状态框架体系结构。
状态框架体系结构是 2022 年 10 月版 Dynamics 365 Intelligent Order Management 中引入的一个新概念。 状态框架是一种通过在运行时检查实体的当前状态是否允许移动到另一个状态来验证业务流程规则的方法。 例如,如果定义了从新建到在进行中的转换,则转换将会成功,但是从已完成到在进行中的转换会抛出错误。
用户可以添加自己的状态、状态原因和转换。 不过,他们无法自定义现成可用的定义。
状态框架数据模型
状态框架数据模型对当前数据模型进行了一些更新和新增。
下图显示了已添加到状态框架数据模型中的表。
数据模型的更新
“实体状态”和“状态原因”列
状态框架为作为 Intelligent Order Management 一部分的实体引入了两个新列。 添加这些列是为了支持可本地化的状态和状态原因状态字段。 状态框架还引入了一个新的只读字段,指示记录在用户界面 (UI) 中不是可编辑的。
字段 | Description |
---|---|
州或省/自治区/直辖市 | 实体所处的状态,如状态定义表所定义。 |
状态描述 | 实体处于当前状态的原因的详细描述。 |
只读 | 如果记录在 UI 中不可编辑,则将该值设置为 True。 否则,将其设置为 False。 |
数据模型的新增内容
状态定义表
状态定义表允许创建在每个实体上允许的一组状态。 这些状态具有关联的属性,这些属性包含元数据以指示每个状态的不同行为。
注释
作为编排历程的一部分,状态用于确定有效转换。
字段 | Description |
---|---|
状态定义 | 状态的全局唯一标识符 (GUID)。 |
关联实体 | 状态所属的实体。 |
明细 | 状态的名称。 |
状态定义属性 | 关联元数据的查找。 |
只读 | True 值将实体标记为只读。 |
状态定义原因表
状态定义原因表提供了关于为什么某些事物处于给定状态的额外详细信息,但可能不是指示有效状态转换的一部分。 例如,某些事物的状态可以是暂停,但状态原因可以是延期交货或预订。
字段 | Description |
---|---|
状态定义描述 | 状态原因的 GUID。 |
州或省/自治区/直辖市 | 状态原因所关联的状态。 |
明细 | 状态原因的名称/描述。 |
状态定义属性表
状态定义属性表包含每个状态的额外元数据。
字段 | Description |
---|---|
状态定义属性 | 属性的 GUID。 |
时间线位置 | 状态在 UI 的进度条时间线控件中的显示顺序。 (此控件在 2022 年 10 月版本中引入。) |
状态转换表
状态转换表包含引发业务事件时将发生的状态转换的列表。 仅当当前状态为允许状态时,业务事件才会设置状态。
字段 | Description |
---|---|
状态转换 | 过渡状态的 GUID。 |
业务事件定义 | 查找业务事件定义表可确定记录属于哪个业务事件。 |
源状态 | 允许转换的源状态。 |
目标状态 | 如果状态正在从允许的源状态转换,则要设置的目标状态。 |
目标状态描述 | 如果状态正在从允许的源状态转换,则要设置的目标状态原因。 |
下表显示了此表中的数据示例。
业务事件定义 | 源状态 | 目标状态 | 目标状态描述 |
---|---|---|---|
现有库存量检查成功 | 在进行中 | 正在履行 | 库存检查成功 |
现有库存量检查成功 | 暂停 | 正在履行 | 库存检查成功 |
现有库存量检查失败 | 在进行中 | 暂停 | 延期交货暂停 |
方案
业务事件不存在转换
如果在状态转换表中没有找到正在引发的业务事件的记录,验证将会自动成功,但不会设置状态或状态原因值。
添加新状态和转换
要添加新状态和转换,请执行以下步骤。
添加新的状态定义。
如果需要,添加新的状态定义原因。
添加新的状态转换,然后执行以下步骤:
- 将新的状态转换与新的业务事件相关联。
- 将源字段设置为允许的值。 为每个允许的源添加一行。
- 将状态字段设置为引发业务事件时应设置的状态。
- 将状态原因字段设置为引发业务事件时您希望的原因。
添加任何所需的属性(只读或时间线)。