在 Azure Synapse Link for Dataverse 中选择财务和运营数据

Microsoft Azure Synapse Link for Dataverse 允许您从 Dynamics 365 财务和运营应用程序中选择数据。 使用 Azure Synapse Link 将财务和运营应用中的数据持续导出到 Azure Synapse Analytics 和 Azure Data Lake Storage Gen2。

Azure Synapse Link for Dataverse 是一项专为企业大数据分析而设计的服务。 它提供可扩展的高可用性以及灾难恢复功能。 数据以 Common Data Model 格式存储,因此可以确保应用和部署之间的语义一致性。

Azure Synapse Link for Dataverse 提供以下功能,可用于财务和运营数据:

  • 您可以选择标准和自定义财务和运营实体和表。
  • 支持连续复制实体和表数据。 另外还支持创建、更新和删除 (CUD) 事务。
  • 您可以将环境与 Azure 订阅中的 Azure Synapse Analytics 和/或 Data Lake Storage Gen2 链接或解除两者之间的链接。 您不必转到 Azure 门户或 Microsoft Dynamics Lifecycle Services 来进行系统配置。
  • 您可以使用 Azure Synapse 来选择数据和进行探索。 您不必运行外部工具来配置 Synapse Analytics 工作区。
  • 支持 Azure Synapse Link for Dataverse 的所有功能。 这些功能包括在所有区域可用、另存为 Parquet Delta 文件以及受限制的存储帐户。
  • “导出到数据湖”服务中的表限制不适用于 Azure Synapse Link for Dataverse。
  • 默认情况下,财务和运营数据已启用使用 Parquet Delta Lake 格式保存,因此查询响应时间更快。

备注

此功能通常适用于以下列表中显示的财务和运营应用程序版本。 如果您尚未应用这些应用程序版本,请安装最新的累积更新以使用此功能。

  • 10.0.38 (PU62) 累积更新 7.0.7120.59 或更高版本
  • 10.0.37 (PU61) 累积更新 7.0.7068.109 或更高版本。
  • 10.0.36 (PU60) 累积更新 7.0.7036.133 或更高版本。

您可能需要为最近的修补程序应用其他更新。 详细信息:[财务和运营表的已知限制]

如果您计划在财务和运营应用中采用“导出到数据湖”功能,则考虑采用具有财务和运营数据支持的 Azure Synapse Link。 有关更多详细信息,请转到与导出到数据湖功能相关的软件生命周期公告。 有关从导出到数据湖升级到 Azure Synapse Link 的指导和工具,请转到从传统数据生成服务过渡以及 TechTalk 系列:Dataverse 的 Synapse Link:从导出到 Azure 数据湖过渡到 Synapse Link

先决条件

您计划如何使用数据 Azure Synapse Link 您使用的功能 需要的先决条件和 Azure 资源
通过 Synapse 查询访问财务和运营表

财务和运营表以 delta parquet 格式保存,可实现更好的读取性能。 无法选择要以 CSV 格式保存的财务和运营表。
转到在 Azure Synapse Link 中添加财务和运营表 Azure Data Lake
Azure Synapse workspace
Azure Synapse Spark 池
将增量数据更改加载到您自己的下游数据仓库中

系统将以 CSV 格式将增量更改保存到文件中。 无需引入 Synapse 工作区或 Spark 池,因为您的数据以 CSV 格式保存。
转到从财务和运营中访问增量数据更改
另请转到Azure Synapse Link - 增量更新
Azure Data Lake
通过 Microsoft Fabric 访问财务和运营表

无需引入您自己的存储、Synapse 工作区或 Spark 池,因为系统使用 Dataverse 存储和计算资源
链接到 Fabric Microsoft Fabric workspace

向您的财务和运营系统管理员确认财务和运营环境是否链接到 Power Platform。

要确认财务和运营应用环境是否与 Microsoft Power Platform 链接,查看 Lifecycle Services 中的环境页面。

当您部署新环境时,您可以链接到 Microsoft Power Platform。 还可以将现有环境与 Power Platform 链接。 有关 Microsoft Power Platform 集成的详细信息,请转到启用 Microsoft Power Platform 集成

备注

