Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Чтобы выполнить расчет оповещения по показателю эффективности:

1.В карточке оповещения на вкладке Главная в группе Расчет нажмите на кнопку Текст расчета. Откроется окно редактора ISBL-текстов.
2.Введите расчет показателя с помощью ISBL-вычислений.
3.Сохраните расчет и карточку оповещения.

Свернуть/развернуть пример Пример

Расчет для формирования и отправки оповещения о значении показателя:

 

TASK_SENDING_METHOD = "Task"

EMAIL_SENDING_METHOD = "Email"

TO_ALL_PARTICIPANTS = "Всем участникам" DELIMITER = ";"

    SenderProgram = КонстЗнач("ПЧПРОГ"; "DIRECTUM")

    Message = GetRequisiteValueAsString("KeyPerfomanceIndicatorNotifications";

      NoticeCode; "ISBSearchCondition"; FALSE)

    Subject = GetRequisiteValueAsString("KeyPerfomanceIndicatorNotifications";

      NoticeCode; "Дополнение"; FALSE)

    IndicatorCode =

      GetRequisiteValueAsString("KeyPerfomanceIndicatorNotifications";

      NoticeCode; "Indicator"; FALSE)

    SendingMethod =

      GetRequisiteValueAsString("KeyPerfomanceIndicatorNotifications";

      NoticeCode; "SendingMethod"; FALSE)

      // Получить последнее значение показателя, для которого

      // формируется уведомление.

    LastIndicatorValue = SQL(Format("

      select

        top 1 ind.Value

      from

    PIMIndicatorView ind

      where

        ind.Indicator = %s

      order by

        ind.CalculateDate desc";

        GetRequisiteValueAsString("KeyPerfomanceIndicators";

        IndicatorCode; SYSREQ_ID; FALSE)))

     // Сформировать список e-mail.

    EmployeeCodeList =

      GetRequisiteValueAsString('KeyPerfomanceIndicatorNotifications';

      NoticeCode; 'ISBEvent'; FALSE)

    if SendingMethod == EMAIL_SENDING_METHOD

      EMailList = CreateStringList()

      EMailList.Delimiter = DELIMITER

      foreach EmployeeCode in CSubString(EmployeeCodeList; DELIMITER)

        PersonCode = GetRequisiteValueAsString('РАБ'; EmployeeCode;

          'Персона'; FALSE)

        if Assigned(GetRequisiteValueAsString('ПРС'; PersonCode;

          'Строка2'; FALSE))

          EMailList.Add(GetRequisiteValueAsString('ПРС'; PersonCode;

            'Строка2'; FALSE))

        endif

      endforeach

      AddedEmail =

        GetRequisiteValueAsString('KeyPerfomanceIndicatorNotifications';

          NoticeCode; 'Текст2'; FALSE)

        if Assigned(AddedEmail)

          EMailList.Add(AddedEmail)

        endif

      Emails = EMailList.DelimitedText

      if Emails == ''

      // Необходимо указать получателей электронного письма.

        Message = LoadString('DIRAA466FDA_CC30_46BB_B285_ABDC22D45FF2';

          'KPIM')

        Raise(CreateException('EDIRInvalidRequisiteValue';

          Message; ecWarning))

      endif

      // Отправить письмо каждому адресату.

      ПЧТОтправитьПисьмо(Emails; ; ; Subject; Message; SenderProgram)

    endif

    // Сформировать задачу.

    if SendingMethod == TASK_SENDING_METHOD

      Task = Tasks.CreateNew()

      Task.Subject = Message

      Task.ActiveText = Subject

      Index = 1

      EmployeeReference = CreateReference('РАБ'; ; FALSE)

      EmployeeReference.Open

      foreach EmployeeCode in CSubString(EmployeeCodeList; DELIMITER)

      // Если работник с указанным кодом найден и запись для работника

        // действующая и утвержденная, тогда отправить пользователю задачу.

        if EmployeeReference.Locate(ArrayOf(SYSREQ_CODE; SYSREQ_STATE;

          SYSREQ_RECORD_STATUS); ArrayOf(EmployeeCode;

            'Действующая'; '+'))

          UserCode = EmployeeReference.Пользователь

          if not VarIsNull(UserCode)

            User = ServiceFactory.GetUserByCode(UserCode)

            RouteStep = Tasks.CreateRouteStep(Index; User;

              jkNotice; ''; ''; '')

            Index = Index + 1

            Task.Route.Add(RouteStep)

          endif

        endif

      endforeach

      EmployeeReference.Close

      Task.CheckedTask = NO_VALUE

      Task.AccessType = TO_ALL_PARTICIPANTS

      Task.Start

    endif

См. также

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }