Whatif execution mode
Whatif instructs the MDE to perform as many operations as it can without changing a
single entity. At the end of the run, an operation report named WHATIF_* is written back to the account
storage, listing everything that would have happened.
Golden rule
Run every new or changed Master Data file in Whatif first, and read the report.
A Master Data load touches every entity it matches. A business key that resolves more broadly than you intended is indistinguishable from a correct one — until the entities are already modified. Whatif turns that risk into a diff you can read before committing to it.
What to look for in the report
The report is grouped by operation, in the processing order:
ADD SITES, REMOVE SITES, UPDATE SITES, ADD SOURCES, and so on. Three things are worth checking every
time:
- The counts. Far more creations than expected usually means a business key that is not matching existing entities — so everything looks new.
- The
REMOVEsections. These are the destructive ones. They should be empty unless you meant them. - The object dumps. Confirm that the properties carry the values you expect, in the properties you expect.
One known limitation
Important
Whatif cannot resolve links to entities it has not actually created. If the MDE would create a source attached to a site that the same run would also create, the source cannot report which site it belongs to — because that site does not exist yet.
In the report this shows up as "SiteId": null. That null is an artefact of Whatif, not a defect in your
file. On a real run the site is created first (see the processing order) and the
link resolves normally.
Sample report
Note the "SiteId": null in the source dump — the limitation described above:
=========== ADD SITES ===========
Object type: SiteBusiness key(s): 999
Operation(s): Create site
Object dump: {
"Location": null,
"ClientData": {
"Location Master Data": {
"Technical Identifiers": {
"LOC_ID": 999,
"CADI NR": 998
},
"Other Information": {
"LOC_TYP_NAME": "Verity",
"PROVINCE": "Branbant Wallon"
},
"EAN": {
"MTR_EAN_ELE_OFF": "541448860999999999",
"MTR_EAN_GAS": "541448860999999998",
"GOS": "541448860999999997"
}
}
},
"TypeId": 15,
"Street": "6 Rue Emile Franqui",
"PostalCode": "1345",
"City": "LLN",
"Country": null,
"TimeZoneId": "Romance Standard Time",
"Id": 0,
"Name": "Verity HOME"
}
=========== REMOVE SITES ===========
=========== UPDATE SITES ===========
=========== ADD SOURCES ===========
Object type: SourceBusiness key(s): 8888
Operation(s): Create source
Object dump: {
"SiteId": null,
"SiteName": null,
"SerialNumber": "8888",
"SimId": null,
"DisplayVariableTypeId": 131,
"GatewayId": 7057,
"GatewayTypeId": 0,
"MeterAddress": null,
"ClientData": {
"Meter Master Data": {
"Technical Identifiers": {
"MTR_ID": 8888
},
"Other Information": {
"MTR_POLL": "Y",
"MTR_TYP_NAME": "ELEKTRICITEIT",
"MTR_PULSE": 0.01
}
}
},
"EanNumber": null,
"MeterNumber": null,
"Localisation": null,
"Description": null,
"Tags": [
"V_FRISCOUNT",
"raw"
],
"Id": 0,
"EnergyTypeId": 1,
"EnergyUsageId": null,
"Name": "Verity_SOURCE1",
"SourceTypeId": 77,
"TimeZoneId": null
}
=========== REMOVE SOURCES ===========
=========== UPDATE SOURCES ===========
=========== CHANGE SOURCE SITE ===========