Interesantes mejoras en la gestión de procesos y sesiones

Gestionar los procesos y las sesiones es esencial para optimizar y supervisar sus aplicaciones 4D. Puede manipular y recuperar fácilmente información crucial sobre estos elementos gracias a diferentes comandos.

Con 4D 20 R7, nos complace anunciar una serie de mejoras que hacen que estas funciones sean aún más accesibles y eficaces. Estas nuevas funcionalidades están diseñadas no sólo para simplificar su trabajo, sino también para aumentar el rendimiento de su código. Las mejoras incluyen:

  • La obtención de la información del proceso en un objeto para facilitar la manipulación de las propiedades,
  • Permitir el acceso directo a la información de sesión mediante un ID de sesión para facilitar la gestión,
  • Facilitar la obtención de un número de proceso directamente a partir de su ID,
  • Acceso a la fecha de creación de un proceso
  • Filtrado optimizado de los resultados devueltos por el comando Process activity para obtener todos los procesos de una sesión.

 

Descubra cómo estas actualizaciones pueden transformar su experiencia de desarrollo y mejorar la eficacia de sus aplicaciones.

HDI: Propiedades de procesos, propiedades de sesión y actividad de proceso en acción

Recuperar la información de un proceso o DE una sesión

Nuevo comando Process info

El nuevo comando Process info devuelve un objeto. La ventaja de esta sintaxis radica en su capacidad para recuperar la información en un objeto, lo que facilita su manejo frente al uso de múltiples variables. Por lo tanto, el comando _O_PROCESS PROPERTIES ha quedado obsoleto.

var $process : Object
$process :=Process info($processNumber)

El comando Process info devuelve una nueva propiedad, creationDateTime.. Esta propiedad permite saber cuándo se creó un proceso.

Ejemplo de salida:

{
    "number": 4,
    "name": "Proceso de solicitud",
    "sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "ID": 4,
    "visible": true,
    "type": -18,
    "state": 0,
    "creationDateTime": "2024-09-22T12:46:39.243Z",
    "preemptive": false,
    "systemID": "123145476132864",
    "cpuUsage": 0,
    "cpuTime": 0.006769
}

Por ejemplo, para saber si mi proceso es apropiativo:

var $preemptive : Boolean
$preemptive :=Process info($processNumber).preemptive

Nuevo comando Session info

El nuevo comando Session info le permite recuperar la información de una sesión utilizando su sessionID. Esta información ya podía obtenerse con el comando Actividad del proceso. La ventaja de este nuevo comando es que devuelve un objeto simple, ahorrando tiempo y rendimiento.

var $session : Object
$session :=Session info($sessionID)
$session :=Session info(Process info($processNumber).sessionID)

Ejemplo de salida:

{
    "ID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "userName": "Designer",
    "machineName": "Mi PC",
    "systemUserName": "John Doe",
    "IPAddress": "localhost",
    "hostType": "mac",
    "tipo": "remote",
    "state": "active",
    "creationDateTime": "2024-09-10T09:55:54Z",
    "persistentID": "8FFDAE519F1F4DCDB81E8E8DB00AD101"
}

Recuperar el número de proceso a partir del ID de proceso

El comando Process number ha sido actualizado. Ahora es posible pasar el ID del proceso para recuperar el número de proceso directamente, además del método anterior de utilizar el nombre del proceso.

var $processNumber : Integer
var $processName : Text
var $processID : Integer

// From process name
$processNumber :=Process number($processName)

// From process ID
$processNumber :=Process number($processID)

Mejoras para el comando Process activity

Filtrar procesos por sesión

El comando Process activity le permite recuperar la lista de procesos y sesiones. Si pasa la opción Processes only o Sessions only, recuperará la lista de procesos o la lista de sesiones. Ahora puede filtrar los resultados de forma más eficaz. Basta con pasar un identificador de sesión para obtener la lista de los procesos vinculados a la sesión.

He aquí las diferentes combinaciones posibles:

// return all sessions and processes
$o:=Process activity()

// return all processes
$o :=Process activity(Processes only)

// return all sessions
$o :=Process activity(Sessions only)

// return the session passed in parameter and all linked processes
$o :=Process activity($sessionID)

// return all processes linked to the session passed in parameter
$o :=Process activity($sessionID; Processes only)

// return the session passed in parameter
$o :=Process activity($sessionID; Sessions only)

Recuperar la fecha de creación de un proceso

La nueva propiedad, creationDateTime, también se ha añadido al objeto Process devuelto por el comando Process activity . Así, se puede recuperar fácilmente la fecha de creación de cualquier proceso.

Ejemplo de resultado:

{
"processes": [
          {
             "name": "Proceso de aplicación",
             "sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
             "number": 4,
             "ID": 4,
             "visible": true,
             "systemID": "123145476132864",
             "type": -18,
             "state": 0,
             "cpuUsage": 0,
             "cpuTime": 0.006769,
             "creationDateTime": "2024-09-22T12:46:39.324Z",
             "preemptive": false
           }
    ]
}

Más información

Si desea más información sobre estos interesantes cambios, consulte la documentación actualizada de estos comandos. Estamos impacientes por conocer su opinión, ¡únase a la conversación en nuestro foro!

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.