在 Azure Synapse Link 中启用财务和运营数据不需要双重写入设置。

在财务和运营应用环境中添加配置

您必须在财务和运营环境中启用 Sql 行版本更改跟踪配置键。 在财务和运营版本 10.0.39 (PU63) 或更高版本中,此配置键可能会默认启用。

要启用此配置键,必须打开维护模式。 详细信息:在客户订阅中托管的开发测试/演示环境中打开和关闭维护模式

显示已启用 Sql 行版本更改跟踪配置键的屏幕截图。

启用行版本更改跟踪后,在环境中触发的系统事件可能会导致“导出到数据湖”中的表重新初始化。 如果有下游消耗管道,您可能必须重新初始化这些管道。 详细信息:某些表已在没有用户操作的情况下“初始化”

配置云托管环境的其他步骤

备注

推出通过基于 ERP 的模板预配的 Power Platform 环境(也称为统一环境)后,Microsoft 为云托管环境 (CHE) 提供有限支持。

如果您使用的是云托管环境,则必须执行以下其他配置步骤:

  1. 完成完全数据库同步 (DBSync) 并使用 Visual Studio 完成维护模式。

  2. 您需要启用外部测试版 DMFEnableSqlRowVersionChangeTrackingIndexingDMFEnableCreateRecIdIndexForDataSynchronization,才能创建数据同步所需的索引。 启用这些外部测试版后,将为 RecIdSysRowVersion 创建 SQL 索引(如果缺少索引)。 您可以通过在第 1 层环境中运行这些 SQL 语句来启用外部测试版。 当针对表或实体启用更改跟踪时,将在更高的环境中创建这些索引。

INSERT INTO SYSFLIGHTING (FLIGHTNAME, ENABLED) VALUES('DMFEnableSqlRowVersionChangeTrackingIndexing', 1)
INSERT INTO SYSFLIGHTING (FLIGHTNAME, ENABLED) VALUES('DMFEnableCreateRecIdIndexForDataSynchronization', 1)
  1. 您需要运行以下脚本,才能在环境中执行初始索引操作。 如果您未在 CHE 环境中运行脚本,当将这些表添加到 Azure Synapse Link 时,您会看到错误“FnO-812”。 此流程在沙盒或其他更高的环境中自动启用。
SET NOCOUNT ON;
print 'Put system in Maintainance mode'
print ''
UPDATE SQLSYSTEMVARIABLES SET VALUE = 1 WHERE PARM = 'CONFIGURATIONMODE'
SET NOCOUNT OFF;

DECLARE @SchemaName NVARCHAR(MAX) = 'dbo';
DECLARE @TableId INT;
DECLARE @TableName NVARCHAR(250);
DECLARE @SQLStmt NVARCHAR(MAX);
DECLARE @SlNo INT = 0;

DECLARE Table_cursor CURSOR LOCAL FOR
SELECT T.ID, T.Name
FROM TABLEIDTABLE T
WHERE T.Name in (
SELECT PHYSICALTABLENAME AS TableName FROM AIFSQLROWVERSIONCHANGETRACKINGENABLEDTABLES
UNION SELECT REFTABLENAME AS TableName FROM BUSINESSEVENTSDEFINITION WHERE CHANNEL LIKE 'AthenaFinanceOperationsTableDa%'
)

-- if the concerned tables are not in the above list, then replace the above cursor query with following cursor query
-- and manually enter the tablenames in the where clause
-- DECLARE Table_cursor CURSOR LOCAL FOR
-- SELECT T.ID, T.Name
-- FROM TABLEIDTABLE T
-- WHERE T.Name in ( 'TableName1', 'TableName2', .....)

