CX_SINGLE_ALLOCATION
Klassenhierarchie
- CX_CLASS
- CX_SIMPLE
- CX_TERMED
- CX_EXPANDABLE
- CX_ALLOCATION
- CX_SINGLE_ALLOCATION
- CX_ALLOCATION
- CX_EXPANDABLE
- CX_TERMED
- CX_SIMPLE
Beschreibung: (Business Pattern)
Eine Einzel-Allokation beschreibt je nach Sichtweise eine Verwendung oder eine Ressource eines Geschäftsobjekts.
In unserem obigen Beispiel beschreibt die Einzel-Allokation aus Sicht des Geschäftsobjekts Arbeitsplatz (CX_WORK_STATION) eine Ressource, aus Sicht des Geschäftsobjekts Maschine (CX_MACHINE) eine Verwendung. Wie wir erkennen können, ist dieses von der Art der Rückrelation von der Einzel-Allokation auf das Geschäftsobjekt abhängig. Im Falle einer Ressource wird ein Geschäftsobjekt seitens der Einzel-Allokation über die Rückrelation "allocators" referenziert, im Falle einer Verwendung zeigt die Einzel-Allokation über das Datenfeld "object" auf das Geschäftsobjekt.
Zur Darstellung der Verwendung eines Geschäftsobjektes reicht es nicht aus nur das Geschäftsobjekt zu kennen (es über die Referenz "object" zu referenzieren"), man muss auch eine Angabe darüber machen, in welcher Menge das Geschäftsobjekt "in Beschlag" genommen wird. Dieses wird über die beiden Datenfelder "amount" und "baseAmount" beschreiben, die beides Attribute des Einzel-Allokationsobjekts sind.
Beispiele:
- "Die Maschine A mit einer Zeit von 5 Stunden (belegen)" (Arbeitsplan)
- "Das Teil B in einer Menge 17 Stück (einsetzen)" (Stückliste)
- "Die Person C mit einer Zeit von 2 Stunden (reservieren)" (Projektplanung)
Das Geschäftsobjekt (in den obigen Beispielen jeweils A. B oder C) ist das "object" innerhalb einer Einzel-Allokation CX_SINGLE_ALLOCATION, die Angaben "5 Stunden", "17 Stück" oder "2 Stunden" beschreiben den Umfang der Verwendung des in Betracht gezogenen Geschäftsobjektes. Im Geschäftsobjekt selbst wird eine Einzel-Allokation über die Rückrelation CX_BUSINESS_OBJECT::allocations verbunden. Die Funktion CX_BUSINESS_OBJECT::Allocators(os_set) gibt alle Verwendungen eines Geschäftsobjektes zurück.
Wie in der obigen Graphik dargestellt, beschreibt die Einzel-Allokation aus Sicht des Arbeitsplatzes eine Ressource. Die Einzel-Allokation wird dabei über die Relation "allocations" referenziert, die Rückrelation von der Einzel-Allokation auf das Geschäftsobjekt wird über die Relation "allocators" beschrieben.
Code-Beispiel:
Var(setAllocation, singleAllocation)
// Allokationstabelle generieren CreatePersObject(CX_SET_ALLOCATION) -> setAllocation // Einzel-Allokation in Allokationstabelle setzen CreatePersObject(CX_SINGLE_ALLOCATION) -> singleAllocation singleAllocation setAllocation Insert(allocations, allocators) // Menge in Einzel-Allokation setzen und mit "1 Stück" initialisieren CreatePersObject(CX_VALUE) singleAllocation SetReference(amount) "1 Stück" singleAllocation Put(amount) // Objekt in Einzel-Allokation setzen "123456" "uniqueID = %s" FindFirst(CX_ITEM) singleAllocation SetReference(object, allocations)
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
DeReferenceObject | ||||
Inspect | ||||
Object | STRING | OBJECT | Rückgabe des referenzierten Geschäftsobjektes | |
ReferenceObject | OBJECT, INTEGER | |||
SanityCheck | INTEGER | Prüfung auf Konsistenz des Objektes | ||
AllocatorByCondition | STRING | OBJECT | ||
AllocatorByConditionMA | * | STRING | ||
AllocatorsByCondition | STRING | COLLECTION | ||
AllocatorsByConditionMA | * | STRING | ||
Amount | OBJECT | Berechnet die Gesamtmenge als Summe der Felder amount und baseAmount | ||
AmountWeak | OBJECT | |||
AssignSlot | * | STRING | Setzen/Lesen von Slots, die sich auf ein anderes Datenfeld beziehen | |
ClassFilter | STRING, INTEGER | OBJECT | Dieses Objekt, wenn es einer bestimmten Klasse entspricht | |
ConditionedFilter | STRING | OBJECT | ||
ConditionedFilter2 | OBJECT | OBJECT | ||
Deleted | INTEGER | Objekt als gelöscht markiert? | ||
Description | STRING | Bezeichnung dieses Objektes | ||
GetDomain | INTEGER | Domain dieses Objektes | ||
GetSiblings | COLLECTION | Alle Siblings dieses Objektes | ||
GetSiblings2 | COLLECTION | Alle Siblings dieses Objektes | ||
GetSlotEntries | VECTOR |
Rückgabe von internen Informationen zu Slots | ||
LastUpdate | OBJECT | Datum des letzten Schreibzugriffs | ||
LastUser | INTEGER | User, der zuletzt schreibend auf das Objekt zugegriffen hat | ||
Link | OBJECT | Dieses Objekt in die Liste der Objekte mit Gültigkeit einfügen | ||
NextValidObject | OBJECT | Zeitlich nachfolgendes Gültigkeitsobjekt | ||
Occurrences | OBJECT, INTEGER | COLLECTION | ||
PreviousValidObject | OBJECT | Zeitlich vorangehendes Gültigkeitsobjekt | ||
Resolve | OBJECT, OBJECT, STRING, INTEGER | |||
ResolveNew | OBJECT, OBJECT, STRING, INTEGER | |||
RestrictedValidity | * | Gültigkeitsbereich eingeschränkt? | ||
SetDomain | INTEGER, INTEGER | Domain setzen | ||
SetInspectionMessage | INTEGER | |||
SetPreMessage | INTEGER | |||
ShortName | STRING | Kurzbezeichnung dieses Objektes | ||
Siblings | * | Objekte mit Gültigkeit | ||
SpanDateValidity | * | Gültigkeitsspanne | ||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
UniqueID | STRING | Inhalt des festen Datenfeldes "uniqueID" | ||
Unlink | Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen | |||
Unlink2 | Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen | |||
Valid | OBJECT | INTEGER | Gültigkeit prüfen | |
ValidSince | OBJECT | Beginn der Gültigkeitsspanne | ||
ValidToday | INTEGER | Heute gültig? | ||
ValidUntil | OBJECT | Ende der Gültigkeitsspanne | ||
VerifySiblings | INTEGER | Ring der Austauschobjekte prüfen |
* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
object | REL_1M | CX_BUSINESS_OBJECT | das zugeordnete Objekt ... (REL_1M zu CX_BUSINESS_OBJECT::allocations | |
singleAllocationEnum | ENUMCHAR | 0: keine Steuerung 1: wenn Menge = Null, Allokation vernachlässigen 2: Fixmenge (nicht mehr verwendet) |
||
allocators | REL_MN | CX_EXPANDABLE | welche Objekte werden über dieses Allokationsobjekt beschrieben. (REL_MN zu CX_BUSINES_OBJECT) | |
amount | POINTER | CX_AMOUNT | Menge der Allokation, gilt per Referenzmenge der Hauptallokation. Mengen werden in der Hierarchie multipliziert (CX_PRODUCT_AMOUNT)
Die Menge kann über assigned slot einer Slot Variablen zugeordnet werden. Ist die Menge eine bestimmte Variable, dann wird diese Variable in einer Formel angegeben. |
|
attributeSet | POINTER | CX_ATTRIBUTE_SET | Attribute zur Beschreibung der Allokation | |
baseAmount | POINTER | CX_AMOUNT | Basismenge, gilt immer pro Allokation, unabhängig von der Menge der in der Hierarchie höherliegenden Allokationen | |
uniqueID | STRING | * | Eindeutiger Schlüssel | |
validity | POINTER | CX_VALIDITY | Gültigkeitszeitraum des Objektes |
* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld
Reihenfolge | Beschreibung |
---|---|
1 | Wie CX_ALLOCATION. |
2 | Es wird das Datenfeld "object" geplugged und durchsucht. |
Modul | Kurzbeschreibung | |
---|---|---|
billsing.mod | Stücklisteneintrag Modul | |
jobssing.mod | Arbeitsfolge Editiermodul | |
allocsng.mod | billsing.htm | jobssing.htm | Einzelallokation Basis Modul |