Technology Q&A: The evolution of Geocortex and Web AppBuilder for ArcGIS

If you’ve been following our blog, social channels, or have chatted with us in recent months, you’ve probably heard us talk a lot about our Geocortex Essentials 5-Series. Geocortex Workflow 5 was the first product in the series, and for the first time, Geocortex was able to be used inside (not just alongside) Esri applications.

This represents a major shift in Geocortex technology, with a commitment to continuing to offer products that can be used by a broader Esri audience. We sat down with Drew Millen, Director of Products at Latitude Geographics, to learn more about the Geocortex Essentials 5-Series, and what it means for Geocortex and Esri customers.

 

Latitude released Geocortex Workflow 5 in 2017. Can you tell us a little bit about this product?

Drew Millen [DM]: Geocortex Workflow 5 is the first standalone product in the Geocortex Essentials 5-Series: a next-generation suite of products inspired by popular capabilities in Geocortex Essentials 4. Workflows help organizations turn even the most sophisticated business processes into a set of simple, guided end-user interactions.

Not only does Geocortex Workflow 5 transform how organizations approach process automation inside their GIS, it helps organizations avoid re-writing applications for new versions of Esri technology. We worry about compatibility with upcoming versions, so you can stay focused on what you need to get done.

As you alluded to, a major evolution in Geocortex Workflow 5 when compared to previous Geocortex products is that organizations can choose to deploy workflows in multiple viewer frameworks. Workflows can be deployed to both your Geocortex and Web AppBuilder for ArcGIS® applications.

What’s been the reaction from customers so far?

[DM]: It’s been great! Since our beta launch in August 2017, we’ve seen nearly 1,500 unique users sign into the Geocortex Workflow Designer, which represents nearly as many unique organizations. More than 25% of those users have been power users, logging in more than 10 times. These are great signs for a product that’s still in its infancy - we can’t wait to see the workflows they’re building!

We recently conducted a survey of Geocortex Workflow 5 users and found that most are using the product to simplify the user interface in their applications. This is achieved by providing step-by-step interactions to your end-users, instead of presenting them with complex interfaces containing unnecessary tools.

It’s also great to see that customers are deploying workflows in Geocortex and Web AppBuilder for ArcGIS apps.

Can you tell us about the decision to offer products that can be run inside Esri applications?

[DM]: Over time, the Geocortex brand has become largely associated with our viewer technology, and for good reason: we offer world class viewers that leverage the latest Esri technology. But our customers know that Geocortex also provides a rich array of capabilities that add power and functionality to those viewers.

While Geocortex viewers are ideal for many applications (especially those that require sophisticated functionality or need to be maintained for a long duration), we recognize that Web AppBuilder for ArcGIS is a popular, lightweight framework that’s ideal for many types of applications.

Our guiding principle has always been about enabling organizations to get even more out of their ArcGIS investment, and by providing powerful capabilities that extend Web AppBuilder we’re able to do that for more customers and more application types.

We saw an excellent opportunity to provide the powerful functionality Geocortex customers know and love to the broader Esri community, without requiring the substantial investment required to adopt a new viewer framework.

What does Geocortex Workflow 5 allow Web AppBuilder for ArcGIS users to do?

[DM]: Geocortex Workflow 5 is focused on helping organizations improve efficiency and end-user success. Our experience shows that when organizations reach the limits of Web AppBuilder for ArcGIS, they typically start building custom widgets.

With Geocortex Workflow 5, instead of writing code to build widgets that satisfy complex application requirements, you can choose from 175 pre-built activities that chain together to automate virtually any task. The library of pre-built activities even includes specific activities for working with Web AppBuilder for ArcGIS, such as activating and passing data between widgets, and working with Arcade, map layers, and other elements of your apps.

Geocortex Workflow 5 also offers dynamic forms that allow you to deliver a better experience for the users of your applications. Forms don’t just capture user inputs; often certain elements must hide or appear based on user interactions. Cascading dropdowns and an advanced event-based system make it easy to deliver forms that engage your users with extraordinary flexibility.

If I’m a Web AppBuilder user, why would I choose Geocortex Workflow 5 instead of building my own custom widgets?

[DM]: One way to think about Geocortex Workflow 5 is as a “widget builder”. It provides GIS administrators a way to build widgets without any programming, and without deploying code onto the server. Workflows make it simple to rapidly prototype, iterate, and test functionality in your Web AppBuilder for ArcGIS applications.

One of the benefits our customers enjoy with Geocortex Workflow 5 is that once a workflow is authored, it becomes a self-documenting, visual representation of the task or business process being automated. This makes it easy for others to understand and work with your workflows.

A key consideration when we were building Geocortex Workflow 5 was ensuring it would help customers “future-proof” their applications. More specifically, we built Geocortex Workflow 5 to work with both of Esri’s existing JavaScript APIs (ArcGIS API for JavaScript 3.x and 4.x). So, when Web AppBuilder is released using the 4.x API, custom widgets will need to be re-written, but workflows will continue to function seamlessly.

Ultimately, when you compare building workflows to developing custom widgets and functionality, it’s about saving time and resources. Organizations that leverage workflows to deliver custom functionality save a ton of time during development and ongoing application maintenance.

Does Latitude have plans to offer more products for Web AppBuilder for ArcGIS users? What’s next from Geocortex?