OPEN Table_cursor;
FETCH NEXT FROM Table_cursor INTO @TableId, @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
    BEGIN TRY
        BEGIN TRAN
            BEGIN
                -- Script timeout in milliseconds
                SET LOCK_TIMEOUT 1000;
                SET @SlNo = @SlNo + 1;

                -- Add SYSROWVERSION index
                IF NOT EXISTS (SELECT TOP 1 1
                    FROM sys.indexes i
                    INNER JOIN sys.index_columns ic ON ic.index_id = i.index_id AND ic.object_id = i.object_id
                    INNER JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
                    INNER JOIN sys.tables t ON t.object_id = c.object_id
                    INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
                    WHERE s.name = @SchemaName AND ic.index_column_id = 1 AND ic.is_included_column = 0 AND t.name = @TableName AND c.name = 'SYSROWVERSION'
                    )
                BEGIN
                    SET @SQLStmt = '
                    CREATE NONCLUSTERED INDEX AIF_I_' + CAST(@TableId as nvarchar) + 'SQLROWVERSIONIDX
                    ON ' + @SchemaName + '.' + @TableName + ' ([SYSROWVERSION] ASC)
                    WITH (ONLINE = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = ON)
                    ON [PRIMARY]
                    ';
                    EXEC sp_executesql @SQLStmt;
                END

                -- Add RECID index
                IF NOT EXISTS (SELECT TOP 1 1
                    FROM sys.indexes i
                    INNER JOIN sys.index_columns ic ON ic.index_id = i.index_id AND ic.object_id = i.object_id
                    INNER JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
                    INNER JOIN sys.tables t ON t.object_id = c.object_id
                    INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
                    WHERE s.name = @SchemaName AND ic.index_column_id = 1 AND ic.is_included_column = 0 AND t.name = @TableName AND c.name = 'RECID'
                    )
                BEGIN
                    SET @SQLStmt = '
                    CREATE NONCLUSTERED INDEX AIF_I_' + CAST(@TableId as nvarchar) + 'RECIDDATASYNCIDX
                    ON ' + @SchemaName + '.' + @TableName + ' ([RECID] ASC)
                    WITH (ONLINE = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = ON)
                    ON [PRIMARY]
                    ';
                    EXEC sp_executesql @SQLStmt;
                END

                SET LOCK_TIMEOUT 0;
            END
        COMMIT TRAN
        print cast(@SlNo as nvarchar) + '. ' + @SchemaName + '.' + @TableName + '(' + cast(@TableId as nvarchar) + ') => succeeded'
    END TRY
    BEGIN CATCH
        print cast(@SlNo as nvarchar) + '. ' + @SchemaName + '.' + @TableName + '(' + cast(@TableId as nvarchar) + ') => SQL error[' + cast(ERROR_NUMBER() as nvarchar) + '] : ' + ERROR_MESSAGE()
        ROLLBACK TRAN
    END CATCH
    FETCH NEXT FROM Table_cursor INTO @TableId, @TableName;
END

CLOSE Table_cursor
DEALLOCATE Table_cursor

SET NOCOUNT ON;
print ''
print 'Put system out of Maintainance mode'
UPDATE SQLSYSTEMVARIABLES SET VALUE = 0 WHERE PARM = 'CONFIGURATIONMODE'
SET NOCOUNT OFF;

print ''
print 'Finished'
  1. 从命令行执行 IISReset 操作以重启应用程序服务器。

您可以在 Azure Synapse Link for Dataverse 中启用财务和运营表以及财务和运营实体。 本节着重介绍财务和运营表。

  1. 登录到 Power Apps,然后选择所需的环境。
  2. 在左侧导航窗格中,选择 Azure Synapse Link
  3. Synapse Link 页面的命令栏上,选择 + 新建数据湖链接
  4. 选择连接到 Azure Synapse Analytics 工作区,然后选择订阅资源组工作区名称
  5. 选择使用 Spark 池进行处理,然后选择预创建的 Spark 池和存储帐户。
  6. 选择下一步
  7. 添加要导出的表。 只要满足先决条件,您就可以选择财务和运营表。
  8. 选择高级,选择显示高级配置设置,然后输入捕获增量更新的频率的事时间间隔(以分钟为单位)。 对于财务和运营表,表级别提供的仅追加分区选项将被忽略,因为由系统确定分区策略。
  9. 选择保存。 选定的表已初始化并准备好报告。

在 Azure Synapse Link 中添加财务和运营表

备注

  • 财务和运营应用表只允许在 Azure Synapse Link 中使用。 制作者在Power Apps (make.powerapps.com) 的表格区域中没有看到。
  • 您未必一定要将财务和运营应用表定义为虚拟表,也未必一定要为每个表启用更改跟踪。

