Table of Contents

CallUserDefinedSafeFunction mit KF-Code

Informationen

  • Kategorien: Kernel | Schnittstellen | Managed Schnittstelle
  • Version: Developer.13572
  • Veröffentlichungsdatum: Donnerstag, 16. April 2020
  • Entwickler: Schulze
  • Benötigt Datenbankänderung: Nein
  • Betreff: CallUserDefinedSafeFunction mit KF-Code

Beschreibung

Dem Aufruf von CallUserDefinedSafeFunction kann jetzt zusätzlich pit-Code mitgegeben (analog Klassenformel) werden.

Wenn Code mitgegeben wird, dann kann eine Funktion aus diesem Code aufgerufen werden. Wenn also z.B. eine Funktion "Foo" in dem Code definiert ist, dann kann "Foo" als Funktionsname angegeben werden. Diese Funktion muss als "safe" deklariert sein.

Es können auch mehrere Funktionen mitgegeben werden. Wenn diese sich gegenseitig aufrufen, dann muss die jeweilige Funktion vor dem Funktionsaufruf definiert sein (die Positionen sind also in dem Fall wichtig).

Wenn in dem Aufruf das Flag "CompileCodeOnly" auf true gesetzt ist, dann wird der Code nur kompiliert, aber nicht ausgeführt (Call). Fehler werden in dem Fall an den Aufrufer zurückgegeben wie beim normalen Call.

Beispielcode

CallUserDefinedSafeFunctionRequest request = new CallUserDefinedSafeFunctionRequest
{ 
   SessionID = session.Id, 
   Functionname = "Foo",   // diese Funktion muss safe sein
   Code =
      "function string Foo2( int $a ) const" + 
         "{ return IntToStr($a); }" +
      "safe function string Foo( int $num )" +
         "{ return Foo2($num + 1); }",
   CompileCodeOnly = false,
   CallFunctionParameters = new object[] { 1000 }
};       

CallUserDefinedSafeFunctionResponse response = proxy.CallUserDefinedSafeFunction(request);

// Ausgabe "1001" (String)       
Console.WriteLine(response.Result.ToString());