How do I get LastActivity and LastActivityAge in Case












0














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.










share|improve this question



























    0














    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.










    share|improve this question

























      0












      0








      0







      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.










      share|improve this question













      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 at 18:35









      Krunal

      429314




      429314
























          2 Answers
          2






          active

          oldest

          votes


















          0














          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.



          enter image description here



          enter image description here






          share|improve this answer





















          • Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
            – Krunal
            Dec 14 at 6:25



















          0














          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








          share|improve this answer





















            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
            });


            }
            });














            draft saved

            draft discarded


















            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









            0














            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.



            enter image description here



            enter image description here






            share|improve this answer





















            • Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
              – Krunal
              Dec 14 at 6:25
















            0














            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.



            enter image description here



            enter image description here






            share|improve this answer





















            • Thanks, I was aware of this joins though as I have already mentioned in the initial question itself.
              – Krunal
              Dec 14 at 6:25














            0












            0








            0






            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.



            enter image description here



            enter image description here






            share|improve this answer












            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.



            enter image description here



            enter image description here







            share|improve this answer












            share|improve this answer



            share|improve this answer










            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


















            • 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













            0














            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








            share|improve this answer


























              0














              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








              share|improve this answer
























                0












                0








                0






                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








                share|improve this answer












                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






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 14 at 6:29









                Krunal

                429314




                429314






























                    draft saved

                    draft discarded




















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    Alexandru Averescu

                    Trompette piccolo