Rubica InterSystems FAQ
Use a consulta ErrorList da classe SYS.ApplicationError.
- Nota 1: Rode no namespace %SYS.
- Nota 2: Essa é uma utilidade não armazenada, então usamos a classe %ResultSet ao invés de %SQL.Statement.
Um exemplo de execução de comando é o seguinte:
USER>set $namespace="%SYS" // igual a zn "%SYS"
%SYS>set rset=##class(%ResultSet).%New()
%SYS>set rset.ClassName="SYS.ApplicationError"
%SYS>set rset.QueryName="ErrorList"
// O primeiro argumento da consulta é o nome do namespace, o segundo é a data (no formato MM/DD/AAAA).
%SYS>do rset.Execute("USER","08/17/2020")
// Para exibir os resultados na tela, execute o método %Display().
%SYS>do rset.%Display()
Error # Error message Time Process DisplayPID Username Code line
1 <DIVIDE> 02:43:10 2536 2536 irisowner
1 Rows(s) Affected
%SYS>do rset.Close()
A seguir, como retornar valores de coluna de um SELECT enquanto navega por entre as linhas.
Para mover para a próxima linha, use o método Next() (que retorna 1 se a próxima linha existe)
Para buscar uma coluna, use Get("nome da coluna"). Para detalhes nos nomes das colunas, veja a descrição da consulta ErrorList na documentação da classe.
Sobre nomes de colunas de consultas ErrorList.
%SYS>do rset.Execute("USER","08/17/2020")
%SYS>while rset.Next() { write rset.Get("Error #"),"-",rset.Get("Error message"),"-",rset.Get("Time"),"-",rset.Get("Code line"),!}
1-<DIVIDE>-02:43:10-
Para visualização do terminal, use também a rotina ^%ER.
Execute o seguinte quando estiver no namespace que quiser referenciar (o exemplo é executado no namespace USER).
O texto verde em negrito sublinhado indica a área de entrada.
USER>do ^%ER
For Date: ?L
Thu 09/17/2020 (T) 2 Errors
Mon 09/07/2020 (T-10) 3 Errors
Mon 08/31/2020 (T-17) 1 Error
Mon 08/24/2020 (T-24) 1 Error
For Date: 09/17/2020 17 Sep 2020 2 Errors
Error: ?L
1. " *a" at 9:05 am. $I=|TRM|:|13484 ($X=0 $Y=15)
$J=13484 $ZA=0 $ZB=$c(13) $ZS=262144 ($S=268271680)
2. "^%ETN" at 9:05 am. $I=|TRM|:|13484 ($X=0 $Y=17)
$J=13484 $ZA=0 $ZB=$c(13) $ZS=262144 ($S=268263368)
%ETN ;%STACK-related error log
Error: 1
1. " *a" at 9:05 am. $I=|TRM|:|13484 ($X=0 $Y=15)
$J=13484 $ZA=0 $ZB=$c(13) $ZS=262144 ($S=268271680)
Variable:
Error:
For Date:
USER>
For Date: especifique a data quando o erro ocorreu em formato mm/dd/aaaa.
For Error: especifique o número do erro.
Quando tiver terminado, aperte Enter para sair.