Using Geocortex Workflow & Geocortex Reporting for multi-layered reports

Using Geocortex Workflow and Geocortex Reporting to produce a multi-layer report [Geocortex Tech Tip]

Ryan Cooney
Ryan Cooney
Product Owner
May 3, 2019

Using Geocortex Workflow and Geocortex Reporting to produce a multi-layer report [Geocortex Tech Tip]

A powerful benefit to Geocortex Essentials 5-Series products are their ability to combine with and supplement one another, further enhancing the way you build your web mapping applications and the data you’re able to display.

When it comes to reports, normally you’re usually dealing with one layer of data. But sometimes dealing with things like environmental impact or site suitability reports, it can be necessary to report on multiple layers at the same time.

In this week’s Geocortex Tech Tip, we’ll explore how to use Geocortex Workflow and Geocortex Reporting to produce a report that contains data from several different layers.

Watch on YouTube.

Video Transcript:

“Hi, I’m Ryan. Today I’d like to show you how you can combine Workflow 5 and Reporting 5 to create a report that includes data from multiple ArcGIS layers at the same time.

Let’s see how that’s done!

To set up for this, I ran the layer report wizard and you can get to it from the file new menu, and I selected the ambulance’s layer from this ArcGIS feature service and what I get is a report that’s bound to that layer and set up a perimeter, things like that (I also just updated the title).

This is a run over report at this point; the next thing I did was I created a workflow to run that report. You can use the run report activity and I select from the toolbox, you can provide the URL to your report, which of course, you can get from the info tab in report designer, and I’ve supplied some feature IDs.

So if you’ve used to layer report wizard, its expecting some feature IDs to be passed, this is the object IDs.

Here’s a JavaScript expression, it’s injecting a couple of them.

Finally, I’ve used the display form activity to present the output of that report. This report activity is going to spit out an href value which is the URL to download the report.

Here, I’m just using a load event of a text element to provide some markdown that’s going to create a hyperlink.

There’s a few ways to do this, but this is how I’ve set this up.

Let’s actually just run this and see that it works. I’m going to run in the sandbox. That’s going to run that report and the form will appear when the report is done.

There! I have a workflow running a report, passing in a couple of values and then the report runs and produces whatever the report output is.

Okay, so that’s our set up.

Now, what we want to do today is bring in multiple data sources. Running a report with one data source – okay, everybody can do that, but let’s pull in another layer and have two sections of results in this report.

I’m going to try and pull in this fire layer. Ultimately, what I want is that I want it kind of represented like this detail band with a list of available fields. I want two of these sections, one for the ambulances, one for the fire.

What we’re going to do can do, it might sound counterintuitive, but I’m going to clear out the data source of this report.

By default, this report is bound to this ambulances data source and if I select the top-level report itself, I can just tell the report that you don’t actually have a data source.

I’ve removed everything from the detail band, and I’m just going to collapse, because I’m not going to need this detail band.

Now on the report, what I’m going to do is I’m going to add a new detail band, sort of the special kind of detail band, but it allows me to select it and pick a data source for it.

I’ll select RedlandsEmergencyVehicles and the ambulances layer.

Now, I’ve got a detail band that specifically bound to an ambulance layer. What this lets me to is I can drag in the specific fields that I’d like to see in here.

What we’re going to do is — instead of just having this ambulance layer — we’re going to go up to the top-level catalog and we’re going to add another query, and I’m going to define a connection to this fire table, which it’s going to suggest, and I’ll select all the fields.

Now, I have two data sources at my disposal. What I’ll do is I’m going to add another one of these detail bands.

So, I’ve got two detail bands. I’m going to take the second one and I’ve got to tell it, that its data source is the fire table. I can do the same thing, or I can drag in the fire records that I want, and there we go! I’ve got my ambulance data, my fire data.

There are a couple other things we can do here, if we want a nice little header to say this is the fire data and this is the ambulance data. We can add a report header band that actually just adds it to this detail section.

I can put in a label here (this is my ambulance data), I’m going to make that bold, removing any extra space here, and I’ll do the same thing and add a report header to the second one. I got my fire section, and actually we might even want to do something like add a separator. You could just add a line, and I’ll just remove this extra space.

There’s still a critical step that we do need to do, we need to tell this fire data source how to perform its query, because right now it’s just going to query every record in the database which is not what we want. We’re going to want a parameter.

If we go back to the fields list here, we already have a parameter that was generated for us for the feature IDs.

This parameter, it’s a multi value number, so a list of object IDs. We want the same thing.

