{"id":1272212,"date":"2021-07-01T01:01:53","date_gmt":"2021-07-01T08:01:53","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1272212"},"modified":"2021-07-02T11:14:20","modified_gmt":"2021-07-02T18:14:20","slug":"utility-network-is-now-on-arcgis-javascript-api-4-20","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20","title":{"rendered":"Utility Network is now on ArcGIS JavaScript API 4.20"},"author":7511,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23851],"tags":[760922,760932,35461],"industry":[],"product":[36831,515312,36601],"class_list":["post-1272212","blog","type-blog","status-publish","format-standard","hentry","category-data-management","tag-javascript-api-utility-network","tag-trace-javascript-utility-network","tag-utility-network","product-js-api-arcgis","product-utility-network","product-developers"],"acf":{"short_description":"Utility Network JavaScript API is now available on the Esri ArcGIS JavaScript 4.20 release","flexible_content":[{"acf_fc_layout":"content","content":"<p>Just like we did with ArcGIS Runtime 100.6 in late 2019, we have been working ever since to bring the capabilities of the utility network to the JavaScript API. We are pleased to announce that the first cut of the utility network API is now available on<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-networks-UtilityNetwork.html\"> ArcGIS JavaScript API 4.20.<\/a> In this blog post we discuss what\u2019s new in ArcGIS Utility Network for JavaScript, illustrate few code samples and finally discuss what\u2019s coming in future releases.<\/p>\n<p>This blog assumes you know the basics of the utility network, to learn more visit our core help page <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-utility-network\/overview\">here<\/a>.<\/p>\n<blockquote><p><em>The utility network JavaScript\u00a0API on 4.20 require the named trace configuration capability which is available in Enterprise 10.9. You will need ArcGIS Enterprise 10.9 and a Utility Network version 5 created with ArcGIS Pro 2.7 or 2.8 to take advantage of the new API.<\/em><\/p><\/blockquote>\n"},{"acf_fc_layout":"content","content":"<h1>What&#8217;s new for utility network in ArcGIS JavaScript 4.20<\/h1>\n<p>This release is focused on delivering the tracing functionality through the new named trace configuration shipped in 10.9. Trace configurations can be created and persisted on a UN 5.0 with Pro 2.7 and later. The persisted trace configuration has all the properties, filters and output required to execute a particular trace. Trace configurations can be shared through webmaps and consumed by simply referencing the trace configuration id (GUID). Read more about trace configurations <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/about-trace-configurations.htm\">here<\/a>.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Opening a WebMap with utility network<\/h2>\n<p>Given a webmap created with Pro 2.7 or later with shared trace configuration, the JavaScript API can open the webmap and list all the shared named trace configurations.<\/p>\n<p>Here is an example of how you can load a webmap and any utility network objects shared within it.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"> 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n 7\r\n 8\r\n 9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\">async <span style=\"color: #008800;font-weight: bold\">function<\/span> init(){ \r\n    <span style=\"color: #888888\">\/\/A webmap with utility network layer and shared trace configurations<\/span>\r\n    <span style=\"color: #008800;font-weight: bold\">const<\/span> webmapId <span style=\"color: #333333\">=<\/span> <span style=\"background-color: #fff0f0\">\"aafe41463e32497ab56cbac0acf16339\"<\/span>\r\n    <span style=\"color: #008800;font-weight: bold\">const<\/span> portalUrl <span style=\"color: #333333\">=<\/span> <span style=\"background-color: #fff0f0\">\"https:\/\/utilitynetwork.esri.com\/portal\"<\/span>\r\n\r\n    <span style=\"color: #888888\">\/\/create a webmap object<\/span>\r\n    <span style=\"color: #008800;font-weight: bold\">const<\/span> webmap <span style=\"color: #333333\">=<\/span> <span style=\"color: #008800;font-weight: bold\">new<\/span> WebMap({\r\n                portalItem<span style=\"color: #333333\">:<\/span> {\r\n                    id<span style=\"color: #333333\">:<\/span> webmapId,\r\n                    portal<span style=\"color: #333333\">:<\/span> { url<span style=\"color: #333333\">:<\/span> portalUrl }\r\n                }\r\n            });\r\n    \r\n    <span style=\"color: #888888\">\/\/create a webmap view and load it into div with id `viewDiv`<\/span>\r\n    <span style=\"color: #008800;font-weight: bold\">const<\/span> view <span style=\"color: #333333\">=<\/span> <span style=\"color: #008800;font-weight: bold\">new<\/span> MapView({\r\n            map<span style=\"color: #333333\">:<\/span> webmap,\r\n            container<span style=\"color: #333333\">:<\/span> <span style=\"background-color: #fff0f0\">\"viewDiv\"<\/span>\r\n            });\r\n    \r\n    <span style=\"color: #888888\">\/\/load the webmap definition<\/span>\r\n    await view.when();\r\n    \r\n    <span style=\"color: #888888\">\/\/retrieve the first utility network object found in the webmap<\/span>\r\n    <span style=\"color: #888888\">\/\/this array is empty if no utility network layers are shared in the webmap<\/span>\r\n    <span style=\"color: #008800;font-weight: bold\">const<\/span> utilityNetwork <span style=\"color: #333333\">=<\/span> webmap.utilityNetworks.getItemAt(<span style=\"color: #0000dd;font-weight: bold\">0<\/span>)\r\n    \r\n    <span style=\"color: #888888\">\/\/load the utility network definition and all shared trace configurations etc..<\/span>\r\n    await utilityNetwork.load();\r\n     \r\n}\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>.<\/div>\n"},{"acf_fc_layout":"content","content":"<h2>Reading UN Metadata and shared named trace configuration<\/h2>\n<p>Once the utility network is loaded successfully, you can query for its meta-data. Let&#8217;s consider few examples of properties that can be read from the utility network object.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3>Reading basic utility network meta-data<\/h3>\n<p>While most properties require fully loading the utility network definition via the load method to be accessed, some properties can be accessed without loading the un. Example are layerId, id and title.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\">   <span style=\"color: #888888\">\/\/make sure to load the utility network<\/span>\r\n   <span style=\"color: #888888\">\/\/prints the id of the utility network (UUID)<\/span>\r\n   console.log (utilityNetwork.id)\r\n   <span style=\"color: #888888\">\/\/prints the physical datasetname<\/span>\r\n   console.log (utilityNetwork.datasetName)\r\n   <span style=\"color: #888888\">\/\/prints the layer id of the utility network<\/span>\r\n   console.log (utilityNetwork.layerId)\r\n   \r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1272252,"id":1272252,"title":"Loading a webmap with a utility network and reading its basic properties","filename":"js1.gif","filesize":997645,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\/js1","alt":"Loading a webmap with a utility network and reading its basic properties","author":"7511","description":"Loading a webmap with a utility network and reading its basic properties","caption":"Loading a webmap with a utility network and reading its basic properties","name":"js1","status":"inherit","uploaded_to":1272212,"date":"2021-06-23 23:47:02","modified":"2021-06-24 00:01:53","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":916,"height":642,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","medium-width":372,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","medium_large-width":768,"medium_large-height":538,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","large-width":916,"large-height":642,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","1536x1536-width":916,"1536x1536-height":642,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","2048x2048-width":916,"2048x2048-height":642,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1-663x465.gif","card_image-width":663,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js1.gif","wide_image-width":916,"wide_image-height":642}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Reading the named trace configurations<\/h3>\n<p>During publishing, a webmap containing a utility network can be shared with a list of named trace configurations. These named trace configurations can be accessed through the utiltynetwork object.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\">1\r\n2\r\n3\r\n4\r\n5<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #888888\">\/\/get a reference to the utility network object from the webmap<\/span>\r\n<span style=\"color: #888888\">\/\/prints all active named trace configurations, <\/span>\r\n<span style=\"color: #888888\">\/\/the title and the globalId of the shared named trace configurations can<\/span>\r\n<span style=\"color: #888888\">\/\/be accessed without fully loading the utility network<\/span>\r\nutilityNetwork.sharedNamedTraceConfigurations.forEach(tc<span style=\"color: #333333\">=&gt;<\/span>console.log(tc.title))\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1272302,"id":1272302,"title":"Reading the named trace configurations","filename":"js2.gif","filesize":633619,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\/js2","alt":"Reading the named trace configurations","author":"7511","description":"Reading the named trace configurations","caption":"Reading the named trace configurations","name":"js2","status":"inherit","uploaded_to":1272212,"date":"2021-06-24 00:24:17","modified":"2021-06-24 00:24:58","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":926,"height":558,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","medium-width":433,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","medium_large-width":768,"medium_large-height":463,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","large-width":926,"large-height":558,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","1536x1536-width":926,"1536x1536-height":558,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","2048x2048-width":926,"2048x2048-height":558,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2-772x465.gif","card_image-width":772,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js2.gif","wide_image-width":926,"wide_image-height":558}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Reading the full named trace configurations<\/h3>\n<p>While the title and the globalId properties can be accessed without loading the utility network, access to the full trace configuration require loading the utility network. Here is how to access the result types of a particular named trace configuration.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\">1\r\n2\r\n3\r\n4\r\n5<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #888888\">\/\/get a reference to the utility network object<\/span>\r\n<span style=\"color: #888888\">\/\/find the named trace configuration named Connected_Elements. <\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> connectedTraceElements <span style=\"color: #333333\">=<\/span> utilityNetwork.sharedNamedTraceConfigurations.find(tc<span style=\"color: #333333\">=&gt;<\/span>tc.title <span style=\"color: #333333\">===<\/span> <span style=\"background-color: #fff0f0\">\"Connected_Elements\"<\/span>)\r\n<span style=\"color: #888888\">\/\/print all result types expected from this trace configuration<\/span>\r\nconnectedTraceElements.resultTypes.forEach(r <span style=\"color: #333333\">=&gt;<\/span> console.log(r.type))\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1272312,"id":1272312,"title":"Reading the full trace configuration object properties","filename":"js3.gif","filesize":822479,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\/js3","alt":"Reading the full trace configuration object properties","author":"7511","description":"Reading the full trace configuration object properties","caption":"Reading the full trace configuration object properties","name":"js3","status":"inherit","uploaded_to":1272212,"date":"2021-06-24 00:32:19","modified":"2021-06-24 00:32:55","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":922,"height":670,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","medium-width":359,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","medium_large-width":768,"medium_large-height":558,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","large-width":922,"large-height":670,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","1536x1536-width":922,"1536x1536-height":670,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","2048x2048-width":922,"2048x2048-height":670,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3-640x465.gif","card_image-width":640,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js3.gif","wide_image-width":922,"wide_image-height":670}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Performing a trace using a named trace configuration<\/h2>\n<p>You can perform a trace by providing the globalId of the trace configuration and optional starting locations. You can even provide the version and moment to trace to support tracing in a version or a pervious historical moment.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"> 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n 7\r\n 8\r\n 9\r\n10\r\n11\r\n12<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #888888\">\/\/get a reference to the utility network object<\/span>\r\n<span style=\"color: #888888\">\/\/find the named trace configuration Subnetwork_RMT003. This trace doesn't require any starting locations<\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> subnetworkRMT003 <span style=\"color: #333333\">=<\/span> utilityNetwork.sharedNamedTraceConfigurations.find(tc<span style=\"color: #333333\">=&gt;<\/span>tc.title <span style=\"color: #333333\">===<\/span> <span style=\"background-color: #fff0f0\">\"Subnetwork_RMT003\"<\/span>)\r\n<span style=\"color: #888888\">\/\/create a trace parameter object and provide<\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> traceParameters <span style=\"color: #333333\">=<\/span> <span style=\"color: #008800;font-weight: bold\">new<\/span> TraceParameters (\r\n    { <span style=\"background-color: #fff0f0\">\"traceLocations\"<\/span><span style=\"color: #333333\">:<\/span> [],\r\n       <span style=\"background-color: #fff0f0\">\"namedTraceConfigurationGlobalId\"<\/span><span style=\"color: #333333\">:<\/span> subnetworkRMT003.globalId   } )\r\n\r\n<span style=\"color: #888888\">\/\/execute trace providing the utility network server url and trace parameters<\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> traceResult <span style=\"color: #333333\">=<\/span> await Tracer.trace(utilityNetwork.networkServiceUrl, traceParameters);\r\n<span style=\"color: #888888\">\/\/print the result count<\/span>\r\nconsole.log(traceResult.elements.length)\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1272332,"id":1272332,"title":"Running a utility network trace","filename":"js4.gif","filesize":1263112,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\/js4","alt":"Running a utility network trace","author":"7511","description":"Running a utility network trace","caption":"Running a utility network trace","name":"js4","status":"inherit","uploaded_to":1272212,"date":"2021-06-24 00:38:21","modified":"2021-06-24 00:39:01","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1034,"height":672,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","medium-width":402,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","medium_large-width":768,"medium_large-height":499,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","large-width":1034,"large-height":672,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","1536x1536-width":1034,"1536x1536-height":672,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","2048x2048-width":1034,"2048x2048-height":672,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4-715x465.gif","card_image-width":715,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js4.gif","wide_image-width":1034,"wide_image-height":672}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>View Associations<\/h2>\n<p>In 4.20 we also introduced the ability to view associations located in a given extent. Control exists to filter what type of associations you would like to render and to limit the number of rows to pull.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<table>\n<tbody>\n<tr>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"> 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n 7\r\n 8\r\n 9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20<\/pre>\n<\/td>\n<td>\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #888888\">\/\/get the current extent<\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> extent <span style=\"color: #333333\">=<\/span> view.extent;\r\n<span style=\"color: #888888\">\/\/create the list of parameters to view associations<\/span>\r\n<span style=\"color: #888888\">\/\/we want to return a max of a 100 structural attachment and connectivity associations only <\/span>\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> params <span style=\"color: #333333\">=<\/span> <span style=\"color: #008800;font-weight: bold\">new<\/span> SynthetizeAssociationGeometriesParameters({\r\n    <span style=\"background-color: #fff0f0\">\"extent\"<\/span><span style=\"color: #333333\">:<\/span> extent,\r\n    <span style=\"background-color: #fff0f0\">\"returnAttachmentAssociations\"<\/span><span style=\"color: #333333\">:<\/span> <span style=\"color: #008800;font-weight: bold\">true<\/span>,\r\n    <span style=\"background-color: #fff0f0\">\"returnConnectivityAssociations\"<\/span><span style=\"color: #333333\">:<\/span> <span style=\"color: #008800;font-weight: bold\">true<\/span>,\r\n    <span style=\"background-color: #fff0f0\">\"returnContainerAssociations\"<\/span><span style=\"color: #333333\">:<\/span> <span style=\"color: #008800;font-weight: bold\">false<\/span>,\r\n    <span style=\"background-color: #fff0f0\">\"outSR\"<\/span><span style=\"color: #333333\">:<\/span> utilityNetwork.spatialReference,\r\n    <span style=\"background-color: #fff0f0\">\"maxGeometryCount\"<\/span><span style=\"color: #333333\">:<\/span> <span style=\"color: #0000dd;font-weight: bold\">100<\/span>\r\n})\r\n<span style=\"color: #888888\">\/\/call the synthesizeAssociationGeometries to synthesize assocaitions and return them<\/span>\r\n\r\n<span style=\"color: #008800;font-weight: bold\">const<\/span> result <span style=\"color: #333333\">=<\/span> await SynthetizeAssociationGeometries.synthesizeAssociationGeometries\r\n                                (utilityNetwork.networkServiceUrl, params)\r\n<span style=\"color: #888888\">\/\/add associations geometries to the view (remove any existing)<\/span>\r\nview.graphics.removeMany(view.graphics.filter(a<span style=\"color: #333333\">=&gt;<\/span>a.name <span style=\"color: #333333\">===<\/span> <span style=\"background-color: #fff0f0\">\"associations\"<\/span>))\r\nview.graphics.addMany(result.associations.filter(a <span style=\"color: #333333\">=&gt;<\/span> a.associationType <span style=\"color: #333333\">===<\/span> <span style=\"background-color: #fff0f0\">\"connectivity\"<\/span>).map(g<span style=\"color: #333333\">=&gt;<\/span>getGraphic(<span style=\"background-color: #fff0f0\">\"line\"<\/span>, g.geometry, CONNECTIVITY_ASSOCIATION_COLOR, <span style=\"background-color: #fff0f0\">\"associations\"<\/span> )));\r\nview.graphics.addMany(result.associations.filter(a <span style=\"color: #333333\">=&gt;<\/span> a.associationType <span style=\"color: #333333\">===<\/span> <span style=\"background-color: #fff0f0\">\"attachment\"<\/span>).map(g<span style=\"color: #333333\">=&gt;<\/span>getGraphic(<span style=\"background-color: #fff0f0\">\"line\"<\/span>, g.geometry, ATTACHMENT_ASSOCIATION_COLOR , <span style=\"background-color: #fff0f0\">\"associations\"<\/span>)));\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1272352,"id":1272352,"title":"View Associations","filename":"js5.gif","filesize":542949,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\/js5","alt":"View Associations","author":"7511","description":"View Associations","caption":"View Associations","name":"js5","status":"inherit","uploaded_to":1272212,"date":"2021-06-24 00:41:26","modified":"2021-06-24 00:41:47","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":940,"height":666,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","medium-width":368,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","medium_large-width":768,"medium_large-height":544,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","large-width":940,"large-height":666,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","1536x1536-width":940,"1536x1536-height":666,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","2048x2048-width":940,"2048x2048-height":666,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5-656x465.gif","card_image-width":656,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/js5.gif","wide_image-width":940,"wide_image-height":666}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Full demo with source code<\/h2>\n<p>Enjoy this full demo of the utility network API for JavaScript, you can find the <a href=\"https:\/\/github.com\/hussein-nasser\/un-js-api-demo\">source code here<\/a>. At any point you can head to the Esri <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-networks-UtilityNetwork.html\">JavaScript core doc on the API<\/a> to learn more.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>What&#8217;s Next?<\/h1>\n<p>We are very excited for this first release but of course we are just getting started. Here are few more things brewing in our incubator for the upcoming releases<\/p>\n<p><strong>Override trace configuration<\/strong><\/p>\n<p>In the 4.20 release, you can execute traces by referencing a persisted named trace configuration global Id. In the coming releases you will be able read and override existing named trace configurations as well as build your own to pass into the trace. This will allow for example the ability to modify a named trace configuration that only returns elements to instead return aggregated geometries without the need to create a new named trace configuration.<\/p>\n<p><strong>Query Network Topology Moments<\/strong><\/p>\n<p>Additional functionality to read the state of the network topology, such as when it was last validated, when the last schema change was applied and more.<\/p>\n<p><strong>Rule-based Editing, Validate, Subnetwork Management<\/strong><\/p>\n<p>The ability to run utility network functions such as validate network topology and update subnetwork to maintain network consistency while also exposing network rules for use to derive editing snapping.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Useful Resources<\/h1>\n<p>Here are few links that will help you get started.<\/p>\n<p><a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-utility-network\/overview\">Overview on the Utility Network\u00a0<\/a><\/p>\n<p><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/utility-network\/about-trace-configurations.htm\">Named Trace Configurations<\/a><\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-networks-UtilityNetwork.html\">Utility Network JavaScript API Doc<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/hussein-nasser\/un-js-api-demo\">Utility Network Demo JavaScript API demo<\/a><\/p>\n"}],"authors":[{"ID":7511,"user_firstname":"Hussein","user_lastname":"Nasser","nickname":"Hussein Nasser","user_nicename":"hussein-nasser","display_name":"Hussein Nasser","user_email":"HNasser@esri.com","user_url":"http:\/\/www.husseinnasser.com","user_registered":"2018-03-21 18:21:21","user_description":"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/Copy-of-un-.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/Copy-of-un3.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Utility Network is now on ArcGIS JavaScript API 4.20<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Utility Network is now on ArcGIS JavaScript API 4.20\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-02T18:14:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\"},\"author\":{\"name\":\"Hussein Nasser\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b\"},\"headline\":\"Utility Network is now on ArcGIS JavaScript API 4.20\",\"datePublished\":\"2021-07-01T08:01:53+00:00\",\"dateModified\":\"2021-07-02T18:14:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"javascript api utility network\",\"trace javascript utility network\",\"utility network\"],\"articleSection\":[\"Data Management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\",\"name\":\"Utility Network is now on ArcGIS JavaScript API 4.20\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2021-07-01T08:01:53+00:00\",\"dateModified\":\"2021-07-02T18:14:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Utility Network is now on ArcGIS JavaScript API 4.20\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b\",\"name\":\"Hussein Nasser\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png\",\"caption\":\"Hussein Nasser\"},\"description\":\"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.\",\"sameAs\":[\"http:\/\/www.husseinnasser.com\",\"https:\/\/www.linkedin.com\/in\/hnaser\/\",\"https:\/\/x.com\/hnasr\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Utility Network is now on ArcGIS JavaScript API 4.20","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20","og_locale":"en_US","og_type":"article","og_title":"Utility Network is now on ArcGIS JavaScript API 4.20","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2021-07-02T18:14:20+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20"},"author":{"name":"Hussein Nasser","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b"},"headline":"Utility Network is now on ArcGIS JavaScript API 4.20","datePublished":"2021-07-01T08:01:53+00:00","dateModified":"2021-07-02T18:14:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["javascript api utility network","trace javascript utility network","utility network"],"articleSection":["Data Management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20","name":"Utility Network is now on ArcGIS JavaScript API 4.20","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2021-07-01T08:01:53+00:00","dateModified":"2021-07-02T18:14:20+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/utility-network\/data-management\/utility-network-is-now-on-arcgis-javascript-api-4-20#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Utility Network is now on ArcGIS JavaScript API 4.20"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/78b7647b1db598b3c791d039593e5b2b","name":"Hussein Nasser","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/06\/profile.png","caption":"Hussein Nasser"},"description":"Product Engineer at Esri, Author of several GIS books and Software Engineering Content Creator on YouTube and a podcast host.","sameAs":["http:\/\/www.husseinnasser.com","https:\/\/www.linkedin.com\/in\/hnaser\/","https:\/\/x.com\/hnasr"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser"}]}},"text_date":"July 1, 2021","author_name":"Hussein Nasser","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/hussein-nasser","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/06\/Copy-of-un3.jpg","primary_product":"ArcGIS Utility Network","tag_data":[{"term_id":760922,"name":"javascript api utility network","slug":"javascript-api-utility-network","term_group":0,"term_taxonomy_id":760922,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":760932,"name":"trace javascript utility network","slug":"trace-javascript-utility-network","term_group":0,"term_taxonomy_id":760932,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":35461,"name":"utility network","slug":"utility-network","term_group":0,"term_taxonomy_id":35461,"taxonomy":"post_tag","description":"","parent":0,"count":61,"filter":"raw"}],"category_data":[{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":921,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":363,"filter":"raw"},{"term_id":515312,"name":"ArcGIS Utility Network","slug":"utility-network","term_group":0,"term_taxonomy_id":515312,"taxonomy":"product","description":"","parent":36981,"count":141,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":763,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=utility-network","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1272212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/7511"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1272212"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1272212\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1272212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1272212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1272212"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1272212"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1272212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}