#powershell #servicenow
Вопрос:
Я получил ответ от api сервиса now
enter code here
$geturl = $ParentURL "/table/sc_req_item?
sysparm_query=number=» $RITMNumber «amp;sysparm_display_value=allamp;sysparm_fields=number,short_description,requested_for.first_name,requested_for.last_name,requested_for.user_name»
number : @{display_value=RITM2519394; value=RITMXXXX}
short_description : @{display_value=Login As ABC xyz on 19 Feb. Creating ticket for tracking purposes.; value=Login As ABC xyz on 19 Feb. Creating ticket for tracking purposes.}
requested_for.first_name : @{display_value=abc; value=abc}
requested_for.user_name : @{display_value=Exxxx; value=Exxxx}
requested_for.last_name : @{display_value=xyz; value=xyz}
Я могу отобразить краткое описание, используя $ShortDescription = $($response.result.short_description.value)
Войдите в систему как ABC xyz 19 февраля. Создание билета для целей отслеживания.
Но когда я пытаюсь получить запрошенные имя и фамилию, я получаю пустое
$RequestFor = $($response.result.requested_for.first_name)
не могли бы вы, пожалуйста, помочь мне разобраться
Комментарии:
1. В PowerShell есть список зарезервированных переменных, символов (точка-одна из них) и т. Д., И если что-либо, что вы используете, содержит их, вы должны их экранировать или правильно процитировать, ввести их в строку. Лишние точки, пробелы и т. Д.-Это просто проблемы, вызванные самим собой, которых следует полностью избегать.
2. Просто процитируйте его:
$response.result."requested_for.first_name"
. (Если идентификатор также содержит кавычки, их можно экранировать:"escaped `"quote"
. И чтобы избежать обратной связи, конечно, используйте другую:"this is a ```"bad idea`""
.