Attribut Auf Server ausführen

4D - Documentation   Français   English   German   Japanese   4D Server, Inhalt   Index   Back   Previous   Next

Version 11.2


Das Attribut "Auf Server ausführen" können Sie im Dialogfenster Methodenauswahl-Eigenschaften und Methode-Eigenschaften festlegen:

Die Eigenschaft wird nur für eine 4D Anwendung im Client/Server-Modus berücksichtigt.

Ist diese Option markiert, wird die Projektmethode immer auf dem Server ausgeführt, unabhängig davon, wie sie aufgerufen wird.

Kontext der Ausführung

Der Kontext der Ausführung für Projektmethoden ist derselbe wie für Trigger: Die Methode auf dem Server verwendet in der Datenbank denselben Kontext zum Sperren von Datensätzen und für Transaktionen wie auf der Client-Seite. Weitere Informationen dazu finden Sie im Abschnitt 4D Programmiersprache.

Alle Parameter der Methode ($1, $2, etc.) werden an den Server gesendet und der Wert des Parameters $0 - falls übergeben - wird an den Client zurückgegeben.

Im Gegensatz zur Funktion Execute on server erstellt diese Option keinen Prozess auf dem Server.

4D Server verwendet den "Zwillingsprozess" des Client-Prozesses, der die Ausführung anfordert.

Diese Option vereinfacht außerdem das Delegieren der Ausführung einer Methode auf dem Server, da die Parameter automatisch in beiden Richtungen übertragen werden, wie beim normalen Aufruf einer Methode. Der Transfer läuft wie bei der Funktion Execute on server asynchron. Deshalb erfordert das mehr Programmierung und benötigt Semaphoren zum Lesen der Ergebnisse.

Verwendbare Befehle

Für Methoden mit dem Attribut "Auf Server ausführen" gelten dieselben Regeln wie für Serverprozeduren. Für einige Befehle ist die Ausführung auf dem Server nicht erlaubt, für andere wird die Ausführung auf dem Server nicht empfohlen. Weitere Informationen dazu finden Sie im Abschnitt Serverprozeduren.

Zeiger

Übergeben Sie einen Zeiger für eine Variable (einfache Variable, Array oder Array-Element), wird der Wert mit Zeiger auch an den Server gesendet. Wird er auf dem Server durch eine Methode geändert, wird der geänderte Wert an den Client zurückgesendet, um die entsprechende Variable auf der Client-Seite zu aktualisieren.

Zeiger auf eine Tabelle oder ein Datenfeld werden als Referenzen gesendet (Tabellennummer, Datenfeldnummer). Der Wert des aktuellen Datensatzes wird nicht automatisch ausgetauscht.

Hinweis: Diese Option arbeitet im interpretierten und im kompilierten Modus gleich.

Beispiel

Hier ein Beispiel für die Projektmethode Myappli mit dem Attribut "Auf Server ausführen":

   C_POINTER($1) `Zeiger auf Tabelle
   C_POINTER($2) `Zeiger auf Feld
   C_POINTER($3) `Zeiger auf Array
   C_TEXT($4) `Wert, nach dem gesucht wird
   C_LONGINT($0) `Ergebnis
      `Suchen a Werte für jeden Datensatz zurücksenden
   QUERY($1-> ; $2-> = $4)
   While(Not(End selection($1->)))
      APPEND TO ARRAY($3-> ; myFormula($1))
      NEXT RECORD($1->)
   End while
   UNLOAD RECORD($1->)
   $0 := Records in selection( $1->)

Auf der Client-Seite wird die Methode folgendermaßen aufgerufen:

   ARRAY TEXT(myArray; 0)
   $vlnum := MyAppli ( ->[Table_1] ; ->[Table_1]Field_1 ; ->myArray; "to find")

4D - Documentation   Français   English   German   Japanese   4D Server, Inhalt   Index   Back   Previous   Next