Перейти к содержимому
Участник сообщества #68
Участник сообщества #68
27 дек. 2024 г., 06:33(изменён)
0
0

Переназначение курсов через агент

Из чата сообщества

Господа, добрый день, знаю что я задаю нубские вопросы, но вынужден.

Есть задача переназначать курсы заново по истечению 7 дней, из тех поддержки узнал что курс нельзя назначить,пока он не завершен,отсюда вывод, нужно чтобы курс завершался и заново назначался по истечению 7 дней. Т.е. условие 7 дней прошло и курс не завершен,принудительно завершить и назначить заново,как-то это средствами этого комбайна решить задачу можно? Если да, то подскажите как,если предоставите готовое решение, готов буду чутка вознаграждение денежное сделать

Участник сообщества
Участник сообщества27 дек. 2024 г., 06:34(изменён)

Можно агент написать, который будет ежедневно работать и обращаться к этим курсам.

Участник сообщества
Участник сообщества27 дек. 2024 г., 06:37(изменён)

Пытался средствами из раздела выше

Участник сообщества
Участник сообщества27 дек. 2024 г., 06:44(изменён)

Агент контроля выполнения и автоматического завершения электронных курсов https://clients.websoft.ru/_wt/6677132168221053193/idparent/6677103481188463876/watype/6676016887843534950

Участник сообщества
Участник сообщества27 дек. 2024 г., 06:46(изменён)

Есть коробочный агент, который уже встроен в систему

Автоматически завершать обучение по условиям (websoft_agent_complet_training) https://clients.websoft.ru/_wt/7212898672178912208/parent_id/7214558264526120641

Агент сервера «Автоматически завершать обучение по условиям» предназначен для использования в приложении «Управление дистанционным обучением».

Участник сообщества
Участник сообщества27 дек. 2024 г., 06:49(изменён)

Несмотря на отметку по использованию именно в приложении ДО, можно посмотреть его отработку на назначенных курсах вне приложения, должен работать.

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:34(изменён)

условие простое,если курс имеет статус не завершенный, а отличный, например назначен или в процессе и прошло с момента назначения 7+ дней, то закрывать курс и заново переназначать

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:38(изменён)

Написать ежедневный агент с кодом в ~10 строк

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:50(изменён)

Михаил, вам Лена Горлова выше уже агент прислала

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:51(изменён)

вот он

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:51(изменён)

я изучил условия по которым он закрывает

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:53(изменён)

он проходится только по уволенным

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:53(изменён)

но заглянул в список назначенных курсов, на уволенных до сих пор висят курсы

Участник сообщества
Участник сообщества27 дек. 2024 г., 08:53(изменён)

в поддержку тогда с этим

Участник сообщества
Участник сообщества27 дек. 2024 г., 09:19(изменён)

описание всё же не полное, но я сделал всё, что смог - дальше сами ) PS ну и проверять обязательно на тестовом стенде сначала

_my_course_id = 11111111111111; // id назначаемого курса
_days_in_past = 7; // количество дней в прошлое, спустя которое переназначаем курс
_good_old_days = 60; // количество дней в прошлом, за которое учитываем успешное прохождение (если оно, вдруг, было)
_active_learnings = XQuery("for $elem in active_learnings where $elem/course_id = " + _my_course_id + " and $elem/start_usage_date < date('" + tools.AdjustDate('', 0 - _days_in_past) + "') and MatchSome($elem/state_id, (0,1)) return $elem"); // активные курсы, назначенные раньше, чем _days_in_past дней назад
for (_active_learning in _active_learnings)
{
  _finished_course_id = tools.active_learning_finish(_active_learning.id); // просто завершаем - система сама разберётся пройден или нет, исходя из набранного и проходного балла
  /*
  // если вдруг надо завершать всегда как неуспешный - так как описания проходного балла и условия успешности завершения курса не было предоставлено, то тут нужно разобраться самому, требуется ли это
    _finished_course_doc = tools.open_doc(_finished_course_id);
    if (_finished_course_doc != undefined)
    {
      _finished_course_doc.TopElem.state_id = 2; // неуспешный
      _finished_course_doc.Save();
    }
  */
  if ((_active_learning.person_id.OptForeignElem !=  undefined) && (_active_learning.person_id.OptForeignElem.is_dismiss == false)) // если сотрудник не уволен
  {
    _good_finished_learning = ArrayOptFirstElem(XQuery("for $elem in learnings where $elem/course_id = " + _my_course_id + " and $elem/person_id = " + _active_learning.person_id + " and $elem/state_id = 4 and $elem/last_usage_date > date('" + tools.AdjustDate('', 0 - _good_old_days) + "') return $elem")); // поиск успешного прохождения данного курса позже, чем _good_old_days дней назад
    if (_good_finished_learning == undefined) // если успешного за _good_old_days не было
    {
      tools.activate_course_to_person (_active_learning.person_id, _my_course_id ); // назначаем курс
    }
  }
}
Чтобы ответить, необходимо войти в систему