Partager via


应付帐款数据立方体中的总采购额度量显示未知数据

前段时间我碰到个问题:供应商主数据维度的总采购额度量无法正常工作,属性显示为未知。因此尽管已经有一堆过账和开过发票的采购单,我仍然无法看见每个供应商的采购总量。

诊断该问题的第一步是找出当您查看总采购额度量的源属性时,在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客户端在"一般"标签下更新每个供应商的主要联系人(给每个供应商分配员工 - 可以是假的员工),完成之后再处理供应商主数据维度和应付帐款数据立方体。大功告成!

 

原文地址:

https://blogs.msdn.com/b/emeadaxsupport/archive/2011/03/01/measure-total-purchases-in-accounts-payable-cubes-for-dimension-vendor-master-shows-values-uknown.aspx