Renouvellement des abonnements

Prev Next

La direction de Cloud Kicks est très contente du développement des abonnements. 
Cependant, l'équipe est très occupée avec la gestion manuelle des abonnements.
José demande à Linda s'il n'y a pas un moyen d'automatiser la gestion du cycle de vie des abonnements.

Linda, qui a déjà automatisé pas mal de processus, vérifie tout de suite s'il n'y a pas d'automatisations prévues à ce sujet.
Elle trouve rapidement ces informations dans la base de connaissances de Frisbii :

Automatisation - Articles

Class Apex planifiée

Méthode invocable

Automatisation - Renouvellement des abonnements 

SubscriptionAutoRenewal

Renew_Subscriptions

Activer des abonnements

SubscriptionAutoActivate

n/a

Interrompre des abonnements

SubscriptionAutoTermination

n/a

Terminer des abonnements

SubscriptionAutoEnd

n/a

Génération des échéanciers de facture pour des abonnements

n/a

InvoicePlan_Subscriptions

Elle commence par la configuration du renouvellement automatique des abonnements et elle choisit entre les deux possibilités de configuration.

Planification d'une tâche Apex

Soit Linda planifie la tâche Apex en utilisant la classe SubscriptionAutoRenewal. 
Passant par cette configuration, la tâche va renouveler les abonnements qui rentrent dans les conditions à une heure et un jour précis régulièrement.

Les conditions de déclenchement sur l'abonnement

Afin de créer un avenant de renouvellement sur un abonnement, il faut vérifier d'abord si :

  • L'abonnement est activé.

  • L'abonnement devrait être renouvelé (conditions contractualisées avec le client, par exemple : date du jour = 1 mois avant la fin de l'abonnement).

  • Le client a autorisé le renouvellement.

Attention : Ajustez ces conditions à votre besoin ou au besoin spécifique de votre client.

Configurer le champ nécessaire pour la tâche planifiée

Si vous voulez planifier une tâche Apex par la suite, il faut créer un champ formule prenant en compte ces conditions.

Procédure

1. Allez dans Configuration > Gestionnaire d'objet > Abonnement.
2. Cliquez sur Champs et relations.
3. Cliquez sur le bouton Nouveau.
4. Dans l'Étape 1, choisissez le type de données Formule.
5. Dans l'Étape 2, choisissez le type de sortie Case à cocher et renseignez Auto renouvellement condition.
6. Dans l'Étape 3, basculez sur Formule avancée et composez une formule adaptée à votre besoin. Exemple :

AND (ADDMONTHS(sofactoapp__Fin_periode_facturation__c,-1)<=TODAY(),
     sofactoapp__Ne_pas_renouveler__c = FALSE,
     sofactoapp__Tacite_reconduction__c = true,
     ISPICKVAL(sofactoapp__Statut__c, "Activé"))

Attention : Si vous copiez la formule précisée dans cet article, copiez-la d'abord dans un éditeur de texte qui enlève toute la mise en forme. L'éditeur de formule ne va probablement pas accepter un copier-coller directement à partir de cet article. 

7. Vérifiez la syntaxe.
8. Donnez une description et un texte d'aide significatifs.
9. Dans l'Étape 4, gérez la sécurité de ce champ en cochant les cases correspondantes aux profils, selon les règles de votre entreprise. Vous pouvez sinon porter ces droits sur des ensembles d'autorisations.
10. Décochez la case pour ajouter le champ automatiquement sur la présentation de page, afin de mieux placer manuellement le champ créé par la suite.
11. N'oubliez pas de traduire ce champ ainsi que son texte d'aide si plusieurs langues sont utilisées dans cet environnement Salesforce.

Voici le résultat de Linda :

Champ de contrôle dans le panneau d’Administration

Afin de planifier la tâche Apex par la suite, nous allons sélectionner la condition qui doit être prise en compte par la classe Apex dans le panneau d'Administration.

Procédure 

1. Allez dans le lanceur d'application.
2. Tapez Administration dans la recherche.
3. Ouvrez le panneau d'Administration Frisbii.
4. Choisissez Auto renouvellement condition comme Champ de contrôle pour renouvellement auto des abonnements.

5. Enregistrez en cliquant sur le bouton Valider.

Planifier la classe Apex

Si vous voulez que le processus de génération des factures soit lancé à une certaine heure, il faut passer par une Classe Apex planifiée.
Voici la procédure de Salesforce pour la 
Planification de tâches Apex

Procédure

1. Allez dans Configuration > Code personnalisé > Classes Apex.
2. Cliquez sur le bouton Planifier Apex.
3. Renseignez un Nom de tâche.
4. Renseignez la Classe Apex SubscriptionAutoRenewal.

5. Configurez la Fréquence et le Début ainsi que l'Heure de début souhaitée.
6. Pour la date de Fin, saisissez une date lointaine dans le futur afin d'éviter que le processus ne s'arrête trop tôt.
7. Cliquez ensuite sur le bouton Enregistrer.
Remarque : La tâche planifiée est ensuite visible dans Configuration > Environnements > Tâches > Tâches prévues.
Pour la modifier, il faut la supprimer et la planifier à nouveau.

Test de l'automatisation

Suite à la configuration, n'oublions pas de tester notre processus dans une sandbox. 

Préparation

D'abord, assurez-vous que vous avez un abonnement à votre disposition qui remplit les critères.

Par exemple, dans le cas de Cloud Kicks :

  • L'abonnement est activé > Statut = Activé.

  • L'abonnement devrait être renouvelé > Ne pas renouveler n'est pas coché.

  • La date de fin est dans un mois ou moins > Date de fin - 1 mois ≤ aujourd'hui.

  • Le client est d'accord avec le renouvellement automatique > Tacite reconduction est coché.

... et que vous avez bien ajouté le champ Auto renouvellement condition dans votre présentation de page. 

Procédure 

1. Allez dans la Developer Console.

image.png

2. Dans le menu Debug > Open Execute Anonymous Window.
3. Dans la fenêtre Enter Apex Code, collez cette expression :

// String CRON_EXP = ‘ss mm hh dd MM ? AAAA’;
String CRON_EXP = '00 18 10 14 07 ? 2020';
String lv_jobId = System.schedule(
   'SubscriptionAutoRenewal'+Datetime.now(),
   CRON_EXP,
   new sofactoapp.SubscriptionAutoRenewal()
);

4. Mettez la date et l'heure dans une minute (le format est expliqué sur la première ligne, il commence par les secondes, puis les minutes, les heures, le jour, le mois et l'année).

  • Exemple : s'il est 10h17 chez vous, mettez 00 18 10. Cela vous laisse 1minute pour le déclenchement de l'automatisation. Attention au format qui est inversé (minutes et heures).

5. Cliquez sur le bouton Execute pour lancer le script.

Le test est-il réussi ?

Le test est réussi si :

  • Un avenant de type renouvellement est créé et est lié à votre abonnement.

  • La date "fin période de facturation" a été repoussée dans le futur (par défaut d'un mois).

Ceci n'est pas le cas ?

Vérifiez :

  • Les conditions de votre champ :

    • Auto renouvellement condition

  • Sur votre abonnement de test, est ce que :

  • Dans le panneau d'Administration, vous avez bien mis la condition ?


Le test de l'automatisation en passant par la classe Apex a bien fonctionné.