Source: projects/identity-management/oim-kb-update/runs/2026-04-27-5.md
> Source: projects/identity-management/oim-kb-update/runs/2026-04-27-5.md
OIM KB Update — Run 2026-04-27 (5)
Focus: concrete DB-backed wiring for IT Shop product-node creation and placement:
- how
BaseTreeAssignmaps entitlement types toBaseTreeHas<type>relation tables, - what
QER_PITShopProductNodeCreate_bactually does (PR node creation path), - how
AccProductchanges feed into ShoppingRack refresh tasks, - cross-check with shipped module SQL (
C:\Dev\OneIdentityManager.10.0\Modules\...) and vendor docs.
No sandbox mutations were performed in this run (SELECT-only DB work + WinRM file inspection).
What changed in understanding (new findings)
BaseTreeAssignis the authoritative “IT Shop enabled types” registry:IsITShopEnabled=1rows show which entitlement tables can participate (e.g.ADSGroup,ESet,QERReuse, …).- It also tells you the relation (MN) table used for shelf assignments (e.g.
ADSGroup→BaseTreeHasADSGroup). QER_PITShopProductNodeCreate_bdescribes the product-node creation mechanism in this sandbox:- It derives the right table + MN table from
BaseTreeAssignand dialog metadata. - It checks whether an entitlement is assigned to the BO shelf (row in
BaseTreeHas<type>withUID_Org=<BO shelf UID>). - If assigned, it creates a PR node under that shelf (
BaseTree.ITShopInfo='PR') and also createsBaseTreeHasObjectfor the PR node + entitlement ObjectKey. - It updates
ITShopOrg.UID_AccProductviaQBM_PJobCreate_HOUpdatebased onUID_ACCProductread from the entitlement record (e.g.ADSGroup.UID_AccProduct). - It does not reference
AccProductInBaseTree, which supports the “legacy/unused mapping table” hypothesis for this sandbox. QER_TUAccProduct(trigger onAccProduct) enqueuesQER-K-ShoppingRackProductNodetasks when product approval/category metadata changes:update(UID_PWODecisionMethod)→ enqueue refresh for allBaseTreerows whereBaseTree.UID_AccProductmatches.update(UID_AccProductGroup)→ enqueue refresh similarly.- Shipped install media (sandbox host) matches the live DB behavior:
C:\Dev\OneIdentityManager.10.0\Modules\QER\database\MSSQL\040Procedures\ITShop\QER_PITShopProductNodeCreate.sqlcontains theBaseTreeAssignjoin + PR node +BaseTreeHasObjectlogic.C:\Dev\OneIdentityManager.10.0\Modules\ADS\database\MSSQL\Dump\StartupContent.xmlreferencesQER\ITShop\AutoPublish\ADSGroup\AutoFillDisplayNameand usesUID_AccProduct(if present) to derive a display name for the AD group’s service item.
Evidence notes updated
- Live DB evidence (updated):
projects/identity-management/oim-kb-update/sandbox-db/2026-04-27-itshop-availability-db-evidence.md - Sandbox host evidence (updated):
projects/identity-management/oim-kb-update/sandbox-host/2026-04-27-itshop-file-hints.md - Knowledge base note (updated):
projects/identity-management/knowledge-base/oim-it-shop-structure-and-availability.md
Next questions / experiments
1. Supported-path validation: after AD sync brings OU=OIM-Managed groups into ADSGroup, enable QER\ITShop\AutoPublish\ADSGroup (Designer/UI/API) and observe:
- first changes to
ADSGroup.UID_AccProduct, - whether
BaseTreeHasADSGrouprows appear underUID_OrgRoot='QER-V-ITShopOrg'(BO shelves), - whether PR nodes are created and
UID_AccProductis set on those nodes.
2. Reconcile the empty AccProductInBaseTree table:
- confirm it is legacy/unused by design in this environment, or identify the missing job/proc that would populate it in other configurations.