Wat zijn centrale notificaties?
  • 12 Apr 2023
  • 10 Minuten te lezen

Wat zijn centrale notificaties?


Article Summary

Ontwikkeling van gecentraliseerde notificaties

In Totara 14 hebben we een nieuw systeem geïntroduceerd voor het genereren van notificaties. We hebben de manier waarop ontwikkelaars notificaties in functies schrijven en hoe gebruikers notificaties configureren en ermee omgaan, gewijzigd. In onze documentatie verwijzen we naar deze functie als 'gecentraliseerde notificaties'Historisch gezien moesten ontwikkelaars veel beslissingen nemen over hoe notificaties zouden werken, wat resulteerde in een inconsistente ervaring voor gebruikers wat betreft het configureren van en omgaan met notificaties. Het gecentraliseerde notificatiesysteem biedt een consistente manier voor ontwikkelaars om notificaties te implementeren en voor gebruikers om ze te gebruiken.

De eerste release van gecentraliseerde notificaties omvatte de migratie van program en certificeringsnotificaties naar het nieuwe systeem. In latere releases zijn meer functienotificaties toegevoegd aan gecentraliseerde notificaties, terwijl andere nog steeds buiten het gecentraliseerde notificatiesysteem worden beheerd en nu worden aangeduid als 'verouderde notificaties'. Naarmate Totara verder gaat, blijven we bestaande notificaties migreren en nieuwe notificaties toevoegen aan het gecentraliseerde notificatiesysteem. Totara 16 zag bijvoorbeeld de introductie van cursusnotificaties, die worden beheerd via gecentraliseerde notificaties.

Gecentraliseerde notificaties uitgelegd

'Gecentraliseerde notificaties' is de term die wordt gebruikt voor het nieuwe notificatiesysteem. Ontwikkelaars voegen functionaliteit toe aan functies, waardoor gebruikers meldingen kunnen configureren die moeten worden verzonden met betrekking tot gebeurtenissen die plaatsvinden. Er zijn twee verschillende typen gebeurtenissen waarvoor je notificaties kunt configureren:

  • Gebeurtenissen kunnen acties zijn die een gebruiker uitvoert, zoals wanneer een gebruiker een cursus voltooit
  • Gebeurtenissen kunnen worden weergegeven door data die in de databank zijn vastgelegd, zoals een uiterste datum van het programma

Ontwikkelaars moeten een notificatietrigger implementeren voor elk type gebeurtenis dat moet resulteren in een notificatie. Een ontwikkelaar kan bijvoorbeeld een notificatietrigger implementeren op basis van de uiterste datum van de cursus. Gebruikers kunnen vervolgens een willekeurig aantal notificaties configureren voor elke notificatie-trigger. Een cursusbeheerder kan bijvoorbeeld een 'Uiterste datum over zeven dagen'-melding maken, evenals een 'Uiterste datum van twee dagen'-melding, beide gebaseerd op dezelfde meldingstrigger.

Wanneer er een gebeurtenis plaatsvindt, controleert het centrale notificatiesysteem of er notificaties zijn geconfigureerd om te worden verzonden. Er zijn verschillende stappen die betrokken zijn bij het beslissen welke notificaties worden verzonden, wie ze zal ontvangen, wat de inhoud zal zijn en hoe ze zullen worden afgeleverd.


Voordelen van gecentraliseerde notificaties

