Override delete and copy with a custom task

  • 24 August 2020
  • 3 replies

Userlevel 4
Badge +11

TL;DR: We want a custom task bound to the standard copy and delete functions (in the ribbon and buttons).

As we're tempting to roll out the software without having to explain the functions in the ribbon, we continuously encounter the same issue that end users don't understand the copy task and the delete task (why it's blocked or doesn't work as expected). It's a difficult one...

Please consider we're an ISV and targeting users on which we don't want and can train in person. We hope by changing this our users more often get a 'as expected' experience.


The copy button creates by default a new record based on the selected record. This is in a certain amount of cases very useful. For example if you want to copy a purchase order line, adjust some cells and continue. There are also a lot of situations where the meaning of the copy button is interpreted differently: Users expect a copy of a record including the (partial) details. As example you could imaging copying a purchase order: The user probably wants to change some values such as a order date, but remain the details.

I'm aware that this does something with the consistency of the Copy button. But explaining the difference also is not easy: Why is there a task to copy defined, and a generic button copy? End users without knowledge of the Thinkwise platform don't know, and probably will never want to know.

We would like to override the generic copy button with a custom task implementation. The task doesn't "Add" a record immediately, but the task pop-up shows up instead.


We apply the default 'no action' model. Applying a cascading deleting model is a bit tricky, we prefer not to do*. This causes that in all subjects with details, the default delete is disabled and there's a task defined. This is confusing for users: Why is the delete button disabled, and is there a task doing exactly the same? (As for a end user point of view: why don't you enable the delete button in the ribbon?)

Another major benefit of the task, is that it's currently multi row supported (multi row task execution). This has a great benefit on performance, where as the generic delete does remove 1-by-1 and can be painfully slow.

We would like to override the generic delete button with a custom task. This task must be multi row supported and has a custom implementation regarding what to delete. I could imagine a customer dialog entering some parameters could be useful for some use cases.

*: Yes, you can probably change your complete model to 'cascading delete', but I think it's dangerous to do. In fact, the SF also does not apply a cascading delete, probably with a reason?

3 replies

Userlevel 4
Badge +11

Actually, I've omitted the ‘Add’ and ‘Edit’ in the story above, but that could be interpreted the same way to make it more ‘CRUD’. You can imagine that for adding a new record, it's not necessarily to go into form modus, but into a task (or a set of tasks with a proces flow).

Userlevel 5
Badge +3

Really, REALLY like your idea. I'd like to propose one change. Have the form be just the form. So when adding or editing, the input parameters can just be the form fields. This way you maximize flexibility and have a consistent interface to boot.

Userlevel 6
Badge +8

Please add your vote here: