Artículo
· 25 ago, 2023 Lectura de 1 min

Cómo obtener la lista de procesos de manera programática

Preguntas frecuentes de InterSystems

Se puede obtener mediante la consulta AllFields de la clase %SYS.ProcessQuery.

Para más detalles, consultad el documento Process (Job)【IRIS】Process (Job).

Un ejemplo de ejecución en el terminal es el siguiente:

USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st   // you can call %Execute() when st = 1
1
USER>set rset=stmt.%Execute()
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.%Get("State"),"-",rset.%Get("UserName"),!}

Por ejemplo, lo mismo que un método.

ClassMethod ShowJob()
{
 set stmt=##class(%SQL.Statement).%New()
 set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
 set rset=stmt.%Execute()
 while rset.%Next() {
   write rset.%Get("JobNumber"),$Char(9)
   write rset.%Get("Pid"),$Char(9)
   write rset.%Get("OSUserName"),$Char(9)
   write rset.%Get("CurrentDevice"),$Char(9)
   write rset.%Get("Routine"),$Char(9)
   write rset.%Get("State"),$Char(9)
   write rset.%Get("UserName"),!
 }
}
Comentarios (0)1
Inicie sesión o regístrese para continuar