none
настройка запроса на обслуживание RRS feed

  • Вопрос

  • Добрый день коллеги!!


    возможно ли привести  отображение  в читабельный вид блока Ввод данных пользователем в консоли, данные вводятся путем выбора, в предложении запроса у них тип приглашения "результаты запроса", в настройке приглашения привязаны к классу географическое расположение и программы  (см. скрин) данные вводятся с портала

    23 января 2013 г. 7:36

Ответы

  • Антон, спасибо.

    Думаю, код ниже будет финальным ответом по данной теме.

    Import-Module SMLets
    $ServiceRequestID = "SR2735"
    $ServiceRequest = Get-SCSMObject -Class (Get-SCSMClass -Name System.WorkItem.ServiceRequest$) -Filter "ID -eq $ServiceRequestID"
    $GetInput = [xml] $ServiceRequest.UserInput
    [xml] $GetValuesRW = $GetInput.UserInputs.UserInput | Where-Object {$_.Question -eq "Филиал"} | %{$_.Answer}
    $GetUserNameRW = $GetValuesRW.Values.Value | %{$_.DisplayName}
    #Строка для отладки#$GetUserNameRW
    [xml] $GetValuesR = $GetInput.UserInputs.UserInput | Where-Object {$_.Question -eq "Информационные ресурсы"} | %{$_.Answer}
    $GetUserNameR = $GetValuesR.Values.Value | %{$_.DisplayName}
    $GetUserNameR = $GetUserNameR -join '; '
    #Строка для отладки#$GetUserNameR
    #Форматируем поле Описание по своему вкусу с использованием полученных значений
    $ServiceRequest | Set-SCSMObject -Property Description -Value "$GetUserNameRW --- $GetUserNameR"

    Прошу прощения, имена переменных остались из моего личного скрипта :).
    • Предложено в качестве ответа Dismantled 14 марта 2013 г. 18:54
    • Изменено Dismantled 14 марта 2013 г. 18:55
    • Помечено в качестве ответа _CoopeR_ 15 марта 2013 г. 5:23
    14 марта 2013 г. 18:53

Все ответы

  • Просто - нет, нельзя. Но все эти объекты у вас добавлены как связанные, поэтому их можно посмотреть в соответствующих полях формы.


    SCSMSolutions
    email: freemanru (at) gmail (dot) com


    23 января 2013 г. 8:35
    Модератор
  • а не просто есть варианты? в связанных есть но и тут есть желание очеловечить
    • Изменено _CoopeR_ 23 января 2013 г. 8:39
    23 января 2013 г. 8:38
  • Не просто - написать свой контрол и добавит ьна форму вместо этого )


    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    23 января 2013 г. 8:42
    Модератор
  • В продолжение темы. На сколько я понял, значения ячеек столбцов "Вопрос" и "Значение" в явном, "чистом" виде не хранятся нигде и формируются только из ХМЛ? Get-SCSMRelationshipObject помогает нам получить только значения из "Value". Значений столбца "Вопрос" с помощью Relationships определить не получилось (как впрочем и столбца "Занчение" в "чистом" ХМЛ-виде). Напрмер тут http://contoso.se/blog/?p=3121 - на последней картинке видно явный кусок исходного XML, вставленного из $Request.Userinput (или $Request.Values|fl) вставленного в Description.

    Попробую бъяснить для чего это нужно.

    Например нам нужно задать в запрос два списка пользователей. Часть с правами на чтение какого-то ресурса, а часть на запись. Соответственно получаем две группы по столбцу "Вопрос" - "Чтение" "Запись". Выбранные пользователи попадают в соответствующие ячейки "Значение". Визуально, в табличке, всё получается правильно. Но для системы все эти пользователи в итоге оказываются под одним RelationshipID, т. к. попатают в один список Related (Affected) Configuration Items. Как потом выловить - кто из них "чтение", а кто "запись"? В общем, я может быть опять полохо искал :), но связи между "Вопрос" и "Значение" в явном виде не нашёл.

    В общем-то можно опять же разобрать ХМЛ, но мы не ищем лёгких путей :).


    • Изменено Dismantled 14 марта 2013 г. 11:41
    14 марта 2013 г. 11:40
  • В этом случае да, вам нужно анализировать значение UserInput. Ну или делать кастомные отношения.


    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    14 марта 2013 г. 13:41
    Модератор
  • Антон, спасибо.

    Думаю, код ниже будет финальным ответом по данной теме.

    Import-Module SMLets
    $ServiceRequestID = "SR2735"
    $ServiceRequest = Get-SCSMObject -Class (Get-SCSMClass -Name System.WorkItem.ServiceRequest$) -Filter "ID -eq $ServiceRequestID"
    $GetInput = [xml] $ServiceRequest.UserInput
    [xml] $GetValuesRW = $GetInput.UserInputs.UserInput | Where-Object {$_.Question -eq "Филиал"} | %{$_.Answer}
    $GetUserNameRW = $GetValuesRW.Values.Value | %{$_.DisplayName}
    #Строка для отладки#$GetUserNameRW
    [xml] $GetValuesR = $GetInput.UserInputs.UserInput | Where-Object {$_.Question -eq "Информационные ресурсы"} | %{$_.Answer}
    $GetUserNameR = $GetValuesR.Values.Value | %{$_.DisplayName}
    $GetUserNameR = $GetUserNameR -join '; '
    #Строка для отладки#$GetUserNameR
    #Форматируем поле Описание по своему вкусу с использованием полученных значений
    $ServiceRequest | Set-SCSMObject -Property Description -Value "$GetUserNameRW --- $GetUserNameR"

    Прошу прощения, имена переменных остались из моего личного скрипта :).
    • Предложено в качестве ответа Dismantled 14 марта 2013 г. 18:54
    • Изменено Dismantled 14 марта 2013 г. 18:55
    • Помечено в качестве ответа _CoopeR_ 15 марта 2013 г. 5:23
    14 марта 2013 г. 18:53