若要在 Synapse Link 中包含财务和运营表,必须在 Synapse Link 配置文件中启用 Delta Lake 功能。 如果未针对 Delta Lake 配置您的 Synapse Link 配置文件,则财务和运营表选择不可见。

Delta Lake 转换时间间隔决定了表数据以 Delta 格式更新的频率。 对于准实时更新,请选择 15 分钟或一小时作为所需的内部更新时间。 如果不需要准实时更新,请选择每日时间间隔。 增量转换消耗您在 Synapse Link 配置文件配置中提供的 Spark 池中的计算资源。 时间间隔越短,消耗的计算资源就越多,并且产生的成本就越高。 在 Azure 门户中打开 Spark 池以查看计算成本。

如果系统在初始同步或更新期间遇到错误,您将看到一个错误图标和一个指向可用于诊断和解决错误的故障排除文档的指针。

财务和运营表的已知限制

当前,财务和运营表以及 Azure Synapse Link 存在限制。 我们正在努力解决这些限制。 若要了解有关即将发布的路线图的详细信息并与产品团队保持联系,请加入预览 Viva Engage 组

  • 您必须创建新的 Azure Synapse Link 配置文件。 您无法将财务和运营应用表添加到现有的 Azure Synapse Link 配置文件中。

  • 看不到所有表? 在应用程序版本 10.0.38 中,已经在 Azure Synapse Link 中启用了多达 2,750 个 Microsoft 提供的财务和运营应用程序表。 如果您有以前版本的财务和运营应用,默认情况下不会启用所有必需的表。 通过扩展表属性并启用更改跟踪功能,您可以自己启用更多的表。 有关如何启用更改跟踪的详细信息,请参阅为表启用行版本更改跟踪

  • 看不到自定义表? 您必须为它们启用更改跟踪。 详细信息:为表启用行版本更改跟踪。 如果您使用的是云托管环境 (CHE),则必须执行数据库同步操作以反映这些更改。

  • 在 Azure Synapse Link 配置文件中,您最多可以选择 1,000 个表。 若要启用更多表,请创建另一个 Azure Synapse Link 配置文件。

  • 如果所选表包含通过 AOS 授权保护的数据列,将会忽略这些列,并且导出的数据不包含该列。 例如,在名为 CustTable 的自定义表中,列 TaxLicenseNum 具有 AOS 授权设置为的元数据属性。 当使用 Azure Synapse Link 导出 CustTable 数据时,将忽略此列。

    备注

    将您的财务和运营环境更新到这些版本或更高版本,以启用 AOS 授权字段:

    • PU 63:7.0.7198.105
    • PU 62:7.0.7120.159

    在此更新中,表中添加了 AOS 授权字段:

    • 增量更新包括此列。
    • 修改的记录显示这些列和值。
    • 完全刷新包括这些字段和所有值。
  • 当通过可扩展数据安全策略保护添加到 Azure Synapse Link 的财务和运营表时,系统可能无法导出数据。 此问题在最新的应用程序更新中得到修复。

    备注

    对 Azure Synapse Link for Dataverse 中财务和运营表的可用更新:

    • 版本 10.0.39 (PU63) 累积更新 10.0.1860.50
    • 版本 10.0.38 (PU62) 累积更新 10.0.1777.135
    • 版本 10.0.37 (PU61) 累积更新 10.0.1725.175

    您将需要应用优质内部版本,在该版本中,系统为 Azure Synapse Link 服务的可扩展数据安全策略应用绕过。

  • 对于展示有效时间戳行为的财务和运营应用表,仅使用 Azure Synapse Link 导出当前有效的数据行。 例如,ExchangeRate 表包含当前汇率和以前汇率。 仅在 Azure Synapse Link 中导出当前有效的汇率。 此问题在此处的最新应用程序更新中得到修复。

    备注

    对 Azure Synapse Link for Dataverse 中财务和运营表的可用更新:

    • 版本 10.0.40 (PU64) 平台更新 7.0.7120.179
    • 版本 10.0.39 (PU63) 平台更新 7.0.7198.143
    • 版本 10.0.38 (PU62) 平台更新 7.0.7279.58

    通过此更新,过期的数据行将添加到表中。 需要执行完全刷新以包含前面的行。

  • 如果所选表包含数组类型的数据列,将会忽略这些列,并且导出的数据不包含该列。 例如,在名为 WHSInventTable 的自定义表中,列 FilterCodeFilterGroup 都是数组类型。 不使用 Azure Synapse Link 导出这些列。 此问题在此处的最新应用程序更新中得到修复。

    备注

    对 Azure Synapse Link for Dataverse 中财务和运营表的可用更新:

    • 版本 10.0.41 (PU65) 平台更新 7.0.7367.0 或更高版本
    • 版本 10.0.40 (PU64) 平台更新 7.0.7279.115 或更高版本
    • 版本 10.0.39 (PU63) 平台更新 7.0.7198.186 或更高版本

    在此更新中,数组类型字段已添加到表中。 需要执行完全刷新以包含前面的行。

  • 表继承和派生表是财务和运营应用中的概念。 当从财务和运营应用中选择派生表时,当前不包含相应基表中的字段。 如果您需要访问这些字段,除了派生表外,还需要选择基表。 您可以使用 GitHub 提供的此 FastTrack 解决方案。 此解决方案创建视图,其中包括基表中的列。

  • 当在 Dataverse 中还原备份时,可能会删除已添加到 Azure Synapse Link 配置文件中的财务和运营应用表。 您可以将逗号分隔的表列表复制并粘贴到“管理表”选项中的搜索框中,以便一次选择表列表。

  • 恢复财务和运营应用程序数据库时,需要重新初始化添加到 Azure Synapse Link 配置文件中的表。 在重新初始化财务和运营表之前,您还必须还原 Dataverse 数据库。 恢复数据库后,您必须将财务和运营表添加到配置文件中。 您可以将逗号分隔的表列表复制并粘贴到“管理表”选项中的搜索框中,以便一次选择表列表。

  • 无法使用 Azure Synapse Link 中的导入和导出配置文件功能将 Azure Synapse Link 配置文件中包含的财务和运营应用表迁移到不同的环境。

  • 财务和运营表中诸如 TimeZoneID (TZID) 的特殊二进制字段未在 Azure Synapse Link 中启用。

  • Azure Synapse Link 中不支持财务和运营应用中的暂存和临时表类型。

  • 以下表(在 财务和运营应用 中称为 内核 表)受 Fabric 和 Synapse 链接 支持。 这些表很特殊,您无需启用更改跟踪。 此外,它们每 24 小时更新一次,并且不会近乎实时地更新,因为数据不会频繁更改: DATAAREAUSERINFOSECURITYROLESECURITYUSERROLE SQLDICTIONARY PARTITIONS SECURITYPRIVILEGE TIMEZONESLIST SECURITYDUTY SECURITYSUBROLE SECURITYUSERROLECONDITION DATABASELOG SECURITYROLERUNTIME SECURITYROLEPRIVILEGEEXPLODEDGRAPH SECURITYROLEDUTYEXPLODEDGRAPH TIMEZONESRULESDATA SECURITYROLEEXPLODEDGRAPH USERDATAAREAFILTER SYSINHERITANCERELATIONS

  • 通过 Synapse 查询访问财务和运营表通过 Microsoft Fabric 访问财务和运营表功能在中国地区不可用。

