Showing 10 result(s) for tag: geocortex workflow

How to use Geocortex Workflow 5 to populate the Attribute Table in Web AppBuilder for ArcGIS [Geocortex Tech Tip]

One of the things we set out to accomplish with Geocortex Workflow 5 was to dramatically boost efficiency and reduce complexities, ultimately increasing the value of your GIS applications.

In today’s Geocortex Tech Tip, we take a look at how Geocortex Workflow 5 can interact with the Attribute Table widget inside Web AppBuilder for ArcGIS. Using fire hydrant data as an example, you’ll discover how Geocortex Workflow 5 can be used to populate this Attribute Table, simplifying the experience of viewing and comparing your layer data.

 

Watch on YouTube.

Video Transcript

 “Hi everyone, my name is Patrick Fingler. I work in our technical marketing department, and in this video I’m going to show you how you can populate the Attribute Table within Web AppBuilder using Geocortex Workflow 5.

Let’s take a look!

Okay so in this Tech Tip video, I'm going to going to show you how you can populate the Attribute Table within Web AppBuilder using Geocortex Workflow 5. Here you can see I've got a web map displaying within Web AppBuilder that's got some hydrants, it has some service requests, a couple of tax parcels, and often you'll want to have a workflow that presents the user with a form that allows them to search for a layer on the map and then send that information to the attribute table within Web AppBuilder.

In this example I've already built a workflow to accomplish this. It's a pretty simple workflow, and essentially what it's doing is it's presenting the user with a form that is asking them to search for a fire hydrant. They've got two options; they can search for a hydrant by just entering the ID of that particular hydrant, or they can search for hydrants on the map.

