5.14.1.2.4.3. Prüfung vor dem ERP-Dialog (3Dfindit)

Bevor sich in 3Dfindit der Dialog Neue Ident-Nummer [new ident-no.] öffnet, kann ein Skript auf dem Server prüfen, ob bestimmte Voraussetzungen erfüllt sind. Je nach Ergebnis stellt es eine Rückfrage, zeigt einen Hinweis an oder beendet den Vorgang mit einem Hinweis, sodass sich der Dialog nicht öffnet. Daten verändert das Skript nicht.[78]

[Hinweis]Hinweis

Die Prüfung gilt nur für 3Dfindit, nicht für den PARTdataManager.

Konfiguration

Tragen Sie das kompilierte Skript (.vbb) in der erpcustom.cfg ein:

[SERVER_BEFORE_SHOWDIALOG]
1=$CADENAS_SETUP/scripts/erp/
 erp_before_showdialog.vbb

Soll die Prüfung nur für eine bestimmte Rolle gelten, lautet der Block [SERVER_BEFORE_SHOWDIALOG(<groupName>)].

Das Skript enthält die Funktion Execute(context). Sie muss 1 zurückgeben. Jeder andere Wert und jede Ausnahme gelten als Fehler.

Das Kontextobjekt

Über context stehen dem Skript folgende Angaben und Meldungen zur Verfügung:

Table, Document

Tabelle und Dokument. Nur lesbar.

QueryConfirmed

True, wenn die Anfrage wiederholt wird, nachdem der Anwender eine Rückfrage oder einen Hinweis bestätigt hat. Nur lesbar.

Ask(message [, title [, confirmText [, cancelText]]])

Stellt eine Rückfrage. Bestätigt der Anwender, öffnet sich der Dialog; bricht er ab, endet der Vorgang. Optional legen Sie den Fenstertitel und die Beschriftung der beiden Schaltflächen fest.

ShowInfo(message [, title [, buttonText]])

Zeigt einen Hinweis an. Nach der Bestätigung öffnet sich der Dialog. Optional legen Sie den Fenstertitel und die Beschriftung der Schaltfläche fest.

StopWithInfo(message [, title [, buttonText]])

Zeigt einen Hinweis an und beendet den Vorgang. Der Dialog öffnet sich nicht, auch nicht beim zweiten Lauf nach einer Bestätigung. Optional legen Sie den Fenstertitel und die Beschriftung der Schaltfläche fest.

[Hinweis]Hinweis

Nach einer Bestätigung läuft das Skript ein zweites Mal. Ask und ShowInfo werden dabei ignoriert, Sie müssen QueryConfirmed also nicht abfragen. Hat das Skript Nebenwirkungen, etwa Einträge in eine Protokolldatei, fragen Sie QueryConfirmed ab, damit nichts doppelt geschieht.

Beispiel

Vor dem Öffnen des Dialogs wird nachgefragt, ob der Anwender fortfahren möchte:

Function Execute(context)
  context.Ask("Do you want to continue to the ERP dialog?", _
    "Assign ERP number", "Proceed", "Stop")
  Execute = 1
End Function