How to fix it
- Verify the affected user's domain assignment. Navigate to
User Administration > Users, open the user record, and check theDomainfield. It should match their intended domain, not global. - Check the sys_domain field on the problematic records. Navigate to the affected table, add the
Domaincolumn to the list view by right-clicking column headers and selectingConfigure > List Layout. - For records with incorrect sys_domain values, update them using a bulk update. Create a filter for the records, then use
Update Multiple Recordsfrom the list's context menu to set the correct domain.
Always test domain changes in a sub-production instance first. Incorrect domain assignments can break integrations and workflows.
- Check domain visibility settings by navigating to
System Definition > Domain Map. Open the relevant domain record and review theCan see parentcheckbox. If checked, child domains will see parent domain records. - Identify problematic Business Rules by going to
System Definition > Business Rules. Filter byTableequals your affected table name. Review any rules that run on insert/update. - Examine Business Rule scripts for sys_domain assignments. Look for lines like
current.sys_domain = 'global'orcurrent.setValue('sys_domain', 'some_domain'). These may be overriding the correct domain. - Fix problematic Business Rules by either removing the sys_domain assignment or using
gs.getUser().getDomainID()to set the domain based on the current user's domain instead of hardcoding it. - Check for custom ACLs that might bypass domain filtering. Navigate to
System Security > Access Controls (ACL)and filter by your table name. Look for read operations with custom conditions. - Review ACL conditions for domain bypass logic. Look for conditions that use
gs.nil(current.sys_domain)or explicitly check for global domain without proper domain separation logic. - Test the fix by logging in as a user from the affected domain and verifying they can only see appropriate records. Use
System Administration > Users > Impersonate Userfor testing.
Enable domain separation debug logging by setting com.snc.domain_separation to Debug level in System Logs > Log Levels to trace domain filtering issues.