MIM 2016: MIM WAL and the Delta Removed table

The MIM WAL Delta table will tell you if a multi-valued attribute has changed via the following tables

  • Delta/MultiAttrib1/Added
  • Delta/MultiAttrib1/Removed

Works all well and nice until you get a case where the MultiV attrib is cleared by removing all the existing values. That results in a null and there is nothing reported in the Removed table. Might be a big deal if I have an MPR that fires off a workflow when that MultiV attrib changes. In the case where the MultiV is cleared, my MPR will fire off, but no “change” is executed. Lets look at an example

  1. MultiV Attrib1 of a group contains users. I want to track the department of the users in Attrib1. So I set up MPR1 to fire off a workflow1 when Attrib1 changes, get the users Added or Removed from the Delta table and add their department to Attrib2.
  2. When Attrib1 is cleared, my MPR does fire off, but the workflow does nothing because there is nothing in the Delta/Attrib1/Removed table, so Attrib2 incorrectly still has department of users.

Solution

In my workflow1, add an activity to run only if Attrib1 is cleared. If Attrib1 is cleared then use RemoveValues to clear Attrib2.