I’m just going to add another one. I’m going to call this fire IDs, it’s going to be a multivalued number. If I use object IDs, I can put them into the values list here.

Now the report is accepting the second perimeter called fire IDs. We just need to use that in query. If I select the fire data source, I can modify its query.

The way we do this is through a filter, and we want to select that it’s going to be a condition, where the fire object IDs are any value from a parameter.

I’ve just got to create any old name will do for this parameter.

When we complete the wizard, it’s going to ask us where we want that value to come from and rather than just being a type number, we’re going to use an expression, and this is going to allow us to pull that value from the input parameter from the report itself.

Now if we run the report, it should be asking us for two parameters and if I just go and grab a couple of object IDs, there we now have a report, it’s got the ambulance section, two rows of ambulance data, another section for the fire data, and two rows of fire related records

The report is now working. I’m going to need to save that. Then we are going to update our workflow to be able to call this.

So if I go back to the run report activity, right now we can see that this is passing feature IDs, it’ll also accept an arbitrary additional object that defines any other parameters that we might want.

What we need to pass in here, is an object that passes fire IDs and an array of numbers.

I’ll just hard-code. I’ll grab a different, I’ll make sure this is the fire layer. I’ll pass two different values, of course this fire IDs value needs to match the name of this parameter which looks like it does.

As many parameters as you have, you can keep passing more of these things in, so I’m defining an object with fire IDs property; the value is an array of integers and that should be enough!

I’ll go back to my sandbox and run this again. Download the report, and of course we get different data here, but again we can see we’ve got our values coming in right out of the live data from two completely different ArcGIS layers.

You can follow the same pattern with an ArcGIS layer in a SQL database, it all works really well.

The exciting part of all this, is once you got that report set up, you can craft your workflow.

Obviously, we don’t want to hard-code a list of IDs, but you would use the power of Geocortex Workflow to ask your user the right question, so that you are gathering the right object IDs, which might mean you’re doing queries, it might be you’re presenting forms with autocomplete lookups, but your workflow can control that, and then all we need to do is pass in one or more lists of IDs as parameters to that report and the user could download it.”

Find out more about how Geocortex Reporting simplifies reporting for your Web AppBuilder for ArcGIS® and Geocortex applications by clicking the link below.

Discover Geocortex Reporting


Categories:
Archive
Open: 2019
2019
May 17, 2019

Important Notice - Outage Issues & New Support Cases

May 17, 2019

How to build a summary report with aggregations of feature data [Geocortex Tech Tip]

May 16, 2019

Technology Q&A: Geocortex Mobile

May 10, 2019

How to create print templates for Web AppBuilder for ArcGIS®[Geocortex Tech Tip]

May 8, 2019

Dive into Geocortex Printing [Webinar]

May 3, 2019

Using Geocortex Workflow and Geocortex Reporting to produce a multi-layer report [Geocortex Tech Tip]

May 1, 2019

Market-Leading GIS Software and Services Companies Join to Form VertiGIS

May 1, 2019

Introducing VertiGIS

April 18, 2019

Integrating Workflows into Geocortex Mobile [Geocortex Tech Tip]

April 17, 2019

Customer Spotlight: Geocortex Reporting

April 12, 2019

Using Geocortex Go to preview app configurations [Geocortex Tech Tip]

April 10, 2019

How to Address Complex Form Navigation Using Geocortex Workflow

April 5, 2019

Building native, offline IOS, Android and Windows apps with Geocortex Mobile Viewer [Geocortex Tech Tip]

April 3, 2019

Streamlining mobile operations with Geocortex Mobile Viewer [Webinar]

March 29, 2019

A better way to run geoprocessing tasks in Web AppBuilder for ArcGIS [Geocortex Tech Tip]

March 28, 2019

Extend the reach and capabilities of your applications with integrations [eBook]

March 22, 2019

Displaying data from SQL Database when you select features [Geocortex Tech Tip]

March 20, 2019

How Geocortex users are enriching the communities they serve

March 15, 2019

How to Configure a Geocortex Essentials layer report with Geocortex Reporting 5 [Geocortex Tech Tip]

March 14, 2019

Region of Waterloo: How GIS & Geocortex technology helped meet local Source Protection Plan requirements

March 6, 2019

Integrating Business Intelligence and Data Sources with Geocortex Essentials [Webinar]

March 1, 2019

How to quickly add attachments to new features when editing [Geocortex Tech Tip]

February 22, 2019

Generating a report with sub reports from external data sources [Geocortex Tech Tip]

February 20, 2019

Geocortex Essentials 4.11: Saving Time & Increasing Efficiency

February 15, 2019

