Pilotage
6 min
OIP Headless permet de piloter certaines étapes du cycle de vie d'une entité.
Envoi automatique de données
Un snapshot d'une entitĂ© (le sous-arbre dont l'entitĂ© est la racine) peut ĂȘtre automatiquement envoyĂ© quand la valeur d'une propriĂ©tĂ© d'une entitĂ© change.
Afin d'activer ce comportement, un paramétrage est nécessaire.
insert into settings (scope, key, value, application_id) values (100, 1010, '{ "type": "<ENTITY_NAME>", "key": "<PROPERTY_NAME>" }', <APPLICATION_ID>);Les valeurs Ă adapter sont :
- ENTITY_NAME : nom d'une entité (colonne type de la table entities_types) ;
- PROPERTY_NAME : nom d'une propriété de l'entité ENTITY_NAME ;
- APPLICATION_ID : identifiant de votre application (colonne id de la table applications).
Les données sont envoyées via le protocole AMQP sur une file dont le nom est #{OAV_ID}.entities.
OAV_ID correspond Ă l'identifiant public de l'application (colonne public_id de la table applications).
Les données sont décryptées avant envoi.
Exemple
Envoi d'un snapshot quand la propriété status d'une entité de type Project change.
insert into settings (scope, key, value, application_id) values (100, 1010, '{ "type": "Project", "key": "status" }', (select id from applications where name = 'MyApp'));Purge automatique de données
La suppression complĂšte et dĂ©finitive d'une entitĂ© (et de toutes ses sous-entitĂ©s) peut ĂȘtre automatiquement dĂ©clenchĂ©e quand la valeur d'une propriĂ©tĂ© d'une entitĂ© ne change pas pendant une pĂ©riode donnĂ©e (inactivitĂ©).
Afin d'activer ce comportement, un paramétrage est nécessaire.
insert into settings (scope, key, value, application_id) values (100, 1000, '{ "type": "<ENTITY_NAME>", "after": <TRIGGER_AFTER>, "on": <TRIGGER_ON> }', <APPLICATION_ID>);Les valeurs Ă adapter sont :
- ENTITY_NAME : nom d'une entité (colonne type de la table entities_types) ;
- TRIGGER_AFTER : période d'inactivité ;
- Le format est { "after": { "value": DURATION_VALUE, "unit": "DURATION_UNIT" }} oĂč DURATION_VALUE est un entier naturel, et DURATION_UNIT est year, month ou day.
- TRIGGER_ON : (optionnel) propriété de l'entité sur laquelle s'applique la période d'inactivité ;
- Le format est { "on": { "key": "PROPERTY_NAME", "value": "PROPERTY_VALUE" }} oĂč PROPERTY_NAME est le nom d'une propriĂ©tĂ© et PROPERTY_VALUE est la valeur de la propriĂ©tĂ©.
- APPLICATION_ID : identifiant de votre application (colonne id de la table applications).
Exemple
- Purge quand aucune propriété d'une entité de type Project change pendant une période de 6 mois.
insert into settings (scope, key, value, application_id) values (100, 1000, '{ "type": "Project", "after": { "value": 6, "unit": "month" }}', (select id from applications where name = 'MyApp'));- Purge quand la propriété status d'une entité de type Project ne change pas pendant une période de 6 mois.
insert into settings (scope, key, value, application_id) values (100, 1000, '{ "type": "Project", "after": { "value": 6, "unit": "month" }, "on": { "key": "status", "value": "SIGNED" }}', (select id from applications where name = 'MyApp'));