功能管理概览

每个版本中都会增加和更新功能。 功能管理体验提供一个工作区,可在其中查看各版本已交付的功能的列表。 然后,您可以使用工作区查看功能文档,并启用或禁用功能。

功能管理工作区

可通过在仪表板中选择相应磁贴打开功能管理工作区。 将看到一个页面,其中显示功能管理体验支持的所有版本的功能列表。

功能列表中包含以下信息:

  • 功能名称 –已添加的功能的名称。
  • 状态 –符号指示功能是否已打开(复选标记)、已关闭(空白)、计划启用(时钟)、强制(锁定)、在打开之前需要注意(警告符号)或无法打开(X)。 显示的设置用于所有法人。 请注意,功能即使已开启,仍然受安全性控制。 因此,功能仅对根据安全角色具有其访问权的用户可用。 还仅在用户可访问的法人中可用。
  • 启用日期 –启用功能或计划启用功能的日期。
  • 添加 功能–将功能添加到您的环境的日期。 此日期是您在月度版本周期内更新环境时自动输入的。
  • 功能状态 –功能的当前生命周期状态: 预览版已发布 (显示为空白)、 默认启用和 强制。 本文后面将详细介绍这些状态。
  • 模块 –受新功能影响的模块。

注释

自版本 10.0.21 起包含了功能状态列。

选择功能时,功能列表右侧的详细信息窗格内会显示更多信息。 可以在窗格顶部看到功能名称、功能的添加日期、功能影响的模块,以及了解更多链接。 选择此链接可查看功能的文档。 如果文档不可用,将回到临时页。 详细信息窗格中还包含注释字段,可在其中添加您自己有关功能的注释。

功能管理工作区中有多个选项卡,每个选项卡都会显示功能列表。

  • 新建 –该选项卡显示自上次每月更新以来添加的所有功能。 如果跳过任何月度更新,选项卡将显示上次更新以后增加的所有新功能。 最新的功能在列表顶部显示。 页面顶部的磁贴中还会显示新功能的总数。
  • 未启用 –该选项卡显示所有未启用的功能。 最新的功能在列表顶部显示。 此外,页面顶部的磁贴显示了当前关闭的新功能总数。
  • 已计划 –该选项卡显示计划将来启用的所有功能。 计划的日期最早的功能在列表顶部显示。 此外,页面顶部的磁贴显示了计划功能的总数。
  • 全部 –该选项卡显示所有功能。 最新的功能在列表顶部显示。

功能推荐通知

从版本 10.0.35 开始,用户可能会开始看到告知他们推荐功能的通知。 用户可以查看推荐的功能并请管理员启用。 请求会触发向管理员发送通知这一操作,后者可以使用该通知来评估推荐的功能,并决定是否应该为自己的组织启用该功能。

功能状态

功能可以在从“在功能管理中引入”到“最终必须包含在产品中”之间的多个状态间转换。 此节描述有效的功能状态。

预览功能(可选)

产品团队可以决定最初启动新功能作为预览功能。 默认情况下未启用预览功能,并且它们是可选的。 负责的产品团队将在功能完成成功的预览期后将功能更新为已发布。

注释

预览功能受特定预览版条款和条件的约束。

已发布功能(可选)

这些功能的功能状态列为空。 最初添加为已发布功能的功能默认情况下不会启用,启用这些功能是可选操作。 从预览版更新的功能将保持其启用状态。

默认打开的功能(可选)

默认情况下打开了已更新为默认打开的功能,但可以禁用这些功能。 在可禁用的功能处于已发布状态至少六个月之后,它们将在下一个主要版本中移动到此状态。 版本的新增功能一文中应该会告知转换为默认打开的功能。 更新由负责的产品团队发起。

注释

由于将自动启用这些功能,因此您必须确定您的组织是否已准备好接受这些功能,或者是否需要更多时间。 如果需要更多时间,则可能需要暂时禁用这些功能。 请注意,通常会先在主要版本中将功能转换为默认打开,然后才会定位该功能以变为必备状态。 此时,您没有用于禁用该功能的选项。

强制

强制 是功能的预期最终状态。 它指示功能已启用,并且您无法在未与 Microsoft 联系的情况下禁用这些功能。 可选功能应在两个主要版本后成为必备功能。 作为例外,关键功能可以作为必备功能引入。

预期功能生命周期的示例

可禁用且在 4 月版本之前或作为其一部分添加为已发布和可选功能的功能预计将在下一个 10 月版本中转变为默认打开状态。 然后,预计它们将在下一年 4 月成为必备功能。

无法禁用且在 4 月版本之前或作为其一部分添加为已发布和可选功能的功能预计将在来年 4 月转变为必备状态。

启用功能