[DM]: Yes, we have big plans - Geocortex Workflow 5 is just the first link in the chain. In July 2018, we’ll release Geocortex Reporting 5, which enables Geocortex and Web AppBuilder for ArcGIS users to design and deploy production-ready, printable reports inside their applications. It simplifies the often-manual process of gathering, organizing, and sharing important GIS data in reports.

Application administrators can add the Geocortex Reporting 5 widget to apps built with Web AppBuilder for ArcGIS and allow their users to generate reports from ready-made templates they’ve designed in the web-based report designer.

In our experience, reports that organizations need come in all shapes and sizes – from basic mailing label reports to inspection compliance reports for governing bodies like FEMA – and they can range substantially in terms of complexity. It’s typically difficult to design reports for every need in an organization, expose them inside your apps, and allow them to be populated with data dynamically. Geocortex Reporting 5 makes this task incredibly easy.

We’ll also be unveiling Geocortex Printing 5 in early 2019, which offers a high-quality, easy-to-design map printing solution for Web AppBuilder for ArcGIS. The focus will be on enabling large format, high-resolution -- and overall great-looking -- print outputs.

Geocortex Essentials customers have benefitted from these capabilities for years, and we’re excited for Web AppBuilder for ArcGIS users to discover their power. To make things easy, we’re introducing an edition of Geocortex Essentials specifically for Web AppBuilder for ArcGIS that will allow organizations to purchase Geocortex Workflow 5, Geocortex Reporting 5, and Geocortex Printing 5 under one affordable license.

Do you envision offering Geocortex products that run in other ArcGIS products, such as ArcGIS Pro?

[DM]: One day. Our current focus is on building great products for Geocortex viewers and Web AppBuilder for ArcGIS, but at the same time we’re engineering the underlying APIs to be portable for use in environments like ArcGIS Pro in the future.

We’re currently exploring the types of markets and customers that would benefit from these capabilities in other ArcGIS apps.

What does the introduction of capability-based, 5-series products mean for Geocortex Essentials customers in the near future?

[DM]: We believe It means great things for existing Geocortex Essentials customers. First, we’re committed to continuing our investment in existing Geocortex Essentials components, such as Geocortex Essentials 4.x and Geocortex Viewer for HTML5.

Second, customers of Geocortex Essentials will be entitled to use Geocortex Workflow 5, Geocortex Reporting 5, and Geocortex Printing 5 in their Geocortex Viewer for HTML5 apps. They’ll also receive an entitlement to our new Geocortex Web Viewer, which will be released later this year and is built from the ground up on top of the ArcGIS API for JavaScript 4.x, enabling extremely fast, light-weight apps and 3D scene viewing capabilities.

These “entitlements” mean that Geocortex Essentials effectively becomes a collection of the standalone capabilities, and organizations can license the collection based on how they plan to use it: in Geocortex viewers, in Web AppBuilder for ArcGIS, or in both.

Before we finish up, where can people go to learn more?

[DM]: There’s a ton of places you can go. A good starting point is geocortex.com, where you’ll find details about all of our products, solutions, services, and customers.

Beyond that, our blog is always being updated with relevant information, our YouTube channel is continually showcasing new Tech Tip videos and webinars, and we attend lots of events around the world that can be found on our events page.


How to manage data collected from Geocortex Workflow 5 forms [Geocortex Tech Tip]

Forms don’t just capture user inputs; often certain elements must hide or appear based upon user interactions. Geocortex Workflow 5 forms let you re-imagine the user experience by using cascading drop downs and an advanced event-based system to engage users with extraordinary versatility.

In a Geocortex Tech Tip from a few weeks ago, Ryan showed you how to get started with forms in Geocortex Workflow 5. In this week’s follow-up Tech Tip, Ryan shows you how to manage the data you collect with forms, and pull it into your workflows so you can execute your business logic.

Watch on YouTube 

 

Video Transcript

"Hi, my name is Ryan Cooney, I'm the Product Owner for Geocortex Workflow 5. Today we're going to have a look at how you can extract user data from Geocortex [Workflow] forms. Let's take a look.

In Geocortex Workflow 5, the “displayform” activity is the primary mechanism for creating a user interface and presenting something to end-users. Typically, what we’re trying to do is ask the users questions, or prompt them to supply some values so we can take that information and go on to perform some business process that’s going to meet their needs.

If we look at this “displayform” activity here, it’s composed of form elements and we can just drag-and-drop various elements out of the toolbox onto the design surface. So here I have a text box, called “textbox1” - just a simple form.

Let’s take a quick look at actually running this really simple one. If I run it, all we’re going to get is a text box. The user can type anything they like into it, click submit, and the workflow ends. So, we haven’t done anything useful with the data in this form yet.

To get at that data we need to follow the “displayform” activity with another activity that reaches into that form and pulls a value out. I’m going to use the “alert” activity. The “alert” activity is expecting some text input, and we can provide an expression that controls where that text input is coming from. If I just hit “=” I’m going to get code completion that suggests some values for me. Right here, it’s suggesting “$Form1” as a value, which is referring to the “displayform” activity that we’ve already used.

So, I pick “$Form1”, and we’re dotting into the objects. There’s JavaScript for drilling into the objects. I can pick the state, which represents the current state of the form, and the state is holding onto each of the form elements. So, a header, a footer, and “textbox1” - that’s the input that we’re interested in.

And on “textbox1”, it has a number of properties on it, and the interesting one for us at the moment is the value. With a JavaScript expression like this, we’re drilling into “$Form1”, we’re getting the text box input and the value of that.

