Optimizing iUpdate jobs by updating only the contacts that need changes
Running iDMS iUpdate jobs against large data sets can be time consuming and unnecessary when many records already contain the correct values. It is a best practice to only update the records that actually need to change by using a query to calculate, compare, and filter data before it reaches iDMS.
Rather than updating every contact record, this method does the following:
- Calculates the correct value using a query
- Compares the calculated value to the current value stored in iMIS
- Filters out records where no change is required
The resulting iUpdate job processes fewer records, runs faster, and avoids unnecessary database updates. This approach also creates a clear source of truth for what the data should look like, making the update logic easier to review, test, and maintain over time.
Understanding when to use this approach
This approach is recommended when the following are true:
- A staff user is updating large volumes of records.
- The update value is calculated or derived (for example, based on business rules or multiple fields).
- iUpdate jobs are taking longer than expected.
- A staff user wants to avoid re-updating records that are already correct.
- A staff user needs a more auditable and predictable update process.
TipFor small, one-time updates or jobs where all records must be updated regardless of current values, this level of filtering may not be necessary.
Creating the necessary components for the iUpdate job
The following components must be created for this process:
- An IQA group that returns the relevant records
- A custom business object that exposes the IQA group
- A query that compares the calculated values and the current values (comparison query)
- An iUpdate job using the comparison query
Creating the IQA query group
The group created in this step will expose the calculated values as a database view for the business object you will create in step 2.
Do the following to create the IQA query group:
- Go to RiSE > Intelligent Query Architect.
- Choose a folder, then click New > Query.
- Enter a Name.
- (Sources tab) Choose the desired sources. The source should return every relevant record.
- (Display tab) Add the following:
- The iMIS ID or any other unique key
- From the SQL Expression field, create a calculated field representing what the data should be.
- Click Run to ensure the data is correct. The results should include the iMIS ID and one or more calculated fields containing the desired end value. This query represents the source of truth for what the data should look like.
- Click Save.
- Click the Group tab:
- Enter a Group name.
- Do not change the Contact key column or Refresh members every settings.
- Click Save.
Creating the custom business object using the query group
Do the following to create the custom business object using the query group:
- Go to RiSE > Business Object Designer.
- Click New > Design Business Definition.
- Enter a Name, then click Create Object.
- Click the Database tab:
- From the Tables area, click Add.
- Search for and select the query group you just created. The group will appear as a view named similar to vIqa
<GroupName>. - From the Available Columns area, select the iMIS ID and the calculated fields from the query, then click Add as Properties.
- Click Save & Publish. This business object represents the new/calculated data.
Creating the comparison query
The comparison query allows you to compare the calculated values with the current values. This allows you to understand what the values actually are and what they should be.
Do the following to create the comparison query:
- Go to RiSE > Intelligent Query Architect.
- Choose a folder, then click New > Query.
- Enter a Name.
- (Sources tab) Add the following sources:
- The standard iMIS source containing the current value.
- The custom business object you just created that contains the calculated value.
- Create a relationship between the two sources using the appropriate matching field (typically the iMIS ID).
- (Filters tab) Add a filter where the current filed value is not equal to the calculated field value:
- From the Property drop-down, choose the current property.
- From the Comparison drop-down, choose Not Equal.
- From the Value drop-down, choose Property, then select the calculated field value.
- (Display tab) Choose the following properties:
-
iMIS ID
-
The calculated field(s) that iDMS will use to perform the update
WarningConfirm the property Alias fields and datatypes match iDMS requirements.
-
- (Security tab) Enable Available via the REST API.
- Save the query.
Creating the iDMS iUpdate job
Create a new iDMS iUpdate job using the comparison query:
- Navigate to the Cloud Dashboard.
- Go to iUpdate > New.
- Create the new job using the comparison query.
- Configure the remaining update rules as needed.
- Run or schedule the job. Only the contact records that need updates will be updated.