访问财务和运营中的增量数据更改

若要将财务和运营中的增量数据更改加载到您自己的下游数据仓库中,请创建仅提供增量数据的 Azure Synapse Link 配置文件。 Azure Synapse Link 提供所有数据行的初始导出,然后向您提供定期更改的数据的访问权限。 数据以存储在带时间戳的文件夹中的 CSV 文件形式提供,您可以使用 Azure 数据工厂或其他数据工具轻松使用数据。 详细信息:Azure Synapse Link - 增量更新

若要创建具有增量数据的 Azure Synapse Link 配置文件:

  1. 登录到 Power Apps,然后选择所需的环境。
  2. 在左侧导航窗格中,选择 Azure Synapse Link
  3. Azure Synapse Link for Dataverse 页面上,在命令行上选择 + 新建链接
  4. 选择订阅资源组存储帐户。 无需提供 Synapse 工作区或 Spark 池。
  5. 选择下一步。 显示用于选择表的选项。
  6. 选择高级,选择显示高级配置设置,然后启用选项启用增量更新文件夹结构
  7. 时间间隔字段中,选择读取增量数据所需的频率。 使用此频率,系统将数据分区到带有时间戳的文件夹中,以便您可以读取数据,而不会受到正在进行的写入操作的影响。
  8. 选择所需的 Dataverse 表。 您还可以选择财务和运营表。 将会忽略在表级别提供的仅追加分区选项。 数据文件会始终附加,并且每年都会对数据进行分区。
  9. 选择保存。 所选表已初始化,您会在存储帐户中看到增量数据。