OkK so if I just save that and go back to my sandbox to run the workflow again, I get the same input, click submit, and now I’m getting an alert that’s presenting that value [I entered].

That’s a simple case of drilling into a very simple form element and reading off the text value, but if we look at some of the other form elements that we have available to us, they can be more interesting. [For example], dropdown lists with different types of values they could return. We have geometry pickers that allow the users to capture one or more geometries. So, the value we’re pulling out of those inputs can get much more complicated than just a text string.

There’s other simple ones like a checkbox, that if you want to make a decision based on whether a user has ticked a box, it would be a “checkbox.checked” property, for example.

So, we have lots of different options available to us, but the flow is basically going to be the same: layout your form element, and then use an expression to drill into the specific input you’re after, and then access a property of that input. And that’s how we get data out of the form and into the workflow where we can run all our business logic where we’re making decisions about how we process what the user provided.

Hopefully that gives you a quick overview of how you can get data out of a form.”

Want to see how Geocortex Workflow can help you extend your Web AppBuilder applications and streamline inefficient processes? Check out the Discovery Center to get a feel for the product.

Let's go


Delivering accessible mapping applications for everyone [Geocortex Tech Tip]

Accessibility has become a top-of-mind topic for businesses, government agencies, and developers of technology in recent years; U.S. legislation like Section 508, which requires inclusivity for end-users of all abilities, has emerged in recent years and historic exemptions for web mapping have been eliminated.

Since 2015, Geocortex Viewer for HTML5 has been accessible out-of-the-box and meets the criteria to be Web Content Accessibility Guideline (WCAG) AA compliant, without requiring administrators to undertake complicated and onerous configuration or development. In this week’s Tech Tip, Garrett takes a closer look at screen reader support, keyboard navigation, and other accessibility features that ship with Geocortex Viewer for HTML5.

Watch on YouTube

 

Video Transcription

“Hi my name is Garrett, I work on the Product Experience Design team here at Geocortex. Today we’re going to take a look at some of the accessibility features included in our viewers. You don’t need to do anything to configure these – they’re all included out-of-the-box with every viewer implementation.

Geocortex Viewer for HTML5 is accessible and meets WCAG AA standards. This has taken a lot of work on our part to look at many different things, from color contrast to screen reader support to keyboard navigation.

Let me show you how keyboard navigation works in [Geocortex Viewer for HTML5]. First, we have skip links. When you first come to our viewer and use the tab key to navigate throughout the application, the first time you hit “tab” you’ll be presented with what we call skip links. This gives you quick shortcuts to jump to popular portions of our viewer.

The skip links allow you to jump to other regions in our application without having to tab through each individual, clickable item. If we wanted to jump straight to the tool bar, we just tab over and hit enter. Now once the toolbar is open, we can navigate through the different tabs on the toolbar to find an individual tool that we want to use.

Let’s try drawing a polygon on the map. When we activate the drawing tools with keyboards, we have activated “accessibility drawing mode”. Once we’ve activated the polygon drawing tool, our focus is now on the map, as indicated by the purple line around the map. We can now draw on the map using the keyboard.

Hitting Enter will drop a marker in the center of the map extent, and we can control the position using the arrow keys on the keyboard. Hitting Enter will drop a vertex on the map, from which now we can move our cursor around with the keyboard. Hitting Enter again will drop another vertex. If you find that the increments with which the keyboard moves around is too large, you can hold the Alt key and you get a more fine-grained control over where you want to drop the vertex.

Hitting Enter again will complete the shape, and now we can edit this shape using the keyboard shortcut “V”: we can cycle through all the vertices, which we can move. Holding Shift+V will cycle the vertices in reverse order. Between each vertex, another handle will get added that we can then drag out to edit the shape, which will add more handles that we can edit. When we’re done drawing the shape, hit Enter again to complete the shape. And now your shape is drawn on the map. If you hit Enter again, you can draw a second shape. And that’s how you draw on the map with the keyboard.

Another great accessibility feature in our viewers is screen reader support. Geocortex Viewer for HTML5 supports the combination of Firefox with the NVDA screen reader. The screen reader will read aloud changes in the application, links, text, map location, those sorts of things.

In combination with some of the keyboard support, we can navigate through the viewer and the visually impaired will have the benefit of a screen reader reading out the context and instructions to them. Let’s try a couple examples here.

[Screen reader reading results]

Now know that we can perform a search because the screen reader has read out those instructions for us. So, let’s perform a simple search.

[Screen reader reading results]

After we perform the search, the screen reader read out that we’ve closed the home panel and opened the search results panel. We can tab through here to hear other instructions.

[Screen reader reading results]

As you could hear, as we zoom to all the features in the feature collection, the screen reader read out the coordinates and extent change on the map to keep users centered with where the map is now located.

To learn more about accessibility with our viewers, you can visit our Documentation Center at docs.geocortex.com. Just search for “accessibility” and you can read all about accessibility in our viewers, including a detailed list of all the keyboard shortcuts to help you navigate through applications with just the keyboard.”

​You can learn more about Geocortex Essentials accessibility features in our 2017 webinar, which is available on YouTube here.


How to search for data in a non-spatial database [Geocortex Tech Tip]

Maps allow you to visualize data in meaningful ways and expose patterns that can’t be seen anywhere else. One of the challenges, though, is that your most important business data typically lives in another system or database. This can become even more challenging when it’s data stored outside your geodatabase.