Het gecentraliseerde notificatiesysteem biedt een standaard manier voor ontwikkelaars en eindgebruikers om te communiceren met notificaties. Hier hebben we een aantal van de belangrijkste voordelen van het gebruik van gecentraliseerde notificaties beschreven:

  • Notificaties voor een reeks verschillende functies delen een gemeenschappelijke interface. In het verleden zorgden verschillende functies voor verschillende interfaces voor het configureren van notificaties, met verschillende functionaliteit en configureerbaarheid.
  • Notificaties kunnen hergebruikt worden voor meer dan één instantie (bijvoorbeeld dezelfde notificatie in meer dan één cursus). In het verleden hebben verschillende functies verschillende manieren geïmplementeerd om te delen tussen formulieren, zoals het gebruik van sjablonen.
  • Gebruikers hebben één manier om al hun notificatievoorkeuren te configureren in het centrale notificatiesysteem. In het verleden konden sommige notificaties worden geconfigureerd in gebruikersvoorkeuren, terwijl andere hard-coded waren om per e-mail te worden bezorgd of een andere manier van configuratie hadden.
  • Het gedrag voor hoe notificaties worden verzonden is consistent. In het verleden werden verschillende systemen gebruikt om te bepalen welke notificaties werden verzonden en wanneer. Er waren verschillende manieren om om te gaan met notificaties die in het verleden hadden moeten worden verzonden, zoals wanneer een nieuwe notificatie is gemaakt om te worden verzonden wanneer een gebeurtenis zich heeft voorgedaan, wanneer die gebeurtenis voor sommige gebruikers al had plaatsgevonden.
  • Bij het instellen van notificaties hebben gebruikers een consistente manier om te selecteren naar wie elke notificatie wordt verzonden. In het verleden moest een ontwikkelaar, als er een notificatie naar de manager van een gebruiker moest worden gestuurd, de code implementeren om dat mogelijk te maken, en aangepaste interface-elementen waarmee gebruikers kunnen controleren wanneer deze zou worden gebruikt.
  • Een gedeeld planningssysteem, waarmee bijna elke notificatie kan worden gepland, met minimaal werk dat de ontwikkelaar nodig heeft. In het verleden moesten ontwikkelaars aangepaste oplossingen implementeren om planning toe te voegen, inclusief de interface waarmee gebruikers de planningen konden configureren.
  • Een verenigd placeholder-systeem, dat het hergebruik van placeholders tussen verschillende notificatietriggers mogelijk maakt, en een gemeenschappelijke syntax waarmee gebruikers placeholders kunnen gebruiken in hun notificatie-inhoud. In het verleden moesten ontwikkelaars een aangepaste oplossing implementeren in elke functie waar parameters nodig waren en gebruikers moesten de juiste parametersyntax voor die specifieke functie leren.
  • Consistente implementatie van meertalige functionaliteit. In het verleden moesten ontwikkelaars het gebruik van meertalige functionaliteit in elke functie implementeren met behulp van notificaties.
  • Een nieuwe single source voor het controleren van alle notificaties en alle outputtypes. In het verleden moesten gebruikers vertrouwen op logs die speciaal voor een functie waren gemaakt, waar beschikbaar, of moesten ze proberen de interne meldingen en taaknotificatiegegevens te gebruiken als bron voor rapportage.
  • Een kernsysteem waarmee ontwikkelaars notificatietriggers op een consistente, eenvoudige manier kunnen implementeren. Veel van het werk van het ontwikkelen van notificatietriggers is gedaan voor de ontwikkelaar. In het verleden moesten ontwikkelaars vaak hun eigen oplossingen implementeren voor problemen zoals planning en placeholders, maar die worden allemaal opgelost in centrale notificaties.

Hoe gecentraliseerde notificaties verwerkt worden

Gebeurtenissen op basis van acties en gebeurtenissen op basis van geregistreerde datums worden op iets andere manieren verwerkt:

  • Als de gebeurtenis een actie was die een gebruiker uitvoerde, wordt de gebeurtenis geregistreerd in een wachtrij voor notificatiegebeurtenissen. De taak Door gebeurtenis geactiveerde notificaties verwerken (\\totara_notification\\task\\process_event_queue_task) is standaard geconfigureerd om elke minuut op de achtergrond te worden uitgevoerd en kijkt naar alle gebeurtenissen die in dewachtrij zijn geregistreerd en controleert of er overeenkomstige notificaties bestaan die zijn geconfigureerd om bij gebeurtenis te worden verzonden. Het verminderen van de frequentie van deze geplande taak resulteert in een langere wachttijd voor gebruikers deze notificaties ontvangen en heeft geen prestatievoordeel, dus het moet elke minuut worden uitgevoerd.
  • Notificaties die gepland zijn om te worden verzonden vóór of na geregistreerde datums, of die gepland zijn om te worden verzonden tijdens een gebeurtenis en gebaseerd zijn op geregistreerde datums, worden verwerkt door de taak Proces datum-getriggerde notificaties (\\totara_notification\\taak\\process_scheduled_event_task), die standaard is geconfigureerd om eenmaal per dag op de achtergrond te worden uitgevoerd. Dit proces vindt alle notificaties die gepland waren om te worden verzonden sinds de laatste keer dat de taak werd uitgevoerd. Hoewel het mogelijk is om deze taak vaker uit te voeren, moet je rekening houden met de performance-impact van deze beslissing, omdat deze taak veel gegevens moet evalueren om te bepalen of geregistreerde data overeenkomen met de planningen die in de notificaties zijn geconfigureerd.

