How do I get LastActivity and LastActivityAge in Case
I am referring to Send Case Reminder project in GitHub where it has LastActivity and LastActivityAge for each case based on which it calculates days and send automatic email notifications.
However, for some reason it is not present in my cases when I implemented the project. So here is what I did.
I created a simple GI from CRCase table and just added three columns to the ResultsGrid, viz. CaseCD, LastActivity & LastActivityAge. What I get is there is no values in LastActivity & LastActivityAge columns for all cases. I am not sure how it works or how should I get the values for these two fields.
I have also checked CRActivityStatistics table for LastIncomingActivityDate and LastOutgoingActivityDate fields. And these two fields has values for all the cases.
Any suggestions would be much appreciated.
PS. I am using 2018 R2 ver 18.201.0050.
acumatica
add a comment |
I am referring to Send Case Reminder project in GitHub where it has LastActivity and LastActivityAge for each case based on which it calculates days and send automatic email notifications.
However, for some reason it is not present in my cases when I implemented the project. So here is what I did.
I created a simple GI from CRCase table and just added three columns to the ResultsGrid, viz. CaseCD, LastActivity & LastActivityAge. What I get is there is no values in LastActivity & LastActivityAge columns for all cases. I am not sure how it works or how should I get the values for these two fields.
I have also checked CRActivityStatistics table for LastIncomingActivityDate and LastOutgoingActivityDate fields. And these two fields has values for all the cases.
Any suggestions would be much appreciated.
PS. I am using 2018 R2 ver 18.201.0050.
acumatica
add a comment |
I am referring to Send Case Reminder project in GitHub where it has LastActivity and LastActivityAge for each case based on which it calculates days and send automatic email notifications.
However, for some reason it is not present in my cases when I implemented the project. So here is what I did.
I created a simple GI from CRCase table and just added three columns to the ResultsGrid, viz. CaseCD, LastActivity & LastActivityAge. What I get is there is no values in LastActivity & LastActivityAge columns for all cases. I am not sure how it works or how should I get the values for these two fields.
I have also checked CRActivityStatistics table for LastIncomingActivityDate and LastOutgoingActivityDate fields. And these two fields has values for all the cases.
Any suggestions would be much appreciated.
PS. I am using 2018 R2 ver 18.201.0050.
acumatica
I am referring to Send Case Reminder project in GitHub where it has LastActivity and LastActivityAge for each case based on which it calculates days and send automatic email notifications.
However, for some reason it is not present in my cases when I implemented the project. So here is what I did.
I created a simple GI from CRCase table and just added three columns to the ResultsGrid, viz. CaseCD, LastActivity & LastActivityAge. What I get is there is no values in LastActivity & LastActivityAge columns for all cases. I am not sure how it works or how should I get the values for these two fields.
I have also checked CRActivityStatistics table for LastIncomingActivityDate and LastOutgoingActivityDate fields. And these two fields has values for all the cases.
Any suggestions would be much appreciated.
PS. I am using 2018 R2 ver 18.201.0050.
acumatica
acumatica
asked Nov 22 at 18:35
Krunal
429314
429314
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Since you do see expected data within the CRActivityStatistics but don’t see the proper values on your GI that would suggest that your join relationship might be incorrect. This could be the issue in your GI and in your code. The proper join is CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID.
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
add a comment |
I was able to get this through DAC extension
#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
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436551%2fhow-do-i-get-lastactivity-and-lastactivityage-in-case%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Since you do see expected data within the CRActivityStatistics but don’t see the proper values on your GI that would suggest that your join relationship might be incorrect. This could be the issue in your GI and in your code. The proper join is CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID.
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
add a comment |
Since you do see expected data within the CRActivityStatistics but don’t see the proper values on your GI that would suggest that your join relationship might be incorrect. This could be the issue in your GI and in your code. The proper join is CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID.
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
add a comment |
Since you do see expected data within the CRActivityStatistics but don’t see the proper values on your GI that would suggest that your join relationship might be incorrect. This could be the issue in your GI and in your code. The proper join is CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID.
Since you do see expected data within the CRActivityStatistics but don’t see the proper values on your GI that would suggest that your join relationship might be incorrect. This could be the issue in your GI and in your code. The proper join is CRCASE.NOTEID = CRACTIVITYSTATISTICS.NOTEID.
answered Dec 13 at 16:26
jjacob
611
611
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
add a comment |
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
– Krunal
Dec 14 at 6:25
add a comment |
I was able to get this through DAC extension
#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
add a comment |
I was able to get this through DAC extension
#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
add a comment |
I was able to get this through DAC extension
#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
I was able to get this through DAC extension
#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
#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
#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
answered Dec 14 at 6:29
Krunal
429314
429314
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436551%2fhow-do-i-get-lastactivity-and-lastactivityage-in-case%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown