Skip to main content
Skip table of contents

Script d'interaction avec l'utilisateur

Un script d'interaction avec l'utilisateur permet de programmer une interaction avec le propriétaire du travail et de modifier le travail en fonction de la réponse de l'utilisateur. Plus précisément, il permet d'afficher une série de boîtes de dialogue avec des questions et des boutons d'action (OUI/NON, IMPRIMER/NON, OUI/NON/ANNULER). En fonction de la sélection de l'utilisateur, d'autres boîtes de dialogue peuvent être affichées et des actions peuvent être entreprises. Enfin, lorsque la dernière boîte de dialogue est traitée, le script est terminé et le travail est défini en tant que prêt et peut être libéré.

Si un script d'interaction avec l'utilisateur est présent, il doit d'abord être exécuté avec succès avant que la tâche puisse être libérée. Le travail est forcé dans le pause d'ici là.

Les fonctions PHP de base peuvent être utilisées, et presque toutes celles qui sont décrites dans la rubrique Référence pour les scripts de travail. Les deux seules méthodes qui ne sont pas prises en charge par la fonction sont les suivantes $this->job->setPrinted() et $this->job->pause(). Outre les classes, méthodes et propriétés communes, vous pouvez utiliser plusieurs fonctions supplémentaires pour communiquer avec l'application MyQ Desktop Client.

Comment écrire un script d'interaction avec l'utilisateur

Dans l'onglet MyQ Desktop Client d'une file d'attente, dans le champ Interaction avec l'utilisateur ajoutez le script dans le champ et cliquez sur Économiser.

Tout d'abord, vous devez définir l'élément main()Cette fonction décide si la boîte de dialogue doit être ouverte (dans quelles conditions) et quelle boîte de dialogue doit être affichée. Cette fonction décide si la boîte de dialogue doit être ouverte (dans quelles conditions) et quelle boîte de dialogue doit être affichée.

Vous pouvez ensuite définir des fonctions de réaction au clic en fonction de l'option sélectionnée : onYes(), onNo(), onPrint(), onCancel().

Les propriétés publiques sont conservées entre les appels. En fait, elles sont envoyées au client et renvoyées.

Structure du script

Voir le script suivant :

PHP
public $hasMoreThan10pages;
 
// script entry point
function main() {
    /** Job object */
    $job = $this->job;
    $this->hasMoreThan10pages = $job->pageCount > 10;
    // Show dialog if the job has more than 10 pages
    if ($this->hasMoreThan10pages === true) {
        $this->dialogYesNo("Job has more than 10 pages. Do you want to print in duplex?");
    }
}
 
// If yes clicked
function onYes() {
    // $this->hasMoreThan10pages is available also here
    $this->job->duplex = 'longEdge';
}
 
// If no clicked
function onNo() {
    // nothing. Job will be released.
}

En utilisant le script ci-dessus, cette boîte de dialogue s'affiche dans le MDC :

Si vous êtes familier avec le langage PHP, le script est en fait un corps de l'élément class UserScript {...} déclaration.

Vous pouvez définir des propriétés telles que Plus de 10 pages. Les propriétés sont persistantes entre plusieurs invocations de scripts pour le même travail. Utilisez-les pour stocker un état entre plusieurs dialogues.

Il y a le principal fonction. Elle est appelée une fois au démarrage du script. Utilisez-la pour afficher le premier dialogue.

Ensuite, il y a les onXXX fonctions. Il s'agit du gestionnaire d'action appelé lorsqu'un XXX est enfoncée. Par exemple, la touche Oui est géré par la fonction onOui fonction.

Si vous n'affichez aucune boîte de dialogue, le script est terminé.

Référence API

Voir Référence pour les scripts de travail sur la manière de modifier le travail et sur de nombreuses autres opérations que vous pouvez effectuer.

Le script d'interaction avec l'utilisateur s'exécute dans le contexte de l'application Utilisateur classe. Le travail envoyé est accessible sous la forme suivante $this->job.

Les objets de toutes les classes, à l'exception de la classe Session, sont accessibles par l'intermédiaire de l'objet job, par exemple l'objet propriétaire $this->job->owner. Les objets de la Session est accessible par l'intermédiaire de la classe MonQ() une caractéristique globale ; par exemple : MyQ()->logInfo("Ce message apparaît dans le journal MyQ.") ;.


Classe UserScript

Le script d'interaction avec l'utilisateur est le corps du UserScript comme décrit ci-dessus. MyQ fournit également plusieurs méthodes intégrées de la classe Utilisateur en plus de vos propres méthodes.

Méthodes de création de dialogues

Fonction

Description

vide dialogYesNo(chaîne $text)

Crée une boîte de dialogue avec l'élément texte comme le contenu et les boutons Oui, Non.

vide dialogPrintNo(chaîne $text)

Crée une boîte de dialogue avec l'élément texte comme les boutons Contenu et Imprimer, Non.

vide dialogYesNoCancel(chaîne $text)

Crée une boîte de dialogue avec l'élément texte comme le contenu et les boutons Oui, Non et Annuler.

vide dialogue(string $text, Field[] $fields)

Crée une boîte de dialogue avec l'élément Texte comme contenu et un tableau de champs personnalisés. Un champ peut être un bouton ou tout autre type de champ, comme une liste, par exemple. Les boutons sont toujours affichés sous les autres champs.

Bouton de champ bouton(chaîne $title, chaîne $id)

Crée un bouton personnalisé qui peut être utilisé dans l'application dialogue() fonction. $title est un texte affiché sur le bouton. Le bouton $id est utilisé lors de l'exécution du gestionnaire de bouton. MyQ recherche un onXXXXXX est le $id

Liste des champs singleSelectList(chaîne $name, tableau $items)

Crée une liste d'options parmi lesquelles l'utilisateur ne peut en choisir qu'une seule (groupe radio). Il peut être utilisé dans le dialogue() fonction. La fonction $items est un tableau associatif dont la clé est la référence d'un élément et la valeur est le nom d'affichage de l'élément visible dans l'interface utilisateur.

FieldMultiSelectList multiSelectList(chaîne $name, tableau $items)

Crée une liste d'options dans laquelle l'utilisateur peut choisir plusieurs options (cases à cocher). Elle peut être utilisée dans le dialogue() fonction. La fonction $items est un tableau associatif dont la clé est la référence d'un élément et la valeur est le nom d'affichage de l'élément visible dans l'interface utilisateur.

Méthode onCancel

onCancel gère le bouton Annuler et est fourni par défaut. Il appelle terminer(). Vous pouvez fournir votre propre implémentation pour modifier le comportement.

Autres méthodes

Fonction

Description

vide résilier()

Termine le traitement du script. Le script n'a pas été exécuté avec succès et le travail reste dans la section pause état. L'utilisateur doit à nouveau exécuter le script.

mixte getField(chaîne $name)

Obtient la valeur du champ avec l'attribut Nom après que l'utilisateur a interagi avec le dialogue. Le champ doit avoir été créé par les méthodes singleSelectList (le résultat est une valeur scalaire) ou multiSelectList (le résultat est un tableau de valeurs, qui peut être un tableau vide).

JavaScript errors detected

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

If this problem persists, please contact our support.