1. Automatické notifikace uživatelům mimo ObjectGears

    Článek: AN0002448Aktualizováno:: 21.11.2020

    V tomto článku si ukážeme, jak můžeme z ObjectGears automaticky nechat posílat notifikace na uživatele, kteří nemají ObjectGears účet.

    V našem příkladě budeme mít třídu aplikací (business-application) s vlastnostmi support_to (datum) a analysts (odkaz do jiné třídy ms-ad-users). Vztah tříd zachycuje následující schéma.

    Použijeme automatické časové operace pro kontrolu pole support_to a odesílání notifikací kolegům v poli analysts ve stanovenou dobu před koncem podpory. Příjemci notifikace nebudou uživatelé ObjectGears uvedení v určitém sloupci, takže nebudeme moci příjemce prostě vybrat v nastavení notifikace. Místo toho budou příjemci reprezentováni jen záznamy z jiné třídy, u nichž budeme mít uveden email. Odeslání notifikace z časové operace tedy vyřešíme skriptem.

    V časové operaci nastavíme filtr na záznamy, kde pole analysts není null. Na záložkách s vlastnimi operacemi pak nastavíme tento skript.

    /*skript se podívá do násobného classlinku Analysts, který vede na třídu ms-ad-users - emaily jsou ve sloupci e-mail
    Pošle upozornění end_of_support_reminder a nalinkuje odeslaný email na záznam dané aplikace.*/


    var drl = OGActualDataRow.GetDR('analysts');
    if ( drl != null && drl.Count > 0)
    {
      //příprava emailu
      var m = OG.Email.CreateMessage();

      var isAnyEmail = false;
      for( var i = 0; i < drl.Count; ++i)
      {
        var email = drl[i]['e-mail'];
        if ( !OG.IsNull(email))
        {
          m.AddTo(email);
          isAnyEmail = true;
        }
      }

      if (isAnyEmail)
      {
        var mIt = OG.Model.GetByCode('it');
        m.Notification = OG.Notification.GetAll().GetDefaultByCode( mIt.Id, 'end_of_support_reminder');

        //nalinkování emailu k záznamu aplikace
        m.AssignEmailForDataRow = OGActualDataRow;

        m.SendEmailAsOne = true; //odeslat jako jeden email
        //m.SendEmailAsOne = false; //odeslat emaily samostatne

        //nalinkování emailu k časové operaci jako původci odeslání
        m.OwnerType = OG.Email.EmailOwnerType_AutomaticTimeOperationSend;
        m.OwnerId = OGActualAto.Id;

        OG.Email.Send(m);
      }
    }

×