In this Geocortex Tech Tip, Drew Millen shows you how to search for data in a non-spatial database (such as Oracle or SQL), find the spatial relationship, and display it on a map. 

Watch on YouTube

 

Video Transcription

“Hi everybody, I’m Drew with Latitude and in this Tech Tip we’re going to look at searching for non-spatial data. That’s data stored in Oracle or SQL Server… somewhere that’s not in your geodatabase. We’re going to look for that, find the spatial relationship, and display it on a map, so let’s see how we do that with Geocortex.

What we’re looking at here is a very basic Geocortex viewer application that’s been configured with a single layer called “Land Use”. This contains polygons of different types of land uses and what I’m interested in is this “Arts and Recreation” land use polygon, which contains park information for Los Angeles County. I also have a database table - in this case, an Excel spreadsheet of trees. Now notice that I‘ve got records of all the different types of trees that exist, but I don’t have location information for these. In other words, this is a non-spatial database table. This could live in Oracle or SQL Server, but for the sake of this demonstration it’s just an Excel table.

We’ve got a facility that tells us which park this tree belongs to, but we still don’t have its “XY” location on the map. What I want to find out is where I can find certain trees in my county, so, what parks do I have to visit to discover certain types of trees.

Now in this application, I’ve got a data link between my parks layer, or my land use layer, and the tree database. So, if I have a park selected, and I view the additional details for [the park]; I can see the spatial details associated with that park and I can also see the trees that are within that park, but I’m not quite there. What I want to find out is which parks contain which trees... and remember, my trees don’t have “XY” locations.

How do I solve this? Well, I’ve already set it up so that we can do a search against this Excel table. So, if I do a search for the word “macadamia”, for example, I will find search results from that Excel table, but I still don’t have the location on the map where these macadamia nut trees exist. I need to create a “join” between these search results and a spatial layer on the map to find the underlying spatial feature. In other words, the park that the trees live within.

What I can do is come back to Geocortex Essentials Manager where I’ve configured this application. And to connect to this Excel spreadsheet, I’ve established a data connection. You can see the connection string that we’ve used here simply points to the spreadsheet. If you’re connecting to Oracle or SQL Server, there’s different syntax that you would use for your connection string, but the same idea exists.

Now that we have that data connection, we can set up what we call a “Search Table.” And a search table gives us a select clause: in other words, which fields are we interested in returning from that table when the user issues a search. In this case, we want the user to be able to search on the common name of the tree (like my example when I typed in the keyword “macadamia”) and find all the attributes from the LA Parks trees in this database. So that search is set up.

I’ve also got the land-use layer in my site configured with a datalink. This datalink means that the layer is joined to this data connection, so that every time I click on a park on the map, I see the associated records from my Excel spreadsheet. Recall, however, that I want to do the reverse. So, our current datalink makes sure that every time I select a park on the map I’m grabbing the trees and joining it on the facility column. Notice that facility column is the name of the column that we're using in the spreadsheet to represent the park that the tree exists within.

There’s this section down at the bottom, here, that allows me to add a search, so that’s the reverse of what we’re currently doing, and it allows me to use one of the searches that I’ve configured to find these features from the land use layer that match my search criteria from my datalink.

I’m going to give this a display name. We’ll just use “Park Trees Search,” and the search table that I’m searching on is the only one that we’ve configured in our site earlier, so it’s this Park Trees Search table. And then the field that we want to join is called “Facility,” and that maps to the name of the land use polygon. So that’s where we get our many-to-one relationship from. I’ll go ahead and save the site with those configuration changes and then refresh our viewer.

Now I’m going to issue a search for the word “macadamia” like I did before, and I’ll find the same four results from my Excel spreadsheet. But now when I drill into a result, we can see the facility that it belongs to. It exists in two different parks: there’s “Runyon Canyon Park” and “Runyon Canyon Park – MRCA”. If I click on one of those it’s going to take me to the park where I can discover these macadamia trees.

Hopefully this quick Tech Tip has shown you how you can configure a non-spatial data source to be searchable inside your viewer and still return spatial results. Thanks for watching!”

Explore more Geocortex Essentials functionality in the Discovery Center.

Discover Geocortex


Configuring Geocortex Analytics to monitor a new Portal for ArcGIS instance [Geocortex Tech Tip]

Geocortex Analytics helps you get a complete picture of your GIS infrastructure; you can ensure peak performance, keep your users happy, and avoid interruptions. For many of us, Portal for ArcGIS is a critical piece of the GIS environment, and one that we want to monitor.

In this Geocortex Tech Tip, Aaron Oxley shows you how to configure Geocortex Analytics to monitor a new Portal for ArcGIS instance.

Watch on YouTube

 

Video Transcript

“Hi, my name is Aaron Oxley. I’m a Product Support Analyst at Latitude Geographics and in this video I’ll be explaining how to configure Geocortex Analytics to monitor your Portal for ArcGIS.

Once you're logged in and looking at the summary page in your Geocortex Analytics reports, click the “configuration” link in the top right corner. And that will take us to the configuration overview page, and we can see to add a new resource, we need to click “add resource” in the bottom of the resource list. Let’s go there.

Portal for ArcGIS is what we’re after. As you can see, there’s not a lot of configuration required. The first thing that we need is a name. This is what’s going to show up in reports, alarm emails, and texts. I like to use the name of the server where the portal is hosted, even if you only have one portal, it’s a good naming convention in case your environment grows in the future.

