自定义系数映射(预览)

重要提示

此功能的部分或全部属于预览版内容。 相关内容和功能可能会发生更改。

Microsoft Sustainability Manager 在系数映射中使用内置的参考数据。 您可以使用自定义系数映射来扩展可用的系数映射集。 例如,您可能希望根据会计年度或自定义区域等因素调整活动计算。 本文将指导您完成此高级配置,您必须在 Power Platform 管理中心完成此配置。

备注

本文中的过程需要 Microsoft Dataverse 管理和 API 方面的高级专业知识。 本文不会详细介绍常见的平台操作。 只有具有 Power Platform 管理中心的完全访问权限的授权管理员可以完成这些配置步骤。

要扩展 Sustainability Manager 以使用自定义系数映射,请执行以下步骤:

创建自定义参考数据

创建新表

  1. Power Apps 门户中,创建您希望在因素映射中用作参考数据的新表。

  2. 将主列重命名为名称

    以下示例显示自定义区域的新表。

    名为“自定义区域”的新表的屏幕截图。

    在我们的示例中,我们还为会计年度创建了新自定义系数表。

  3. 名称列设置为名为 naturalkey 的备用键。

    将“名称”列设置为 naturalkey 的屏幕截图。

将表添加到可持续性管理器

当您在 Power Apps 中添加新表时,还需将其添加到可持续性管理器应用程序模块。

  1. Power Apps 门户中,选择可持续性管理器

  2. 可持续性管理器磁贴上,选择省略号 (...),然后选择在应用程序设计器中打开

    在应用程序设计器中打开应用程序的屏幕截图。

  3. 在应用程序设计器中,选择数据,然后选择查找表名

  4. 选择省略号 (...),选择添加到应用程序,选择保存,然后选择发布

    将表添加到应用程序的截图。

该表已添加到可持续性管理器中,并在参考数据列表和导航中显示。

若要将其从导航中移除,请在左侧导航窗格中选择页面。 选择该表,选择从导航中移除,选择保存,然后选择发布

从导航中移除表的截图。

创建自定义解决方案

由于默认实体位于受管解决方案中,您必须创建一个新解决方案,并将活动实体和新的自定义参考数据实体导入其中。

  1. 解决方案页上,选择新建解决方案。 输入新解决方案的信息,然后选择创建

    创建新解决方案的屏幕截图。

  2. 对象页面上,选择添加现有,然后选择

    向新解决方案中添加表的屏幕截图。

  3. 添加现有表页面上,选择您创建的活动表和自定义参考数据表。 在我们的示例中,我们添加了购买的能源活动表和自定义区域参考数据表。

    向新解决方案中添加采购的能源表的屏幕截图。

    向新解决方案中添加自定义区域表的屏幕截图。

使用查找扩展活动表

  1. 将活动表中的新多对一关系添加到扩展系数表中。 在我们的示例中,我们从已购买能源活动表向自定义区域参考数据表添加了一对多关系。

    添加多对一关系的屏幕截图。

将自定义参考数据表添加到应用程序

备注

这是必不可少的一步。 即使您不想将自定义参考数据表包含在导航菜单中,仍需将其添加到应用程序中。 如果跳过此步骤,引用数据将无法在因子映射导入或手动输入体验中使用。

  1. 可持续性管理器应用程序对象添加到新解决方案中。

    添加 Sustainability Manager 的屏幕截图。

    以下示例显示新解决方案及其资源。

    解决方案及其资源的屏幕截图。

  2. 选择可持续性管理器,以编辑模式打开,然后选择新建。 在添加页面窗口中,选择 Dataverse 表

    添加 Dataverse 表的屏幕截图。

  3. 选择选择现有表。 在选择表格窗格中,选择您要用于因素映射的每个自定义参考数据表。 选择添加

    备注

    如果您不希望自定义引用表出现在导航菜单中,请取消勾选在导航中显示复选框。

    为每个自定义系数表添加 Dataverse 表的屏幕截图。

    所有其他页面下,将显示新添加的自定义表。

  4. 保存和发布您的更改。

此过程需要拥有开发人员专业知识,因为它只能通过 Dataverse API 使用。