So in this example, I might be interested in these three particular hydrants, and if I click ‘Next,’ what we're doing is we're first selecting those hydrants (well, we're actually performing a query on those hydrants), then we're sending the results of that query to the Attribute Table using the ‘Show Results’ activity within workflow 5 and then we're actually panning the map to the extent of these features.

If I wanted to, I could also search by a single Facility ID, and this example again panning to that hydrant and displaying the attributes. 

So let's see how this works in the back end within workflow designer. This is the workflow that I've developed that's being run within Web AppBuilder, and I've deployed to Web AppBuilder and here you can see we've got our initial form here that's just presenting the user with the two options to either search by ID, or search by selection. Then within here, I'm saying if the user clicked submit within that form, we're then going to query for those hydrants.

We'll then switch depending on if the user is selecting them via the geometry, or if they're selecting them by the ID. In this example what I've done is actually dynamically generated the hydrant layer URL and I'll show you how to do that. Then I'm running a query based on the geometry that we selected. Then I'm saying if we got some results - if there's more than one hydrant that we've selected - we're then going to show those results within Web AppBuilder’s Attribute Table. This is the ‘Show Results’ activity that you're going to want to use, and here I'm passing in the features from my query.

Now in order to actually get them to show up and be highlighted within the Attribute Table within Web AppBuilder, you have to pass in a layer ID as well as a layer name.

Now again I'm dynamically getting these values from this hydrant layer and I'll show you how to do that - it's really useful if you're building workflows within Web AppBuilder.

Last but not least, I'm then getting the extent of those features, I'm using this activity, and then I'm setting the map extent to the extent of those features and then I'm expanding it by three. It's zooming out a little bit, and then we're just displaying our final form asking if they want to return to the start, generate a report or exit.

Now I mentioned being able to get the hydrant layer so you can dynamically get the URL, the ID, and the layer name. In order to do this you can use the ‘Get Layer’ activity within workflow 5 and it accepts a layer ID.

For Web App Builder, this layer ID is the name of the layer within the web map itself. So here I can see this is the Web map that I'm using. And this is the name of that. So I've selected that in here.

Once I do that, you'll see I'm getting the layer and these are all of the properties for the layer, so I'm able to retrieve the layer ID. I can even get the layer name as well as the layer URL, and if you're using the secured services you can also retrieve the token as well using this process, so it's a really useful activity. And that's essentially how you dynamically pass that those values into the show results activity as we can see here.

That’s essentially how you can populate the Attribute Table!

Now I also was clearing the Attribute Table as well. In this example I'm still using the layer ID and layer name, but I'm just passing in blank features. So if we rerun this workflow, and search by selection so let's select a couple of these and click “Next,” we can see I’ve selected them. If I click ‘Return to Start,’ I'm then clearing my selection, and if I wanted to generate that final report we can do that by searching for a facility ID and running a report on that. So again that's how you use these show results activity within Workflow 5 to populate the Attribute Table within Web AppBuilder.

Thanks for watching!”

Curious to try Geocortex Workflow 5? Check out our Discovery Center and see everything it has to offer!

Discover Geocortex Workflow 5


Using Geocortex Workflow 5 to automatically display a form for editing layer attributes [Geocortex Tech Tip]

With Geocortex Workflow 5, authoring workflows has never been easier. With a library of 170 pre-built activities that chain together seamlessly, you can covert even the most sophisticated business processes into a simple, guided end-user experience.

One of the things that we’re really proud of when it comes to Workflow 5 is its ability to automate virtually any task, so we thought it would be fitting to show you in this week’s Geocortex Tech Tip how to use our Workflow technology to automatically display a form for editing layer attributes.

 

Watch on YouTube.

Video Transcript

“Hi, my name’s Jeff. I’m a software developer on Geocortex Workflow 5, and today I’m going to show you how to display a form using Workflow so that you can edit features in your layer.

Let’s get started!

So, I’m going to demo this for you today in the new Geocortex Mobile Viewer which means the Esri objects that we’re interacting with in this workflow are going to be from the ArcGIS .NET Runtime, so you might notice a few slight differences form the JavaScript API. So, to show our form we are going to use a display form activity, and I’ve gone ahead and preconfigured some activities for this workflow just to save time.

On our display form activity, we’re not going to configure any form elements and that is because we want to dynamically display the form depending on the layer that we have. To set the dynamic form elements we’re going to use the ‘load’ event handler in the forms header. If we look in here the first thing, we need to do is get the layer using the ‘Get Layer’ activity and I’m going to be using a web map that has a layer with the ID ‘Service_Request_8759’. That’s going to get our layer and the next thing we’re going to want to do is add a form element for each field in the layer. So, we’re going to iterate over the fields in the layer. You can see we’re going layer.featureTable.fields and this feature table is a .NETism.

The first thing we’re going to do on our ‘For Each’ loop is just assign the field to a variable, so that we don’t have to access each For Each loop current item every time so this is a Create Value activity. Then the next thing we want to do is check if the field is editable, so we’re going to check the ‘isEditable’ property. If it’s not editable then we’re not going do anything because we don’t want to display anything.

So, then we’re going to create an object for our form element and we’re going to assign a few properties we’re going to set the description to the field alias and I’m going to set the items to an empty object, which I’ll come back to in a few minutes. Next, we want to decide which kind of view UI control to create for each field.

The first case we’re going to handle is fields that have coded value domains so in this if activity we’re checking if the field has a domain object and if that domain object has coded values. If it does then we’re going to want to show a dropdown box with the coded value domains in it. So were going to iterate over the coded value domains so you can see ‘domain.codedValues’ in our For Each loop here. And the first thing we’re going to do in here is just assign the coded value to the variable, so we don’t have to access the For Each loop every time and we’re going to create an object for the form item.

The ‘label’ is going to be the name of the coded value and the ‘value’ is going to be the value of the coded value. And then we’re going to set this item on our form element object. As you can see, I’m targeting the items property of the form element object. And we have to assign it a unique ID so we’re just going to use the pass of the For Each activity and we’re going to call toString on it because it has to be a string ID, and we’re going to pass in the object we just created. Next, we’re going to add the dropdown list form item to our form and we’re going to do this using the ‘Add Form Element’ activity. We have to provide a unique ID, so we’re going to use the name of the field and we have to specify the type of form element that we want to use (you should get some intellisense in here), we want to use a dropdown list and we’re going to put in our form element object that we just created.

Next, I’m going to show you how to do a number field. So, for this we have to look at the fieldType property of the field and in .NET, this is a numeration that is backed by integers, so we just have to compare it to its integer value, so the value for an integer is one. So, we want to create a format object for our number to ensure it appears as an integer - so to do this we set the precision to ‘0’, meaning no decimal places are shown and we want to set the step to ‘1’.

Next, we want to set our format object that we just created on the form element object, so we’re setting the format property on our form element object to the format object that we just created. Once again, we’re going to use the Add Form Element activity to add this to our form. This time we’re going to chose number and we’re going to use the field name as the ID. So next I’m going to show you a string field. So, the integer value of field type for a string is ‘7’, so we’re just checking for a ‘7’ so in that case we want to add a TextArea form element to our form. So, it’s the simplest case using the field name again.

Alright, I’m going to demo this for you in the Geocortex Mobile Viewer now.

Let’s quickly take a look at the Json in the feature layer that I’m using here. These are the fields in the feature layer, and you can see I have a string field called ‘REQUESTSTATUS’ that uses some coded value domains; there’s three domains in there. I’ve got a regular string field called ‘DESCRIPTION’ and an integer field named ‘SEVERITY’. So, this the workflow that we made to show the form elements will cover all three of these fields.

Let’s pop open Geocortex Mobile Viewer and I’ll show you the workflow. So, this is just an extremely bare bones version of the mobile viewer that I’ve configured solely for the purpose of showing you this workflow. So, I have the workflow on the task bar and if I click on it, you’ll see that I’ll get one form element for each of the fields that are editable. So, I’ve got my ‘Status’ element which is a dropdown box. I can choose the value, the ‘Description’ field is just a string field, and the ‘Severity’ field is just an integer. So, if I type in that I can see that it is an integer and I can step up my integer values.

And that’s how we create a dynamic form for a given layer. Thanks for watching!”

Interested in trying Geocortex Workflow 5 for yourself? Check out our Discovery Center and explore everything Geocortex Workflow 5 has to offer!

Discover Geocortex Workflow


How to access a SQL database from a workflow using Geocortex Workflow 5 [Geocortex Tech Tip]

How to access a SQL database from a workflow using Geocortex Workflow 5

There are a lot of benefits when it comes to server workflows, a new type of workflow available for users of the newly released, on-premises version of Geocortex Workflow. Server workflows can read and write files that exist on the server, send emails (as Noah demonstrated last week), run Python scripts, send HTTP requests to secured web services that the end user can’t reach from their browser, and carry out some other heavy-duty types of processing requests.

In this week’s Geocortex Tech Tip, we wanted to show you yet another feature exclusive to server workflows that we’re really excited about: Accessing a SQL database from a workflow. By calling a server workflow to do a SQL database query, the server workflow returns a data structure to the client, enabling it for use with a workflow.

 

Check out the video below to learn how this process works!

 

Watch on YouTube

Video Transcript

“Hi, I’m Ryan. I’m on the Geocortex Workflow development team. Today I’d like to show you how to query a SQL database in Geocortex Workflow 5. Let’s take a look!

I have a workflow here and it’s really simple, it has to display form activity and it has a drop-down list asking to pick or select a customer from a list. Now this list (at the moment) is just a hard-coded list of options, but I would like this list to be populated from a database. It’s something that we can normally do through an ArcGIS query, but that’s using the ArcGIS REST API to perform that query. If we want to go direct to the database, that’s something that hasn’t been possible until today inside Workflow and we’re going to use a new features called Server Workflows that are available in Workflow 5.8 and the on-premises version of Workflow.

What this is going to allow us to do is create a whole new type of workflow that is going to run on the server and it’s going to do our work to actually query the database for us. It will have access to activities that can query the database and then it will return us some results so that my client workflow, the workflow the end user is interacting with, can basically call the server workflow as if it were a web service. So, what we’re going to do is create a brand-new workflow and this is going to be my server workflow and I’m actually going to tell it that it’s a server workflow by switching to the info panel and selecting ‘Server Workflow’. This is going to change the toolbox to have a different set of activities that are available and some of the really powerful ones here are the SQL query activities.

So, the SQL query activity - a connection string - is going to allow me to define my query. I’ve set one up in advance here so I’m going to just populate the providers, this is going to be a SQL server database. I’m going to plug in a connection string, this is just some database sitting on the internet that we can use. I’ll quickly show you this table. It’s just a Microsoft Northwind database. There’s a customer table and it’s got a contact name field, and this field is what I want to populate my results with.

I’m going to run this query, and this is going to provide a data table output and what I want is this server workflow to provide that data table as the output to the workflow itself. There’s an activity called ‘Set Workflow Output’ and I can provide whatever name I like for this output, so I’m going to call it ‘contacts’ and the value is going to be sqlQuery1.dataTable, so just the result of that data table. When I save this, I’m going to call this ‘Customer Server Workflow’.

Okay, so my server-side part is done - it’s going to do a query and is going to return that data table as adjacent data structure to this client workflow and the client workflow - rather than using this manual list of options in that drop down - I’m going to change to use a sub workflow and I’m going to just start with a blank one.

Now in this, I want to run that server workflow, so there’s a run workflow activity, and I need to give it a URL. If I go back to my server workflow on the info panel, I can copy the URL, paste that in. That workflow didn’t have any inputs or arguments, so I don’t need to supply any, but it is going to provide a result and then what I want to do is I want to take that result - which will have a data table on it - and convert that data table into something that the form is going to be able to use. There’s an activity called ‘Get Form Element Items From Collection’ which will do that. So, the collection in this case is going to be my runWorkflow1 result, and contacts was the name of the property that I had assigned on that so we’re going to take that contacts collection, and I’m going to provide the name and value of that dropdown list (I’m going use the same field).

The last thing we need to do here is set form element items, so we have to actually tell the dropdown list to use these items. If I save that I should be able to run that.

I’ll just run this in the sandbox and there we go! I’ve got my list that’s coming from the database and if I pick a value and submit it, the reminder of my workflow is just to alert that value back, but we can now go on and do something really useful with that.

So, there you have it, we were able to create a client workflow running in the web browser. It calls a server workflow when it needs to do something server specific like do a SQL database query or send an email or some kind of server processing. That server workflow returns a data structure to the client and then the client is able to use that and carry on with that workflow.

So that’s how you do a query SQL database inside Workflow 5!”

Geocortex Workflow can extend your Web AppBuilder applications by turning even the most sophisticated business processes into a set of simple, guided end-user interactions. Check out our Discovery Center and explore everything Geocortex Workflow 5 has to offer! 

Discover Geocortex Workflow


How to send an email from a workflow using Geocortex Workflow 5 [Geocortex Tech Tip]

How to send an email from a workflow using Geocortex Workflow 5

November is an exciting month here at Geocortex, as we’re thrilled to announce the release of the on-premises version of Geocortex Workflow!

To commemorate this release, we thought it would be very fitting to have our next few rounds of Geocortex Tech Tips focus on our Workflow technology.

 

One of the key new features that the on-premises version supports is a new type of workflow called “server workflow”. These workflows execute on the server as a web service, compared to normal workflows that execute in the end user’s web browser, meaning that server workflows ultimately have access to resources that otherwise couldn’t be reached from a web browser.

An example of one of these resources – and where we thought we’d focus this week’s Geocortex Tech Tip on – is how to send an email with an attachment using this new server workflow. These emails can include multiple recipients including both CC’s, BCC’s. Check out the video below to learn how it works!

 

Watch on YouTube.

Video Transcript:

“Hi, I’m Noah and I work on the Products team. Today we’re going to learn how to send an email with the on-premise version of Geocortex Workflow 5. Let’s take a look! 

So, today we’re going to learn how to create a server workflow that can send an email to a user with an attachment.  

Right in front of me I have a client workflow which asks the workflow runner for a username and an email address and then runs a server workflow which is going to send our email for us.  

Over here I have the server work form running. Right now what this server work flow does is it gets the workflow inputs with that username and email address, and it reads a data file for us. The data file is just some csv data that we're going to put in our email as an attachment. 

The first thing we want to do is create the attachment to put on to the email. The content of the attachment is going to be our file. It’s going to be the bytes from Read File Bytes. Our content type is going to be text/csv since we’re reading since we have a csv file, and our file name is going to be data.csv. This produces an attachment object and as you can see here, 'This object should be passed to the Send Email activity’, so that is what we are going to sue next.  

The send email activity has a To, a From, a CC, and a BCC, and the To, the CC and the BCC can all take either one value or an array of multiple values. For the value of To, I’m going to just use one value which came from our client workflow; it is going to be the username. Let's look for the user’s email. It's called email.  

Now From, let’s use my own email. For CC, let’s CC a couple people just to show how the array works. I'm going to create a new array with the equal sign and then a square bracket and lets CC ‘techtips@latitudegeo.com' and ‘anotherDeveloper@latitudegeo.com'. You could add as many emails as you like to the CC, the BCC, or the To fields on the send email activity. Let's leave the BCC empty. Let’s make our subject ‘Email techtip. Now the email body can either be an html body or just plain text. Let's make it some html.  

First, let make a header. And let's make the header say ‘The Data’. Then, let’s make a paragraph and let’s address our user. We’re going to grab the user input we got from earlier. We’re going to go to the inputs, and we’re going to get the user field. Let’s end our paragraph and end our string. Here’s a little html body with some user input writing here. Now one important thing to know is that it can be dangerous to let users input their own information into an html string, so what I did in the client workflow is I made sure to escape the user input and make it safe. Let’s go back and see that.  

The users input, prompt1.result is passed into the encodeHtml function. This function ensures the users input is safe to put in an html string.  

Now that I have the body all set up, let’s attach my attachment from earlier. And then, let’s say true to Is Body Html, so the email will actually render it as html and not plain text. Let's save our server workflow, and let's go back to the client workflow, and let's run it in the sandbox!  

Let's send the email to myself (just cause then I can open it and we can see). The email got sent! Let’s go and check my inbox and see what’s there. There it is, 2:37pm! Here’s the html heading that got rendered. My name got injected right in here, and the data got attached and we see CC’d techtips@latitudegeo.com', ‘anotherDeveloper@latitudegeo.com', and it’s to me and it is from me. Let’s open up the data and just show that it got transferred correctly. Yup, that looks all good.  

So that is how you send an email using Geocortex workflow 5 and the on-premise server addition of Geocortex Workflow.” 

Geocortex Workflow can extend your Web AppBuilder applications by turning even the most sophisticated business processes into a set of simple, guided end-user interactions. Check out our Discovery Center and explore everything Geocortex Workflow 5 has to offer! 

Discover Geocortex Workflow


Cross-Platform Development with Xamarin [Webinar]

Cross-Platform Development with Xamarin

Using Xamarin.Forms allows you to construct native UIs for iOS, Android and Windows mobile devices from a single shared C# codebase.

Over the past few months, the Product Development team at Geocortex has been using Xamarin.Forms – along with the ArcGIS Runtime SDK for .NET – to create a new, next-generation mobile viewer. We learned a lot of valuable lessons in the process, and we’re excited to share them with you!

 

In this developer webinar (or devinar, as we like to call it), Spencer and Jeff break down how to get started, some of the challenges they faced, and how to create reusable form components to support Geocortex workflows on mobile devices.

If you’ve been thinking about deploying Xamarin.Forms for an upcoming project, you’ll want to check this out!

 

Watch on YouTube


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.


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


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 is shifting to SaaS, and it’s a win for everyone

Last year we released Geocortex Workflow 5 and – for the first time – we delivered a Geocortex product as software-as-a-service (SaaS). This is the direction Esri has been moving with ArcGIS Online, and has been the industry standard for most business software applications since the early 2000s: GIS arrived a little later to the game.

 

For those who aren’t familiar, SaaS is a way of delivering centrally-hosted software via the Internet – instead of downloading and configuring a piece of software in your environment, you access the application in a web browser.

One of the key benefits of SaaS is the concept of continuous deployment. Because applications are centrally hosted by the provider, new software updates can be pushed to customers with a much higher frequency.

Future-proofing your investment in Esri technology has always been at the forefront of our product direction, and this is an inherent protection that comes with SaaS delivery.

Seamless Upgrades

Since our beta release of Geocortex Workflow 5 last August we’ve built and deployed 11 successive releases – each containing exciting new features and adding improvements – and without interruptions to our users. Customers didn’t require compatibility testing, or incur any downtime to upgrade their applications. In fact, most probably didn’t notice: they simply logged in to do their work and were running the most current version of the software.

Many of us have experienced the pain of needing dedicated GIS- or IT professional assistance to complete an upgrade. It can take the better part of a workday, and involves significant planning and testing to ensure everything works as it did before (and even then, it sometimes doesn’t).

Due to the resources required to keep large, on-premises software deployments current, many organizations avoid upgrades, only to find themselves in a sticky situation a few years down the road when they’re finally forced to do so. This is never a good situation to be in, and the ease of upgrades with SaaS helps organizations limit the technical debt that comes with delays.

Rapid deployment of new features

We all love new features; with lots of traditional solutions, however, we can end up waiting months for new features that need to be scheduled into a long release cycle. SaaS, in comparison, allows new features to be built and deployed at a rapid pace. In some cases, new features can be delivered within a matter of days.

There is no better example of this than our 2017 Geocortex Business Partner Summit, an annual event where we bring all our international partners to our Victoria Head Office for three days of learning and collaboration. We dedicated the first day to a Geocortex Workflow Hackathon, where our partners teamed up to build the best workflows they could.

Geocortex Hackathon WinnersOur partners built some really cools apps, and provided a bunch of great feedback to our Product team about their experiences with Geocortex Workflow 5. By the last day of the Summit (roughly 48 hours later), our Product Manager was able to show them some of the feedback that the team had already implemented in the product.

Applications that are always secure

As noted above, organizations are often saddled with technical debt from not upgrading once new versions become available. Not only can this result in more work when you’re finally forced to upgrade, it can expose your applications to security vulnerabilities.

Many of our customers use their GIS for mission-critical business applications, which makes security even more critical.

The rate at which new releases are pushed to production assures that your applications are always secure. Instead of waiting to upgrade to new versions, every time you log in you know you’ll be working with the latest version of the software that’s been tested to ensure the strongest security measures are in place.

This is the approach most SaaS providers have adopted. For example, your Google Chrome browser has likely updated every week without you noticing. Google takes security very seriously, and pushing consistent updates lets them assure that their users are always running the most secure version of the browser.

Lower cost, better uptime

SaaS applications are centrally hosted, and this ensures that your applications are always hosted in an optimal environment. When customers host their own applications, there are inconsistencies in the configuration of the hosting environments, and they may not be hosted for the best performance.  

For Geocortex Workflow, we use world-class hosting services from Microsoft Azure. If anything goes wrong with the hardware in the hosting environment, teams of Microsoft engineers are standing by to fix the issue. And if something goes wrong with the software, we have a team ready to investigate and fix the issue, which can typically be achieved by pushing a new release or software patch.

The cost of hosting your applications is included in the cost you pay for the product. The hosting environment is scalable and includes protections such as failover, which are both difficult and expensive to achieve in your own environment. You don’t need your IT department to worry about managing your servers - we take care of all the hosting and associated maintenance. It’s a win-win: you free up your people for more important work, and you get a hosting environment that’s set-up in the best possible way for the product.

Moving forward

It’s easy to see why SaaS offerings are becoming the standard for business software solutions. Being able to offload a bulk of the costs associated with hosting your own applications can save you (and has saved many organizations) thousands of IT hours and dollars each year. The lower initial cost and the rapid delivery of new, powerful features are why we think SaaS is the direction more and more GIS tools will move towards.

"It’s a win-win: you free up your people for more important work, and you get a hosting environment that’s set-up in the best possible way for the product."

We’ll still be offering on-premises solutions for situations where it makes the most sense, but SaaS is where we’re headed. This is the model Esri has adopted with ArcGIS Online, and is sure to be the model for future ArcGIS products.

If you’d like to chat about what adopting a SaaS-first approach would look like for your organization, please feel free to get in touch with us. You can also get your hands on Geocortex Workflow 5 in our Discovery Center, complete with tutorials, demonstrations, and sample applications you can try.

Visit the Geocortex Workflow Discovery Center