In the next field, you’ll need the URL to your Portal for ArcGIS. You can see there’s an example here; the default URL is “servername/arcgis”, but if you aren’t sure about what to put here you can confirm the correct URL by testing in a browser.

I’d like to do that, so let’s open a new tab and load up our portal. We can see this is our portal, so we know the URL is correct. Let’s copy it and take note of the protocol. We can see here that it is HTTPS. We’ll paste the URL and toggle the protocol field to HTTPs.

Now lastly, because your Portal for ArcGIS is secured, you need to enter credentials, and they need to be from an administrator account. There’s five options here. First one is token, and if your portal uses token authentication it’s very straightforward: just enter a username and password for an administrator and click save.

The next option -- OAUTH2 -- is certainly the most common, and it’s also Esri’s recommended methodology for user sign in. We see a message here that we’re going to need an app that has this redirect URI. We’re also going to need an app ID, an app secret, and lastly, we see a message letting us know that we are still going to need to provide administrative credentials.

So, let’s go and get this app created: come over to your portal and click “content” in the top. Under my content, click on “add item” and select an application. In here, we’ll select an application again and enter a title, and some tags. If we click “add item” that will create our application, and we can see it there.

Under the “settings” tab, near the bottom, there’s a registered info button. If we click that button, and then click the update” button, we can enter a redirect URI. If you remember from the configuration page here, we have the redirect URI specified. We can copy that and paste into here. Click the “add” button and it shows up in the list below, click the “update” button and it’s all set.

Now lastly, before we go back to the configuration in Geocortex Analytics, we need the app ID and app secret. Go ahead and copy the app ID, paste into the corresponding field in Geocortex Analytics. Same thing with the app secret. That’s all there is to it. We can now click “save” and we should be prompted to sign into ArcGIS Enterprise.

So, this has now taken us to Portal for ArcGIS. These are administrative credentials for portal, so this is an account that has administrator access. “Sign in” brings us up to “Save Successful” and we can see that it was saved successfully.

The third option for authentication types is good old Windows authentication, and it really is as simple as entering username, password, domain, and clicking save. As with the other types, this does need to have full administrative access.

And the last two options are just combinations of the previous three in case your portal is configured with two layers of security. But the procedure is the same. Just follow the exact same steps as for these ones above. And that’s all there is to it.

Once again, my name is Aaron Oxley, I hope this video was helpful. Thanks for watching!”

To learn more about how Geocortex Analytics can help you get a better understanding of the performance of your GIS, please get in touch and we'd be happy to take you on a tour of the product.


Getting started with forms in Geocortex Workflow 5 [Geocortex Tech Tip]

You hear us talk a lot about the importance of keeping your end-users in mind when developing GIS tools and applications; we built Geocortex Workflow 5 to help you improve user experience by allowing you to guide end-users through complex business processes in simple, intuitive ways, which is largely achieved through forms for capturing user inputs.

The improved forms offered with Geocortex Workflow 5 go beyond just simple text inputs; you can present users with checkboxes, dropdown menus, and geometry and file pickers. In this Geocortex Tech Tip, Ryan shows you how to get started and build your first form for deployment inside Geocortex or Web AppBuilder for ArcGIS.

Watch on YouTube

 

Video Transcript

“Hi, I’m Ryan, and I’m a Product Manager at Latitude. Today I’m going to show you how to get started and build your first form with Geocortex Workflow 5. Let’s get started.

One of the main uses of [Geocortex] Workflow is to create an experience that guides the end-user through some sort of business process. Typically, what that means is that we are presenting forms to the user so that we can capture inputs from them, then pass on to the rest of our workflow, which actually executes the business logic based on the data the user provided. So, an indispensable tool in [Geocortex] Workflow is the “display form” activity, available here in the tool box.

To get started, just drag [the “display form” activity] onto the design area and connect it to the flow chart. Now we have a workflow that contains one “display form” activity. If I double click that activity, it opens the form designer experience. We can see here that I have a header that contains my title, and a footer that’s got some buttons in it for “submit” and “cancel”. So that’s what we have by default.

I can change the title of the form if I want to "My form". And if I wanted to, I could change the buttons around to “back” and “next” instead of “submit” and “cancel” or add and remove buttons as needed.

And then we’ve got a selection of form inputs that we can choose from, depending on what type of information we need to capture. So, just starting with something simple, a textbox, we can drag that onto the [design area]. And let’s say that we wanted to create an address entry form. I can change that textbox’s title to just be “address”. And if I want a little description underneath that, I could put something like “enter an address” in there and it shows up.

There’s even some cool things that we can support, like markdown, to make it have some improved formatting. If I wanted bold or italics, or things like that, that’s available. And I can supply a value.

Okay, so that’s sort of a basic input that we’ve fleshed out. There’s also all kinds of other things that we can add. If I wanted radio groups or check box groups, dropdown lists, all sorts of things are possible in here. And even things like a geometry picker is going to allow the end-user to draw a shape or multiple shapes on the map. File pickers can [also be used to] capture pictures from phones and things like that. All these different items are available in here.

So now what we do is, I’m going to hit “Ctrl+S” to save this and am going to demonstrate this form running in our sandbox application. So, we can see this workflow running with various Esri APIs - in this case just a 2D map. Here’s the form showing up, as it was designed. There’s my text input, I’ve got radio buttons that we didn’t bother to configure, I’ve got a geometry picker that’s going to allow me to draw a shape on the map. All that information is available just from that, the simple clicks that set-up that form.

