Troubleshooting Unified Map in CMDB WorkspaceIssue CMDB Workspace v4 introduced a Unified Map feature. This is roughly equivalent to the existing BSM Map/Dependency Views map feature, and Service Map feature, which can still be used to see what should be displayed on the newer Unified Map.Resolution Table of Contents TerminologyClarification of expected behaviour RolesUsing in UtahMap filters / Filter presetsWhich nodes would be expected when filters are offFilter presets don't actually hide anythingFilter will removed nodes not included in the filterThe direction of arrows/connectionsWhat the numbers on Connection arrows meanThe difference between dotted and solid connection linesThe numbers on NodesThe Badges for related items seen on a nodeFilter funnel icon has a blue dotProfiles don't always have an effectLevel doesn't work on Service Maps (Mapped Application Service CIs)Fields expected to be displayed in the Attributes panelSome field values are highlightedAttributes cannot be edited System PropertiesCMDBUM Error Code descriptionsERROR. The server returned an error retrieving map data (error code: CMDBUM-404-001).ERROR. The server returned an error retrieving map data (error code: CMDBUM-500-001).CMDBUM-500-001: Hitting sn_cmdb_ws.node.map.max.edge.count limit (250 default) CI Names don't display on the Map Nodes nor Attributes pane Stuck on "Loading..." emit was ignored: SN_NODE_MAP_UNIFIED_CTRL#COLLAPSE_ALL_GROUPS is not a declared dispatched event of macroponent Map broken if v4.0.1 is installed in Utah, then upgraded to VancouverPage not foundAlternatives to Unified Map Terminology NodeThe visual representation of a CI within the Unified Map (UM)Edges/ConnectionsRelationships between CI Instance, or References between CI ClassesModuleA functional area within the pageData BrokerThe logic in UXF responsible for fetching data from the backendControllerA set of logic, abstracted out from the page in a separate record, used by the application to manage a specific set of functionality. (Voltron) PresetDefault configuration for a component or controller, that sets the input proprty config, and also adds event handlers to the output. They in effect connect components and controllers to one another.Filter PresetA user's saved filter used to filter out nodes within the currently visible map. Client side.(Node) BadgeColoured text labels attached to the Node, representing a count of the related itemsProfilesA per-class default Filter Preset Clarification of expected behaviour Roles CMDB Usersn_cmdb_userCMDB Adminsn_cmdb_admin sn_cmdb_user is needed to view a map. sn_cmdb_admin is needed to define a Profile. Using in Utah Although CMDB Workspace 4 can be installed in Utah, the Unified Map will not be available until the instance is upgraded to Vancouver or later. You would expect to see a message "Unified Map is not supported on Utah (only supported on higher releases)" Map filters / Filter presets These are user-specific, saved in sys_user_preference records with name 'sn_cmdb_ws.unifiedmap.map_search_filter.presets'. A single record has a JSON value containing the Default view, plus one of more user defined filters. A user=empty system=true sys_user_preference record does seem to work, although it is not documented. Any filters in that all user record get copied into user-specific ones automatically. This may be a way of adding system-wide filters for all users [TBC]. Filters run client side. All the node data must have been fetched to the browser in the first place, before it is then filtered down. The max nodes property applies to how many you have before filtering. The root node, or CI the map was loaded for, cannot be filtered out. Which nodes would be expected when filters are off Related CIs, both up- and down-stream, with the number of hops equal to the number of Levels selected. e.g for 3 Levels, you would expect the Parents of the Parents of the Parents of the root node, and the Children of the Children of the Children of the Root node. So, Up, Up , Up and also Down, Down, Down. 7 levels from top to bottom in total. Up, Up, Down, or Down, Up, Down would not be displayed. The map might give the impression that it is doing this, but it's probably due to e.g. a connection from the root node to a child, plus a connection directly from the root node to a child of a child. Or maybe a group node or cluster might give the impression children of parents (brothers and sisters) are displayed. Filter presets don't actually hide anything Filters will only Grey out nodes, unless 'Show hidden items' is unchecked as well. Filter will removed nodes not included in the filter Hidden items, plus all their parent or child nodes, will be hidden, even if these child/parent nodes are not part of the filter. Imagine sawing off a tree trunk - all the branches come off too. The direction of arrows/connections The Connection arrows are from Parent to Child, for relationships. For references (dotted line), there is no arrow. What the numbers on Connection arrows mean These numbers indicate that there are multiple connections of different types between the 2 nodes. Click the number and the Attributes module will list Cards for each of the connections. The difference between dotted and solid connection lines Solid line - Relationship. Defined in cmdb_rel_ciDotted line - References. Reference type fields on the CI records themselves. The numbers on Nodes These indicate a cluster or group of nodes is being represented by a single node. Click the number to expand it. This only applies to Service Maps. The Badges for related items seen on a node TBC (which tables, and what filter conditions). Filter funnel icon has a blue dot This is simply to indicate that a filter is currently applied, in case you didn't realise. Switch to the Default view to clear filters. Profiles don't always have an effect If a Filter preset is defined, it takes precedence over any per-Class Profile filter. Default view filter needs selecting for Profiles to apply. Profiles only affect the Layers filters. Level doesn't work on Service Maps (Mapped Application Service CIs) As of 5.0.4, this expected behaviour due to the getMaps request being redirected to a Service Mapping API, which doesn't support levels.This include classes like cmdb_ci_service_auto and classes which extend class cmdb_ci_service_auto. Levels only works on maps based on relationships (cmdb_rel_ci) and direct references (e.g. IP references NIC, which references Computer). Fields expected to be displayed in the Attributes module TBC. (Base attributes are hard-coded, but this is planned to be configurable.) Some field values are highlighted TBC (These are UXF specific configurations) Attributes cannot be edited Not from the map page, but from the attributes module, you can select View CI Details from the menu, to open the form view of the CI, and then edit the CI from there. System Properties The following system property records are present for Unified Map out-of-box, but there may be other properties defined in the code that could be added manually to override the defaults. NameDefault valueDescriptionsn_cmdb_ws.node.map.max.edge.count250Limits the maximum number of nodes the backend will collect when assembling the dataset for the unified map.sn_cmdb_ws.unifiedmap.map_search_filter.default_levels3Default levels for searching up and down in the cmdb_rel_ci table from a given CIsn_cmdb_ws.unifiedmap.map_search_filter.max_levels25Max levels for searching up and down in the cmdb_rel_ci table from a given CI Script includes such as 'MapBase' define the internal constant names for each property. You can then search other script includes for where constant names are used. e.g. RELATED_LIST_EXCLUDED_ITEMS_USR_PREF_KEY: 'sn.cmdb.ws.node.map.user.excluded.rel.items',RELATED_LIST_SORT_ORDER_USR_PREF_KEY: 'sn.cmdb.ws.node.map.user.sort.order.rel.items', RELATED_LIST_USR_PREF_KEY: 'sn.cmdb.ws.node.map.user.excluded.rel.items', MAX_NODE_PROP: 'sn_cmdb_ws.node.map.max.edge.count',DEF_MAX_NODE_VAL: '250',DEF_MAX_LEVEL: 25, CMDBUM Error Code descriptions The script include 'MapErrorUtility' defines the error strings for each code (list from v5.0.4): "CMDBUM-400-001": "Sys Id Required","CMDBUM-400-002": "List of Sys Id Required (Related Item)","CMDBUM-400-003": "Invalid level (should be a positive integer)","CMDBUM-400-004": "Ci class Required","CMDBUM-400-005": "Related List table name Required","CMDBUM-400-006": "Related List name Required","CMDBUM-400-007": "Related List table cmdb reference column Required","CMDBUM-400-008": "Related Item data fields Required","CMDBUM-400-009": "Related Item data sort field Required","CMDBUM-400-010": "Related Item data sort direction Required","CMDBUM-400-011": "Related Item data start index Required","CMDBUM-400-012": "Related Item data end index Required","CMDBUM-400-013": "Related Item aggregate input config Required","CMDBUM-400-014": "Related Item data input config Required","CMDBUM-400-015": "Invalid Ci Class name (should be a valid Ci class name)","CMDBUM-400-016": "List of edges required","CMDBUM-400-017": "Invalid life cycle stage","CMDBUM-500-001": "Internal Server Error","CMDBUM-500-002": "Service Mapping Internal Server Error","CMDBUM-500-003": "Service Mapping Plugin not installed ","CMDBUM-500-004": "Service Mapping API timeout","CMDBUM-404-001": "Ci not found", The error codes can then be found in other places, such as Script Includes. e.g. The general server error CMDBUM-500-001 is thrown by script include 'MapRelatedItemService' by default, if it can't give one of the more useful CMDBUM-400-xxx errors. ERROR. The server returned an error retrieving map data (error code: CMDBUM-404-001). CMDBUM-404-001 means Ci not found. Has the CI been deleted?Does the user see the CI in a normal UI16 form? Is domain separation, or a query business rule, hiding the CI? ERROR. The server returned an error retrieving map data (error code: CMDBUM-500-001). This is a generic catch-all error, that could be caused by several things going wrong, known reasons listed below. On screen error: CMDBUM-500-001: Hitting sn_cmdb_ws.node.map.max.edge.count limit (250 default) https://support.servicenow.com/problem.do?sys_id=PRB1721216 This may be seen on a Map that did display, but then see the error if you increase the Levels. See:KB1582038 / PRB1721216 Unified Map: Error CMDBUM-500-001 is displayed and map fails to load, when the Level selected means sn_cmdb_ws.node.map.max.edge.count is exceeded Browser Network debug, Response: Session debug with 'Debug Log' Loading the CI Relations formatter on the normal CI form will show you how many nodes you would expect for each level. CI Names don't display on the Map Nodes nor Attributes pane CI data is sent to the UI using field labels, not the actual field names, and it assumes these have not been customised. If the English "Name" sys_documentation label for the CMDB has been customised, the UI does not display names. See:PRB1704371 / KB1543770 CMDB Workspace Unified Map and its Attributes pane does not display CI Names if the Name field label is customised Stuck on "Loading..." emit was ignored: SN_NODE_MAP_UNIFIED_CTRL#COLLAPSE_ALL_GROUPS is not a declared dispatched event of macroponent If this specific error is seen in the browser's javaScript debug console then this is the important one. The CMDB Workspace app has a dependency on the UX Commons app. Between version 24.1.1 and 24.2.0 some files the Unified Map needs were removed from that app. If CMDB Workspace 4 or 5 was installed on a Vancouver instance, or CMDB Workspace was upgraded to 4 or 5 on an existing Vancouver instance, on a date after UX Commons 24.2.0 was released on the 17th August 2023, the instance will have UX Commons 24.2.0 installed. That is missing records needed by Unified Map. If CMDB Workspace 4 or 5 was installed/upgraded before 17th August 2023, then v24.1.1 would have been installed, and that had the records. If the app is upgraded to UX Commons 24.2.0 afterwards, then those records remain. See:PRB1719867 / KB1582032 CMDB Workspace Unified Map doesn't load, due to missing records from UX Commons app (emit was ignored: SN_NODE_MAP_UNIFIED_CTRL#COLLAPSE_ALL_GROUPS is not a declared dispatched event of macroponent) Map broken if v4.0.1 is installed in Utah, then upgraded to Vancouver See:PRB1697539 Unified Map experience is completely broken on instances upgraded from Utah to Vancouver Solution: Upgrade to CMDB Workspace v4.0.2 or later. Page not found There may be plugin app dependency issues that mean CMDB Workspace is not installed, or an older e.g. v3.6.0 version is installed, but another app expects it to have Unified Map. Clicking 'view map' or 'open map' from somewhere gives error "Page not found" The bad URL will be like /now/cmdb/unifiedmap , e.g.https://<instance name>.service-now.com/now/cmdb/unifiedmap/params/root-node/cba781171b76e410d71921b6bc4bcbdf/selected-node-sysid/cba781171b76e410d71921b6bc4bcbdf/selected-node-class/cmdb_ci_business_capability/levels/5 Application Portfolio Management's Enterprise Architecture Workspace has a UI Action displayed on Business Services called "Open Map" even if CMDB Workspace v4/Vancouver isn't installed. ( /sys_ui_action.do?sys_id=a04333e8d9136510f87759c485882cae ) Install CMDB Workspace 4 or later, and upgrade to Vancouver or later for these to work. Alternatives to Unified Map The Dependency Views map feature (BSM Map) can be used for normal maps based on relationships and references:https://<instance name>.service-now.com/$ngbsm.do Service Maps can also be opened using the existing UI specific to thosehttps://<instance name>/$sw_topology_map.do?sysparm_bsid=<service ci sys_id>