我运行以下命令来处理数据库/分区。
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
基本上,电子邮件将具有:
ID为“ 0f585685”的维度都不存在 在ID为''的数据库中,或者用户没有 权限来访问对象。
还有一些输出有时包含多个错误/描述。
我将如何处理?
例如:
<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]用户ID,密码或帐户为 无效。IDbConnection接口引发了异常。
使用以下命令无法建立与数据源的连接 的DataSourceID为“”,名称为“ Teradata”。