Skripting der Benutzerinteraktion
Ein Skript zur Benutzerinteraktion ermöglicht die Programmierung einer Interaktion mit dem Auftragseigentümer und die Änderung des Auftrags auf der Grundlage der Antworten des Benutzers. Insbesondere ermöglicht es die Anzeige einer Reihe von UI-Dialogen mit Fragen und Aktionsschaltflächen (JA/NEIN, DRUCKEN/NEIN, JA/NEIN/ABBRECHEN). Je nach Auswahl des Benutzers können weitere Dialoge angezeigt und Aktionen ausgeführt werden. Wenn der letzte Dialog abgearbeitet ist, ist das Skript beendet und der Auftrag wird als bereit
und kann freigelassen werden.
Wenn ein User Interaction Script vorhanden ist, muss es zuerst erfolgreich ausgeführt werden, bevor der Job freigegeben werden kann. Der Job wird in der Pause
Zustand bis dahin.
Die grundlegenden PHP-Funktionen können verwendet werden, und fast alle, die in Job-Skripting-Referenz. Die einzigen beiden Methoden, die von der Funktion nicht unterstützt werden, sind $this->job->setPrinted()
und $this->job->pause()
. Neben den allgemeinen Klassen, Methoden und Eigenschaften können Sie mehrere zusätzliche Funktionen für die Kommunikation mit der MyQ Desktop Client-Anwendung verwenden.
Wie man ein Skript zur Benutzerinteraktion schreibt
Auf der Registerkarte MyQ Desktop Client einer Warteschlange, in der Interaktion mit dem Benutzer Abschnitt, fügen Sie das Skript in das Feld ein, und klicken Sie auf Speichern Sie.
Zunächst müssen Sie die main()
. Funktion. Diese Funktion entscheidet, ob das Dialogfeld geöffnet werden soll (unter welchen Bedingungen) und welches Dialogfeld angezeigt werden soll.
Dann können Sie On-Click-Funktionen mit Reaktionen auf die ausgewählte Option definieren: onYes(), onNo(), onPrint(), onCancel()
.
Öffentliche Eigenschaften werden zwischen den Aufrufen beibehalten. Tatsächlich werden sie an den Client und zurück gesendet.
Struktur des Skripts
Siehe das folgende Skript:
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.
}
Mit dem obigen Skript wird dieses Dialogfeld in MDC angezeigt:
Wenn Sie mit der PHP-Sprache vertraut sind, ist das Skript eigentlich ein Körper der Klasse UserScript {...}
Erklärung.
Sie können Eigenschaften definieren wie $hatmehrals10Seiten
. Eigenschaften sind über mehrere Skriptaufrufe für denselben Auftrag hinweg beständig. Verwenden Sie sie, um einen Zustand zwischen mehreren Dialogen zu speichern.
Es gibt die Haupt
Funktion. Sie wird einmal beim Start des Skripts aufgerufen. Verwenden Sie sie, um den ersten Dialog anzuzeigen.
Dann gibt es noch die onXXX
Funktionen. Sie sind die Aktionshandler, die aufgerufen werden, wenn ein XXX
Taste gedrückt wird. Zum Beispiel kann die Ja
wird über die Schaltfläche onYes
Funktion.
Wenn Sie keinen Dialog anzeigen, ist das Skript beendet.
API-Referenz
Siehe Job-Skripting-Referenz wie Sie den Auftrag ändern können und auch für viele andere Vorgänge, die Sie durchführen können.
Das Skript für die Benutzerinteraktion läuft im Kontext der Benutzer Klasse. Der gesendete Auftrag kann aufgerufen werden als $this->job
.
Auf Objekte aller Klassen, mit Ausnahme der Klasse Session, kann über das Job-Objekt zugegriffen werden, z.B. das Eigentümer $this->job->Besitzer
. Objekte aus dem Sitzung Klasse kann über die MyQ()
globales Merkmal; zum Beispiel: MyQ()->logInfo("Diese Meldung erscheint im MyQ-Protokoll.");
.
UserScript-Klasse
Das User Interaction Script ist der Hauptteil der UserScript
Klasse wie oben beschrieben. MyQ bietet auch mehrere eingebaute Methoden der Klasse Benutzer Klasse zusätzlich zu Ihren eigenen Methoden.
Methoden der Dialogerstellung
Funktion | Beschreibung |
---|---|
ungültig dialogYesNo(string $text) | Erzeugt einen Dialog mit dem |
ungültig dialogPrintNo(string $text) | Erzeugt einen Dialog mit dem |
ungültig dialogYesNoCancel(string $text) | Erzeugt einen Dialog mit dem |
void Dialog(string $text, Feld[] $fields) | Erzeugt einen Dialog mit dem |
FeldButton Taste(string $title, string $id) | Erzeugt eine benutzerdefinierte Schaltfläche, die in der |
FeldListe singleSelectList(string $name, array $items) | Erzeugt eine Liste von Optionen, aus der der Benutzer nur eine auswählen kann (Optionsgruppe). Sie kann in der |
FeldMultiSelectList multiSelectList(string $name, array $items) | Erzeugt eine Liste von Optionen, aus der der Benutzer mehrere auswählen kann (Kontrollkästchen). Sie kann in der |
onCancel-Methode
onCancel
behandelt die Schaltfläche Abbrechen und wird standardmäßig bereitgestellt. Sie ruft terminate()
. Sie können Ihre eigene Implementierung bereitstellen, um das Verhalten zu ändern.
Andere Methoden
Funktion | Beschreibung |
---|---|
ungültig beenden Sie() | Beendet die Skriptverarbeitung. Das Skript wurde nicht erfolgreich ausgeführt und der Auftrag bleibt in der |
gemischt getField(string $name) | Ermittelt den Wert des Feldes mit der Bezeichnung |