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:

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:

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:

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)