我继承了一个将数据从 Dynamics AX 2012 ERP 提取到数据仓库以进行报告的环境。顾问设置的原始提取不包括会计所需的正确日期列。我执行了以下操作:
- 在登台表和目标表中创建列
- 在 Visual Studio 中打开包,发现每个包文件都使用相同的变量 User::vSQLBase 并包含从 Dynamics AX 所需的表中提取所有列的查询。我更改了该变量以包含日期列。
- 我保存了更改并将整个解决方案部署回数据仓库。
- 在 SQL Server 中运行作业,但没有填充任何列。
当我测试执行包时,我确实在 Visual Studio 的调试中出现错误。
警告:0x800470C8 at Incremental Load,Read Delta [26]:Read Delta 的外部列与数据源列不同步。需要将“文档日期”列添加到外部列中。
我确实联系了顾问,他回答说“新列未映射到包中的暂存表,请注意,完全加载和增量加载都需要相同的映射。并且必须进行完全加载,因为这是一个新列”。由于预算限制,我无法进一步联系顾问。将列添加到登台表我缺少什么?
除了将新列添加到变量 User::vSQLBase 之外,您还需要为正在加载的登台表打开数据流。编辑源,然后单击“列”,确认您看到了新列,然后单击“确定”。然后编辑目标,并单击映射 - 并确保源中的新列指向登台表中的正确列。这将完成顾问正在谈论的新列映射。您需要确保映射已更新,以便将数据从暂存表移动到目标表。然后再次保存并部署。
增量加载仅填充自上次成功运行以来新的或更改的数据。您是否只关心在目的地中填充的新列?或者该数据是否也存在于之前导入的记录中很重要?对于会计系统,我猜您希望为表中的所有记录填充新列。在那种情况下,我同意你的顾问的意见,即满载是必要的。
事实证明,在与顾问进行一对一交流后,我们发现有问题的暂存表位于我不知道的另一个数据库中。一旦我更新了该数据库中的表和存储过程,我就能够部署和填充该列。