End-to-end workflows
How work moves through Master Data from start to finish, who does each step and what the system does in response.
On this page (13)
Bank account maker-checker
Who: Steward A (master_data_steward), Finance approver B (master_data_finance_approver)
| # | What the person does | What the system does |
|---|---|---|
| 1 | A opens a party > Registrations & banks > Propose (bank) with a valid test IBAN and proof ref | Request MCR-xxxxxx proposed, domain finance; Bank accounts unchanged; A sees the IBAN masked (no partner.bank.reveal) |
| 2 | A opens Bank and tax changes and presses Approve this exact proposal | Refused: no finance permission (and, if given it, 'Somebody other than the person who prepared this change must decide it.') |
| 3 | B opens the same request | B sees the full IBAN (holds partner.bank.reveal) and the SHA-256 |
| 4 | B approves | State approved; the party's Bank accounts lists an active account with approved time and hash |
| 5 | Open Reports > Sensitive changes | The request shows requested by A, decided by B, decided at, hash |
Bank account replaced, never edited
Who: Steward A, Finance approver B
| # | What the person does | What the system does |
|---|---|---|
| 1 | A proposes an update for the active bank account (API action update with its target_id) with a new IBAN | Request proposed |
| 2 | A proposes a second update for the same account | The first request goes stale |
| 3 | B tries to approve the stale one | Refused 'This request is already stale.' |
| 4 | B approves the newest | Old account retired, new account active and pointing to the old one; nothing edited in place |
Tax registration change reaches every company
Who: Steward A, Tax steward T, member of companies 1 and 2
| # | What the person does | What the system does |
|---|---|---|
| 1 | Party released to companies 1 and 2; A proposes VAT AE registration 100123456700003 | Request domain tax, proposed |
| 2 | A proposes '200123456700003' | Refused 'A UAE TRN is 15 digits starting with 1.' |
| 3 | T approves the valid proposal | Registration active; party registration = new TRN |
| 4 | Open the partner in company 1 and in company 2 | Both partners' tax id = 100123456700003 |
Duplicate found -> merged -> references resolved
Who: Steward A, Board member B (master_data_board)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Create two customers with the same name and mobile in Contacts | The second save already records a duplicate pair |
| 2 | A: Duplicates and merges > Scan partners | Pair listed 'same name, same phone', confidence 80 |
| 3 | A: Propose merge, survivor = the older customer | Merge MRG-xxxxxx proposed with the impact count |
| 4 | A tries to Approve | Refused 'Somebody other than the person who prepared this merge must decide it.' |
| 5 | B approves | Merge applied; the other customer inactive; pair state merged |
| 6 | Call /mdm/resolve/partner/<merged id> | Returns the survivor's id; the merged customer's old invoices still show the merged customer |
Product template to channel
Who: Product manager P, Steward S, Steward S2
| # | What the person does | What the system does |
|---|---|---|
| 1 | P creates attributes SIZE (S,M,L), COLOUR (RED,BLUE) - needs a steward - and template TSHIRT with both axes | Template draft |
| 2 | P: Generate all variants | 6 variant products, not sellable |
| 3 | P: Validate; S: Approve; S: Release | Released; all 6 variants active |
| 4 | P registers EAN-13 6291000000013 for TSHIRT-M-RED | Barcode active |
| 5 | P (mdm.publish): Catalogues > WEB > publish TSHIRT-M-RED | Published v1; visible on the public catalogue API without cost |
| 6 | S: Archive the template | Variants inactive; the public API no longer returns TSHIRT-M-RED (inactive products are filtered) |
Import with errors -> fix -> commit
Who: Steward with mdm.import
| # | What the person does | What the system does |
|---|---|---|
| 1 | Upload a 5-row products CSV with 2 bad rows (missing name, unknown unit) | Preview: 3 valid, 2 with problems; nothing written |
| 2 | Discard the batch | State discarded |
| 3 | Fix the two rows in the CSV and upload again | Preview: 5 valid, 0 problems |
| 4 | Write 5 valid rows | Committed; Written 5; each row links to the product it became |
| 5 | Upload the same file again | Preview: every row 'code: <code> is already a product'; Write button disabled (0 valid) |
Tracking change with stock in hand
Who: Product manager P, Steward S
| # | What the person does | What the system does |
|---|---|---|
| 1 | Product with lots in stock; P tries to switch off expiry on the product form | Refused '<code> has lots in stock. Change expiry management through a tracking policy...' |
| 2 | P proposes a policy version without expiry and a 20+ character conversion plan | Draft version |
| 3 | P (if also steward) tries to Activate | Refused 'Somebody other than the person who prepared this tracking change must decide it.' |
| 4 | S activates | Version active, previous superseded, product expiry management off; existing lot dates unchanged |
Account mapping drawn up and approved
Who: Product manager P, Finance approver F
| # | What the person does | What the system does |
|---|---|---|
| 1 | P: New mapping for category 'Test cat' with stock account = an income account | Draft MAP-xxxxxx |
| 2 | F: Activate | Refused '<code> <name> is an income account; the stock account must be asset.' |
| 3 | P: New mapping with correct accounts | Draft v2 |
| 4 | F: Activate v2 | Active; category stock account updated; P could not have activated it |
New supplier with a verified bank account, used on a purchase
Who: Purchasing clerk (partner.manage), Finance controller (partner.bank.reveal), Buyer
| # | What the person does | What the system does |
|---|---|---|
| 1 | Clerk creates contact 'Test Supplier LLC', Contact Type Vendor, TRN, address Dubai, payment terms 30 days | Saved with a code; history row 'created' |
| 2 | Clerk adds a bank account (Test Bank PJSC, IBAN AE07..., SWIFT) with Verification Unverified | Saved; IBAN stored without spaces; audit shows the bank change |
| 3 | Finance controller opens the contact and checks the IBAN against the bank letter (Documents: Bank Letter) | Full IBAN visible to the controller; masked 'AE07 •••• 3456' for a user without partner.bank.reveal |
| 4 | Finance controller sets Verification = Verified and saves | Status Verified; history names who changed it |
| 5 | Buyer adds the supplier as preferred supplier reference on product TST-1001 with quoted cost 420 | Saved on the Purchase tab |
| 6 | Buyer uses More > Create purchase on the product and confirms the RFQ as a purchase order | Draft RFQ to the supplier at 420.00; PO confirmed; supplier summary counts it |
New product with variants and barcodes, then sold
Who: Product manager (product.manage, reference.manage), Salesperson (document.draft), Cashier
| # | What the person does | What the system does |
|---|---|---|
| 1 | Product manager adds variant attribute 'Size' if needed and unit 'Unit' | Configuration masters saved |
| 2 | Creates TST-2001 'Test T-shirt', Stocked goods, price 50, cost 20, Taxes VAT5 | Saved; Tax % 5.00 |
| 3 | Variants tab: Size S (SKU TST-2001-S, barcode), Size M (SKU TST-2001-M, price diff 5); Save; Create product on each row | Two products created: TST-2001-S at 50.00 and TST-2001-M at 55.00 with their barcodes |
| 4 | Prints barcode labels for TST-2001-M (24 labels) | Label page opens with that code |
| 5 | Receives 10 of each variant on a purchase receipt | On Hand 10 each; Stock on hand report lists both |
| 6 | Salesperson scans the M barcode on a quotation, qty 2, confirms and delivers; invoice posted | Line is TST-2001-M at 55.00 + 5% VAT = 115.50 for 2; on hand M becomes 8 |
Credit limit review and credit hold on a customer
Who: Sales rep (document.draft), Credit controller (partner.manage + credit.limit.reveal), Finance manager
| # | What the person does | What the system does |
|---|---|---|
| 1 | Customer has limit 50,000, policy Hard block, exposure 45,000 | Status Limit near (90.0%) |
| 2 | Sales rep confirms an order of AED 10,000 incl. VAT | Refused 'Credit check: This takes exposure to 55000.00, 5000.00 over the limit of 50000.00.' |
| 3 | Credit controller records a credit review: approved 70,000, risk Low, reason | Limit 70,000; review row with old 50,000.00, new 70,000.00, exposure 45,000.00 |
| 4 | Sales rep confirms the order again | Confirmed; exposure 55,000, utilisation 78.6% Watch |
| 5 | An invoice goes 30 days overdue; credit controller sets Hold Type Sales orders with a reason | Status On hold; new order confirms refused 'Customer transaction hold: Sales orders. ...' |
| 6 | Payment received; hold set back to None | Status returns to Watch / Good; orders confirm again |
Contact master data governance on documents
Who: Sales admin (partner.manage), Compliance officer
| # | What the person does | What the system does |
|---|---|---|
| 1 | Sales admin creates a customer with Tax Registration = Registered and TRN 100000000000003 | Saved; VAT chip on the header |
| 2 | Uploads the trade licence in Documents with expiry 2026-12-31 | Status 'Expiring · 90d' on 2 Oct 2026 |
| 3 | Compliance officer sets KYC Status Verified and Next review date | Saved and visible in History |
| 4 | Compliance officer blacklists the customer with a reason after a test fraud flag | Credit status Blocked; a sales order confirm is refused '<name> is blacklisted: <reason>.' |
| 5 | Sales admin archives the customer | Not offered on new documents; existing documents and statements still open |
Product shared across two companies
Who: Group product manager (product.manage in both companies), Accountant in company B (product.cost.view)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Manager creates TST-3001 in company A with cost 100, price 150 | Saved in A |
| 2 | Company Access: shares with company B and applies | 'Shared with B'; B has its own linked copy |
| 3 | Accountant in B sets B's cost to 105 and price 160 | B's figures change; A's stay 100 / 150 |
| 4 | Manager renames the product in A | The name changes in B too; B's cost and price unchanged |
| 5 | B receives 5 units; manager tries to unshare B | Refused '<B> still holds stock of TST-3001; it stays shared until that stock is zero.' |