Artigo
· 19 hr atrás 3min de leitura

Como buscar erros de aplicação (^ERRORS) usando um comando

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. 

Discussão (0)1
Entre ou crie uma conta para continuar