Codeblock Onlinehilfe

Event "bei WebService-Anforderung"


Event "bei WebService-Anforderung"


Der Aufruf erfolgt auf Anforderung des IBeCBService-WebService durch eine externe Applikation.
Der Event ist nur verfügbar, wenn BE im WebSevice-Server (WSS) Modus gestartet wurde (Parameter: /WebService).
Der cServiceID-Parameter ist alphanumerisch und wird von der externen Applikation zur Identifizierung des konkret angeforderten WebService übergeben.
Der uParam-Parameter wird von der externen Applikation zur Übergabe beliebiger Parameter verwendet.
Er kann somit einen beliebigen Codeblock-kompatiblen Wert enthalten (Alphanumerisch, Numerisch, Integer, Datum, Logisch, Array).
Die Rückgabe des Events darf ein beliebiger Codeblock-kompatibler Wert sein und wird entsprechend dem uParam-Parameter an die externe Applikation zurückgegeben.

Achtung: Es ist nicht zulässig Objekte als Rückgabe zu verwenden (d.h. Tabellen, Datenmodule, Fenster, etc. sind nicht erlaubt)!
Achtung: Die Verwendung des BeDataItem-Typs (mittels Methode ExecuteService) funktioniert nicht einwandfrei. Die Verwendung des Types String (mittels Methode ExecuteServiceStr) macht dagegen keine Probleme.

Hinweise für die Entwicklung der externen Applikation:


Die Übergabe an den WebService (Param) bzw. Rückgabe des WebService wird über folgende Interface-Klasse transportiert:


Klasse:

TBeDataItem


Eigenschaften:

DataType : je nach Inhalt (1 Zeichen, string), wird eine der unten aufgeführten
Eigenschaften zum Transport der Daten verwendet: C, N, I, L, D, A
DtCharacter: string
DtNumeric : double
DtInteger : integer
DtLogical : boolean
DtDate : date (NICHT time)
DtArray : array of TBeDataItem


Beispiel

| nEvtNo:P1, cServiceID:P2:='', uParam:P3, cRes |

// Ausführen einer BE-WebService Anfrage
// cServiceID : Individuelle Event-ID
// uParam     : Parameter (Typ frei wählbar)

cRes := 'ID: ' + cServiceID + crlf,

if not Empty(uParam) then
  if not Empty(uParam) and ALen(uParam) > 0 then
     cRes := 'Data: ' + ArrToStr(uParam)
  else
     cRes := 'Data: ' + cRes
  endif,
endif,

// { 'A', 1, True, 1.23, STOD('20071231'), { 'B', 1 } } // würde in o.a. Datentyp umgewandelt. Kann evtl. in Java nicht korrekt ausgewertet werden. 

// alternativ kann auch einfach nur ein String zurück gegeben werden

'Rückgabe'