With the topology errors being stored as bitwise values in the dirty areas layer, how can I filter to just specific errors? This needs to be in ArcGIS Pro. For the migration of our data I can report from a database level, but for the general users who will not have database access (and in our production environments we have heavily restricted database access) they need to be able to find through Pro.
I did try building some definition queries on the DAs layer, but this only works were there is a single error. For example with Error 25, this works fine for E25. ERRORTYPE = POWER(CAST(2 AS BIGINT),25)
How do users filter to specific errors when bitwise is not supported in def queries?
We are currently using Ent11.1, ArcGIS Pro 3.1, UNv6.
Solved! Go to Solution.
@DamienPyne - You could try getting the users to use select by attribute rule to look for a certain code.
In this example I am looking for a 38: Devices cannot be midspan.
It applies to line and device.
The error message is - 10,10,{BA981129-6452-4014-81B9-7237DA438AA4};10,10,{BA981129-6452-4014-81B9-7237DA438AA4};38,9,{9880ED2E-56F3-42E9-8CE5-2983E27ACFD2};
The following expression looks for 38 in the highlighted positions 🙂
ERRORMESSAGE LIKE '38%'
Or ERRORMESSAGE LIKE '%;38%'
Similarly -
ERRORMESSAGE LIKE '10%'
Or ERRORMESSAGE LIKE '%;10%'
Not the best solution but can work on the fly.
If this is for migration activity. I would copy the Dirty Area layer into another feature class and add a column that can be populated with Arcade/SQL.
Use a case statement If error code is X then "abc", if error code is Y then "xyz" .....
This will allow users to search for keywords in the "Simplified Error Message"
Have you tried the 'Summarize UN errors' tool from the UDMS toolbox ?
https://esri.github.io/Utility-Data-Management-Support-Tools/docs/3.3/SummarizeUNErrors.html
It will generate tables with detailed and enriched information about errors.
Very useful in a migration process, but also for production, although it would need to be scripted
You can check if a certain bit is set using this standard query:
MOD((error_codes / n), 2) = 1
Where n is 2 to the power of whatever bit you want to test. E.g. to see if the 4th bit is set, that's 2 to the power of 4, or 16, so the final query is MOD((error_codes / 16), 2) = 1.
Thanks David. I'm really chasing where there can be >1 error type. Something like E25 and E9 both present (but i dont know what is there I just want all the errors of each type that I can filter to).
So E25 = 2 power 25 + E9 = 2 power 9 = 33,554,432 + 512 = 33,554,944
Where there is only one error present its fine.
Any ideas?
There's probably some fancy mathematical property to combine this into one operation, but I'm no mathematician so all I can suggest is: use the OR operator to combine multiple bit tests together:
MOD((error_codes / 4), 2) = 1 OR MOD((error_codes / 32), 2) = 1
@DamienPyne - You could try getting the users to use select by attribute rule to look for a certain code.
In this example I am looking for a 38: Devices cannot be midspan.
It applies to line and device.
The error message is - 10,10,{BA981129-6452-4014-81B9-7237DA438AA4};10,10,{BA981129-6452-4014-81B9-7237DA438AA4};38,9,{9880ED2E-56F3-42E9-8CE5-2983E27ACFD2};
The following expression looks for 38 in the highlighted positions 🙂
ERRORMESSAGE LIKE '38%'
Or ERRORMESSAGE LIKE '%;38%'
Similarly -
ERRORMESSAGE LIKE '10%'
Or ERRORMESSAGE LIKE '%;10%'
Not the best solution but can work on the fly.
If this is for migration activity. I would copy the Dirty Area layer into another feature class and add a column that can be populated with Arcade/SQL.
Use a case statement If error code is X then "abc", if error code is Y then "xyz" .....
This will allow users to search for keywords in the "Simplified Error Message"
Thanks, that looks like a useful approach.
In terms of migration, I have a foot in each camp. We had previously gone live with un3 on 10.8.1 but due to other factors we are doing a new migration to 11.1 un6.
For migration I have all the tooling in the database, but also looking to the future post new go live of how a general user can filter and search for targeted errors where they will only have Pro.
Let me take your suggestion to one of the team and confirm this will work and provide the requested approach.
Have you tried the 'Summarize UN errors' tool from the UDMS toolbox ?
https://esri.github.io/Utility-Data-Management-Support-Tools/docs/3.3/SummarizeUNErrors.html
It will generate tables with detailed and enriched information about errors.
Very useful in a migration process, but also for production, although it would need to be scripted
Agreed. The UN Summarize Tool also creates a layers with simplified error messages that the users can use.
PS - When you run the tool it only adds the summary tables to map but if you navigate to the directory you can see the different error types.
I strongly recommend you take the approach outlined by @PierreloupDucroix . The Summarize UN Errors tool not only decodes the bits into their proper named errors, but also enriches the errors with the asset group and asset type of each error and creates a series of summary tables to help you develop a strategy for tackling all your errors.
The summary tool for Pro 3.1 does not remove duplicates data correctly and therefore is reporting a count higher that the total errors in the database. Refer Reporting topology errors - Esri Community
At the moment this is not an option while we are using pro3.1. If/when we upgrade to 3.3 or 3.5 (this is probably our target) this tool would be an option.