1

我正在尝试使用 SalesQuotationLine 表的主要数据源在 AX 2009(SP1,当前汇总 6)中构建报告。由于我们的库存结构,我需要应用一个过滤器,只显示某些类别的项目(在本例中,是 InventTable 中定义的非服务项目)。但是,SalesQuotationLine 和 InventTable 之间的链接似乎存在问题,因此只会显示两个特定项目。

我们还针对“销售报价详情”屏幕对此进行了测试,结果相同。执行如下查询:在此处输入图像描述

...将仅显示具有前面提到的特定项目之一的报价。如果我们将 Item Type 更改为其他内容(例如更改为 Item),则结果是一个空集。我们也在我们的一个辅助测试服务器上遇到了这个问题,这实际上是一个全新的安装。

从一个表到另一个表的数据映射似乎没有任何问题,而且我们在使用任何其他表集时都没有遇到这个问题。这是一个真正的问题,还是我只是错过了什么?

4

1 回答 1

2

在分析查询执行期间运行的 SQL 配置文件的结果后,问题似乎是系统错误。选择要加入 SalesQuotationLines 的表时,您有两个选项:“项目”和“项目(项目编号)”。无论您选择使用哪个表执行查询,它都会将 InventTable 与关系“SalesQuotationLines.ProjTransCode = InventTable.ItemId”连接起来。在将该表与系统中的其他层进行比较后,我发现从 createLine 方法中删除了以下代码块(在 SYP 层中):

if (this.ProjTransType == QuotationProjTransType::Item)
{
    this.ProjTransCode = this.ItemId;
}

由于不再填充 ProjTransCode,因此连接不起作用,除非在某些确实填充了 ProjTransCode 的报价行上。

此外,与 InventTable 没有直接定义的关系——该链接仅通过用于 SalesQuotationLine.ItemId 字段的扩展数据类型进行维护。手动添加这个关系解决了这个问题。

于 2013-02-27T21:03:54.373 回答