Posted May 31 by Karen Rudnitski.

This article describes the different ways to configure conflict management for your application.

56 views. 0 comments.

Scenario

The design of the system is oriented around collaboration. Rather than locking an item to one user at a time, the system enables multiple users to access a single item at the same time.

When two users change a single item simultaneously, the resulting behavior depends on how the application is configured.

Explanation

The actual result depends on the "When users work on this property at the same time, report conflicts" setting on the definition of property A. Four options are available:

  • When a change is made by other user
    The most strict option, a conflict will be reported if a change has been made to any of the properties - not just to the property in question.

  • When changed to the same or different value
    The most conservative option, a conflict will be reported regardless of the value.

  • When changed to a different value only
    The most relaxed (or least strict) option, this compares the changed value and will report the conflict only if the values differ.

  • Never
    The 'last writer wins' and conflicts will not be reported.

Example

Let's examine the following sequence of actions:

  1. John opens item 77 which displays a form showing two properties A and B. A has the value 55.
  2. While John has this displayed on his screen, Mary also opens item 77 and sees the same values for A and B. Mary changes A from 55 to 155 and closes the item.
  3. Meanwhile John changes A from 55 to 99.

When John saves his item, there are two possible results: John's changes replace Mary's changes, or the system can report a conflict informing John that someone else changed A and asking if he wants the value of A to be 77 or 99.

If 'When a change is made by other user' is selected and Mary did not change A but rather changed B (and B has the same conflict setting), and John changes A but not B, then a conflict is reported when John saves his changes because Mary changed B.

If 'When changed to a different value only' is selected and Mary had changed A to the same value as John (99), then there would be no conflict reported: A would simply be changed to 99.

The option 'When a change is made by other user' is often used for forms where a user uses a value to make decisions about what they change. A good example is a loan application, where the applicant's credit score has a large effect on how a user changes a form - the credit score property should use this setting.

Steps

Based on the desired resulting behaviour for the application, select the most appropriate option for "When users work on this property at the same time, report conflicts".

Additional information

The option 'When a change is made by other user' has two important limitations:

  • Only properties visible in the form (or used by rules active in the form) will be considered. For example: If the form does not display Credit Score, then changes to Credit Score will not cause a conflict.
  • Only properties in the same entity are considered for conflicts when changes are made. For example: If the Credit Score were in another entity and presented on the form using a relationship, no conflict will be reported (this limitation exists because of performance issues). In some cases it may be useful to use a rule to update a property that is on the same entity (and is displayed on the form) to ensure that an important value is included in conflict detection

Table of Contents

Your comment

To leave a comment, please sign in.