自定义系数映射(预览)

Microsoft Cloud for Sustainability 技术峰会 2024 年 11 月。

重要提示

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

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

备注

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

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

创建扩展系数表

创建自定义系数映射类型

  1. Power Apps 门户中,创建新表以指定系数映射选项。

  2. 将主列重命名为名称

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

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

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

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

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

创建自定义系数表

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

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

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

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

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

  3. 添加现有表页面上,选择您创建的活动和扩展系数表。 在我们的示例中,我们创建了一个采购的能源活动表和一个自定义区域扩展系数表。

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

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

使用查找扩展活动表

  1. 将活动表中的新多对一关系添加到扩展系数表中。 在我们的示例中,我们将采购的能源活动表的多对一关系添加到自定义区域扩展系数表。

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

  2. 将 Sustainability Manager 添加到新解决方案中,并将自定义系数实体添加到模型驱动应用中,使其可供 Sustainability Manager 使用。

    添加 Sustainability Manager 的屏幕截图。

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

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

  3. 选择 Sustainability Manager,然后选择新建。 在添加页面窗口中,选择 Dataverse 表

    添加 Dataverse 表的屏幕截图。

  4. 选择选择现有表。 在选择表窗格中,选择要用于系数映射的每个自定义表。 取消选中在导航中显示复选框。 选择添加

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

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

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

此过程需要拥有开发人员专业知识,因为它只能通过 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 用户对该表具有以下组织范围权限:

  • Append To 用于摄取

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

使用扩展系数填充表

  1. Power Apps 门户中发布所有自定义项。

  2. 在 Power Apps 门户中导入新表(在我们的示例中为自定义区域会计年度)的系数类型。

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

  3. 通过 Sustainability Manager 或 Power Apps 门户导入排放系数。

  4. 通过 Sustainability Manager 或 Power Apps 门户导入系数映射。

  5. 通过 Sustainability Manager 导入活动数据。

  6. 在 Sustainability Manager 中映射自定义系数映射。

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

扩展系数库现在具有新的排放系数和自定义扩展系数映射。

扩展系数库的屏幕截图。

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

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

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

备注

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

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

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

常见问题

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

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

我导入系数映射失败,显示用户缺少权限 prvAppendTo_[您的自定义表]

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

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

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

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

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

当我手动进行系数映射时,我没有作为选项看到我的自定义表

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

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

  3. 重新加载页面。

自定义多个环境

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

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

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

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

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

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

    • 添加 msdyn_referencedata 记录。

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