EMME has always been code-friendly, but now it is also code-free! Code-free systems are rising in popularity, and give users the ability to build an application without ever writing a line of code, utilizing a UI that allows users to drag and drop modular, reusable components to create their application.
EMME 4.6 introduced Flow, a code-free automation system for easily assembling and running model workflows. Using Flow, anyone can quickly configure travel models and model workflows from EMME procedures using iteration, branching and expressions for control flow. Flow provides transparency and an easy interface for end-users while also allowing deep procedure customization, all without having to read or write code.
A code-free "flowcharting" system has been at the top of our feature requests for years, and we have clearly taken our time getting to it. There are a few reasons for that. First, EMME has always been code-friendly, and our top priority was to make sure that EMME supports comprehensive APIs to work with procedures, reporting, mapping and data access. With more agencies treating travel-models-as-code, the ability to revision and run model workflows entirely as scripts without having to necessarily open a UI is essential. Flow now brings deep workflow automation control to travel modelers who don't want or otherwise don't need to know Python. And even for those who do, it offers a convenient and transparent way to develop, share and democratize reusable model procedures that anyone can use.
Code-free automation with Flow. Now anyone can assemble, understand and modify model workflows.
Second, we wanted to make sure that Flows are as useful to read and run as they are to develop. To add a procedure to a Flow, just copy and paste a procedure token from Modeller or Agent. Then use control flow, parameters, variables and expressions to adjust behavior. You can copy/paste between Flows or even call one Flow from another. Flows are largely self-documenting; control flow, hierarchical structures and optional inline markdown notes are immediately apparent so there isn't much need to maintain separate documentation that can easily go stale. The parameters pane provides an easy and clear way to collect user input, and the current state of variables are visible at run-time (like in a debugger, but without code). When you run a Flow, the Logbook shows the current state of execution and the context for any exceptions so there is full transparency when required.
Flow provides code-free-automation for everything from integrated travel demand models to ad hoc model workflows.
Third, we wanted a code-free automation system that actually provides a meaningful alternative to scripting for workflow automation. A fully-featured expression language allows for flexible control flow logic and ability to bind run-time values to any Modeller specification key. Dependency-tracing and refactor operations provide professional tools for maintaining workflows over time, and export to JSON allows Flows to be managed in a revision control system should you prefer. You can even script execution of your Flows to get the best of both worlds. But of course, you will still want to use EMME APIs for other use cases beyond workflow automation, like developing third-party data procedures or data integrations, but since almost everyone asks for a universally user-friendly and transparent model workflow interface, we think you'll want to deploy your code as a Modeller Tool and just use it, too, from Flow.
Now is a great time to learn and use EMME, whether or not you know Python. Flow provides a code-free, easy-to-use but meaningfully powerful system to assemble EMME workflows. If you are an existing user, Flow is an instant upgrade from snapshot galleries, and you will find you can assemble and share model workflows with other users requiring them to know Python to understand model structure. Flow will be used in EMME training classes to reduce scripting pre-requisite requirements, and we hope that it will speed up the model learning, development and testing cycle for everyone as it did for us.
Testimonial from Edward Dawes, on behalf of his team at Transport for London.