Zodra een notificatie is gevonden, gebeurt het volgende proces:

  1. Als de trigger voor notificaties is uitgeschakeld, wordt de notificatie genegeerd (dit kan eerder gebeuren, maar is niet relevant vanuit het standpunt van de gebruiker).
  2. Als de notificatie is uitgeschakeld, wordt deze genegeerd.
  3. De notificatietrigger kan aanvullende voorwaarden implementeren waaraan moet worden voldaan voordat de notificatie wordt verzonden. De gebeurtenisgegevens worden beoordeeld en de notificatie wordt genegeerd als ze niet aan deze criteria voldoen.
  4. De lijst met ontvangers wordt berekend op basis van de gebeurtenisgegevens.
  5. De notificatie-inhoud wordt voor elke gebruiker gegenereerd. Plaatshouders in het onderwerp en de tekst worden vervangen door waarden die worden berekend met behulp van de gebeurtenisgegevens.
  6. De ingeschakelde outputs van elke ontvanger worden berekend.
  7. De notificatie-inhoud wordt voor elke gebruiker via elke uitvoer verzonden.

Speciale opmerking over wanneer notificaties worden verzonden

In het verleden werden verschillende notificaties op verschillende manieren geïmplementeerd. Een belangrijk probleem was hoe het systeem wist of er een notificatie was verzonden, waardoor het kon bepalen of er een notificatie moest worden verzonden. In veel gevallen zou het systeem, als er een nieuwe notificatie was ingesteld door een beheerder, bepalen dat de notificatie niet was verzonden naar een aantal gebruikers die al aan de criteria voor het ontvangen van die notificatie voldeden en die notificatie vervolgens naar die gebruikers zouden sturen. In de meeste gevallen was dit niet het beoogde resultaat. In het centrale notificatiesysteem worden notificaties alleen verzonden wanneer ze moeten worden verzonden. Notificaties worden niet in een wachtrij geplaatst en wachten niet op een later tijdstip. Het systeem controleert niet of er notificaties zijn overgeslagen of eerder hadden moeten worden verzonden. Het systeem vertrouwt op de timing om te bepalen wat er op elk moment moet worden verzonden. Het vraagt "Welke notificaties hadden er moeten verzonden worden tussen nu en de laatste keer dat er notificaties werden verzonden?" en alleen deze notificaties worden verzonden.

Een voorbeeld zal helpen om dit uit te leggen. Stel dat je een notificatie hebt gemaakt om nieuwe gebruikers te verwelkomen wanneer ze aangemeld zijn voor een cursus. Als de notificatie gepland is om bij uitvoering te verzenden (d.w.z. zodra de gebruiker is ingeschreven), wordt deze alleen verzonden naar gebruikers die zich hebben ingeschreven nadat je de notificatie hebt gemaakt. De notificatie wordt niet met terugwerkende kracht verzonden naar gebruikers die zich hebben aangemeld voordat je de notificatie hebt gemaakt. Als je dezelfde notificatie instelt om 1 maand na inschrijving te verzenden, dan zal het systeem elke dag controleren op gebruikers met een inschrijfdatum van één maand geleden en deze naar die gebruikers sturen, zelfs als de notificatie niet bestond op het moment van inschrijving. In dit geval zullen alle gebruikers die zich in de afgelopen maand hebben ingeschreven en degenen die zich in de toekomst hebben ingeschreven, de notificatie op de juiste datum ontvangen. Degenen die zich meer dan een maand geleden hebben ingeschreven, zullen het nooit ontvangen, omdat ze de notificatie zouden ontvangen voordat het werd gemaakt.