And the last thing I’ll show here is a couple real applications. This is just a sandbox for testing, but if we were to look at WebApp Builder [for ArcGIS], I can connect to a widget that’s going to run that workflow.

Here’s that exact same form running from the workflow I just edited, available here. That’s a 2D Web AppBuilder for ArcGIS application, and then here’s a 3D one that runs a completely different viewer and a completely different layout that’s being used, but it runs just the same, so we can get our forms rendered and we can start capturing input.

That [should be] enough to get you started. Stay tuned for future [Tech Tips] where we look at how we can get this data out of the form and pass it on to our workflow process.”


Using Geocortex Workflow with Web AppBuilder for ArcGIS [Geocortex Tech Tip]

Last year’s release of Geocortex Workflow 5 (the first product in our Geocortex Essentials 5-series) introduced the ability to leverage Geocortex functionality inside Esri applications, not just alongside them. This was a major milestone and presents a new realm of implementation possibilities for licensees of Geocortex Essentials 5-series technology.

Geocortex Workflow 5 allows you to deploy your workflows in Web AppBuilder for ArcGIS applications. In this week’s Geocortex Tech Tip, Ryan Cooney takes you through the set-up and configuration required to deploy 5-series workflows in Web AppBuilder for ArcGIS Developer Edition.

Watch on YouTube

 


Video Transcription

“Hi, I’m Ryan. I’m a Product Manager at Latitude. Today I’m going to show you how to use Web AppBuilder [for ArcGIS] to run Geocortex Workflow 5. Let’s take a look.

Web AppBuilder [for ArcGIS] uses widgets to deliver custom functionality to your end-users. To get a workflow running in Web AppBuilder, we need a widget that’s going to run the workflow. Geocortex Workflow ships with some widgets, but to run a workflow, we’re going to have to make those widgets available to Web AppBuilder.

To do that, we’re [going to start] in Geocortex Workflow Designer. On the “info” tab, there’s a deployment section that has a link to download workflow widgets for Web AppBuilder, so I’m going to click that.

That’s going to download a .zip file, which we’re going to use in a second. And while we’re here, this page has a link to configure Web AppBuilder for ArcGIS to run a workflow. As we open that link, we’re taken to the [Geocortex] Documentation Center where we have complete instructions on how to set up the widget.

There’s actually two flavors of this set up. Today were going to look at Web AppBuilder [for ArcGIS] Developer Edition. It’s the slightly more complicated of the two, but we can also work with the edition of Web AppBuilder that’s built into Portal for ArcGIS. There’s slightly different steps that were going to take, but basically, it’s going to be the same process in which we tell Web AppBuilder where the workflow widget lives.

Once we’ve done that, we can use Web AppBuilder for ArcGIS to see that widget and configure it to run a particular workflow. So, these instructions are [in the Documentation Center] and I recommend reading them, but I’m just going to show you how it’s done.

First, I’ve downloaded that .zip file and I open it up (it’s just sitting here in my downloads). And then I need to go to where Web AppBuilder is running. So, in this case I’m just running Web AppBuilder out of this folder, and inside the Web AppBuilder folder structure, there’s a client folder, and in there is the stem app and the stem app 3D.

Inside of the stem app there’s a “widgets” folder, and this is where all the built-in and custom widgets live. What we need to do is just copy out of the downloaded one, so it’s got the same structure - it’s got a stem app, it’s got widgets, and there’s two widgets in 2D and two widgets in 3D. So basically, what we do is copy that entire client folder over top, and that’s just going deploy both the 2D and 3D widgets. And now we can go over into Web AppBuilder and start configuring these.

I have Web AppBuilder open right here, and I’ve got an existing application that’s basically empty. Web AppBuilder (if you’re not familiar with it) has all these spots where you can plug widgets in. Depending on the layout, it might be these buttons, or it could be in the tool bar.

But if we select widgets, and I hover over our widget place one, you can see that it’s highlighting it on the screen. And if I pick widget one, we have those two workflow widgets [that I copied over a moment ago]. The first one is just the in-panel widget, that’s your most common. And then we also have one that will run in a modal window, but they basically do the same thing. So, I’m going to choose the in-panel one.

Now, I’ve added that widget and what I need to do is tell this widget to run a particular workflow. So, that workflow that I was working with over here, which is called “autocomplete1”, it was really simple. It just had a form that had an autocomplete in it. I can look in my content and find it, or I can search for other workflows, but here it is right here. If the workflow happened to have input parameters (this one doesn’t) you could add them here. This was just a list of key value pairs, but I don’t need those in this case.

And there, it’s added that workflow. And if I run it, here’s my autocomplete. It’s not hooked up to anything, but that’s the workflow running inside Web AppBuilder. This will work for 2D and 3D. This is the Developer Edition we’re looking at, but also if you had followed the instructions on deploying to Portal for ArcGIS, you can get that too, it’ll work just as well in portal for ArcGIS’s version of Web AppBuilder. That’s all you need to do to get up and running running inside of Web AppBuilder for ArcGIS.

Want to take Geocortex Workflow 5 for a spin? Visit the Discovery Center today to learn more and get a feel for the product!

Go to the Discovery Center


Understanding tool usage in your GIS applications [Geocortex Tech Tip]

