Maximum rows for Process Task Report

Hi Team,

What is the Maximum limit value to fetch the the rows from the task report....?

my task report having 600 rows(might increase to 1000 and more)

  Discussion posts and replies are publicly visible

Parents
  • For process reports in general, I haven't found any max yet, having run up to 7500 or so per page in the old /designer interface for bulk cleanup, until performance degraded enough to settle on about 5000 per.  My gut says that the Execute Process Report service might work similar with no official limit set in the system config.

    Scalability concerns me for this solution however - are you collecting these tasks to display on a SAIL form for reporting, etc?  In situations such as those, I would strongly recommend a!queryProcessAnalytics() with paging and filtering applied.  

  • 0
    Appian Employee
    in reply to Chris

    There's a maximum of 10000 results that can be returned using either Execute Process Report or a!queryProcessAnalytics(). That being said, I share the scalability concerns that Chris mentioned - why do you need to query that many items?

  • Actually, I want to run the "Execute Process Report" Smart service to collect all the active tasks for sending an email notification. So thought of asking about this.

  • 0
    Appian Employee
    in reply to Harris

    Could you set up an escalation on each of your tasks instead? That way you don't need to query any tasks and you can set up the logic directly in the User Input Task node, which will be much more scalable.

  • Actually my original task is, Weekly once, I need to send an email to the customers.

    The email should contain the Task details of particular user (single users might have multiple tasks).

    So, as a reminder we need to schedule a Process Model which will send the emails to the user.

    In addition to it.

    In the email body..

    How can i generate a dynamic table (below example)

    example:

    a     b    c   d

    1     x     y   z

    2    y      z   x

    the a,b,c,d  are the column names which never change, but the now of rows will change based on User's task.

    Some users might have one task then it should contain only one row.

    Note: the first a should contain hyperlink for the users to navigate to the task page to finish the task.

    Please provide your suggestions if any

    Thanks

Reply
  • Actually my original task is, Weekly once, I need to send an email to the customers.

    The email should contain the Task details of particular user (single users might have multiple tasks).

    So, as a reminder we need to schedule a Process Model which will send the emails to the user.

    In addition to it.

    In the email body..

    How can i generate a dynamic table (below example)

    example:

    a     b    c   d

    1     x     y   z

    2    y      z   x

    the a,b,c,d  are the column names which never change, but the now of rows will change based on User's task.

    Some users might have one task then it should contain only one row.

    Note: the first a should contain hyperlink for the users to navigate to the task page to finish the task.

    Please provide your suggestions if any

    Thanks

Children
  • You might be slightly more scalable if you first query for a list of distinct users that have tasks, then run your email nodes in a sub process as MNI for each user - the sub process will query tasks only for that user and send via email.  Although as Peter mentions, using the task escalation timer is a much better way to do things all around if it can fit your requirements.  

    For the email table, we typically do this by creating the HTML manually, see this expression for an example:

    a!localVariables(
      local!taskData: {
        {link: "http://www.google.com", task: "Task 1", assignee: "Jim", details: "test1"},
        {link: "http://www.google.com", task: "Task 2", assignee: "Jim", details: "test2"},
        {link: "http://www.google.com", task: "Task 3", assignee: "Jim", details: "test3"},
        {link: "http://www.google.com", task: "Task 4", assignee: "Jim", details: "test4"}
      },
      joinarray(
        append(
          {"<table><tr><td>A</td><td>B</td><td>C</td><td>D</td></tr>"},
          {
            a!forEach(
            items: local!taskData,
            expression: {
              concat(
                "<tr><td><a href='",
                fv!item.link,
                "'>",
                fv!item.link,
                "</a></td><td>",
                fv!item.task,
                "</td><td>",
                fv!item.assignee,
                "</td><td>",
                fv!item.details,
                "</td></tr>"
              )
            }
            ),
            "</table>"
          }
        )
      )
    )