There are 2 ways how external applications can run EasyMorph workflows:
Run EasyMorph Desktop in the command line mode
See the documentation for the command line syntax: https://help.easymorph.com/doku.php?id=command_line
Pros:
- Easy setup
- Can assign project parameters
- Can run multiple instances of the same project at the same time
- No EasyMorph Server required
Cons:
- Can’t run a workflow on another computer
- Can’t run workflows asynchronously
- Requires Windows
- No tight integration possible (e.g. showing task status in real time)
Run EasyMorph Server task via ems-cmd or .NET SDK
The .NET SDK is an open-source library that can be used in .NET (C#, etc.) application directly to run EM Server tasks and list/upload/download files. It’s source code is available on GitHub here: https://github.com/easymorph/server-sdk.
The ems-cmd utility is simply a command line utility that is basically a thin wrapper for the .NET SDK and runs in the command-line mode. Since it’s a .NET Core application, it can be compiled and used on non-Windows machines (e.g. Linux). It’s source code and the latest version is available here: https://github.com/easymorph/server-cmd
Pros:
- Can run EM workflows on another computer
- Can assign project parameters
- Allows tight real-time integration with .NET applications
- Can be used on non-Windows machines
- Includes means for uploading/downloading files to/from EM Server
- Can run workflows under a different user account than the calling app
- Can run workflows in both synchronous and asynchronous modes
Cons:
- Requires EM Server license
- Can run only one instance of a task at a time. I.e. if a task is already running it can’t be launched again. (This limitation will be lifted in version 5 to be released by the end of the year). Partially, this can be mitigated by having a pool of identical tasks and triggering any task that is not running.
Run EasyMorph Server task via REST API
The .NET SDK described above is effectively an open-source client for the REST API of EasyMorph Server. Any application can trigger tasks and upload/download files to/from Server using the REST API. The source code of the SDK is a reference use of the SDK and is supposed to be self-explanatory.