从财务和运营表中添加增量数据更改。

备注

如果您要从导出到数据湖功能进行升级,启用增量数据更改选项可提供与更改源功能类似的更改数据

我们建议您为增量数据和表创建单独的 Azure Synapse Link 配置文件,以便于管理。

当您选择表并启用增量数据更改时,每个表的 Azure Synapse Link 详细信息页面中显示的行计数反映更改的总数,而不是表中记录的数量。

财务和运营表限制也适用于表中的增量数据。 详细信息:财务和运营表的已知限制

使用数据和元数据

枚举字段是财务和运营应用中的已编码数据字段。 例如,AssetTrans 表包含名为 TransType 的字段,这是枚举字段。 表字段包含数字代码(例如 110、120 或 131),这表示“折旧”、“租赁”或“大修”等详细说明。 您可以使用在选择包含枚举字段的表时自动导出的 GlobalOptionsMetadata 表来访问这些详细说明。 枚举字段也称为选择标签或选项集(以前称为选项集)。 详细信息:选择标签

如果财务和运营表中存在元数据更改,例如,向表添加一个新字段,Azure Synapse Link 中导出的数据反映包含更改的最新元数据。 详细信息:Azure Synapse Link 常见问题解答。 如果您使用 Azure Synapse Link 查询数据,则会看到在 Azure Synapse Link 中反映的已更新元数据。 如果您使用增量数据更改,可以使用最新日期戳在增量数据文件夹中找到更新的元数据。 详细信息:增量文件夹结构

您还会注意到系统为每个数据行附加的附加元数据字段。 此处显示了这些字段的说明。

元数据字段 该字段包含的内容 导出至数据存储的等效字段或功能
createdon 指示记录的创建日期和时间 源自每个财务和运营记录中的 Created Date 时间字段。
Createdtransactionid 未使用 未使用
Id 记录 ID 由系统用来唯一标识记录 包含财务和运营记录的 RecID 字段。 该值从整数转换为 GUID。
IsDelete 如果为 True,则从 Dataverse 或财务和运营中删除该记录 如果从源删除,导出到数据湖会立即从目标数据湖中删除该行。 Azure Synapse Link 对增量格式的表数据执行“软删除”,以便识别已删除的行,而无需占用更改订阅。
对于增量文件中的表数据,软删除的行将在 28 天后被清除。

IsDelete 字段还可通过增量更新获得。 如果您想要访问增量更新 isDelete 的最新行为 False,则为给定 ID 的最新版本号和同步修改日期。
modifiedon 指示上次修改记录的日期和时间 该字段通过财务和操作表中的修改日期时间字段进行填充。
modifiedtransactionid 在内部使用 由于 modifiedtransactionid 在内部使用,因此请勿使用此字段。
SinkCreatedOn 指示记录写入数据湖的日期。
当 CSV 更改数据(增量更新)时,将显示数据和时间数据写入到数据湖的时间。 对于 Delta 格式的表数据,表示 Delta Lake 转换的日期和时间。
您可以使用类似于导出到数据湖功能中的数据湖修改日期时间字段的日期。
SinkModifiedOn 指示记录的修改日期。 对于 Delta 格式文件和增量 CSV 文件中的表格,包含与 SinkCreatedOn 相同的日期时间。 您可以使用类似于导出到数据湖功能中的数据湖修改日期时间字段的日期。
sysdatastatecode 如果为 1,则此记录会使用长期数据保留功能存档。 如果为 0,则这是实时记录。 您可以使用该字段识别已存档(并且从实时数据中删除)的财务和操作记录。 相同的字段可用于 CSV 更改数据(增量更新)。
sysrowversion 在每个财务和运营应用记录中维护的版本号,用于确定是否已对数据进行更改。 系统使用此字段来确定对流程的增量更改或增量更改。 sysrowversion 在内部使用时,您可以将此字段用作 水印 来确定上次更新的记录版本。 对于 Dynamics 365 客户互动应用表,此字段可能为空。
tableid 包含每个表的唯一 ID 包含财务和操作中的表 ID。
versionnumber 在内部使用 - 包含已同步到数据湖的行的最后一个版本。 与此字段类似, sysrowversion 包含 Dynamics 客户参与应用表的最后处理版本。 对于 Dynamics 财务和运营应用表,此字段包含的值 sysrowversion 与。

