August 17, 20269 min read
Merging duplicate master records: what happens to the one that loses
Matching finds the pair. Survivorship picks the values. Then somebody clicks Merge, and that click has to settle four things nobody wrote down: what happens to the losing identifier, to every row that points at it, to the row itself, and to the audit trail. Get any of them wrong and the merge is either irreversible or invisible. Here is what a merge has to guarantee, and why unmerge is the feature that tells you whether the first four were done properly.
Read moreAugust 14, 20268 min read
Your MDM users are not in Active Directory any more. Who turns them off?
MDS never held an identity. Every user and every group came from Active Directory, which meant somebody else did your deprovisioning and you never had to think about it. Move to almost any replacement and that stops being true on day one. The sign-in is the easy half. The half that bites is the leaver whose editor account nobody switched off, because IT disabled the AD account and considered the job done.
Read moreAugust 12, 20269 min read
Your first business rule will fail on data you already have
You write a rule saying every supplier needs a VAT number in the right format. It is obviously correct, so you save it, and eleven years of accumulated master data turns red. Twelve thousand rows, most of them belonging to suppliers nobody has touched since 2019. The instinct is to pull the rule until the data is clean. That is the wrong order, and it is the one mistake that stops teams ever getting a second rule live.
Read moreAugust 10, 202611 min read
Business rules in Primentra: what the engine checks, and where it checks it
A rule is two boolean trees, an IF and a THEN, over the columns you already have. That one sentence covers uniqueness, format masks, ranges, date windows and conditional requirements, which is why there is no separate screen for each. This is the whole vocabulary, the operators that go with it, and the part most feature pages leave out: which write path enforces a rule, and what each one does when a row breaks it.
Read moreAugust 10, 20269 min read
Stopping duplicate rows: unique keys, combination keys, and the blanks nobody thinks about
Every master data set has a key that is unique in theory. The interesting ones are unique on two columns together and on neither alone, which is where a unique index stops helping and starts lying. This is how combination keys work, what they do with an empty value, and why the answer differs from the one your database would give.
Read moreAugust 10, 20268 min read
Enforce a format without writing a regular expression
A format mask reads like the thing it describes. AAA-9999 is three letters, a hyphen, four digits, and a data steward can read that without being taught anything. There is a second reason we made masks the default and regex the fallback, and it is not about readability at all: SQL Server cannot evaluate a regular expression.
Read moreAugust 10, 20268 min read
Date rules that catch what a data type cannot
A DateTime column will accept 1 January 1900 and 31 December 9999 without complaint, because both are dates. Almost every date problem in master data is a valid date in the wrong place: a contract that ends before it starts, a launch in 2027 on a product that is already selling, a certificate that expired eight months ago. Thirteen operators, and three of them have no MDS equivalent.
Read more