Your GIS is about serving your users and keeping them productive, and it’s important to understand how they’re interacting with the tools and apps you’re providing. Being able to dive into the usage of specific tools is a major component of understanding the return on your GIS investment.

In this Geocortex Tech Tip, Derek Pettigrew (Geocortex Analytics Product Manager) shows you how Geocortex Analytics allows you to drill down and understand usage levels for the specific tools in your applications.


Watch on YouTube 

 

Video Transcription

“Hi, my name is Derek, I’m the Product Manager for Geocortex Analytics. Today, we’re taking a look at tool usage in your Geocortex applications to understand how your end-users are interacting with your apps in more detail. Let’s take a look.

Here we are in Geocortex Analytics, and we’ve drilled down to the Geocortex application section, looking at the LA County applications. What we’re looking to understand is how users are engaging with the tools in our application. As you can see, we have this wonderful panel to tell us that information.

We can see how the workflows are a very popular item for tools, along with identification, active tool sets, simple query builders, and many others. You can drill down further and see that there’s markups, collaboration going on, layer catalog usage - all very useful to understanding the return on investment around those tools.

Not only can we do this, we can also go through and break this down into further details to really see, at the granular level, how people are engaging with your tools. If I select “include details” I can now see that my identify operation is mostly [used] through the rectangle tools. My “run workflow” is a demographic query area, and I can continue back and forth through this looking at different areas, [for example], seeing that the other run workflows here are for parcel reports.

And If I really want to understand my workflows and which ones are being used in this application, I can filter this [view] to only show me the workflows I actually want to see. So, I put workflows in, and now I can see my workflows by popularity of use for this tool, and how often they were used in the “occurrences” area here. I can see my demographic query one is very popular, followed by parcel reports, profile tool, drive time, and road closures.

By using this, we can really understand what’s going on with your end-users, so we can build better tools to help them accomplish their tasks. That is all, thank you!”

Are you thinking it might be time to assess the health of your GIS? We've created a checklist that will help you perform a user-first GIS health assessment. 

Download the checklist


Running Geocortex Essentials workflows from an identify operation [Geocortex Tech Tip]

The Geocortex Essentials identify operation allows you to draw a geometry on the map, and have the application return a collection of features that intersect that geometry. But the identify operation will only return results from your GIS layers, and many (likely most) of us integrate our GIS with various 3rd party business systems, such as asset management, document management, ERP, and business intelligence.

In this week’s Tech Tip, Drew Millen will show you how to invoke a Geocortex Essentials workflow from an identify operation to return non-GIS results. Perhaps you want to see documents in your document management system displayed on the map, or geo-located tweets for a specific area. Kicking off a workflow from the identify operation will allow you to display these types of results and will help you avoid writing a ton of custom code to do so.

Watch on YouTube

Video Transcription

“Hi, I’m Drew Millen, Director of Products at Latitude. In this short Tech Tip video, we’re going to talk about workflows; specifically how you can make Geocortex Essentials workflows run in Geocortex Viewer for HTML5 when you perform an identify operation. Let’s dive in.

I’m going to show you how to use identify workflows, which are Geocortex Essentials workflows that piggyback on top of the identify functionality. In this site, I’ve got the default identify behavior working, so when I perform an identify [operation], I’m going to find cities on top of this map, and I want to run a workflow every time I perform an identify as well.

Let’s look at the configuration file that supplies the configurations for this viewer. There’s a module in here called “identify”, and we want to configure the identify behavior. This [view you’re seeing] is the desktop.json.js file that configures the viewer we were just looking at. Notice that the identify module has a section called “identify providers”. It’s here that we specify which logic will run when an identify is performed by a user: for example, querying a graphics layer, or querying the map itself. And down here, I’ve added a workflow identify provider. I’ve also supplied some configuration to this identify provider, so it’s looking for workflows in my site with the suffix “_identify”. Any workflow I’ve added with this suffix will be run by this workflow identify provider.

With that in place, let’s author our workflow. I’m going to open the Geocortex Essentials Workflow Designer. If you go into the “file” menu and click on “new”, you’ll see that we’ve provided a template for creating identify workflows. This template supplies a basic example to help you get started. If you look at the arguments, an identify workflow is expecting a geometry as an input argument. That geometry comes from the identify the user performs. It’s also expecting a unique identifier just for some bookkeeping. We can just ignore that property.

The other properties are output arguments - things that your workflow must supply. For example, the feature set that’s returned from your query, the display name for that collection of features, and any aliases and formats that you want to use for the features that come back. In this example, we simply query a sample layer from ArcGIS Online that looks at [US] states. The geometry from the identify operation is passed in as a parameter to perform that identify. We set the display name to be "states” and we supply some aliases for the fields that are going to come back, making it readable for the user. And we supply some format strings for features that are going to be displayed in the map tips and results list.

With this workflow developed, we [now need to] attach it to our site so that it can be run every time we perform an identify operation. Let’s look at this app in Geocortex Essentials Manager, and I’ll navigate down to the workflows tab where I want to attach this workflow that we were just looking at. Recall that it must have an “_identify” suffix to be picked up by my workflow identify provider. I’ll give it the name “helloworld_identfiy”. Now it’s looking for the URL or URI of the workflow I just authored. So, I’m going to browse for that, and I’m going to go into the directory that we have for this site. I’ll upload it into a folder I created called “resources”. It’s now stored on my workstation as “helloworld_identfy.xaml”. I’m going to go ahead and upload it to that directory and select it.

