Skip to main content
Skip table of contents

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:

CODE
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 $Text als Inhalt und die Schaltflächen Ja, Nein.

ungültig dialogPrintNo(string $text)

Erzeugt einen Dialog mit dem $Text wie die Schaltflächen Inhalt und Drucken, Nein.

ungültig dialogYesNoCancel(string $text)

Erzeugt einen Dialog mit dem $Text als Inhalt und die Schaltflächen Ja, Nein und Abbrechen.

void Dialog(string $text, Feld[] $fields)

Erzeugt einen Dialog mit dem $Text als Inhalt und ein Array von benutzerdefinierten Feldern. Ein Feld kann eine Schaltfläche oder ein beliebiger anderer Feldtyp sein, z. B. eine Liste. Schaltflächen werden immer unter anderen Feldern angezeigt.

FeldButton Taste(string $title, string $id)

Erzeugt eine benutzerdefinierte Schaltfläche, die in der dialog() Funktion. $Titel ist ein Text, der auf der Schaltfläche angezeigt wird. Die Schaltfläche $id wird beim Ausführen des Button-Handlers verwendet. MyQ sucht nach einem onXXX Handler wo XXX ist die $id

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 dialog() Funktion. Die Website $Positionen ist ein assoziatives Array, bei dem der Schlüssel die Referenz eines Elements und der Wert der in der Benutzeroberfläche sichtbare Anzeigename eines Elements ist.

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 dialog() Funktion. Die Website $Positionen ist ein assoziatives Array, bei dem der Schlüssel die Referenz eines Elements und der Wert der in der Benutzeroberfläche sichtbare Anzeigename eines Elements ist.

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 Pause Zustand. Der Benutzer muss das Skript erneut ausführen.

gemischt getField(string $name)

Ermittelt den Wert des Feldes mit der Bezeichnung $Name nachdem der Benutzer mit dem Dialog interagiert hat. Das Feld muss mit den Methoden erstellt worden sein singleSelectList (das Ergebnis ist ein skalarer Wert) oder multiSelectList (das Ergebnis ist ein Array von Werten, das ein leeres Array sein kann).

JavaScript errors detected

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

If this problem persists, please contact our support.