Artículo
· 15 jul, 2022 Lectura de 5 min

Cómo acceder a la información del dashboard del sistema del Portal de Administración y mostrar los datos de la tabla caché en la página web con la ayuda de Python Embebido

¡Hola Comunidad!

En este artículo voy a explicar cómo acceder a la información y a las tablas del dashboard (cuadro de mando) del sistema del Portal de Administración mediante el uso de Python Embebido.

Cómo acceder al dashboard del sistema del Portal de Administración

Estos son los pasos para acceder a la información del dashboard del sistema:

  • Paso 1: cambiar el namespace a %SYS
  • Paso 2: importar el módulo iris python y crear una instancia de la clase "SYS.Stats.Dashboard"
  • Paso 3: acceder a las propiedades de la clase instanciada

¡Empezamos!

Paso 1: Cambiar el namespace a %SYS

Para obtener la información del dashboard del sistema, debemos acceder a la clase "SYS.Stats.Dashboard" desde el namespace %SYS.
Si no está en el namespace %SYS, entonces tenemos que cambiar el namespace.

Crea la clase Embedded.Utils para obtener o establecer el namespace:

///Esta clase se usará para obtener o establecer el espacio de nombres
Class Embedded.Utils
{
//Obtener espacio de nombres
ClassMethod GetNameSpace() As %Status
{

    Return $namespace
}
//Establecer espacio de nombres
ClassMethod SetNameSpace(pNameSpace) As %Status
{
    zn pNameSpace
    Return $namespace
}

}

Desde el código de Python, escribe el siguiente script para cambiar el namespace:

#Importar biblioteca de iris
import iris

#Establezca Namespoace en %SYS si el espacio de nombres actual no es %SYS
if iris.cls("Embedded.Utils").GetNameSpace() !=  "%SYS":
        iris.cls("Embedded.Utils").SetNameSpace("%SYS")

Paso 2: Importar el módulo iris python y crear una instancia

Ahora podemos acceder a las propiedades de "SYS.Stats.Dashboard" llamando al método de clase 'Sample':

​
#Importar biblioteca de iris
import iris

#Establecer Namespoace en %SYS si el espacio de nombres actual no es %SYS
if iris.cls("Embedded.Utils").GetNameSpace() !=  "%SYS":
        iris.cls("Embedded.Utils").SetNameSpace("%SYS")

#Se puede crear una instancia de una clase llamando al método de clase 'Muestra', y luego se puede acceder al valor actual de cada propiedad.
ref = iris.cls("SYS.Stats.Dashboard").Sample()

Paso 3: Acceder a las propiedades de la clase instanciada

Esta clase contiene las siguientes propiedades, a las que se puede acceder mediante el siguiente código:

​#Importar biblioteca de iris
import iris

#Establezca Namespoace en %SYS si el espacio de nombres actual no es %SYS
if iris.cls("Embedded.Utils").GetNameSpace() !=  "%SYS":
        iris.cls("Embedded.Utils").SetNameSpace("%SYS")

#Se puede crear una instancia de una clase llamando al método de clase 'Muestra', y luego se puede acceder al valor actual de cada propiedad.
ref = iris.cls("SYS.Stats.Dashboard").Sample()

#Mostrar errores de aplicación
print(ref.ApplicationErrors)
#mostrar sesiones de CSP
print(ref.CSPSessions)

Para obtener más detalles, consulta la aplicación iris-python-apps en Open Exchange


Mostar los datos de la tabla Caché en una página web con la ayuda de jquery datatable

Estos son los pasos para mostrar la tabla Security.Users en una página web

  • Paso 1: Cambiar el namespace a %SYS
  • Paso 2: Importar el módulo iris python y usar la función iris.sql.exec() para ejecutar una sentencia SQL SELECT para obtener un resultset
  • Paso 3: Obtener el dataframe llamando a la función resultset dataframe
  • Paso 4: Obtener datos JSON de encabezado y columnas del dataframe y pasarlos a la web
  • Paso 5: Mostrar datos en jquery datatable

¡Empezamos!

Paso 1: Cambiar el namespace a %SYS

La misma clase Embedded.Utils anterior se puede usar para obtener o establecer el namespace

#Importar biblioteca de iris
import iris

#Establezca Namespoace en %SYS si el espacio de nombres actual no es %SYS
if iris.cls("Embedded.Utils").GetNameSpace() !=  "%SYS":
        iris.cls("Embedded.Utils").SetNameSpace("%SYS")

Paso 2: Importar el módulo iris python y usar la función iris.sql.exec() para ejecutar una sentencia SQL SELECT para obtener un resultset

Después de importar el módulo iris, usaremos iris.sql.exec() para ejecutar una sentencia SQL SELECT y obtener un resultset

import iris

statement =  '''SELECT 
ID, AccountNeverExpires, AutheEnabled, ChangePassword, CreateDateTime AS DateCreated, Enabled, ExpirationDate, Flags, Name
FROM Security.Users'''
#Llamar a la clase python incrustada iris.sql.exec para obtener el conjunto de resultados
resultSet = iris.sql.exec(mySql)

Paso 3: Obtener el dataframe llamando a la función resultset dataframe

 #Obtenga el marco de datos llamando a la función de marco de datos del conjunto de resultados
 dataframe = statement.dataframe()

Paso 4: Obtener datos JSON de encabezado y columnas del dataframe y pasarlos a la web

 #Convierta y envíe datos a Json utilizando el método de marco de datos to_json y la función de carga json
 my_data=json.loads(dataframe.to_json(orient="split"))["data"]
 #Obtener detalles de las columnas
 my_cols=[{"title": str(col)} for col in json.loads(df.to_json(orient="split"))["columns"]]  
 #renderice html pasando las variables my_data y my_cols que se utilizarán para generar la tabla de datos
 return render_template('tablesdata.html',  my_data = my_data, my_cols = my_cols) 

Paso 5: Mostrar datos en jquery datatable

Definir la tabla con id "myTable" y usar javascript para completar los datos de encabezado y columnas pasados

  <table id="myTable" class="table table-bordered table-striped">
   </table>
  <script>
$(document).ready(function() {
      // analizar los datos a la variable local pasada desde el archivo app.py
      let my_data = JSON.parse('{{ my_data | tojson }}');
      let my_cols = JSON.parse('{{ my_cols | tojson }}');

      $('#myTable').DataTable( {
          "data": my_data,
          "columns": my_cols,"} );
     } );

Eso es todo. Para obtener más detalles, consulta la aplicación iris-python-apps en Open Exchange.

Comentarios (1)1
Inicie sesión o regístrese para continuar