Lade...
 

SetLayer

SetLayer

SetLayer

Stack
Stack   Beschreibung
Stack(In)   n
Stack(Out)   -

Stellt das n-te Layer ein. Daten in einem Layer != n sind über den Objektmanager nicht erreichbar. Den Zusammenhang zwischen Layer, Domain und Bitpattern für Inheritance zeigt folgendes Beispiel.

Eine Datenbank kann (auch physikalisch über verschiedene Dateien) in mehrere im Extremfall völlig voneinander unabhängige Layer unterteilt werden.
Dabei gibt es aber Klassen, die sich zwar in einem Layer befinden, allerdings von allen Layern aus erreichbar sind (Mandanten, Benutzer, ...).

Achtung: Falls der Layer nur für einen Prozessschritt/Unterprozedur verändert wird, dann sollte der Entwickler am Ende der Prozedur den Layer manuell zurücksetzen (dies geschieht nicht automatisch), damit der Aufruf dieser Prozedur keine unerwünschten Seiteneffekte verursacht. Um sicherzustellen, dass der Layer auch im Fehlerfall korrekt zurückgesetzt wird, sollte vor SetLayer ein BeginTXN stehen, damit der Layer beim Zurückrollen der Transaktion im Fehlerfall ebenfalls zurückgesetzt wird.

 

Beim Login wird SetLayer wie folgt benutzt:

// Set database layer
cyberEnterprise Copy(dataBaseLayer) Dup
ifnot
{

  Drop // Drop the entry from the stack

  T("Mandant in Datenbank nicht definiert oder gesperrt", "Client not defined in database or secured")
  Attention(AbortTXN) cancel
}
// Set database layer
SetLayer

 

// ###################################################

// A simpler example:

2 SetLayer // Sets the second database layer as active!