如果尚未开启某个功能,详细信息窗格中将显示立即启用按钮。 可使用此按钮启用该功能。

某些功能在启用后不能禁用。 如果尝试启用的功能不可关闭,您将收到警告。 此时可选择取消以取消操作并让功能保持禁用状态。 但是,如果选择启用以启用功能,以后不能禁用该功能。

启用某些功能之前,这些功能会显示一条消息,为您提供更多信息。 这些功能带有黄色警告符号。 应仔细阅读这些额外信息,以便确保了解启用这些功能的后果。 但是,仍然可以选择启用以启用功能。

某些功能会显示一条消息,说明执行操作后才能启用这些功能。 这些功能带有红色 X 符号。 启用这些功能之前,必须按照说明中的介绍执行操作。 例如,如果禁用配置键之前不能使用某些功能,则必须先禁用配置键,然后返回功能管理以启用功能。

启用功能后,详细信息窗格的了解更多链接下将显示一条消息。 此消息说明已启用该功能或指示计划启用此功能的将来日期。 只要在功能列表中选择该功能,此消息都会显示。

已计划选项卡中将显示计划在将来启用的功能。批处理流程将根据系统日期表示的时区在指定的日期启用这些功能。

重新计划功能

如果某个功能已计划在将来启用,详细信息窗格中将显示计划按钮。 可使用此按钮将启用日期值更改为其他日期。

  1. 选择重新计划的已计划功能,然后在详细信息窗格中选择计划
  2. 在显示的对话框中的启用日期字段中,指定应启用功能的新日期。
  3. 选择启用以重新计划该功能,或选择禁用以取消计划。

禁用功能

如果已启用某个功能,详细信息窗格中将显示禁用按钮。 可使用此按钮禁用该功能。 如果无法启用功能,则禁用按钮不可用。

禁用功能后,详细信息窗格的了解更多链接下将显示一条消息。 此消息说明尚未启用此功能。 只要在功能列表中选择该功能,此消息都会显示。 未启用选项卡中将显示尚未启用的功能。

必须启用的功能

有时会交付某个在您执行更新时必须自动启用的关键功能。 将在启用日期字段中指定的日期自动启用这些功能。 对于这些功能,详细信息窗格的了解更多链接下将显示一条消息。 此消息说明已启用该功能或指出将来启用该功能的未来日期。 只要在功能列表中选择该功能,此消息都会显示。

启用所有功能

可以通过选择全部启用按钮启用所有功能。

如果选择全部启用,将显示一个选项,必须在该处提供以下信息:

  • 确认后才能启用的所有功能的列表。 如果要启用列表中的功能,请对启用需要确认的功能按钮选择
  • 将显示不能启用的所有功能的列表。 将不启用这些功能。

将启用可启用的所有功能。 如果已经安排在将来启用某项功能,此项安排不会改变。

自动启用所有功能

如果要自动启用所有新功能,可使用工作区磁贴下方的下拉列表更改添加新功能时显示的内容。

  • 选择自动启用新功能,以便在向您的环境添加新功能时,自动启用所有新功能。
  • 如果所有适用的新功能在添加到您的环境时默认关闭,请选择不自动启用新功能

自动启用所有功能时,将启用在您单击全部启用按钮时要启用的所有功能。 不会启用需要确认的功能或执行操作后才能启用的功能。

检查更新

每次更新后,将向您的环境添加功能。 但是,可通过单击检查更新按钮手动检查更新。 将把更新后已添加到系统的所有功能添加到功能列表。 例如,如果在发布后启用了一项外部测试版功能,则您可检查更新,并将把此功能添加到列表。

分配角色

功能管理工作区可以由系统管理员打开,也可以由分配有功能管理员或功能查看者角色的用户打开。 创建这两种角色是为了支持功能管理体验。 功能管理员角色的用户可打开或关闭任何功能。 他们还可以更新功能的注释字段。 功能查看者角色的用户只能查看功能管理工作区。 不能打开或关闭功能。

功能管理员角色和功能查看者角色不能覆盖用户的现有安全性。 他们只能控制用户是否可以开启和关闭功能。 不能提供功能本身的访问权限。

使用配置键的功能

如果某个功能使用配置键,但是未开启此配置键,功能管理工作区的可用功能列表中将不显示该功能。 开启该配置键之后,必须通过使用检查更新菜单项更新功能列表。 然后将在功能列表中显示该功能。

如果关闭配置键,将从功能列表中删除此功能。

数据实体

可通过名称为功能管理的数据实体从一个环境中导出功能管理设置,然后将其导入另一个环境中。 此实体仅更新现有功能。 此实体中的业务逻辑还有助于保证导入完成时应用在功能管理工作区中使用的相同规则。 例如,不能通过在导入期间删除日期来覆盖必需功能设置。

