1.Connector creation

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.1.Requirement

It is important that the application you want to connect has a webservice API with functions to read data. This will make it easier to use for source application and create/update data and also for target application.

In our example, we will create the shop-application connector.

First you will need to prepare Myddleware :

  • Add the service in Symfony, file <Myddleware>/RegleBundle/Resources/config/services.yml

tuto_connecteur_add_service

  • Add your application in the database, table Solution. We use doctrine to update the database, so you have to modify the file : <Myddleware>/RegleBundle/DataFixtures/ORM/LoadSolutionData.php

  • Then run the command to update your database :
php bin/console doctrine:fixtures:load --append -e prod

  • The table Solution should be updatedin your database :

  • Create your connector class to develop it in the directory <Myddleware>. The filename has to be the name of the service. The code should be this code, but change the application name :

  • Finally, if you want to display the application logo, add the image corresponding to your application with the png format and the size 64*64 pixels in the directory <Myddleware>/src/Myddleware/RegleBundle/Resources/public/images/solution. Then run the following command :
php bin/console assets:install web -e prod

Lets now look at each function and attribute and how to debug them.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.2.Method getFieldsLogin

You have to put the parameters required to connect to your solution in the method getFieldsLogin.

For example, if you need an url and an APIkey you can create this method (use  :

Code available in the file <Myddleware>/src/Myddleware/RegleBundle/Solutions/shopapplication.php

If the field you need doesn’t exit in the language file <myddlware>/src/Myddleware/RegleBundle/Resources/translations ($solution->field), you can add its translation here.

You can now log into Myddleware. We advise you to use the dev environment (<Myddleware_URL>/app_dev.php) as the cache is always cleared. Click on Connector->Creation, then select your application, the parameters you have added in your function should be visible :

tuto_connecteur_check_parameters

We will now develop the login function.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.3.Method login

You have to add the function login to check the connexion with you application.

tuto_connecteur_method_login

Code available in the file <Myddleware>/src/Myddleware/RegleBundle/Solutions/shopapplication.php

Make sure every error is catched and this->connexion_valide = true if the connexion works.

To debug this function, you can click on the button « test » and check the result in firebug for example. The function will be called each time you click on « test », no need to refresh the page :

tuto_connecteur_method_login_test

Let’s now create the first rule.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.4.Method get_modules

You have to add the module you want to connect in this method.

In input you have access to the type of connexion, if your solution is in target or in source of the rule. Some module could be available only in source or only in target.

You then return an array with a list of module :

tuto_connecteur_method_get_modules

Code available in the file <Myddleware>/src/Myddleware/RegleBundle/Solutions/shopapplication.php

Now you can debug (with firebug for example) your function when the module list is called in the rule creation view :

tuto_connecteur_method_get_modules_test

Next step is the fields mapping, we now need to create a function for it.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.5.Method get_module_fields

You have to indicate to Myddleware what fields are available for each module. If your application has a function which describe all fields for every module, you should use it. For example, we did it for Salesforce or Prestashop. Otherwise you have to describe every field.

Add the function get_module_fields in you class.

Input :

  • Module indicate from which module we need the fields
  • Type indicate if the module is in source or in target in the rule

Output :

  • An array with all the fields for the module

You should then add the fields related (field available to create relationship) and the class attribute this->fieldsRelate

Your fields will then be displayed after clicking on the button « Go to fields mapping ». You can refresh this page, your function will be called each time this page is loaded :

tuto_connecteur_method_get_module_fields_test

Create a mapping and save the rule. We will now create the function read.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.6.Method read

The read function is one of the most important function in the connector.

The read function has to be able to :

  • Read records from a reference (usually the modified datetime)
  • Read a specific record using the record id
  • Search a record with a criteria (used in duplicate search) => only if you use your application as a target, not only a source

You can open your rule, tab parameter, and click « Simulate transfer », this button will call the read function :

You can also run your rule in a command prompt :

php bin/console myddleware:synchro <your rule id> –env=background

Here is an example of input value :

Parameters :

  • module is the module to read in your application
  • rule contains the parameters of the rule
  • date_ref is used to search all data modified or created after this reference
  • ruleParams is the parameters of the rule
  • query can be also defined. If this parameter is defined, the read method has to return the result of the query. If it is empty, then Myddleware will user the reference date to read data.
  • fields contains every fields mapped in the rule. The read function has to return a value for all these fields in each records.
  • offset and limit are used only if your application has to be read with limited data
  • jobId is the if of the job
  • manual indicate if the rule is run manually

Myddleware has to be able to read records from the source application. The list of fields returns must be the ones in the rule field mapping (input entry : fields). But some other fields are requiered : the id of the record and its reference (usually the modified record datetime). But the id and reference can be named differently depending on the application and the module.

It is the reason why you have to create the attribute required_fields in your class :

Set the default entry, the set only the modules which are different than the default field list.

Then call the methods addRequiredField (to add the required fields set in your array required_fields ) and cleanMyddlewareElementId (to remove fields belonging only to Myddleware) :

The next step is to call the webservice function of your application depending on the input parameter :

  • If the entry query exists in input then it is prioritary, you have to use the query parameter to search records
  • If the entry query is empty then you have to use the reference. Myddleware must search all records created/modified ather the content of the parameter date_ref

The function should return an array with these entries :

  • count with the number of records read. Has to be 2 if no record are read.
  • date_ref with the new date_ref. It has to be the max date found in the list records returns.
  • values with an array of records. The key of these entries has to be the id of the record. The entry id and date_modified has to be present for each record. Date modified contains the value of the date_created or date_modified depending the type of the rule (see the function getDateRefName).

The output of the function read should look like this:

tuto_connecteur_method_read_output

 

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.7.Method read_last

The function read_last is used to :

  • Get the last data in your application when the user click on « Simulation » when a rule is created
  • Search a data in you application when Myddleware search a duplicate data
  • Get the data from a specific record in you application. The goal is to create a history before Myddleware modify this record. Another goal is to check if Myddleware will change your data. If the data Myddleware will send is the same in the your application so we cancel the data transfer.

Here is an example of input value :

tuto_connecteur_method_read_last_input

Query is the parameter used to search :

  • Query can have the entry « id » when Myddleware try to get a record before updating it
  • Query can have other parameters you have defined in the attribute FieldsDuplicate
  • Query can be emptied when the user click on « Simulation » during the rule creation. In this case Myddleware has to search the last record modified in your application

The function should return an array like as below :

tuto_connecteur_method_read_last_output

The entry « done » could be equal to :

  • « 1 » if a data has been found
  • « 0 »if no data has been found and no error occured
  • « -1 » if an error occured

To test it, you can simulate your rule, and the data should be displayed :

tuto_connecteur_method_read_last_test

Now save your rule. You should now be able to run the rule and develop the method read.

Était - ce   utile   ? Yes No Suggérer  de  modifier

1.8.Method create

Create a rule now with your application in target. Then create the function public function create($param) in your class.

Run your rule as you did while developing the method read.

Here is an example of input value :

tuto_connecteur_method_create_input

Parameters :

  • data contains all the record Myddleware want to create in tour application. The key of each record is the id of the data trasfer in Myddleware
  • module is the module to write in your application
  • ruleId is teh id of the rule
  • rule contains the parameters of the rule
  • ruleFields contains the fields of the rule
  • ruleParams is the parameters of the rule
  • ruleRelationships contains the relationships with the current rule
  • fieldsType contains the type of all fields in the rule
  • jobId is the if of the job

The output of the function created should look like these :

tuto_connecteur_method_create_output

The function should then return an array with an array (key = id of the data transfer in Myddleware) for each record created.  This array has 2 entries :

  • id of the record in your application
  • error : the error message or empty if the record is successfully created
Était - ce   utile   ? Yes No Suggérer  de  modifier

1.9.Method update

The method update works in the same way as the method create. The output parameter must be built exactly like in the method create.

The only difference is that you have the entry « target_id » for each record in the array data. You will need this entry to update your data in your application.

Était - ce   utile   ? Yes No Suggérer  de  modifier

2.Create formula

In this article we‘ll look at an important point in your synchronization rules and one of the many setting options offered by Myddleware, formulas.

 

The fundamentals

For starters, formulas allow you to format or to set the values that will be sent to a given target field . In other words, you have the option of adding fixed text to all uppercase, change timezones, concatenate several source fields etc.

 

The syntaxe

To help, syntax highlighting (1) is available to you right on your text box. Furthermore you will find below, the list of source fields that you have chosen (2), the available functions and their categories (3) and one or two drop list(s) (4) of the different values for the list type fields (as SalutationID example).

blog-formules

Examples:

– Concatenate multiple fields, Myddleware uses the « . » as in PHP {field1}.{field2}.{fields3}

– Concatenate a fixed text with one or multiple fields « Client Name: « .{Firstname}. » « .{Lastname}

Three-valued condition , « If the Greeting field is ‘Mr.’ then send 1, otherwise send 2 » is written as followed : (({Greeting} == « Mr. ») ? « 1 » : « 2 »), those three-valued conditions can be nested in order, for example, to make the data correspond. Thus, ({resolution} == « 10 » ? « Open » : ({resolution} == « 20 » ? « Fixed » : ({resolution} == « 30 » ? « Reopened » : « Suspended »))) is correct and functional, this formula means « If resolution is 10 then ‘Open’ is sent, otherwise if resolution is 20 then ‘Fixedis sent, otherwise if resolution is 30 then Reopened’ is sent, otherwise Suspended ‘ is sent.

– Add two fileds {field1} + {field2}

 

Functions

 

In the formula of Myddleware, you can use the functions listed at the bottom right (see (3) of the previous image).

 

round(numbre [, clarification)(PHP) Ex: round(525.6352, 2) // Gives 525.64

This function round floating point (up).

 

ceil(float)(PHP) Ex: ceil(525.6352) // gives 526

Rounds up.

 

abs(number)(PHP) Ex: abs(-5) // gives 5

Returns the absolute value.

 

trim(string [, Masque])(PHP) Ex: trim( » bonjour « ) returns « bonjour »

Deletes spaces (or other charachters) at the begenning and the end of a string.

 

lower(STRING)(PHP) Ex: lower(« BONJOUR ») returns « bonjour »

Lowercases all charachters.

 

upper(Strin)(PHP) Ex: upper(« bonjour ») returns « BONJOUR »

Uppercases all charachters.

 

date(Format [, Timestamp])(PHP) Ex: date(« Y:m:d ») returns « 2014:09:16 »

Formats a local date/hour.

 

microtime([true if you want a float result])(PHP) Ex: microtime(true) returns 1410338028.5745

Returns current Unix timestamp with microseconds.

 

changeTimeZone(Date you want to change, old timezone, new timezone)(PHP) Ex: changeTimeZone(« 2014-09-16 12:00:00 », « America/Denver », « America/New_York ») returns « 2014-09-16 14:00:00 »

Changes the timezone of the given date.

 

changeFormatDate(Date you want to change, New format) Ex: changeTimeZone(« 2014-09-16 12:00:00 », « Y/m/d H:i:s ») returns « 2014/09/16 12:00:00 »

Changes the format of the given date.

 

substr(String, Index)(PHP) Ex: substr(« abcdef », -1) returns « f »

Reads a string starting of the given Index.

 

striptags(String)(PHP) Ex: striptags(« <p>Test paragraph.</p><!– Comment –> <a href= »#fragment »>Other text</a> ») returns « Test paragraph. Other text »

Strips HTML and PHP tags from a string.

 

Était - ce   utile   ? Yes No Suggérer  de  modifier

3.API Overview

The API is built to allow you to call Myddleware from your application using REST protocol. For example, you will be able to call a specific Myddlewere ‘s rule when a specific event happends in your application. You will also be able to synchronize a specific record using a call to Myddleware. 

Please find the postman collection here.

Please find our php sample code.

Était - ce   utile   ? Yes No Suggérer  de  modifier

3.1.Authentification

The function login_check is used to get a bearer tocken from Myddleware. This token well be required for all calls to Myddleware.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/login_check' \
--header 'Content-Type: application/json' \
--data-raw '{
	"username":"username",
	"password":"password"
}'

Output :

  • if success :
{
    « token »: <token>
}
  • If error :
{
    « code »: <error code>,
    « message »: <error message>
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.2.Function synchro

Use the synchro function to run a specific rule or every active rules.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/synchro' \
--header 'Content-Type: application/json' \
--form 'rule=<rule id>'

Set the rule id you want to run in Myddleware. Set ALL if you want to reun avery active rules.

Output :

{
    « error »: «  »,
    « jobId »: « 5e78c2cc32c926.66619369 »,
    « jobData »: {
        « Close »: « 2 »,
        « Cancel »: 0,
        « Open »: 0,
        « Error »: 0,
        « paramJob »: « Synchro : 5e5e5535564c0 »,
        « solutions »: « ^6^,^27^ »,
        « duration »: 13.43,
        « myddlewareId »: « 5e78c2cc32c926.66619369 »,
        « Manual »: 1,
        « Api »: 1,
        « jobError »: «  »,
        « documents »: [
            {
                « id »: « 5e78c2cd317ac3.60227368 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-23 14:08:13 »,
                « date_modified »: « 2020-03-23 14:08:24 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Send »,
                « source_id »: « 4×72 »,
                « target_id »: « 878987c2-4000-7c15-c353-5e63a95c2397 »,
                « source_date_modified »: « 2017-10-09 14:46:34 »,
                « mode »: « 0 »,
                « type »: « U »,
                « attempt »: « 1 »,
                « global_status »: « Close »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            },
            {
                « id »: « 5e78c2ceab9782.10596576 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-23 14:08:14 »,
                « date_modified »: « 2020-03-23 14:08:25 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Send »,
                « source_id »: « 4×73 »,
                « target_id »: « d28dc52c-68db-f679-5c80-5e63a9287457 »,
                « source_date_modified »: « 2020-03-09 15:33:14 »,
                « mode »: « 0 »,
                « type »: « U »,
                « attempt »: « 1 »,
                « global_status »: « Close »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            }
        ]
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.3.Function read record

Use the read record function to force Myddleware to read a specific record into your application. For example. you can call this function when a record is saved into your application. Myddleware will read it from your source application and send it to your target application. It is used when you need a real time synchronisation.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/read_record' \
--form 'rule=<your rule id>' \
--form 'filterQuery=<field>' \
--form 'filterValues=<value>'

Set these parameters :

  • rule : The rule you want to run
  • filterQuery : The field used to build the query executed into your application by Myddleware. It is usually the « id » field ‘s name of your record.
  • filterValue : The field value used in the parameter filterQuery. It is usually the id of your record.

Output :

{
    « error »: «  »,
    « jobId »: « 5e78c4c4ec8631.31640728 »,
    « jobData »: {
        « Close »: 0,
        « Cancel »: « 1 »,
        « Open »: 0,
        « Error »: 0,
        « paramJob »: « read records wilth filter id IN (4×60) »,
        « solutions »: « ^6^,^27^ »,
        « duration »: 2.42,
        « myddlewareId »: « 5e78c4c4ec8631.31640728 »,
        « Manual »: 1,
        « Api »: 1,
        « jobError »: «  »,
        « documents »: [
            {
                « id »: « 5e78c4c5f27231.38354025 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-23 14:16:37 »,
                « date_modified »: « 2020-03-23 14:16:39 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « No_send »,
                « source_id »: « 4×60 »,
                « target_id »: « e559cfe4-4e41-e2da-235e-5e63a985d98e »,
                « source_date_modified »: « 2017-10-09 14:46:24 »,
                « mode »: « 0 »,
                « type »: « U »,
                « attempt »: « 0 »,
                « global_status »: « Cancel »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            }
        ]
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.4.Function mass action

Use the mass action function to change (rerun, cancel, remove, restore or change the status)  a group of data transfer.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/mass_action' \
--header 'action: ' \
--form 'action=restore' \
--form 'dataType=rule' \
--form 'ids=5e5e5535564c0' \
--form 'forceAll=Y'


Set these parameters :

  • action : rerun, cancel, remove, restore or changeStatus.
  • dataType : rule or document. If you want to select data transfer using a rule (all data transfer of the rule) as the filter set « rule ». Otherwise set « document » if you want to filter your search by data transfer id.
  • ids : set the id(s) of the data transfer (document) or the rule depending of what you have set in the parameter dataType. If you put several ids, then put commas to separate them.
  • forceAll (optional) : Set Y to process action on all data transfer (not only open and error ones). In this case, be carefull, you could remove, cancel or change status of data successfully sent to your target application. Myddleware could generate duplicate data in your target application if you run again your rule without setting duplicate fields.
  • fromStatus : Only used with action changeStatus action. Add filter to select data transfer depending of their status.
  • toStatus : Only used with action changeStatus action. New status to be set on all data transfer selected.

Output :

{
    « error »: «  »,
    « jobId »: « 5e78dcacb8f1d0.97025863 »,
    « jobData »: {
        « Close »: « 30 »,
        « Cancel »: « 70 »,
        « Open »: 0,
        « Error »: 0,
        « paramJob »: « Mass remove on data type rule »,
        « solutions »: « ^6^,^27^ »,
        « duration »: 10.28,
        « myddlewareId »: « 5e78dcacb8f1d0.97025863 »,
        « Manual »: 1,
        « Api »: 1,
        « jobError »: «  »,
        « documents »: [
            {
                « id »: « 5e6685af04d858.22701783 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-09 18:06:39 »,
                « date_modified »: « 2020-03-23 15:58:36 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Cancel »,
                « source_id »: « 4×72 »,
                « target_id »: null,
                « source_date_modified »: « 2020-03-09 19:06:39 »,
                « mode »: « 0 »,
                « type »: « D »,
                « attempt »: « 0 »,
                « global_status »: « Cancel »,
                « parent_id »: «  »,
                « deleted »: « 1 »
            },
            {
                « id »: « 5e6685fd2cfbb8.35868016 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-09 18:07:57 »,
                « date_modified »: « 2020-03-23 15:58:36 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Cancel »,
                « source_id »: « 4×72 »,
                « target_id »: null,
                « source_date_modified »: « 2020-03-09 19:07:57 »,
                « mode »: « 0 »,
                « type »: « D »,
                « attempt »: « 0 »,
                « global_status »: « Cancel »,
                « parent_id »: «  »,
                « deleted »: « 1 »
            },
            {
                « id »: « 5e668618964e93.34804135 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-09 18:08:24 »,
                « date_modified »: « 2020-03-23 15:58:36 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Cancel »,
                « source_id »: « 4×72 »,
                « target_id »: null,
                « source_date_modified »: « 2020-03-09 19:08:24 »,
                « mode »: « 0 »,
                « type »: « D »,
                « attempt »: « 0 »,
                « global_status »: « Cancel »,
                « parent_id »: «  »,
                « deleted »: « 1 »
            },
            {
                « id »: « 5e669dcd915191.00190986 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-09 19:49:33 »,
                « date_modified »: « 2020-03-23 15:58:37 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Cancel »,
                « source_id »: « 4×72 »,
                « target_id »: null,
                « source_date_modified »: « 2020-03-09 20:49:33 »,
[………………………………..]
                « mode »: « 0 »,
                « type »: « U »,
                « attempt »: « 1 »,
                « global_status »: « Close »,
                « parent_id »: «  »,
                « deleted »: « 1 »
            }
        ]
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.5.Function rerun error

Use the rerun error function to run again data transfer in error.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/rerun_error' \
--form 'limit=10' \
--form 'attempt=5'

Set these parameters :

  • limit : set the limit parameter to limit the number of data transfer selected by the job.
  • attempt : Myddleware will read only data transfer with a number of attemps <= at this parameter

Output :

{
    « error »: «  »,
    « jobId »: « 5e78e6cdd789e7.70152075 »,
    « jobData »: {
        « Close »: 0,
        « Cancel »: 0,
        « Open »: 0,
        « Error »: « 3 »,
        « paramJob »: « Rerun error : limit 3, attempt 5 »,
        « solutions »: « ^14^,^6^,^3^ »,
        « duration »: 1.09,
        « myddlewareId »: « 5e78e6cdd789e7.70152075 »,
        « Manual »: 1,
        « Api »: 1,
        « jobError »: «  »,
        « documents »: [
            {
                « id »: « 5e612055c98da7.22680820 »,
                « rule_id »: « 5e611b50c0a6f »,
                « date_created »: « 2020-03-05 15:52:53 »,
                « date_modified »: « 2020-03-23 16:41:50 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Error_sending »,
                « source_id »: « efa139c1-5e46-b247-739d-5ba8412aa24a »,
                « target_id »: null,
                « source_date_modified »: « 2018-09-24 01:43:35 »,
                « mode »: « 0 »,
                « type »: « C »,
                « attempt »: « 6 »,
                « global_status »: « Error »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            },
            {
                « id »: « 5e72552e4fe687.45181957 »,
                « rule_id »: « 5e5cc8984ba84 »,
                « date_created »: « 2020-03-18 17:06:54 »,
                « date_modified »: « 2020-03-23 16:41:50 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Error_sending »,
                « source_id »: « 8 »,
                « target_id »: null,
                « source_date_modified »: « 2019-02-06 22:07:59 »,
                « mode »: « 0 »,
                « type »: « C »,
                « attempt »: « 6 »,
                « global_status »: « Error »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            },
            {
                « id »: « 5e72552e51d612.98166090 »,
                « rule_id »: « 5e5cc8984ba84 »,
                « date_created »: « 2020-03-18 17:06:54 »,
                « date_modified »: « 2020-03-23 16:41:50 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Error_sending »,
                « source_id »: « 12 »,
                « target_id »: « 15 »,
                « source_date_modified »: « 2020-03-03 10:43:31 »,
                « mode »: « 0 »,
                « type »: « U »,
                « attempt »: « 6 »,
                « global_status »: « Error »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            }
        ]
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.6.Function delete record

Use the delete record function to delete a specific record into the target application using the id of the source application.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/delete_record' \
--form 'rule=5e5e5535564c0' \
--form 'recordId=4x65' \
--form 'reference=2020-03-09 12:14:36' \
--form 'lastname=lastname01' \
--form 'email=test@test.test' \
--form 'firstname=firstname01'

Set these parameters :

  • rule : The id of the rule
  • recordId : The id of the record in the source application. Then Myddleware will use the rule to get the id of this record in the target application and delete it.
  • reference : the reference date or id used in Myddleware. Use the reference field already used in this rule.
  • Each field of the rule have to be added as input parameters

Output :

{
    « error »: «  »,
    « jobId »: « 5e78e7a7621400.01014726 »,
    « jobData »: {
        « Close »: 1,
        « Cancel »: 0,
        « Open »: 0,
        « Error »: 0,
        « paramJob »: « Delete record 4×63 in rule 5e5e5535564c0 »,
        « solutions »: « ^6^,^27^ »,
        « duration »: 0.32,
        « myddlewareId »: « 5e78e7a7621400.01014726 »,
        « Manual »: 1,
        « Api »: 1,
        « jobError »: «  »,
        « documents »: [
            {
                « id »: « 5e78e7a766e656.99183539 »,
                « rule_id »: « 5e5e5535564c0 »,
                « date_created »: « 2020-03-23 16:45:27 »,
                « date_modified »: « 2020-03-23 16:45:27 »,
                « created_by »: « 1 »,
                « modified_by »: « 1 »,
                « status »: « Send »,
                « source_id »: « 4×63 »,
                « target_id »: null,
                « source_date_modified »: « 2020-03-09 12:14:36 »,
                « mode »: « 0 »,
                « type »: « D »,
                « attempt »: « 0 »,
                « global_status »: « Close »,
                « parent_id »: «  »,
                « deleted »: « 0 »
            }
        ]
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier

3.7.Function statustics

Use the statistics function to get the statistics from Myddleware.

Here are CURL info :

curl --location --request POST 'http://localhost/myddleware/web/api/v1_0/statistics'

No input parameter.

Output :

{
    « errorByRule »: [
        {
            « name »: « Product category »,
            « id »: « 5e5d3f8f570cb »,
            « cpt »: « 37 »
        },
        {
            « name »: « Enrolment »,
            « id »: « 5a7dfcfaea8ee »,
            « cpt »: « 9 »
        },
        {
            « name »: « Activity completion source »,
            « id »: « 5c7892bd02e90 »,
            « cpt »: « 6 »
        },
        {
            « name »: « Product Moodle to PS »,
            « id »: « 5e5cc8984ba84 »,
            « cpt »: « 3 »
        },
        {
            « name »: « Order datail »,
            « id »: « 5d63b4532292b »,
            « cpt »: « 2 »
        },
        {
            « name »: « employee »,
            « id »: « 5e611b50c0a6f »,
            « cpt »: « 1 »
        },
        {
            « name »: « Emails »,
            « id »: « 5ba1ba8c7c82f »,
            « cpt »: « 1 »
        },
        {
            « name »: « Customers »,
            « id »: « 5d63d65dba522 »,
            « cpt »: « 1 »
        },
        {
            « name »: « Orders »,
            « id »: « 5d6010d1164fe »,
            « cpt »: « 1 »
        },
        {
            « name »: « Shipping address »,
            « id »: « 5d63d4279a52a »,
            « cpt »: « 1 »
        },
        {
            « name »: « Billing address »,
            « id »: « 5d63d54bc8310 »,
            « cpt »: « 1 »
        },
        {
            « name »: « Product Moodle get Stock id »,
            « id »: « 5e71ec0cd4a41 »,
            « cpt »: « 1 »
        }
    ],
    « countTypeDoc »: [
        {
            « nb »: « 1074 »,
            « global_status »: « Cancel »
        },
        {
            « nb »: « 1056 »,
            « global_status »: « Close »
        },
        {
            « nb »: « 44 »,
            « global_status »: « Open »
        },
        {
            « nb »: « 22 »,
            « global_status »: « Error »
        }
    ],
    « listJobDetail »: [
        {
            « id »: « 5e78e7a7621400.01014726 »,
            « begin »: « 2020-03-23 16:45:27 »,
            « end »: « 2020-03-23 16:45:27 »,
            « status »: « End »,
            « message »: «  »,
            « duration »: « 0 »
        },
        {
            « id »: « 5e78e7981dcdf7.88565484 »,
            « begin »: « 2020-03-23 16:45:12 »,
            « end »: « 2020-03-23 16:45:12 »,
            « status »: « End »,
            « message »: «  »,
            « duration »: « 0 »
        },
        {
            « id »: « 5e78e791ed9662.98391952 »,
            « begin »: « 2020-03-23 16:45:05 »,
            « end »: « 2020-03-23 16:45:06 »,
            « status »: « End »,
            « message »: «  »,
            « duration »: « 1 »
        },
        {
            « id »: « 5e78e78d169314.78840502 »,
            « begin »: « 2020-03-23 16:45:01 »,
            « end »: « 2020-03-23 16:45:01 »,
            « status »: « End »,
            « message »: «  »,
            « duration »: « 0 »
        },
        {
            « id »: « 5e78e786166de0.64116198 »,
            « begin »: « 2020-03-23 16:44:54 »,
            « end »: « 2020-03-23 16:44:54 »,
            « status »: « End »,
            « message »: «  »,
            « duration »: « 0 »
        }
    ],
    « countTransferHisto »: {
        « 2020-03-17 »: {
            « date »: « Mar-17 »,
            « open »: 0,
            « error »: 0,
            « cancel »: 0,
            « close »: 0
        },
        « 2020-03-18 »: {
            « date »: « Mar-18 »,
            « open »: 0,
            « error »: « 1 »,
            « cancel »: « 16 »,
            « close »: « 28 »
        },
        « 2020-03-19 »: {
            « date »: « Mar-19 »,
            « open »: 0,
            « error »: 0,
            « cancel »: « 1 »,
            « close »: « 1 »
        },
        « 2020-03-20 »: {
            « date »: « Mar-20 »,
            « open »: 0,
            « error »: 0,
            « cancel »: « 1 »,
            « close »: « 1 »
        },
        « 2020-03-21 »: {
            « date »: « Mar-21 »,
            « open »: 0,
            « error »: 0,
            « cancel »: 0,
            « close »: 0
        },
        « 2020-03-22 »: {
            « date »: « Mar-22 »,
            « open »: 0,
            « error »: 0,
            « cancel »: 0,
            « close »: 0
        },
        « 2020-03-23 »: {
            « date »: « Mar-23 »,
            « open »: 0,
            « error »: « 10 »,
            « cancel »: « 6 »,
            « close »: 0
        }
    }
}
Était - ce   utile   ? Yes No Suggérer  de  modifier
Suggérer  de  modifier