Accessing Samples and Building your First Workflow [Geocortex Tech Tip]

February 12, 2019

Open Beta of Geocortex Printing 5 Has Begun

February 8, 2019

Different Ways of Creating Selections of Features in Geocortex Viewer for HTML 5 [Geocortex Tech Tip]

February 6, 2019

4 Best Practices to Follow When Using Geocortex Workflow 5

February 1, 2019

Creating a Report that Displays a Screenshot of the Map [Geocortex Tech Tip]

January 28, 2019

Diving Into Geocortex Reporting 5 [Geocortex Tech Tip]

January 24, 2019

How Geocortex is Advancing Water Management Solutions

January 16, 2019

Creating Custom User Experiences with Geocortex Workflow 5 [Webinar]

January 11, 2019

Showing the search results using the item picker in Geocortex Workflow 5 [Geocortex Tech Tip]

January 9, 2019

City of Troy: Using GIS and asset management technologies to manage legislative requirements

January 4, 2019

Using scripting to put attachments in reports in Geocortex Reporting 5 [Geocortex Tech Tip]

Open: 2018
2018
December 21, 2018

Integrating Pictometry, Bing and other 3rd party maps within your Geocortex applications

December 19, 2018

Recapping the Texas Geocortex Regional User Group

December 14, 2018

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

December 12, 2018

Finding yourself: Using geolocation in mobile and web applications [Webinar]

December 7, 2018

Enabling real-time user-to-user map collaboration within Geocortex Essentials

December 5, 2018

Reflecting on 2018

November 30, 2018

Creating mailing labels with reports with Geocortex Reporting 5 [Geocortex Tech Tip]

November 29, 2018

Alberta Energy Regulator: Supporting safe and responsible energy resource operations

November 26, 2018

Important update for ArcGIS and Transport Layer Security (TLS) Protocol Support!

November 23, 2018

Using fine-grained security to control access to layers, features, attributes and application functionality [Geocortex Tech Tip]

November 21, 2018

Enhancing Web AppBuilder for ArcGIS® with Geocortex Reporting [Webinar]

November 16, 2018

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

November 15, 2018

Geocortex Achieves Esri’s “Release Ready Specialty” Designation

November 14, 2018

Celebrating GIS Day with York Regional Police: How GIS Data Has Mitigated Risk & Increased Efficiency in Crime Prevention

November 9, 2018

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

November 2, 2018

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

October 26, 2018

How to add and configure charts inside reports with Geocortex Reporting 5 [Geocortex Tech Tip]

October 24, 2018

Geocortex Water Webinar Series

October 19, 2018

Integrating Geocortex Essentials with ArcGIS Online and ArcGIS Enterprise portal [Geocortex Tech Tip]

October 17, 2018

Cross-Platform Development with Xamarin [Webinar]

October 12, 2018

City of Fort Collins: Dynamic flood maps for public awareness, and flood insurance rate saving

October 2, 2018

Technology Q&A: Geocortex Workflow 5 “Behind the Firewall”

June 27, 2018

Geocortex Essentials 4.10 is here!

June 12, 2018

Geocortex and the GDPR

June 6, 2018

Geocortex at the 2018 Esri User Conference

May 15, 2018

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

April 25, 2018

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

April 18, 2018

Delivering accessible mapping applications for everyone [Geocortex Tech Tip]

April 11, 2018

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

April 5, 2018

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

March 27, 2018

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

March 21, 2018

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

March 15, 2018

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

March 7, 2018

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

March 2, 2018

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

February 28, 2018

Using the in-app help system in Geocortex Workflow 5 [Geocortex Tech Tip]

February 21, 2018

How to configure a personalized dashboard in Geocortex Analytics [Geocortex Tech Tip]

January 25, 2018

GIS is shifting to SaaS, and it’s a win for everyone


Categories

Popular Tags
Accessibility Active Operating Picture ArcGIS ArcGIS Online Customer Story Data Models Energy Esri Geocortex Geocortex 5-Series Geocortex Analytics Geocortex Essentials geocortex integrations geocortex mobile Geocortex Mobile Viewer geocortex printing Geocortex Printing 5 Geocortex Reporting Geocortex Reporting 5 geocortex tech tip Geocortex Tech Tips Geocortex Viewer for HTML5 Geocortex Web Viewer Geocortex Workflow Geocortex Workflow 5 GIS GIS Day GIS Health gis integrations Integrations mobile gis Oil & Gas Pipelines Portal for ArcGIS press release SaaS Tech Tip Tech Tips Transportation vertigis Water Industry Web AppBuilder Web GIS Xamarin

Contributors