对系统事件做出反应并生成审核报告

Azure Synapse Link 完成数据传输活动或遇到问题时,会生成事件。 这些事件记录在 Dataverse 表中。 您可以使用这些 Dataverse 表创建自动操作和审核报告。 例如,如果您有一个自动数据管道,不断地将更改的数据行从您的数据湖复制到另一个位置,那么当表停用或重新激活时,或者当表元数据更新时,可能需要特殊的操作。 通过创建事件,您可以自动化这些任务。

如果您使用财务和运营的导出到数据湖功能生成的业务事件来响应系统事件,您可以继续通过 Azure Synapse Link 服务获得提醒。 Synapse 链接服务包含可用于 Power Apps 生成审核报表和监视相关特定数据的其他配置数据。 有关从 Synapse 链接接收和使用事件的信息, 请参阅本文

此表总结了导出到数据湖的事件,并讨论了如何使用 Synapse Link 配置数据进行改进。

导出到数据湖事件 场景 如何在 Synapse 链接中使用配置数据
初始化完成 选择表时,系统会制作数据的初始副本。 此事件指示所选表的初始化已完成。 如果在环境中启用了多个表,当每个表的初始化完成时,您会收到多个事件。 您可以监控 Dataverse 表 Synapse Link 配置文件实体状态Synapse Link 外部表状态

InitialSyncProcessCompletedTimeInitialSyncState 会返回初始同步完成状态,包括元数据和数据。 初始同步完成后,初始同步状态会更新为已完成。 您还可以获取其他信息,例如每个表的记录计数。

在重新初始化表时,Synapse 链接不会删除 CSV 文件中以前更改的数据(增量更新)。
元数据更改 此事件指示表元数据已更改。 例如,新列添加到表中,或者在极少数情况下,列被删除。 您每个表收到多个事件,每个元数据更改一个事件。 如果您的下游数据管道不能对元数据更改做出反应(这种情况称为架构漂移),您可以通过使用这些事件来检测更改并修改下游管道。 检测到元数据更改时,会更新 Synapse Link 配置文件实体状态表中的上次同步元数据时间字段。 使用此字段可以使用存储在数据湖中的元数据,强制对下游管道进行元数据更改。
已停用 此事件指示以前活动的表已停用。 停用表时,在财务和运营应用程序中更改的数据不会在数据湖中更新 Synapse Link 中没有“停用”选项。 但是,您可以从 Synapse Link 配置文件中删除表。 您可以在 Dataverse 表 Synapse Link 配置文件实体状态中找到已删除的表。
已激活 此事件指示以前停用的表已重新激活。 当表重新激活时,系统重新初始化数据湖中的数据。 您稍后可能会收到初始化完成事件。 Synapse Link 中没有停用或激活选项。 您可以删除表格并将表格重新添加到 Synapse Link 配置文件中。 添加表时,Synapse Link 配置文件实体状态表中会添加一条新记录。 您可以在初始化阶段使用 Dataverse 表 Synapse Link 配置文件实体状态Synapse Link 外部表状态来监控表的状态。
错误 此事件指示数据同步进程由于错误而暂停。 Synapse Link 配置文件实体状态状态字段指示表的状态。
数据湖开关 此事件表示系统管理员已经修改数据湖的目标。 此事件不适用。 不支持更改与 Synapse Link 配置文件关联的数据湖以及更改配置选项。 但是,Synapse Link 支持多个配置文件。 这意味着,管理员可以使用表格创建多个 Synapse Link 配置文件(同一个表格可以添加到多个配置文件)。 阅读 Dataverse 表 Synapse Link 配置文件,以查找所有配置文件的配置数据,包括已删除的配置文件。