您需要为自定义表的系数映射自定义多表查找。 您可以将 Power Apps Web API 与 Insomnia 或您首选的 API 客户端等工具一起使用。 有关使用 Insomnia 发送经过身份验证的 POST 请求的信息,请转到结合使用 Insomnia 与 Dataverse Web API

对于每个自定义表,您需要在计算中启用系数映射。 在我们的示例中,我们需要对自定义区域会计年度表执行此操作。 您需要每个表的逻辑名称。 例如,自定义区域的逻辑名称为 cr040_newtable会计年度的逻辑名称则为 cr040_newtable1

对于每个自定义表,我们需要更新用于系数映射的每个多态查找,即逻辑名称为 msdyn_emissionlookup 的表。 这些查找具有以下逻辑名称:

  • msdyn_referencedataid
  • msdyn_referencedata2id
  • msdyn_referencedata3id
  • msdyn_referencedata4id

对于单个自定义表,您需要发送四个 POST 请求,系数映射中使用的四个查找中的每一个发送一个请求。 使用 Insomnia 等高级工具或您首选的 API 客户端向组织的 RelationshipDefinitions API 发出 POST 请求。

在我们的案例中,终结点是 https://<orgurl>/api/data/v9.2/RelationshipDefinitions。 我们为八个 POST 请求中的每一个使用了以下示例有效负载(两个表,每个表四个请求):

备注

"SchemaName" 必须在您的 Dataverse 环境中是唯一的。

{
  "SchemaName": "msdyn_msdyn_emissionlookup_<custom factor table name>",
  "@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata",
  "CascadeConfiguration": {
    "Assign": "NoCascade",
    "Delete": "RemoveLink",
    "Merge": "NoCascade",
    "Reparent": "NoCascade",
    "Share": "NoCascade",
    "Unshare": "NoCascade"
  },
  "ReferencedEntity": "<custom factor table logical name>",
  "ReferencingEntity": "msdyn_emissionlookup",
  "ReferencingAttribute": "<polymorphic lookup name>",
  "Lookup": {
    "AttributeType": "Lookup",
    "AttributeTypeName": {
      "Value": "LookupType"
    },
    "SchemaName": "<polymorphic lookup name>",
    "@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata"
  }
}

下表显示了我们为八个 POST 请求的<自定义系数表名称><自定义系数表逻辑名称><多态查找名称>使用的值。

请求 自定义系数表名称 自定义系数表逻辑名称 多态查找名称
1 FiscalYear_RDId cr040_newtable1 msdyn_referencedataid
2 FiscalYear_RDId2 cr040_newtable1 msdyn_referencedata2id
3 FiscalYear_RDId3 cr040_newtable1 msdyn_referencedata3id
4 FiscalYear_RDId4 cr040_newtable1 msdyn_referencedata4id
5 CustomRegion_RDId cr040_newtable msdyn_referencedataid
6 CustomRegion_RDId2 cr040_newtable msdyn_referencedata2id
7 CustomRegion_RDId3 cr040_newtable msdyn_referencedata3id
8 CustomRegion_RDId4 cr040_newtable msdyn_referencedata4id

成功的 POST 请求为您提供 HTTP 204 响应。

您可以通过检查系数映射表的关系来验证这些操作。

系数映射表中的关系的屏幕截图。

如果要将更改导出到其他环境,可以将之前添加的关系包含到解决方案中并导出。

  1. 中,选择所有选项卡,然后选择参考数据 (msdyn_referencedata)

  2. 添加每个新系数类型的以下信息:

    字段 说明
    客户 表的复数名称。 例如,自定义区域会计年度
    类别 参考数据
    实体名称 表的逻辑名称,全部为小写(不是表的架构名称)。 例如,cr040_newtablecr040_newtable1

授权 Sustainability Manager 访问外部表

如果尚未提供,Sustainability Manager 需要具有访问外部表的权限,以可以在计算中使用这些表。

  1. 转到解决方案 > Microsoft Sustainability Manager 应用程序

  2. 选择安全角色,然后选择可持续性服务应用程序角色 – 自定义。 新的浏览器选项卡将打开。

  3. 在新浏览器选项卡中,选择自定义实体选项卡。

  4. 对于要用于系数映射的每个自定义表,在组织级别提供读取追加到权限。

    备注

    对于每个自定义表,您还需要向它通过查找指向的任何表授予组织范围的读取权限。 例如,如果自定义区域具有对表 Contoso SKU 的查找,则必须将读取权限授予 Contoso SKU 表。

  5. 保存并关闭。

