none
SCSM2012 повторная активация инцидента RRS feed

  • Вопрос

  • Доброго дня, коллеги!

    Ситуация - создан инцидент по электронной почте, инцидент разрешен, статус у него соответствующий. Пользователь получает уведомление о разрешении с комментарием специалиста. Решает, что инцидент не разрешен и пишет в ответном письме, что инцидент не решен. Теперь вопрос - как сделать так, чтобы в этом случае инцидент менял статус с Разрешен на Активен?

    Делать рабочий процесс? Там недостаточно критериев, по которому он будет срабатывать. Прошу помощи. Заранее спасибо!

    22 марта 2017 г. 10:00

Ответы

Все ответы

  • Если штатными средствами, то только ручками: How to Reactivate a Resolved Parent Incident

    Обычно:

    • либо делают специальную форму для оценки решения (User Satisfaction Survey), которая при плохой оценке реактивирует заявку;
    • либо принимают за правило, что если пришел любой комментарий от пользователя для закрытой заявки, то она реактивируется, либо с каким нибудь специальным статусом отправляется на повторную маршрутизацию (например - на диспетчеров, которые разберутся активировать её или нет...).
    • ну или можно сделать какой-нибудь анализатор для пользовательских комментариев, но это дело такое...

    Так или иначе сам процесс реакривации выполняется обычно через powershell, который запускают либо через Orchestrator, либо через workflow в самом SCSM.


    • Изменено PeTrProduct 25 марта 2017 г. 9:56
    • Предложено в качестве ответа PeTrProduct 25 марта 2017 г. 9:56
    22 марта 2017 г. 15:21
  • Здравствуйте.

    Если в компании используется Exchange, то можно задействовать Exchange Connector for SCSM. В настройках есть параметры, которые помогут реактивировать инцидент по ключевым словам в письме.

    Если же почта не на Exchange, то есть утилиты сторонние, которые по IMAP/POP3 бегают на почту, забирают письма, ну а дальше аналогичная схема: ключевые слова в письме, по ним обработка инцидентов, запросов и т.д.

    30 марта 2017 г. 10:04
  • Добрый день!

    Был бы благодарен, если бы Вы приложили скрин или описание как это делается - было бы здорово, т.к. я не понял как это настроить)

    Пошел сложным путем - два дня колдовства с powershell и родился скрипт, на основе которого я сделал MP. Пока работает.

    10 апреля 2017 г. 6:32
  • Решил проблему самостоятельно написав MP выполняющий PS скрипт
    • Помечено в качестве ответа Alexey Filimonov 30 июня 2017 г. 7:13
    30 июня 2017 г. 7:13
  • Добрый день.

    Расскажите как сделали? Тоже нужно по комменту чтобы реактивировался инцидент. Подписку сделал, а вот с самим переходом между статусами проблема...

    24 января 2018 г. 10:31
  • Как то так

    import-module 'C:\Program Files\Microsoft System Center 2012 R2\Service Manager\Powershell\System.Center.Service.Manager.psd1'
    $a = (Get-Date).AddDays(-2)
    $Active = Get-SCSMEnumeration IncidentStatusEnum.Active
    $b = $Active[0]
    $ParentWorkItemID = Get-SCSMClassInstance -Class (Get-SCSMClass -Name System.WorkItem.Incident) | Where {$_.CreatedDate -gt $a}
    $WorkItemClass = Get-SCSMClass -Name System.WorkItem.Incident
    foreach($ParentWorkItemID1 in $ParentWorkItemID)
    {
    $ItemID = $ParentWorkItemID1.'#Name'
    $WorkItemObject = Get-SCSMObject -Class $WorkItemClass -Filter "Id -eq $ItemID" 
    $InID = Get-SCSMIncident -ID $ParentWorkItemID1.Id
    $Com1 = $InID.AppliesToTroubleTicket | where {$_.ClassName -eq "System.WorkItem.TroubleTicket.UserCommentLog"}  | select $_.EnteredDate 
    $Com2 = $Com1.EnteredDate 
    $ResDate = Get-SCSMObject -Class $WorkItemClass -Filter "Id -eq $ItemID" | select $_.ID 
    $ResDate1 = $ResDate.ResolvedDate 
    if ($Com2 -gt $ResDate1)
        {
        Set-SCSMObject -SMObject $WorkItemObject -Property Status -Value $b
        }
    #else
    #    {
    #    Write-Output "No action needed", $InID
    #    }
    }

    24 января 2018 г. 15:03
  • Только убедительная рекомендация не использовать скрипт выше в продуктивной среде. В пятой строке происходит получение ВСЕХ инцидентов в системе и фильтрация уже внутри PowerShell, что очень и очень плохо с точки зрения производительности.

    Вообще использовать |Where (|?) c Get-SCSMClassInstance\Get-SCSMObject использовать можно только в случае крайней необходимости (я даже не могу придумать когда это правда надо). Необходимо использовать параметр -Filter

    Import-module 'C:\Program Files\Microsoft System Center 2012 R2\Service Manager\Powershell\System.Center.Service.Manager.psd1'
    $cl = Get-SCSMClass -Name "System.WorkItem.Incident"
    $date = (Get-Date).AddDays(-20).ToUniversalTime()
    $culture = New-Object CultureInfo("en-US")
    Get-SCSMClassInstance -Class $cl -Filter "CreatedDate -gt $($date.ToString($culture))"

    Вторая проблема, что в скрипте перемешаны командлеты: используются SMLets и "родные" командлеты


    itnetX AG
    Free end user portal for SCSM
    Personal email: freemanru (at) gmail (dot) com

    11 марта 2018 г. 21:27
    Модератор