您可以在 Azure Synapse Link for Dataverse 中启用财务和运营实体以及财务和运营应用表。 本节着重介绍财务和运营数据实体。

启用财务和运营实体的过程包括以下步骤。 以下小节对每个步骤进行了说明。

  1. 在 Power Apps Maker Portal 中启用财务和运营虚拟实体。 此步骤允许您使用 Power Apps (make.powerapps.com) 中的财务和运营实体来生成应用。 您还可以将它们与 Azure Synapse Link 一起使用。
  2. 为实体启用行版本更改跟踪。 您必须完成此步骤才能让 Azure Synapse Link 使用财务和运营实体。

完成这两个步骤后,您可以在 Dataverse 表下的 Azure Synapse Link 中选择财务和运营实体。 要以 Delta Lake 格式创建 Azure Synapse Link for Dataverse,请按照以 Delta Lake 格式导出 Dataverse 数据中的步骤操作。

备注

财务和运营实体以前缀 mserp_ 开头。

在 Power Apps 中启用财务和运营虚拟实体

您必须在 Dataverse 中启用财务和运营实体作为虚拟表。 然后,制作者可以使用所选的财务和运营实体来构建应用,这些实体还可以与 Azure Synapse Link 一起使用。

要启用财务和运营实体,请遵循启用 Microsoft Dataverse 虚拟实体中的步骤。

提示

要验证 Azure Synapse Link 特性,请使用以下列表中的一些示例实体。 它们出现在 Azure Synapse Link 中的 Dataverse 表格部分。

  • MainAccountBiEntity – 此实体包含会计科目列表。
  • ExchangeRateBiEntity – 此实体在系统中包含汇率。
  • InventTableBiEntity – 此实体包含库存项目列表。

为财务和运营实体启用更改跟踪

当您为财务和运营实体启用更改跟踪时,它们会出现在 Azure Synapse Link 中的 Dataverse 表下。 财务和运营实体以前缀 mserp_ 开头。

要启用更改跟踪,请执行以下步骤。

  1. 在 Power Apps 中,在左侧导航窗格上选择,然后选择所需的表。
  2. 选择属性 > 高级选项
  3. 选择跟踪更改选项,然后选择保存。 如果该选项不可用,请参阅下面的已知限制。

财务和运营实体的已知限制

目前,财务和运营实体以及 Azure Synapse Link 存在一些限制。 若要了解有关即将发布的路线图的详细信息并与产品团队保持联系,请加入预览 Viva Engage 组 aka.ms/SynapseLinkforDynamics

  • 启用更改跟踪可能会失败,并显示错误消息“所选实体未通过验证规则...”或者,对于某些 virtual tables,可能禁用了修订复选框。 目前,无法为所有财务和运营实体启用更改跟踪。 跟踪更改复选框不可用于过去在财务和运营中创建的用于数据迁移的实体。

    备注

    要获得通过验证规则的财务和运营实体的列表,请运行财务和运营应用程序中的数据实体行版本更改跟踪验证报告,路径为系统管理/设置/行版本更改跟踪/数据实体行版本更改跟踪验证报告。 此报告显示通过和未通过验证规则的实体。

    有关实体验证规则以及如何修复这些规则的详细信息,请转到为数据实体启用行版本更改跟踪。 您可能需要开发人员帮助来完成步骤。

    如果选定实体由于更改跟踪限制而不可用,您可以选择包含该实体数据的表。 您可以使用 FastTrac k团队提供的 EntityUtil 解决方案,通过表格创建实体形状。

  • 如果在 Dataverse 中执行数据库还原操作,将删除在 Azure Synapse Link 中启用的财务和运营实体。 若要重新启用实体,您需要重新启用所有选定实体的相应虚拟表,重新启用更改跟踪并在 Azure Synapse Link 中重新选择这些表。