Step - 1: Build a rule which applies the dynamic link on the task on conditional basis Name: rule!getTaskLinkForGivenTasks Inputs: 1. label (Text) 2. task (Number Integer) 3. arrayOfTaskId (Number Integer [Multiple]) Description: This expression returns the link to task, given if the task id is among the arrayOfTaskId. Definition: = if( rule!APN_isEmpty(ri!arrayOfTaskId), null, if( contains(ri!arrayOfTaskId,ri!task), a!processTaskLink(label:ri!label,task:ri!task), null ) ) Step 2: a!gridTextColumn( label: local!batchProcessResult.columns[3].label, field:"Task Description", data: local!batchProcessResult.data[3].cells.value, links: apply( rule!getTaskLinkForGivenTasks(label: _, task: _, arrayOfTaskId:{}), merge( labels of the tasks (corresponding to local!batchProcessResult.data[3].cells.value) from the current datasubset, task ids of the tasks (corresponding to local!batchProcessResult.data[3].cells.value) from the current datasubset ) ) )