Source: projects/identity-management/oim-kb-update/sandbox-db/2026-04-27-service-categories-and-accproductinbasetree-db-evidence.md
> Source: projects/identity-management/oim-kb-update/sandbox-db/2026-04-27-service-categories-and-accproductinbasetree-db-evidence.md
Goal
Capture live-DB evidence for:
- the service category shape (
AccProductGroup) and required columns - why
AccProductInBaseTreeis empty in this sandbox (and what still references it) - the DBQueue tasks that actually drive IT Shop "ShoppingRack" checks in this sandbox
Evidence
1) IT Shop subtree snapshot: counts by BaseTree.ITShopInfo
Query:
SELECT ITShopInfo, COUNT(*) AS C
FROM BaseTree
WHERE UID_OrgRoot='QER-V-ITShopOrg'
GROUP BY ITShopInfo
ORDER BY ITShopInfo;
Result (JSON):
{"rows":[{"ITShopInfo":"BO","C":8},{"ITShopInfo":"CU","C":1},{"ITShopInfo":"PR","C":16},{"ITShopInfo":"SH","C":1}]}
2) PR nodes carry BaseTree.UID_AccProduct; service categories may be NULL
Query (excerpt):
SELECT
b.Ident_Org,
b.ITShopInfo,
b.UID_AccProduct,
p.Ident_AccProduct,
p.UID_AccProductGroup,
g.Ident_AccProductGroup,
p.IsToHideFromITShop
FROM BaseTree b
LEFT JOIN AccProduct p ON b.UID_AccProduct=p.UID_AccProduct
LEFT JOIN AccProductGroup g ON p.UID_AccProductGroup=g.UID_AccProductGroup
WHERE b.UID_OrgRoot='QER-V-ITShopOrg' AND b.ITShopInfo='PR'
ORDER BY b.Ident_Org;
Observed:
p.UID_AccProductGroupis NULL for multiple PR-linked products (so no enforced category requirement in this sandbox).
3) AccProductInBaseTree has 0 rows but remains referenced by views
Rowcount:
SELECT COUNT(*) AS C FROM AccProductInBaseTree;
Result:
{"rows":{"C":0}}
Objects that reference AccProductInBaseTree (from sys.sql_modules):
{"rows":[{"type_desc":"SQL_TRIGGER","name":"GEN_T3EE3D76594307E78573D3BF13"},{"type_desc":"VIEW","name":"AccProductInDepartment"},{"type_desc":"VIEW","name":"AccProductInITShopOrg"},{"type_desc":"VIEW","name":"AccProductInLocality"},{"type_desc":"VIEW","name":"AccProductInOrg"},{"type_desc":"VIEW","name":"AccProductInProfitCenter"}]}
AccProductInITShopOrg definition prefix confirms it reads directly from AccProductInBaseTree:
create view dbo.AccProductInITShopOrg as
...
from AccProductInBaseTree
where exists (select top 1 1 from BaseTree y where y.UID_Org = AccProductInBaseTree.UID_Org and y.UID_OrgRoot = 'QER-V-ITShopOrg')
Trigger situation:
AccProductInBaseTreehas a single delete trigger (GEN_T3EE3D...) whose body is simulation-mode bookkeeping (no DBQueue enqueue in its prefix).
4) Required columns (NOT NULL) in this sandbox
AccProduct:
{"rows":[{"COLUMN_NAME":"UID_AccProduct","DATA_TYPE":"varchar"},{"COLUMN_NAME":"XObjectKey","DATA_TYPE":"varchar"}]}
AccProductGroup:
{"rows":[{"COLUMN_NAME":"UID_AccProductGroup","DATA_TYPE":"varchar"},{"COLUMN_NAME":"XObjectKey","DATA_TYPE":"varchar"}]}
5) AutoPublish ADSGroup config parameter exists and is preprocessor-relevant
Query:
SELECT FullPath, Enabled, IsEnabledResulting, IsPreprocessorCondition, Value, DisplayName, Description
FROM DialogConfigParm
WHERE FullPath LIKE 'QER\ITShop\AutoPublish%'
ORDER BY FullPath;
Key row (excerpt):
{"FullPath":"QER\\ITShop\\AutoPublish\\ADSGroup","Enabled":false,"IsEnabledResulting":false,"IsPreprocessorCondition":true,"Value":"1","DisplayName":"Active Directory groups"}
Notable: the DB itself states “Changes to the parameter require recompiling the database.” (in DialogConfigParm.Description for the ADSGroup node).
6) DBQueue tasks: ShoppingRack + service category closure
QBMDBQueueTask rows matching ShoppingRack / AccProductGroupCollection:
{"rows":[{"UID_Task":"QER-K-AccProductGroupCollection","ProcedureName":"QER_ZAccProductGroupCollection","IsBulkEnabled":true,"MaxInstance":1},{"UID_Task":"QER-K-ShoppingRack-All","ProcedureName":"QER_ZITShopCheckStructure","IsBulkEnabled":true},{"UID_Task":"QER-K-ShoppingRackProductNode","ProcedureName":"QER_ZITShopCheckMethodPR","IsBulkEnabled":true}]}
Interpretation (sandbox-specific)
- This sandbox appears to not use
AccProductInBaseTreefor IT Shop placement (empty table; no obvious DBQueue tasks). - IT Shop availability is still consistent with the "modern" pattern already captured in the KB note: PR nodes in
BaseTree+BaseTreeHas<EntitlementType>placement + ShoppingRack DBQueue tasks.