4D v16

Attribut Auf Server ausführen

Home

 
4D v16
Attribut Auf Server ausführen

Attribut Auf Server ausführen  


 

 

Die Option "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.

Der Kontext der Ausführung für Projektmethoden ist ähnlich wie für Trigger, siehe Einführung: 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, aber nicht denselben Kontext der Programmiersprache (Prozessvariablen, Mengen, aktuelle Auswahlen). Im Gegensatz zu Triggern nutzt eine Methode, die auf dem Server ausgeführt wird, den aktuellen Datensatz nicht gemeinsam mit dem Client-Kontext.
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.
Die Funktion Execute on server arbeitet asynchron, benötigt deshalb mehr Programmierung und verwendet Semaphoren zum Lesen der Ergebnisse.

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.

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")

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: 4D Server und Programmiersprache

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Server Handbuch ( 4D v16)