Task #621

Create LongRunningTask detail page

Added by Peter Šourek 12 months ago. Updated 6 months ago.

Target version:
Start date:
Due date:
% Done:



There is currently only limited info displayed in pop up detail of long running task. Aim of this ticket is to create detail page for long running tasks, which would show user processed entities with some additional info about them. Here is a list of functional requirements:

  • Add dry-run button (may require backend implementation)
  • Show all processed entities along with some basic info about them (use EntityInfo component)
  • Show status of each processed entitzy (take inspiration from provisioning queue)
  • Allow filtering on these entities (by status, id...)
  • Allow column sorting of these entities
  • Show same info also for currently running tasks (update detail dynamicaly?)

Other part of this ticket is to create page that shows list of processed items for stateful long running task (which LRT uses to determine which entities it should process and which were already processed) and enable Create, Read and Delete operations on these items. Reason for this is to allow administrators to re-run task for entities that were already processed by that task. Functional requirements for this are as follows:

  • Show all processed items in a table
  • Allow filtering and sorting
  • Allow Create(?), Read and Delete Operations on these items

Also it would be nice to modify current long running task detail to

  • show time when it was executed (now it is only creation)
  • show exact time it took to execute the task


Task #644: Dry RunClosedMarek Klement

Task #645: Refactoring of IdmProcessedTaskItemNewRadek Tomiška

Task #696: Agenda of Task ItemsIn ProgressMarek Klement

Related issues

Related to CzechIdM - Task #872: Operation state - add better tooltip with code. Closed 12/13/2017


#2 Updated by Peter Šourek 12 months ago

  • Description updated (diff)

#3 Updated by Radek Tomiška 12 months ago

  • Assignee changed from Radek Tomiška to Marek Klement

I read the requirements / wishes above and it looks ok. I think the both parts solves the same thing => LRT detail with items (IdmProcessedTaskItem) and operations on them. I want to see technical design before implementation starts (entities will change, new contents will be added, rest, use cases and their technical design, etc.). We can split ticket, it will be easier:
- add start date (i think implementation started already ...)
- add LRT detail on new page instead modal with items table
- how to show some dynamic information about LRT

Note: Entity IdmProcessedTaskItem should be refactored deeply - use entity (entityType + entityIdentifier) instead dto as column, rename table to keep LRT and items together ...

#4 Updated by Marek Klement 12 months ago

  • Status changed from New to Needs feedback
  • Assignee changed from Marek Klement to Radek Tomiška

This is my technical design:
Make taskStarted
1. Add to classes IdmLongRunningTask and IdmLongRunningTaskDto DateTime taskStarted, which indicates when the task was started.
2. In class AbstractLongRunningTaskExecutor add to function start() timestamp to taskStarted =;
3. Add new column to database with this timestamp (V1_00_027__long-running-task-started.sql)

Make new page LRTDetail
1. Make LongRunningTaskDetail in Content-Scheduler
2. a) Make basic info about LRT in the header of the page.
- created, started, task duration, instance, processed, task type, parameters, description, result
- this info will be similar to popover face which is already implemented in current version of IDM
b) Filter will be hovered default. Same as other filters.
- type filter, text filter, date filter, state filter
c) Table with LRTItems – entities
- entity type, state, entity name, created, modified

3.    In LRTTable.js make instead of popover face a link to another page (to detail)
- will be similar to users page
- in URL will use ID of LRT
4. I will get all needed information about LRT from LRT id and show it in header
5. Make a new controller in scheduler rest.impl *- LongRunningTaskItemController to provide service to frontend
6. I will get all needed information about LRTItem from ItemService and show it in table

#5 Updated by Radek Tomiška 12 months ago

  • Status changed from Needs feedback to In Progress
  • Assignee changed from Radek Tomiška to Marek Klement

I think, its ok. Other use cases (active operations ...) could be added after detail will be created .)

#6 Updated by Vít Švanda 10 months ago

  • Target version deleted (Diamond (7.4.0))

#7 Updated by Radek Tomiška 7 months ago

  • Target version set to Garnet (7.7.0)

I did test and review. I found a lot of issues, mainly:
- when start date was added, then result state and exception was lost from LRT detail
- detail and queue items tables had broken layout (missing panels etc). I created standard LRT detail with tabs.
- contents localization was mixed up with entities localization
- i cleaned up pom.xml dependencies and removed code for development (dev tools, console)
- hard coded time format was used

I fixed it all, because i wanted to merge this old ticket it into develop and move forward.

Add please documentation and create new tickets for unimplemented features (add item into queue ...).

#8 Updated by Radek Tomiška 7 months ago

I almost forgotten - i had to remove DRY_RUN state from operation result - on some places doesn't make sense - e.g. in provisioning queue. I've replaced this state with NOT_EXECUTED and added new result code DRY_RUN.

Add please this change to documentation too.

#9 Updated by Radek Tomiška 7 months ago

  • Related to Task #872: Operation state - add better tooltip with code. added

#10 Updated by Marek Klement 7 months ago

  • Assignee changed from Marek Klement to Radek Tomiška

#11 Updated by Radek Tomiška 6 months ago

  • Status changed from In Progress to Closed
  • Assignee changed from Radek Tomiška to Marek Klement

Nice, thx!

Also available in: Atom PDF