1.Get started

This tutorial will give you a clear explanation on how to run Myddleware.

Firstly, we will detail all the set up process necessary to run Myddleware. Then we will explain how to handle data transfer errors.

2.User Creation

An admin user is automatically created during the installation of Myddleware . You can create other users if other people need access to Myddleware . So you will know who created a rule for example.

At  the moment the creation of users is done by command line. However, it will soon be possible to do it directly in Myddleware by an admin user.

To create a user, run the following command through a command prompt:

Create the user profile to connect to Myddleware. Change myddleware_username , myddleware_user_email , myddleware_password to the user you want to create:

php app / console fos : user: create myddleware_username myddleware_user_email myddleware_password – env = prod

If you want to add the administrator role to the user you just created, run this command:

php app / console fos : user: promote myddleware_username ROLE_ADMIN – env = prod


3.Email sending configuration

Myddleware can send you notifications and alerts based on the scheduled tasks you have set up (see chapter on scheduled tasks). Indeed it is necessary to have correctly configured  sending emails to operate the task “notification” correctly.

It will soon be possible to configure  settings of sending emails directly in Myddleware. A test shipment will also be available to validate the settings. This feature is not yet developed, the configuration of sending emails is done in the file myddleware / app / config / parameters.yml:.

4.Error management

Sometimes data transfers are in error for a variety of reasons. Here are a few :

  • The solution where the data is sent is no longer available
  • The data sent is not correct (invalid email for example)
  • A parent data transfer is in error (we block the sending of an order if the client could not be created)

When a data transfer is in error, it can be reloaded automatically via the job rerunerror (see scheduled task). But it can also be reloaded manually by clicking on “Reload”

You can also cancel a data transfer.

It is also possible to modify the data to be sent directly in Myddleware even if it is recommended to always modify the data in the source solution. So when a transfer of data is in error you can double click on the data to send and modify them:

Then you just need to reload the data transfer in order to send the modified data .:

5.Scheduled tasks

Myddleware can work with background tasks to sync your data, send notifications, clean data, and more.

If you wish to do so, you will have to set up some background tasks using the crontab.

Before creating the crontask, make sure your configuration is correct, open a command shell and run the program check.php in the directory app : php app/check.php


Change your file permission or PHP configuration in case of permission error or missing PHP requirement :


We will give you more details about each background task.

5.1.Data Synchronization

The “sync” program will allow you to synchronize your data by launching all active rules :

  • Command : “sync”
  • paramName1 : sync
  • paramValue1 :You can set “ALL” to execute all active rules. You can also set the ID of a rule to launch only one rule.
  • paramName2 : leave empty
  • paramValue2 : leave empty

Only active rules will be launch:

5.2.Reloading errors

The scheduled task “rerunerror” reloads transfers in error automatically.

  • Command : “rerunerror”
  • paramName1 : limit
  • paramValue1 : the maximum number of data transfers that the job will attempt to reload.
  • paramName2 : attempt
  • paramValue2 : the maximum number of times a transfer will be reloaded

In the above example, we have configured 2 tasks of reloading errors:

  • The first takes 100 maximum data transfers once per hour (60 minutes). This job will only take data transfers that have been reloaded at most 5 times.
  • The second takes 100 data transfers maximum once a day (1440 minutes). This job will only take data transfers that have been reloaded a maximum of 10 times.

5.3.Errors notification

The sheduled task “notification” allows you to send notifications and alerts by email.

  • Command : “notification”
  • paramName1 : type or null. Si null alors des notification seront envoyée
  • paramValue1 : alert or null. If alert then sends an alert if a scheduled task is blocked
  • paramName2 :leave empty
  • paramValue2 : leave empty

In the above example, we have configured 2 tasks  :

  • The first checks every hour if a scheduled task is blocked. If yes, an email is sent to all administrators
  • The second one sends a notification every day to indicate the active rules, how much data transfer was processed in the day and what are the data transfer errors.

5.4.Data clearing

The scheduled task “cleardata” deletes all the empty or expired data in Myddleware.

  • Command : “cleardata”
  • paramName1 : leave empty
  • paramValue1 : leave empty
  • paramName2 : leave empty
  • paramValue2 : leave empty

In the above example, we have configured a task that deletes empty or expired data in Myddleware :

  • Empty data correspond :
    • to data transfer logs that carries important information and are older than 7 days
    • to task that have not performed any data transfer and are older than 7 days.
  • the expired data corresponds to the data transfers that have exceeded their validated date set in each rule.

  • Once the data has been cleaned up, all that remains are the IDs on the data transfers and the important logs (the log of creation, sending and possible errors) :

6.Myddleware shutdown

It can happen that your server stops or that your http service (apache for example) or MySQL encounters a problem. In these cases, Myddleware may be interrupted while it is running. Here’s how to make sure that Myddleware restarts properly once your server is restarted.

  • Check if Myddleware had a job in progress during the interruption
    • To do this, click on the list of tasks in Myddleware and check if a task is running and its start date is before the interruption:

  • Stop the task that could not be completed
  • If you have checked that a current job has a pre-interrupt start, this task will never stop automatically and will block the operation of Myddleware. It is therefore necessary to open this task and stop it:

Once the task is stopped, it will no longer block Myddleware, which will be able to function normally again.

Suggest Edit