In this release of OroPlatform we’ve focused on improvements to workflow capabilities, parallelization of import & export jobs, and documentation of all our API resources.
Variables are configurable workflow attributes that can receive their values from external sources, or provide a default value specified by the administrator in workflow configuration at the UI. Workflow variables can be of different types, ranging from simple scalars to entity instances.
The most straightforward use case of variables is make previously hardcoded parameters in transition and step conditions configurable by the user. If you have a workflow that only allows a transition
T if some attribute
A of entity
B doesn’t exceed the value
X into a variable—so then this threshold can be easily changed from the UI when needed. You can also pass the variable value from other sources, or, in our example, make
X different depending on which user is working with the entity.
Reuse existing entity forms in workflow transitions
Developers may now easily reuse existing CRUD forms of various entities in workflow definitions. This saves effort and simplifies maintenance—if the edit form is changed later, all workflows that reuse it will also change accordingly.
Start a workflow without entity record
A workflow can now be started by an event trigger even if no workflow entity record exists yet—allowing you to utilize workflows for background entity creation.
UI for transition destination configuration
Transition destination, i.e. the page the user will be redirected to after they submit the transition form displayed as a separate page, can now be configured in the workflow management UI.
Parallelization of import & export jobs
Import and export jobs are now parallelized between RabbitMQ consumers. This allowed us to greatly reduce execution times for large files: hundreds of thousands of records can now be imported within mere hours, and exported in about 15 minutes or even quicker.
Use external storage for I/E files
In order to reduce load on Oro application server, an external service such as Gaufrette can be used for storage and processing of import & export files.
Documentation of all system API resources
We have documented all API resources of both OroCRM and OroPlatform so you can clearly understand what is the purpose of each resource, its parameters, and understand the details of the returned value. This will help you to use our API in the proper way and create optimal integrations with other applications.
Batch request and response for REST API
We have created actions for batch API requests and responses:
delete_list. These requests are asynchronously processed via MessageQueue.
They will serve as a cornerstone to more efficient integrations and data synchronization jobs that we will ship in future releases.
Other fixes and improvements
Unidirectional relations can now be created via UI
Debug data collector for layout actions
All layout actions that can’t be performed are now shown in profiler.