以下示例介绍使用功能管理实体导入数据时所发生的情况。

  • 如果将启用字段的值更改为,将启用此功能,并将启用日期字段设置为当前日期。
  • 如果将启用字段的值更改为或让启用日期保留为空,将禁用此功能,并清除启用日期字段。 不能禁用必备功能或启用后不能禁用的功能。
  • 如果将启用日期字段的值更改为将来的日期,将为功能安排该日期。
  • 如果将启用字段的值更改为,并将启用日期字段的值更改为将来的日期,将为此功能安排该日期。
  • 如果将启用字段的值更改为,但是仍然将启用日期字段的值更改为将来的日期,将为此功能安排该日期。
  • 如果启用某项功能,并添加设置为将来日期的启用日期字段,该功能将保持启用状态。 若要重新计划该功能,必须将启用字段的值更改为

功能管理和外部测试

可通过功能管理控制每个版本中交付的功能。 Microsoft 团队可通过外部测试将功能发布给一小部分客户,这样测试和验证这些功能时不会影响全体客户。 功能管理不会控制任何功能的外部测试。

使用功能管理开启 ISV 功能或自定义功能

功能管理现在不支持来自独立软件供应商 (ISV) 的功能和自定义功能。 但是,Microsoft 将增加更多功能以增强功能管理。 完成这些增强之后,Microsoft 将向所有功能提供功能管理,并提供有关如何更新功能以使用功能管理的说明。

常见问题 (FAQ)

何时添加、删除或更改功能?

负责的产品团队通过更改代码来添加、删除和更改功能。 必须更新环境来接收这些更改。

功能会自动变成强制功能吗?

否,功能不会自动变成强制功能。 负责的产品团队必须进行代码更改。

为什么没有特定的“强制启用日期”?

更新发布时间是可变的,环境更新时间是可变的,客户可以选择跳过某些更新。 因此,难以确定具体日期。

设为强制的功能的文档在哪里?

此文档来自每个 Dynamics 365 应用程序团队。 通常,客户端功能状态的更新已删除或弃用的功能中将涉及这些功能。

是否有产品内通知或信号指示将强制启用某项功能?

目前不存在有关设为强制功能的通知机制。

功能是否会在客户不知情的情况下被启用?

是的,在以下情况下可以在客户不知情的情况下启用功能:

  • 功能变为默认打开状态。 在此状态下,仍可以禁用该功能。
  • 功能已更新为必备功能。 此更改将仅与主要版本结合进行。 作为例外,关键功能可能会在任何更新时变为必备功能。

什么是功能外部测试?它与功能管理有何关系?

功能外部测试是 Microsoft 控制的实时“开/关”开关。 它们与“功能管理”提供的客户控制是分开的。

  • 个人预览功能在进行外部测试之前不会在“功能管理”中列出。 在生产中,客户需要同意成为特殊计划的一部分,才能进行外部测试。
  • 除非已关闭外部测试,否则“公开预览”和“已发布”(公开发布)功能将在“功能管理”中列出。 如果发现关键问题并且通常是每个客户的操作,关闭功能的外部测试是产品团队的最后一种选择。

功能是否会在客户不知情的情况下关闭外部测试?

是,如果某项功能影响没有功能性影响的环境的运行,则可能默认启用它们。

如何在代码中检查功能启用?

使用 FeatureStateProvider 类上的 isFeatureEnabled 方法,向其传递功能类的一个实例。 示例:

if (FeatureStateProvider::isFeatureEnabled(BatchContentionPreventionFeature::instance()))

如何在元数据中检查功能启用?

FeatureClass 属性可用于指示某些元数据与功能相关联。 应该使用用于功能的类名,例如 BatchContentionPreventionFeature。 此元数据仅在该功能中可见。 FeatureClass 属性在菜单、菜单项、枚举值和表/视图字段上可用。

什么是功能类?

功能管理中的功能将定义为功能类。 功能类将实现 IFeatureMetadata 并使用功能类属性,以向功能管理工作区标识自身。 有许多可用的功能类示例,可用于使用 FeatureStateProvider API 在代码中以及使用 FeatureClass 属性在元数据中检查功能启用。 示例:

[ExportAttribute(identifierStr(Microsoft.Dynamics.ApplicationPlatform.FeatureExposure.IFeatureMetadata))]
internal final class BankCurrencyRevalGlobalEnableFeature implements IFeatureMetadata

一些功能类实现的 IFeatureLifecycle 是什么?

IFeatureLifecycle 是 Microsoft 内部的一种机制,用于指示功能生命周期阶段。 功能可以是:

  • PrivatePreview - 需要航班才能可见。
  • PublicPreview - 默认显示,但显示该功能处于预览版状态的警告。
  • Released - 完全释放。