我指的是GitHub中的Send Case Reminder项目,其中每个案例都有LastActivity和LastActivityAge,并以此为基础计算天数并发送自动电子邮件通知。
但是,由于某些原因,在我实施该项目时,它在我的案例中不存在。所以这就是我所做的。
我从CRCase表中创建了一个简单的GI,并向ResultsGrid添加了三列,即。 CaseCD,LastActivity和LastActivityAge。我得到的是在所有情况下LastActivity和LastActivityAge列中都没有值。我不确定它是如何工作的,或者我应该如何获取这两个字段的值。
我还检查了CRActivityStatistics表中的LastIncomingActivityDate和LastOutgoingActivityDate字段。并且这两个字段在所有情况下都具有值。
任何建议将不胜感激。 PS。我正在使用2018 R2 ver 18.201.0050。
答案 0 :(得分:0)
由于您确实在CRActivityStatistics中看到了预期的数据,但是在GI上看不到表明您的加入关系可能不正确的正确值。这可能是您的GI和代码中的问题。正确的联接是CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID。
答案 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