SOAP DECLARATION

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 2003


SOAP DECLARATION (Variable; Typ; Input_Output{; Alias})

ParameterTypBeschreibung
Variable4D Variable
TypLange Ganzzahl4D Typ, auf den das Argument zeigt
Input_OutputLange Ganzzahl1 = SOAP Input, 2 = SOAP Output
AliasStringName, der während SOAP Austausch
für dieses Argument veröffentlicht wird

Beschreibung

Der Befehl SOAP DECLARATION deklariert explizit den SOAP Typ der Parameter in einer 4D Methode, die als Web Service veröffentlicht wird.

Wird eine Methode als ein Web Service veröffentlicht, werden die Standardparameter $0, $1 ... $n verwendet, um die Parameter des Web Service für die Aussenwelt zu beschreiben, insbesondere in der WSDL Datei. Für das SOAP Protokoll müssen Parameter explizit benannt werden; 4th Dimension verwendet standardmässig die Namen "FourD_arg0, FourD_arg1 ... FourD_argn" by default.

Diese Standardoperation kann jedoch aus folgenden Gründen problematisch sein:

Es ist nicht möglich, $0 oder $1 als Array zu deklarieren. Dafür sind Zeiger erforderlich; in diesem Fall muss jedoch zum Erzeugen der WSDL Datei die Art der Werte bekannt sein.

Als nächstes kann es hilfreich oder notwendig sein, die Parameternamen anzupassen (eingehend und ausgehend).

Schliesslich macht es diese Operation unmöglich, in $0 mehr als einen Wert pro RPC Aufruf zurückzugeben.

Mit dem Befehl SOAP DECLARATION unterliegen Sie nicht diesen Einschränkungen. Sie können diesen Befehl für jeden ein- und ausgehenden Parameter ausführen und ihm einen Namen und einen Typ zuweisen.

Hinweis: Auch bei Verwendung des Befehls SOAP DECLARATION müssen Sie 4D Variablen immer mit Befehlen unter dem Thema "Compiler" deklarieren.

In Variable übergeben Sie die 4D Variable, auf die im RPC Aufruf verwiesen wird.

Achtung: Sie können auf Prozessvariablen oder Argumente in 4D Methoden ($0 to $n) verweisen. Lokale und Interprozessvariablen können Sie nicht verwenden.

In Typ übergeben Sie den entsprechenden 4D Typ. Sie können die meisten Arten von 4D Variablen und Arrays verwenden. Sie können die vordefinierten Konstanten unter dem Thema "Feld- und Variablentypen" einsetzen:

KonstanteTypWert
Is BLOBLange Ganzzahl30
Is BooleanLange Ganzzahl6
Is IntegerLange Ganzzahl8
Is LongIntLange Ganzzahl9
Is RealLange Ganzzahl1
Boolean arrayLange Ganzzahl22
String arrayLange Ganzzahl21
Date arrayLange Ganzzahl17
Integer arrayLange Ganzzahl15
LongInt arrayLange Ganzzahl16
Real arrayLange Ganzzahl14
Text arrayLange Ganzzahl18
Is TextLange Ganzzahl2
Is DateLange Ganzzahl4
Is TimeLange Ganzzahl11
Is String VarLange Ganzzahl24

Hinweis: Nachfolgende Konstanten werden in SOAP Methoden nicht verwendet: Is Alpha Field, Is Pointer, Array 2D, Picture array, Pointer array, Is Picture, Is Subtable, Is Undefined.

In Input_Output übergeben Sie einen Wert, der anzeigt, ob der bearbeitete Parameter "eingehend" (z.B. Wert, den eine Methode empfängt) oder "ausgehend" (z.B. Wert, den eine Methode zurückgibt) ist. Sie können die vordefinierten Konstanten unter dem Thema "Web Services (Server)" einsetzen:

KonstanteTypWert
SOAP InputLange Ganzzahl1
SOAP OutputLange Ganzzahl2

COMPILER_WEB Methode: Eingehende SOAP Argumente, die über 4D Variablen, also nicht über Argumente von 4D Methoden aufgerufen werden, müssen Sie zuerst über die Projektmethode COMPILER_WEB deklarieren. Setzen Sie in Methoden für Web Services Prozessvariablen ein, müssen diese deklariert sein, bevor die Methode aufgerufen wird. Die Projektmethode COMPILER_WEB wird – sofern vorhanden – für jede akzeptierte SOAP Anfrage aufgerufen. Die Methode COMPILER_WEB ist standardmässig nicht vorhanden. Sie müssen diese explizit anlegen.

Der 4D Web Server ruft COMPILER_WEB auch auf, wenn er "konventionelle" Web Anfragen vom Typ POST erhält (siehe Abschnitt Web Services, Special URLs and Form Actions.

In Alias übergeben Sie den Argumentnamen, wie er in WSDL und SOAP Austauschaktionen erscheinen muss.

Achtung: Dieser Name muss im RPC Aufruf einmalig sein (Eingabe- und Ausgabeparameter zusammengenommen), ansonsten berücksichtigt 4D nur die letzte Deklaration.

Hinweis: Die Namen dürfen in Anlehnung an die XML Standards für Marker-Namen WEDER Leerzeichen NOCH Zeichen aus dem erweiterten Ascii-Satz enthalten. Nur Zeichen des Latin-Satzes sind zulässig ([A-Za-z0-9._] | '-')*.

Übergeben Sie keinen Parameter in Alias, verwendet 4th Dimension standardmässig den Namen der Variablen oder FourD_argN für die Argumente der 4D Methode ($0 to $n).

Hinweis: Der Befehl SOAP DECLARATION muss innerhalb der Methode liegen, die als Web Service veröffentlicht wird. Er lässt sich nicht über eine andere Methode aufrufen.

Beispiele

(1) Dieses Beispiel gibt den Parameternamen an:

      ` Beim Erzeugen der WSDL Datei und SOAP Aufrufe wird das Wort 
      ` PLZ anstelle von fourD_arg1verwendet.
   C_LONGINT($1)
   SOAP DECLARATION($1;Is LongInt;SOAP Input;"PLZ")

(2) Dieses Beispiel findet ein Array mit Postleitzahlen in Form von langen Ganzzahlen:

   ARRAY LONGINT(codes;0)
   SOAP DECLARATION(codes;LongInt array;SOAP Input;"in_codes")

(3) Dieses Beispiel verweist auf zwei zurückgegebene Werte ohne Angabe eines Argumentnamens:

   SOAP DECLARATION(ret1;Is LongInt;SOAP Output)
   SOAP DECLARATION(ret2;Is LongInt;SOAP Output)

Referenz

Get SOAP info, Is data file locked, SEND SOAP FAULT.

Konstanten

Themen Feld und Variablentypen und Web Services


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next