I am using a!queryProcessAnalytics to fetch data from a portal report with a group context.

#queryProcessAnalytics I am using a!queryProcessAnalytics to fetch data from a portal report with a group context. I am wondering if there is a way to add a user context (and a process model context) to the report after it has already been created? In the last query filter below marked "HERE", I am returning all users in a selected group using fn!distictusers, and trying to filter the data within the a!queryProcessAnalytics based on the users in that group. It is not working because it throws an error "All “data” arrays must not contain more items than the specified “batchSize”, but “batchSize” was 25 and the largest column data array had 26 items". It works in some lower environments but not all, which makes me think its a data issue. Does anyone have any ideas on how to fix this?

a!queryProcessAnalytics(
report: local!portalReportId,
contextGroups: local!selectedDepartment,
query: a!query(
...

OriginalPostID-193213

  Discussion posts and replies are publicly visible

Parents
  • @mattj As said by @tim.clarke, the culprit here is mostly the task assigned to. To the best of my knowledge, the array could have been flattened which is causing you the mismatch in the data held by the columns.

    The way how we do generally in this case is as follows, we will apply the function on each record in the datasubset, rather than a field in it.

    Example:
    apply(
    \trule!prepareAppianUserDisplayNameById,
    \tri!datasubset.data,
    \tri!COL_IDX_TASK_ASSIGNED_TO
    )

    where the rule!prepareAppianUserDisplayNameById on each record found in the ri!datasubset and ri!COL_IDX_TASK_ASSIGNED_TO acts as the context. And this approach hasn't caused any problems to us till date and we can also stay away from array flattening issues.


    An other way of overcoming this issue is to ensure that the data being passed to an function isn't flattened (we can use fn!touniformstring() to prevent the array from being flattened) when each field (for instance, task assignees) in a record is able to hold more than one value.
Reply
  • @mattj As said by @tim.clarke, the culprit here is mostly the task assigned to. To the best of my knowledge, the array could have been flattened which is causing you the mismatch in the data held by the columns.

    The way how we do generally in this case is as follows, we will apply the function on each record in the datasubset, rather than a field in it.

    Example:
    apply(
    \trule!prepareAppianUserDisplayNameById,
    \tri!datasubset.data,
    \tri!COL_IDX_TASK_ASSIGNED_TO
    )

    where the rule!prepareAppianUserDisplayNameById on each record found in the ri!datasubset and ri!COL_IDX_TASK_ASSIGNED_TO acts as the context. And this approach hasn't caused any problems to us till date and we can also stay away from array flattening issues.


    An other way of overcoming this issue is to ensure that the data being passed to an function isn't flattened (we can use fn!touniformstring() to prevent the array from being flattened) when each field (for instance, task assignees) in a record is able to hold more than one value.
Children
No Data