我如何获取LastActivity和LastActivityAge

时间:2018-11-22 18:35:47

标签: acumatica

我指的是GitHub中的Send Case Reminder项目,其中每个案例都有LastActivity和LastActivityAge,并以此为基础计算天数并发送自动电子邮件通知。

但是,由于某些原因,在我实施该项目时,它在我的案例中不存在。所以这就是我所做的。

我从CRCase表中创建了一个简单的GI,并向ResultsGrid添加了三列,即。 CaseCD,LastActivity和LastActivityAge。我得到的是在所有情况下LastActivity和LastActivityAge列中都没有值。我不确定它是如何工作的,或者我应该如何获取这两个字段的值。

我还检查了CRActivityStatistics表中的LastIncomingActivityDate和LastOutgoingActivityDate字段。并且这两个字段在所有情况下都具有值。

任何建议将不胜感激。 PS。我正在使用2018 R2 ver 18.201.0050。

2 个答案:

答案 0 :(得分:0)

由于您确实在CRActivityStatistics中看到了预期的数据,但是在GI上看不到表明您的加入关系可能不正确的正确值。这可能是您的GI和代码中的问题。正确的联接是CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID。

enter image description here

enter image description here

答案 1 :(得分:0)

我能够通过DAC扩展来实现这一点

#region LastIncomingActivityDate
        public abstract class lastIncomingActivityDate : PX.Data.IBqlField
        {
        }
        [PXDBDate(BqlField = typeof(CRActivityStatistics.lastIncomingActivityDate), PreserveTime = true, UseSmallDateTime = false)]
        [PXUIField(DisplayName = "Last Incoming Activity")]
        public virtual DateTime? LastIncomingActivityDate { get; set; }
        #endregion

        #region LastOutgoingActivityDate
        public abstract class lastOutgoingActivityDate : PX.Data.IBqlField
        {
        }
        [PXDBDate(BqlField = typeof(CRActivityStatistics.lastOutgoingActivityDate), PreserveTime = true, UseSmallDateTime = false)]
        [PXUIField(DisplayName = "Last Outgoing Activity")]
        public virtual DateTime? LastOutgoingActivityDate { get; set; }
        #endregion

        #region LastActivityDate
        public abstract class lastActivityDate : IBqlField { }
        [PXDBCalced(typeof(Switch<
                Case<Where<lastIncomingActivityDate, IsNotNull, And<lastOutgoingActivityDate, IsNull>>, lastIncomingActivityDate,
                Case<Where<lastOutgoingActivityDate, IsNotNull, And<lastIncomingActivityDate, IsNull>>, lastOutgoingActivityDate,
                Case<Where<lastIncomingActivityDate, Greater<lastOutgoingActivityDate>>, lastIncomingActivityDate>>>,
            lastOutgoingActivityDate>),
            typeof(DateTime))]
        [PXUIField(DisplayName = "Last Activity Date", Enabled = false)]
        [PXDate]
        public virtual DateTime? LastActivityDate { get; set; }
        #endregion

        #region UsrLastActivityAge
        public abstract class usrLastActivityAge : PX.Data.IBqlField
        {
        }
        [PXTimeSpanLong(InputMask = "#### ds ## hrs ## mins")]
        [PXFormula(typeof(Sub<PXDateAndTimeAttribute.now, lastActivityDate>))]
        [PXDefault(0)]
        [PXUIField(DisplayName = "Last Activity Age")]
        public virtual Int32? UsrLastActivityAge { get; set; }
        #endregion