授权用户访问这些表

对于每个自定义表,如自定义区域会计年度,确保引入系数映射或运行计算的 Power Apps 用户对该表具有以下组织范围权限:

  • 追加到用于导入

  • 读取用于创建因子映射或在使用自定义表的计算中使用因子映射

  1. 确保所有自定义设置已在 Power Apps 门户中发布。

  2. 填充自定义引用数据表(在我们的示例中为自定义区域财政年度)。

    包含值的会计年度表屏幕截图。

  3. 使用可持续性管理器或 Power Apps 门户导入或输入因子映射。

    映射自定义系数的屏幕截图。

  4. 使用可持续性管理器导入或输入活动数据。

下图显示了一个名为扩展因子库的因子库示例,其中包含使用自定义参考数据(自定义区域财政年度)的映射。

扩展系数库的屏幕截图。

在计算模型中使用扩展系数

Power Apps 门户中,设计计算模型并在计算配置文件中使用。

设计计算模型的屏幕截图。

备注

您可以在计算配置文件中使用筛选来确保查找具有值。

您可以根据需要在计算配置文件中使用扩展属性。

使用扩展属性的屏幕截图。

常见问题

当我手动创建新的因子映射时,未看到自定义表作为参考数据的选项

  1. 请确保用户对自定义表具有适当的权限。

  2. 请确保自定义表至少有一个记录。

  3. 请确保已在 msdyn_referencedata 中添加了自定义表的模式名称(区分大小写)。

  4. 请确保自定义表已按本文前面所述添加到可持续性管理器应用程序对象中。

  5. 从浏览器中强制刷新页面。

当我导入因素映射时,在字段映射体验中未看到我的自定义参考数据表作为选项

  1. 请确保用户对自定义表具有适当的权限。

  2. 请确保已在 msdyn_referencedata 中添加了自定义表的模式名称(区分大小写)。

  3. 请确保自定义表已按本文前面所述添加到可持续性管理器应用程序对象中。

  4. 从浏览器中强制刷新页面。

自定义表的记录在进行数据审批时是否会被视为“已批准”或“待处理”?

在计算的系数映射上下文中进行数据审批时,自定义表的所有记录都会被视为“已批准”。

我的因素映射导入因用户缺少 prvAppendTo_[您的自定义表] 权限而失败

Sustainability Manager 应用程序用户或当前用户未被授予自定义表的追加到权限。 请确保 Sustainability Manager 和用户都具有相应的权限,然后重试导入。

在计算模型中,在“报告”节点的“排放系数”或“估算系数”节点的估算系数下拉列表的“系数映射”部分,我没有作为选项看到我的自定义表

请确保为自定义表添加了 msdyn_referencedata 记录。

请检查以确保自定义表的 msdyn_referencedata 记录中实体名称的值具有表的逻辑名称(区分大小写),而不是架构名称。 转到表 > 属性,展开高级选项,查看逻辑名称。

确保计算源的活动数据具有指向自定义表的查找字段。 例如,如果您自定义了固定燃烧源以查找自定义区域,而不是移动燃烧源移动燃烧源的计算不能使用基于 Contoso 区域的系数映射。

自定义多个环境

您可能需要在一个环境中进行这些自定义,然后将它们应用于另一个环境。 例如,您可能在开发环境中进行所有自定义,然后需要将它们导入到生产环境。 在这种情况下,您可以按照以下步骤尽量减少重复工作。

  1. 对于用于将更改从一个环境导出到另一个环境的任何解决方案,您都需要在该解决方案中包括以下自定义项:

    • 将您的自定义表添加到 Sustainability Manager。

    • 向系数映射的多态查找添加更多关系。

    然后,您可以导入用于应用程序生命周期管理 (ALM) 的解决方案。

  2. 对每个环境执行以下操作:

    • 添加 msdyn_referencedata 记录。

    • 自定义 Sustainability Manager 应用程序安全角色。