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());