Geblokkeerde gebruikers ontvangen geen notificaties. Wanneer een geblokkeerde gebruiker wordt hersteld, ontvangen ze geen meldingen die tijdens hun opschorting zijn geactiveerd. Notificaties die moeten zijn verzonden terwijl een gebruiker is geblokkeerd, worden niet in de wachtrij geplaatst.

Notificatie overnemen

Notificaties in het centrale notificatiesysteem worden overgeërfd van hogere contexten naar lagere contexten. De functionaliteit die door erfenis wordt aangeboden, lijkt op het idee van sjablonen, omdat notificaties op één plaats kunnen worden gemaakt en beheerd en vervolgens op vele andere plaatsen worden hergebruikt.

Notificaties kunnen in verschillende contexten worden gemaakt, zoals binnen cursussen, programma's, bijeenkomsten of in de systeemcontext (ook wel het 'site niveau' genoemd). Notificaties kunnen worden geconfigureerd in contexten die hoger zijn dan de context waarin de gebeurtenis plaatsvindt en kunnen worden geërfd om de contextniveaus te verlagen. Cursusvoltooiingen vinden bijvoorbeeld plaats in een cursuscontext, maar Cursusvoltooiingsnotificaties kunnen zowel in de systeemcontext als binnen individuele cursussen worden gemaakt. De notificaties in elke context worden bepaald door degenen die in die context zijn gemaakt, evenals degenen die van hogere contexten zijn geërfd. Notificaties in hogere contexten worden overgeërfd in alle onderliggende contexten waar de gebeurtenis plaatsvindt.

Bij notificaties die van hogere contexten geërfd worden, kunnen verschillende eigenschappen overschreven worden in een lagere context. Een cursist die is toegewezen in een programmanotificatie kan bijvoorbeeld worden gemaakt in de systeemcontext, met algemene inhoud voor onderwerpen en teksten die geschikt zijn voor de meeste programma's. In een specifiek programma kunnen het onderwerp en de tekst worden aangepast om beter te passen bij dat programma of kan de notificatie volledig worden uitgeschakeld in dat programma.

Je wilt bijvoorbeeld dat alle cursussen op je site een welkomstbericht sturen wanneer een gebruiker voor het eerst wordt toegewezen. Dit bericht moet dezelfde inhoud hebben in alle cursussen, behalve de naam van de cursus en de naam van de gebruiker. In de interface voor notificaties op siteniveau kan de systeembeheerder een notificatie instellen en de plaatshouders voor de volledige cursusnaam en de voornaam van de gebruiker opnemen in het onderwerp en/of de tekst. Deze notificatie wordt in alle cursussen overgeërfd, wat betekent dat voor alle nieuwe en bestaande cursussen deze nieuwe notificatie automatisch wordt ingesteld. In één bepaalde cursus kan de cursusbeheerder beslissen dat de notificatie moet worden gewijzigd om nieuwe gebruikers aanvullende informatie te geven. Ze kunnen de notificatie op dit specifieke contextniveau wijzigen door de geërfde notificatie te bewerken in de notificatie-interface van de cursus, de schakelaar Overschrijven voor de hoofdtekst in te schakelen en de nodige wijzigingen aan te brengen.

Verouderde notificaties

Op dit moment gebruiken een aantal verschillende functies verouderde notificaties, die anders werken dan het gecentraliseerde notificatiesysteem. Als de functionaliteit die je gebruikt niet onder gecentraliseerde notificaties valt, controleer dan de documentatie voor die functie. We blijven nieuwe notificaties toevoegen en bestaande notificaties migreren naar het gecentraliseerde notificatiesysteem.

C065 - Notifications in Totara

The Totara Academy has a whole course dedicated to Notifications in Totara. Here you can learn more about how to set up and use centralised notifications, see best practice, and give it a go yourself.

© Copyright 2024 Totara Learning Solutions. All rights reserved.


Was dit artikel nuttig?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.