How to integrate efficient and
reusable FME components in
web applications
FME
User
Conference
20
22
Dennis Wilhelm
Consultant
con terra GmbH
20
22
FME
User
Conference
FME Server Apps
Let’s start with
20
22
FME
User
Conference
20
22
FME
User
Conference
Functionality Overview
• Clean and easy to use websites / apps
• Published Parameters
• Data Streaming, Data Download, Job Submitter
• Custom design
• Optional authentication
• Galleries
20
22
FME
User
Conference
• Hide complex information
• Because no user wants to see this
Why do we need that?
20
22
FME
User
Conference
FME can do so much more
• Integrate FME into an existing
application
• Provide input data directly from
this app
• Use results directly where it
needs to be
• Create multi-step workflows
• Upload
• Edit
• Download
20
22
FME
User
Conference
Integration Example
• Use FME in existing applications
• Data portals
• Intranet websites
20
22
FME
User
Conference
Reusable Components
Implement
20
22
FME
User
Conference
What does this mean?
• Most FME based apps need a similar set of
functionality
• Generic approaches saves time in the long run
20
22
FME
User
Conference
Generic components
• Components are based on the REST interface
• Automatically changes if Workspaces or
other FME Server contents change
• Reduce coding
20
22
FME
User
Conference
What do we usually need?
• UI Elements
• File Upload
• Parameter dialog
• File browsing
• App specifics
• e.g. selecting existing data, display
process result
• Backend
• Request handling
• SSO
20
22
FME
User
Conference
Build generic components
• Automatically create UI elements from Workspace
information
20
22
FME
User
Conference
Parameter REST Example
20
22
FME
User
Conference
Parameters
• Mapping for most
important
parameter types
20
22
FME
User
Conference
Upload widgets
• Validations
• File type / extensions
• File size
20
22
FME
User
Conference
File validation before processing
• Test data before long running processes
• Are all requirements met?
• Geometry type
• CRS
• Which contents should be used
• ZIP-File contents
• FGDB Feature Classes
20
22
FME
User
Conference
File handling
• List the contents of the
shared resources
• Filter files (e.g. FGDB contents)
20
22
FME
User
Conference
The boring stuff…
20
22
FME
User
Conference
Backend Service
• Use existing authentication methods
of existing app
• Backend service is required to handle
FME requests
App Backend
FME
Server
20
22
FME
User
Conference
Handle timeouts
• Data streaming services are often used as API endpoints
• Many network infrastructures have timeouts
• Use asynchronous job submitter
• Write data to the data download directory manually with a UUID
$(FME_SHAREDRESOURCE_SYSTEM)/temp/engineresults/$(uuid).json
=>
https://<fme server>/fmedatadownload/results/$(uuid).json
20
22
FME
User
Conference
Demo
20
22
FME
User
Conference
Demo
• Upload file
• Analyze contents
• Which Feature Classes are available in a FGDB
• Validate CRS
• Available Attributes
• Convert to JSON
• Edit in map
• Download edited data with format conversion
20
22
FME
User
Conference
Thank You!
d.wilhelm@conterra.de

How to Integrate Efficient & Reusable FME Components in Web Applications