Axapta AX 2012视图计算列返回Null

Axapta AX 2012视图计算列返回Null,axapta,x++,Axapta,X++,我在AX中有一个带有计算列的视图: private static server str qty() { #define.THEN(" THEN ") #define.SINGLE_QUOTE("'") return 'CASE T2.ReturnStatus ' + ' WHEN ' + int2str(enum2int(ReturnStatusLine::None)) + #THEN + '-1 * T3.Unit

我在AX中有一个带有计算列的视图:

    private static server str qty()
    {
    #define.THEN(" THEN ")
    #define.SINGLE_QUOTE("'")

    return 'CASE T2.ReturnStatus ' +
                ' WHEN  ' + int2str(enum2int(ReturnStatusLine::None))   + #THEN + '-1 * T3.UnitValue' +
                ' WHEN  ' + int2str(enum2int(ReturnStatusLine::Awaiting))   + #THEN + '-1 * T3.UnitValue' +
                ' WHEN  ' + int2str(enum2int(ReturnStatusLine::Registered))   + #THEN + '-1 * T3.UnitValue' +
                ' ELSE  ' + "(T3.UnitValue / T2.ExpectedRetQty * (SELECT TOP 1 SUM(cpst.Qty) as RcvQty from custPackingSlipTrans as cpst where cpst.InventTransId = T2.InventTransId and cpst.dataAreaId='" + curext() + "')) * -1" +
                ' END'; 
   }
它工作得很好,除了在过去一周左右,该列返回NULL,而它本不应该返回NULL。只需进入AOT并同步此视图即可解决此问题,之后列将具有有效值。但我们几乎每天都要这么做


有什么想法吗?

AX2012R3我想是吧?您是否使用更新的内核?多个AOS?他们所有的内核都是同步的吗?我的初步猜测是,如果尚未更新内核和/或初始化AX modelstore,则需要更新内核和/或初始化AX modelstore。这只是一个猜测,因为您说的问题是通过sync解决的。此外,您还将加入curext()值,因此它仅在同步的公司中有效!查看SQL.Ah@JanB.Kjeldsen的视图可能发现了实际问题。要解决这个问题,您可能需要创建多个列,连接到
DataArea
,硬代码,等等。如果是CurExt()导致了这个问题,哪种是有意义的,那么我想我可以简单地将连接添加到SQL:“vpst.dataAreaId=T1.dataAreaId”。谢谢大家的帮助!为了记录在案,AX2012R3带有多个AOS。