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 :
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 |
vide dialogPrintNo(chaîne $text) | Crée une boîte de dialogue avec l'élément |
vide dialogYesNoCancel(chaîne $text) | Crée une boîte de dialogue avec l'élément |
vide dialogue(string $text, Field[] $fields) | Crée une boîte de dialogue avec l'élément |
Bouton de champ bouton(chaîne $title, chaîne $id) | Crée un bouton personnalisé qui peut être utilisé dans l'application |
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 |
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 |
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 |
mixte getField(chaîne $name) | Obtient la valeur du champ avec l'attribut |