Function DE Version 4.60

@RequestClass

System

Syntax

@RequestClass(TEXTCLASS1);
@RequestClass(TEXTCLASS1;FNFLAGS2);
@RequestClass(TEXTCLASS1;FNFLAGS2;FNTIMEOUT3);
@RequestClass(TEXTLISTCLASSES1);
@RequestClass(TEXTLISTCLASSES1;FNFLAGS2);
@RequestClass(TEXTLISTCLASSES1;FNFLAGS2;FNTIMEOUT3);

Beschreibung

Es wird (werden) die Class(es) mit dem (den) Namen TEXT/TEXTLIST TEXTCLASS1/TEXTLISTCLASSES1 angefordert.

Returnwert:
@Error   ->   Ein Fehler ist aufgetretten.
TRUE   ->   Alle angeforderten Classes erhalten.
FALSE   ->   Mindestens eine der angeforderten Classes war schon an einen anderen Task vergeben.

Ein Task kann eine Class die schon einmal erfolgreich angefordert wurde, beliebig oft erneut erfolgreich anfordern.
(Dabei wird ein Zähler erhöht.)
Wurde eine Class bereits von einem Task erfolgreich angefordert,
kann diese Class von keinem anderen Task erfolgreich angefordert werden.

Eine Class sollte durch @ReleaseClass so oft freigegeben werden, so oft sie mit @RequestClass angefordert wurde.
Wird ein Task beendet, werden alle von diesem Task angeforderten Classes freigegeben.

FN FNFLAGS2:
0   Es wird nicht gewartet bis die angeforderten Classes frei sind (default)
1   Es wird gewartet bis die angeforderten Classes frei sind (siehe FNTIMEOUT3)

FN FNTIMEOUT3:
Wird FN FNTIMEOUT3 in Kombination mit FN FNFLAGS2=1 angegeben,
kehrt @RequestClass nach den angegebenen Millisekunden FN FNTIMEOUT3 auf jeden Fall zurück.
Wird FN FNFLAGS2=1 ohne FN FNTIMEOUT3 angegeben wartet @RequestClass bis die angeforderten Classes verfügbar sind.

Beispiel: @RequestClass(TEXTCLASS1;FNFLAGS2);

TEXTCLASS1:="TestClass1";
FNFLAGS2:=1;
Ret:=@RequestClass(TEXTCLASS1;FNFLAGS2);
@LogReport(Ret);

Es wird die Class mit dem Namen "TestClass1" angefordert und so lange gewartet bis die Class verfügbar ist.

Beispiel: @RequestClass(TEXTCLASS1;FNFLAGS2;FNTIMEOUT3);

TEXTCLASS1:="TestClass1";
FNFLAGS2:=1;
FNTIMEOUT3:=1000;
Ret:=@RequestClass(TEXTCLASS1;FNFLAGS2;FNTIMEOUT3);
@LogReport(Ret);

Es wird die Class mit dem Namen "TestClass1" angefordert und so lange gewartet bis die Class verfügbar
oder eine Sekunde vergangen ist.
Konnte die Class mit dem Namen "TestClass1" nicht erfolgreich angefordert werden, wird Ret FALSE zugewiesen.

Beispiel: @RequestClass(TEXTLISTCLASSES1;FNFLAGS2);

TEXTLISTCLASSES1:="TestClass1":"TestClass2";
FNFLAGS2:=1;
Ret:=@RequestClass(TEXTCLASS1;FNFLAGS2);
@LogReport(Ret);

Es werden die Classes mit den Namen "TestClass1":"TestClass2" angefordert und so lange gewartet
bis beide Classes verfügbar sind.