Я запускаю следующую команду для обработки базы данных / и ее разделов.
Invoke-ASCmd –InputFile $file -Server $Server >$output
из вывода, если есть ошибка, вот что отображается:
<return xmlns="urn:schemas-microsoft-com:xml-analysis"><root xmlns="urn:schemas-microsoft-com:xml-analysis:empty"><Excep
tion xmlns="urn:schemas-microsoft-com:xml-analysis:exception" /><Messages xmlns="urn:schemas-microsoft-com:xml-analysis:
exception"><Error ErrorCode="-1055653884" Description="Either the dimension with the ID of '0f585685' does not exist in the database with the ID of '', or the u
ser does not have permissions to access the object." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" />
</Messages></root></return>
могу ли я извлечь часть description
, так как она наиболее полезна?
Я хочу извлечь его, чтобы в нем содержались содержательные сообщения электронной почты с ошибками, которые можно было бы понять сразу, без необходимости поиска по всему другому XML-беспорядку
$Email_Body = Get-Content -Path $output | Out-String
По сути, электронная почта будет иметь:
Либо измерение с идентификатором '0f585685' не существует в базе данных с идентификатором '', либо у пользователя нет прав доступа к объекту.
также некоторые выходы иногда содержат несколько ошибок / описаний.
как бы я справился с этим?
например:
<return xmlns="urn:schemas-microsoft-com:xml-analysis"><root xmlns="urn:schemas-microsoft-com:xml-analysis:empty"><Exception xmlns="urn:schemas-microsoft-com:xml-analysis:exception" /><Messages xmlns="urn:schemas-microsoft-com:xml-analysis:exception"><Error ErrorCode="-1055784933" Description="[Teradata Database] [8017] The UserId, Password or Account is invalid.. The exception was raised by the IDbConnection interface." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" /><Error ErrorCode="-1055784860" Description="A connection could not be made to the data source with the DataSourceID of '', Name of 'Teradata '." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" /></Messages></root></return>
все описания могут быть сохранены как часть $Email_body
и отправлены?поэтому в этом случае это будет:
[База данных Teradata] [8017] Недопустимый идентификатор пользователя, пароль или учетная запись. Исключение было вызвано интерфейсом IDbConnection.
Не удалось установить соединение с источником данных с DataSourceID, равным '', с именем 'Teradata'.