如何使用AX 2012查询服务正确返回聚合数据字段

时间:2014-07-23 15:55:07

标签: microsoft-dynamics dynamics-ax-2012 ax aif

我最近一直在研究AX查询服务。我对所有内容都有很好的理解,但似乎QueryDataFieldMetadata对象不喜欢聚合。当我构建QueryDataFieldMetadata对象时:

QueryDataFieldMetadata field = new QueryDataFieldMetadata();
field.TableName = "InventSum";
field.FieldName = "AvailPhysical";
field.SelectionField = SelectionField.Database;

并将其添加到数据源一切都很好。但是当我这样做时:

QueryDataFieldMetadata field = new QueryDataFieldMetadata();
field.TableName = "InventSum";
field.FieldName = "AvailPhysical";
field.SelectionField = SelectionField.Sum;

并将其添加到数据源中,结果集中根本不返回该字段。我在执行查询之前检查了数据源,它在字段列表中但没有返回任何内容。有谁知道为什么会发生这种情况?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我只想出这个。问题是由于我从表中选择了另一个字段但忘记将其放在“分组依据”字段中。我很奇怪,查询服务返回THAT字段时为空,但根本没有返回聚合字段。基本上我做了一个与此相同的查询服务查询:

从ItemId,InventLocationId,WMSlocationId中选择WMSLocationId,SUM(AvailPhysical),来自InventSum组的RecId,其中ItemId =='some value';

查询返回:

InventSum.wMSLocationId = 001

InventSum.RecId = 0

包含RecId是一个错误,我忘记删除它,但不认为它会重要,因为它不在字段组中,因此将返回null。删除此选择字段确实导致在查询中返回聚合字段。

无论如何,我希望这可以帮助那些人,因为我花了一些时间才弄明白。