Now Geocortex Essentials Manager is smart enough to know that this workflow has parameters, so I’m being prompted to supply them here. Because the geometry and unique identifier are going to be supplied by the identify operation, we don’t need to supply them here.

The workflow is now attached to my site, so I’ll go ahead and save it. Let’s refresh the viewer and see the resulting behavior. I’m going to run an identify again, which will identify the cities, but it should also run my workflow and grab the states. Here we can see the result of my states workflow populating the list of results that I expected.

To view a more sophisticated example, we’ve also done the same thing by integrating a workflow that uses the Twitter API to find tweets within a geographic area. In this case, I’m going to perform an identify at the San Francisco airport and discover all the tweets that have been added in this area in the last hour. This is a more sophisticated example of using an identify workflow in a Geocortex Viewer for HTML5 application. To learn more, please get in touch. Thanks for watching!”

Want to learn more about Geocortex Essentials? Visit our Discovery Center to take it for a spin and explore real-world examples of how Geocortex Essentials helps organizations address common (and not-so-common) business challenges.

Visit the Discovery Center

 


GIS Health Assessment: A new way to think about your system

When we think about the health of our GIS, many of us are used to beginning with the infrastructure. After all, it is what drives the technical performance of your system. The problem with starting at the infrastructure level, though, is that it’s difficult to get a complete picture of which aspects of the GIS are most important to your users.

While the GIS infrastructure is extremely important, not all the resources in your environment are created equal. You might have some layers or services that are used 3-4 times a week, and others that are accessed thousands of times each week. While you want to do all you can to ensure the entire system is performing as it should, there are only so many hours in a day. With an infrastructure-first approach, you’re often unable to hone in on what the most important apps, layers, services, servers, and ArcGIS instances are. 

 

A new way to think about GIS health

It’s time we flip the traditional infrastructure-first approach and begin thinking about GIS health through the lens of end-user productivity. Your GIS is there to help your users do their jobs, so that’s where your analysis should start.

Whether it’s explicitly or implicitly, you’re going to be measured on the productivity of the users you build apps for, not the response time of a specific server. Without the users, there is no need for the GIS infrastructure.

By starting with what your users are trying to accomplish, you’ll be able to map your key business processes and user flows to the GIS infrastructure and resources that are most important to supporting them. Looking at your GIS from users’ perspectives allows you to better understand how it is being used day-to-day and identify the critical resources needed to support your monitoring and optimization efforts.

With so many moving pieces in your GIS, you don’t have time to treat everything equally.  Focusing your efforts will let you be much more productive and spend more time working on high-value activities.

When we talk about a user-first approach to GIS health, there are two major areas that you need to be considering:

Performance: While closely tied to infrastructure performance, what we mean here is the performance of your end-users. Are they able to do their jobs effectively with the tools and applications you’re building? Are your users taking longer than expected to complete certain tasks?

When these things crop up, a user-first approach will help you target your efforts and fix issues quicker. A good example would be if an application had a poorly performing layer. This would be an infrastructure performance issue, but if you understand what specific layers and services are used in that application, you will know where to look to address the issue.

Usability: If your GIS infrastructure is performing as expected, the next area to examine is usability. Usability is all about whether your applications are configured and designed in a way that makes sense for what your users need to do. Strong infrastructure performance combined with poor usability is still poor performance (remember, performance is about end-user performance, not infrastructure).

An example of how usability can affect performance is when a common tool is not in a prominent location in your app. If it’s difficult to find, users will waste time looking for it, take longer to complete a task by using a different method, or abandon it entirely. This is also true when incorrect layers are loaded by default – users end up wasting time searching for the layers they need.

Completing a user-first health assessment

Once you’ve adopted a user-first approach to GIS health, you’re ready to perform a user-first health assessment. What you’re trying to accomplish is mapping out the business processes and use cases that you manage with your GIS to the specific GIS resources that support them.

First, you’ll want to identify the different user groups that leverage your GIS. By user group, we mean a group of users that have common work patterns and engagement with your applications. This could be a group of people (or one person) with the same task in your head office, or it could be a specific field crew that uses an app on a tablet. The key here is to identify people who use the GIS in similar ways.

We’ve created a checklist to help you perform a health assessment; it’ll help you map what your different user groups need to accomplish to the GIS resources and infrastructure required to support their work.

The checklist contains areas to detail the users and what they need to do, the app(s) they use, the most-used layers, the services the app(s) consume, which ArcGIS products are used and how they’re configured, and the server(s) that support it.

Get your GIS health assessment checklist now  

What to do with your health assessment

Once you’ve completed your GIS health assessment, you can use the information you’ve gathered to proactively monitor the GIS resources that are the most important. Tools like Geocortex Analytics allow you to configure personalized dashboards that provide a snapshot of the resources you want to monitor.

You can also configure alarms and notifications in some systems monitoring tools. Because you know what you need to monitor, you can set thresholds for warning signs of potential issues and have notifications sent to your email.

Next, identify anomalies among your use patterns. If certain users are performing notably better or worse than the average, you can dive into the specifics of how those individuals are using the applications you’ve built. Replicate the superior use patterns and examine the weaker patterns to gauge if there is a potential gap in training or understanding of certain functions.

If you want to learn how all of this is possible with Geocortex Analytics, we’d like the chance to show you! We’ve recently added great new features (including individual user reporting) and made significant improvements to performance and reliability. Get in touch with us using the button below.

Let's chat