4D v14

Prozesse

Home

 
4D v14
Prozesse

Prozesse    


 

 

Zusätzlich zu den Erläuterungen in diesem Video sollten Sie folgendes beachten: 

Ein Prozess ist eine Umgebung, die folgendes enthält:

  • eigenen Speicherplatz
  • eigene aktuelle Auswahlen (eine pro Tabelle)
  • eigene Variablen (Prozessvariablen)
  • möglicherweise eine eigene Oberfläche
  • u.s.w.

Prozesse können untereinander auf verschiedene Weise kommunizieren:

  • Interprozessvariablen
  • Variablen lesen und schreiben
  • etc.

Sie können gesetzt werden:

  • in Wartestellung (schlafender Prozess)
  • in Winterschlaf (suspendierter Prozess) bis ein anderer Prozess sie aufweckt.

Ein Prozess endet nur, wenn die ihn ausführende Methode abgeschlossen ist.
Sie können einen Prozess nicht per Programmierung beenden, sondern nur programmieren, dass er unter bestimmten Bedingungen endet. (siehe 4D Befehl CALL PROCESS

Prozesse dienen generell für folgende Zwecke:

  • Zum Erstellen bestimmter Prozesse, z.B. Hintergrund- oder Überwachungsprozesse
  • Zum Erstellen von Werkzeugpaletten (unabhängige Fenster mit spezifischen Funktionen),
  • Zum Anzeigen von Eingabe-/Ansichtsdialogen, damit der Benutzer mit mehreren Fenstern arbeiten kann

4D erstellt bestimmte Prozesse direkt.

Ein Prozess wird über die Funktion New process angelegt:

 vProcessNumber:=New process(Method;Stack;Processname;Settings;...)

Diese Befehlszeile muss in der Methode sein. Wir empfehlen, nachfolgendes Konzept zu verwenden; damit sparen Sie Zeit und sorgen für Klarheit:

 C_TEXT($1)
 If(Count parameters=0) // Wird kein Parameter empfangen, soll der Prozess erstellt werden
    C_LONGINT(<>ProcessNumber)
    <>ProcessNumber:=New process("Display_Stats2";1024*1024;"Statistics";"Fictitious_Parameter") // Erstelle Prozess
 Else // Empfängt die Methode mindestens einen Parameter, wurde bereits ein Prozess gestartet, jetzt die Anzeigemethode ausführen
    C_LONGINT($Window//Erstelle Fenster (Container), in dem der Dialog (Inhalt) angezeigt wird
    $Window:=Open form window("STATS";Plain form window;Horizontally centered;Vertically centered)
    DIALOG("STATS") //Zeige den Dialog
    CLOSE WINDOW($Window// Ist der Dialog geschlossen, schließe das Fenster
 End if

  • Beim Aufrufen der Methode (ohne Parameter), erstellt 4D einen Prozess, in dem er eine Methode ausführt
  • Die Methode ruft sich selbst auf (sie erstellt eine zweite Instanz der Methode in einem neuen Prozess)
  • Und übergibt sich selbst einen Parameter:
  • Die erste Methode endet
  • Während die vom Prozess ausgeführte Methode weiter läuft und das Statistik Array anzeigt

Auf diese Weise können Sie weiterarbeiten, während das Fenster mit der Statistik in Reichweite bleibt.

Um die Ausführung eines Prozesses zu verfolgen (wenn Sie die Zeile New Process ausführen), verwenden Sie die Schaltfläche “step-by-step new process”. Sie führt die Zeile aus und öffnet ein zweites Fenster im Schrittmodus, in dem Sie das Fortschreiten der im Prozess ausgeführten Methode unabhängig von der aufrufenden Methode verfolgen können.

Sie können z.B. einen Prozess erstellen, der die Zeit und die seit dem Start des neuen Prozesses vergangene Zeit anzeigt. Dieses Beispiel gibt Ihnen die Grundlagen zum Einrichten eines Zeitzählers.

Über Prozesse können Sie rasch weitere Verbesserungen in Ihrer Programmierung in Betracht ziehen:

  • Sie können Ihre Prozesse in Konzepte fassen
  • Die Code-Zeilen Schritt für Schritt testen
  • Dann zur unabhängigen Ausführung in einen Prozess setzen

Es gibt unzählige Beispiele zum Verwenden von Prozessen. Hier ein weiteres: Sie müssen in einer Anwendung mit kritischen Daten Updates durchführen; diese Updates können einige Sekunden oder gar Minuten dauern, ohne dass der laufende Betrieb, wie z.B. Produktion oder Krankenhaus beeinträchtigt werden. Sie können also:

  • Eine Tabelle einplanen, in der Sie verschiedene auszuführende Aufgaben abspeichern.
  • Für jede dieser Aufgaben geben Sie Datum, Uhrzeit und evtl. die Prioritätsebene und Aufgabenbeschreibung an (Was? in welcher Tabelle? welcher Datensatz? etc.).
  • Dann richten Sie einen Prozess ein, dessen einzige Mission ist, diese Tabelle zu konsultieren und die entsprechenden Aufgaben auszuführen.
  • Sind sie erledigt, wird der Prozess suspendiert, bis die nächste Aufgabe ansteht und der Prozess wieder aktiviert wird

Diese Operation ist äußerst praktisch im Client/Server Modus, wo ein Prozess (Serverprozedur) auf dem Server läuft und die einzelnen Aufgaben durchführt:

  • Importe
  • Erneut bearbeiten
  • PDF drucken
  • E-Mails senden
  • u.s.w.

 
 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Prozesse

 
ARTIKELVERWENDUNG

Self-Training ( 4D v13)
Self-Training ( 4D v14)