Skip to main content
Skip table of contents

Scripts de interacción con el usuario

Un Script de Interacción con el Usuario permite programar una interacción con el propietario del trabajo y modificar el trabajo en función de la respuesta del usuario. En concreto, permite mostrar una serie de cuadros de diálogo de interfaz de usuario con preguntas y botones de acción (SÍ/NO, IMPRIMIR/NO, SÍ/NO/CANCELAR). Dependiendo de la selección del usuario, se pueden mostrar más cuadros de diálogo y se pueden realizar acciones. Finalmente, cuando se procesa el último diálogo, el script finaliza y el trabajo se establece como listo y puede ser liberado.

Si hay un script de interacción con el usuario, primero debe ejecutarse correctamente antes de poder liberar el trabajo. El trabajo se fuerza en el pausa estado hasta entonces.

Se pueden utilizar funciones básicas de PHP, y casi todas las descritas en Referencia de secuencias de comandos de trabajo. Los dos únicos métodos que no admite la función son $this->job->setPrinted() y $this->job->pause(). Aparte de las clases, métodos y propiedades comunes, puede utilizar varias funciones adicionales para comunicarse con la aplicación MyQ Desktop Client.

Cómo escribir un guión de interacción con el usuario

En la pestaña MyQ Desktop Client de una cola, en la sección Interacción con el usuario añada la secuencia de comandos en el campo y haga clic en Guardar.

En primer lugar, hay que definir el main(). Esta función decide si el cuadro de diálogo debe abrirse (en qué condiciones) y qué cuadro de diálogo debe mostrarse.

A continuación, puede definir funciones al hacer clic con reacciones a la opción seleccionada: onSí(), onNo(), onImprimir(), onCancelar().

Las propiedades públicas se mantienen entre llamadas. De hecho, se envían al cliente y viceversa.

Estructura del guión

Consulte la siguiente secuencia de comandos:

PHP
$body

Utilizando el script anterior, este diálogo se muestra en MDC:

image-20250311-104101.png

Si está familiarizado con el lenguaje PHP, el script es en realidad un cuerpo del archivo clase UserScript {...} declaración.

Puede definir propiedades como $hasMoreThan10pages. Las propiedades son persistentes entre múltiples invocaciones de script para el mismo trabajo. Utilícelas para almacenar un estado entre múltiples diálogos.

Existe la principal función. Se llama una vez cuando se inicia el script. Úsala para mostrar el primer diálogo.

Luego están los onXXX funciones. Son el manejador de acciones que se llama cuando se produce un XXX está pulsado. Por ejemplo, el botón se gestiona mediante el botón onSí función.

Si no muestra ningún diálogo, el script ha finalizado.

Referencia API

Véase Referencia de secuencias de comandos de trabajo sobre cómo modificar el trabajo y también para muchas otras operaciones que puedes realizar.

El script de interacción con el usuario se ejecuta en el contexto de la aplicación Usuario clase. Se puede acceder al trabajo enviado como $this->empleo.

Se puede acceder a los objetos de todas las clases, excepto a la clase Session, a través del objeto job, por ejemplo el objeto propietario $this->job->propietario. Objetos de la Sesión se puede acceder a través de la clase MyQ() característica global; por ejemplo: MyQ()->logInfo("Este mensaje aparece en el registro de MyQ");.


Clase UserScript

El Guión de Interacción con el Usuario es el cuerpo del UserScript como se ha descrito anteriormente. MyQ también proporciona varios métodos incorporados de la clase Usuario además de sus propios métodos.

Métodos de creación de diálogos

Función

Descripción

void diálogoSíNo(cadena $texto)

Crea un diálogo con la $texto como el contenido y los botones Sí, No.

void dialogPrintNo(cadena $texto)

Crea un diálogo con la $texto como los botones Contenido e Imprimir, No.

void dialogYesNoCancel(cadena $texto)

Crea un diálogo con la $texto como el contenido y los botones Sí, No y Cancelar.

void diálogo(cadena $texto, campo[] $campos)

Crea un diálogo con la $texto como contenido y un array de campos personalizados. Un campo puede ser un botón o cualquier otro tipo de campo, como una lista, por ejemplo. Los botones siempre se muestran debajo de otros campos.

Botón de campo botón(cadena $título, cadena $id)

Crea un botón personalizado que se puede utilizar en la función diálogo() función. $título es un texto que aparece en el botón. El botón $id se utiliza cuando se ejecuta el manejador del botón. MyQ busca un onXXX manejador donde XXX es el $id

Lista de campos singleSelectList(cadena $nombre, matriz $elementos)

Crea una lista de opciones de las que el usuario sólo puede elegir una (grupo de radio). Puede utilizarse en el diálogo() función. En $artículos es una matriz asociativa en la que la clave es la referencia de un elemento y el valor es el nombre del elemento visible en la interfaz de usuario.

FieldMultiSelectList multiSelectList(cadena $nombre, matriz $elementos)

Crea una lista de opciones de las que el usuario puede elegir varias (casillas de verificación). Puede utilizarse en el diálogo() función. En $artículos es una matriz asociativa en la que la clave es la referencia de un elemento y el valor es el nombre del elemento visible en la interfaz de usuario.

Método onCancel

onCancel maneja el botón Cancelar y se proporciona por defecto. Llama a terminar(). Usted puede proporcionar su propia implementación para cambiar el comportamiento.

Otros métodos

Función

Descripción

void terminar()

Finaliza el procesamiento del script. El script no se ha ejecutado correctamente y el trabajo permanece en la carpeta pausa estado. El usuario debe ejecutar de nuevo el script.

mixto getField(cadena $nombre)

Obtiene el valor del campo con el $nombre después de que el usuario haya interactuado con el diálogo. El campo debe haber sido creado por los métodos singleSelectList (el resultado es un valor escalar) o multiSelectList (el resultado es una matriz de valores, que puede ser una matriz vacía).

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.