应付帐款数据立方体中的总采购额度量显示未知数据
前段时间我碰到个问题:供应商主数据维度的总采购额度量无法正常工作,属性显示为未知。因此尽管已经有一堆过账和开过发票的采购单,我仍然无法看见每个供应商的采购总量。
诊断该问题的第一步是找出当您查看总采购额度量的源属性时,在Business Intelligence Development Studio中总采购额底层的查询到底是什么:
您可以看到数据是来源于VendTransTotalPurchase.AmountMST。
当您切换到AX的数据源视图后,您会发现VendTransTotalPurchase是一个命名查询,同时可以看到它背后的逻辑。
如果您想更改查询来得到供应商帐号数据,查询如下:
SELECT VENDTRANS.ACCOUNTNUM, sum(AMOUNTMST), VENDTRANS.DATAAREAID, VENDTABLE.NAME
FROM dbo.VENDTRANS, dbo.VENDTABLE
WHERE (INVOICE <> '') and VENDTRANS.ACCOUNTNUM = VENDTABLE.ACCOUNTNUM and VENDTRANS.DATAAREAID = VENDTABLE.DATAAREAID
group by VENDTRANS.ACCOUNTNUM, VENDTRANS.DATAAREAID, VENDTABLE.NAME
order by VENDTRANS.DATAAREAID
如果我运行此查询,我可以看见每个供应商的正确信息,但是却仍然无法在供应商主数据维度里看到。因此我的下一步是进一步检查供应商主数据维度。
我发现在处理供应商主数据维度中的供应商(键)属性时会产生一个很长很复杂的查询。我在这里就不完全复制了,但表达式最重要的部分如下:
WHERE
(
(
[VENDTABLE].[DATAAREAID] = [EMPLTABLE].[DATAAREAID]
)
AND
(
[VENDTABLE].[MAINCONTACTID] = [EMPLTABLE].[EMPLID]
)
)
然后我查看了我的VENDTABLE,发现MAINCONTACTID域的确没有设置。
总而言之,要解决该问题,我需要用AX客户端在"一般"标签下更新每个供应商的主要联系人(给每个供应商分配员工 - 可以是假的员工),完成之后再处理供应商主数据维度和应付帐款数据立方体。大功告成!
原文地址: