Skip to content

2.0.0 RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@iklymenko iklymenko released this 30 Dec 18:33
· 15751 commits to master since this release

New Oro namespace

We have regrouped all OroPlatform bundles into new Oro namespace to reduce possibility of BC break in case when platform features will be used by different applications.

Oro configuration files

In order to improve development experience we have also relocated and restructured all Oro configuration files, and provided the set of rules for naming of config files and folders.

Platform decoupling

CalendarBundle has been moved to a separate package.

Workflow engine capabilities

In addition to user-oriented features, we have also added a few more technical capabilities to workflow engine, allowing developers to create more flexible and capable workflows.

Run workflow transitions from data views

If necessary, workflow transitions can be included into row or card actions, allowing you to run them straight from the data view without having to open the record first.

Run workflow transitions from unrelated entities

The workflow transition button can now appear anywhere in the system, not just on the view of a record of an entity tied to the workflow.

Event and time triggers for workflow transitions

Similarly to Actions, workflow transitions can now be executed at a given time of the day, or after a certain delay after an event trigger.

Pre-actions for workflow transitions

Similarly to Operation definition, the workflow transition definition can now include a set of pre-actions that will prepare data before transition execution.

Disable or override operations by workflow

This feature allows workflow developer to override standard CRUD operations with workflow transitions, or simply hide them from the user if the workflow is active.

Full list of actions & conditions for easier debug

Console commands such as debug:router can now provide a list of all actions & conditions with their comprehensive description: purpose, arguments (required/optional), additional information, etc.

MessageQueue engine

In order to keep up with the growing demands for multiple jobs being executed in parallel, we decided to switch our job queue engine from JMS JobQueue to Rabbit MessageQueue. This engine allows far better scalability and improves performance of job execution & parallelization, allowing Oro applications to run smoothly even with the heavy background load.

All existing jobs in both OroPlatform and OroCRM have been moved to MessageQueue already.

Toggle features

Developers can now define features—a set of entities, menu items, workflows, actions, dashboard widgets and other objects that share the common functional purpose. Features can then be toggled on and off by system administrators, greatly simplifying and improving the experience of application configuration.

Features can be nested, and also can be dependent on each other.

Web API

We continue to develop and expand capabilities of our new Web API introduced in the previous release.

Manipulate extended associations via API

Extended associations, or activity contexts, can now be managed via API. You can add records to context of an email or calendar event; get the list of contexts of a recorded call; or strip a task from all its contexts.

This works for both many-to-one and many-to-many associations.

Create related records along with the primary record

POST method can now create records related to the entity record that is actually being POSTed. It is useful when a relation is mandatory, but the necessary record doesn’t exist yet—such as when you want to create a new Opportunity with a new Account. It is also useful if you want to add entity attributes that are stored as related entities, such as create a Contact record with multiple addresses in a single API call.

Phones and emails are treated as attributes instead of relations

Emails and phones will be exposed in API as entity attributes (which they effectively are) instead of relations. This should simplify most API references to them and make the calls clearer.

Autogenerated API documentation

You will now receive full documentation on REST and SOAP API resources for all Oro applications so you will be able to discover available integration points and their parameters.

Other features and improvements

Application cache clear and warmup performance

We greatly improved performance of cache:clear command and application cache warmup, so it now takes seconds in most of the cases.

Search index query can return indexed data

Indexed data is now returned from search engine in addition to SearchBundle/Query/Result/Item objects, so you don’t need to perform additional DB request to retrieve it.

Caching of built layouts

Layouts that are already built are cached to increase performance. The cache key depends on the layout context and the last modification date of all layout update files.

Recursive import of YML configuration files

YML config files can now be imported using the standard Symfony notation for imports in yaml. An imported file can recursively trigger import of another file, which also enables import of a single config within multiple files.

We would like to thank our community members Fabio Piro (@dewos) and Sufijen Bani (@sbani) for their contribution of this feature to OroPlatform.

Direct @service qb support in datagrids configuration

This is another feature provided by Fabio Piro (@dewos). Hooray to the Oro Community!