Automates sur déclencheurs

Les automates sur déclencheurs sont codés en PHP et sont exécutés à chaque fois qu'une action spécifique dans Weemake est effectuée (le déclencheur).

Par exemple, dans une application qui gère votre activité de formation, vous pouvez créer un déclencheur pour qu'une affaire de type Envoi de la convention soit créé à chaque fois qu'un objet Formation est créé.

Pour ajouter un déclencheur, allez dans le menu de paramétrage puis WeeCODE -> Automates sur déclencheur

Cet écran permet d'afficher et de gérer les différents automates sur déclencheur :

Créer un déclencheur

  • Lors de la création d'un déclencheur vous devez spécifier :

    • son nom

    • son statut :

      • En test : seules les actions de l'utilisateur créateur du déclencheur exécuteront le code du déclencheur

        • Activé : le code du déclencheur s'exécute tout le temps

        • Désactivé : le code du déclencheur ne s'exécute jamais

    • l'évènement : l'action qui déclenche l'exécution du code

    • le code à exécuter

Coder un déclencheur

Pour coder un déclencheur, il faut utiliser le langage PHP avec certaines fonctions PHP spécifiques à WeeMake mise à votre disposition. Vous pouvez vous référer au guide des fonctions ici.

Voici un exemple de déclencheur qui va créé une affaire de type Envoi documents formation, à chaque fois qu'un objet formation est créé.

// <?php 
$model = $data['caller']; //modèle ayant déclenché l'évènement
$data = $data['data']; //éventuelles données fournies par l'évenement, parfois certaines données sont modifiables ce qui permet de changer un comportement

if ($model['created_at'] === $model['updated_at']) {
// Créer une nouvelle affaire de type "envoyer_convention"
$newAffair = createAffair("envoyer_convention");


// Vérifier si l'affaire a bien été créée
if ($newAffair) {
    // Définir des attributs supplémentaires pour l'affaire si nécessaire
    $newAffair->setData('title', 'Envoyer convention ' . $model['title'] );
    $newAffair->setData('status', 'Nouveau');  
    $deadline = date('Y-m-d', strtotime('+3 days')); 
    // Ajouter l'attribut deadline à l'affaire
    $newAffair->setData('dead_line', $deadline);
    
    // Sauvegarder l'affaire
    $newAffair->save();
	
	 // Lier l'affaire à l'objet qui vient d'être créé
    linkAffairAndObject($newAffair, $model); 

    
    // Afficher un message de confirmation
    addPageMessage('L\'affaire "Envoyer convention" a été créée avec succès', 'success');	    
} else {
    // Si la création a échoué, lever une exception
    throwException('Erreur lors de la création de l\'affaire "Envoyer convention"');
}
}

Précisions sur les déclencheurs qui manipulent des affaires

Lorsque votre déclencheur manipule des affaires (création, modification...), voici la liste des champs que vous pouvez récupérer ou mettre à jour.

Nom du champ
Description
Exemple/Format

affair_id

identifiant technique de l'affaire

number

Numéro de l'affaire

type_code

Identifiant du type d'affaire

title

Nom de l'affaire

service_id

Identifiant du service de l'affaire

category_id

Identifiant de la catégorie de l'affaire

description

Description de l'affaire

status_code

Code du statut de l'affaire

Valeurs possibles pour status_code : Nouveau, En cours, Fermé

priority_id

Identifiant de la priorité

Vide = '-' 1 = Au plus vite 2 = Urgente

is_public_in_extranet

Booléen indiquant si l'affaire doit être visible dans l'extranet

dead_line

Date de deadline

Format AAAA-MM-JJ

custom_folder

created_by

Identifiant de l'utilisateur qui a créé l'affaire

assigned_to

Identifiant du responsable de l'affaire (personne à qui est assignée l'affaire)

created_at

Date de création de l'affaire

Format AAAA-MM-JJ HH:MM:SS

updated_at

Date de modification de l'affaire

Format AAAA-MM-JJ HH:MM:SS

updated_by

Identifiant de l'utilisateur qui a modifié l'affaire

Last updated

Was this helpful?