Class hierarchy
Description: (Business Pattern)

A single allocation describes a use or a resource of a business object, depending on the point of view.


In our example above, the single allocation describes a resource from the viewpoint of the business object Work Center (CX_WORK_STATION) and a usage from the viewpoint of the business object Machine (CX_MACHINE). As we can see, this is dependent on the type of backrelation from the individual allocation to the business object. In the case of a resource, a business object is referenced by the single allocation via the back relation "allocators", in the case of a usage, the single allocation points to the business object via the data field "object".

In order to show the use of a business object, it is not enough to know only the business object (to reference it via the reference "object"), it is also necessary to specify the quantity of the business object that is "appropriated". This is described via the two data fields "amount" and "baseAmount", which are both attributes of the single allocation object.


  • "Machine A with a time of 5 hours (occupy)" (work plan)
  • "Part B in a quantity of 17 pieces (insert)" (parts list)
  • "Person C with a time of 2 hours (reserve)" (project planning)

The business object (in the above examples A. B or C respectively) is the "object" within a single allocation CX_SINGLE_ALLOCATION, the specifications "5 hours", "17 pieces" or "2 hours" describe the scope of use of the business object under consideration. In the business object itself, an individual allocation is linked via the back relation CX_BUSINESS_OBJECT::allocations. The function CX_BUSINESS_OBJECT::Allocators(os_set) returns all uses of a business object.

As shown in the graph above, single allocation describes a resource from the point of view of the work centre. The single allocation is referenced by the relation "allocations", the back relation from the single allocation to the business object is described by the relation "allocators".

Code example:
  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)
List of methods (MDI)
Function MA* Parameters Return Brief description
Object STRING OBJECT Return of the referenced business object
ReferenceObject OBJECT, INTEGER
SanityCheck INTEGER Check for consistency of the object
AllocatorByCondition STRING OBJECT
AllocatorByConditionMA * STRING
AllocatorsByCondition STRING COLLECTION
AllocatorsByConditionMA * STRING
Amount OBJECT Calculates the total amount as the sum of the amount and baseAmount fields
AmountWeak OBJECT
AssignSlot * STRING Set/read slots that refer to another data field
ClassFilter STRING, INTEGER OBJECT This object, if it corresponds to a certain class
ConditionedFilter STRING OBJECT
ConditionedFilter2 OBJECT OBJECT
Deleted INTEGER Object marked as deleted?
Description STRING Name of this object
GetDomain INTEGER Domain of this object
GetSiblings COLLECTION All siblings of this object
GetSiblings2 COLLECTION All siblings of this object
GetSlotEntries VECTOR<object></ob Return of internal information about slots
LastUpdate OBJECT Date of the last write access
LastUser INTEGER User who last had write access to the object
link OBJECT Add this object to the list of objects with validity
NextValidObject OBJECT Subsequent validity object in time
PreviousValidObject OBJECT Previous validity object in time
RestrictedValidity * Area of validity restricted?
SetDomain INTEGER,INTEGER Set domain
SetInspectionMessage INTEGER
SetPreMessage INTEGER
ShortName STRING Short name of this object
Siblings * Objects with validity
SpanDateValidity * Period of validity
string INTEGER CX_STRING Returns the string representation of the object
UniqueID STRING Content of the fixed data field "uniqueID
Unlink Remove this object from the list of objects with validity
Unlink2 Remove this object from the list of objects with validity
Valid OBJECT INTEGER Check validity
ValidSince OBJECT Start of validity period
ValidToday INTEGER Valid today?
ValidUntil OBJECT End of validity period
VerifySiblings INTEGER Check ring of exchange objects

* MA = Member Access function,
grey background = inherited function

Data directory (DDI)
Data field Type Reference class I* Brief description
object REL_1M CX_BUSINESS_OBJECT the assigned object ... (REL_1M for CX_BUSINESS_OBJECT::allocations
singleAllocationEnum ENUMCHAR 0: no control
1: if quantity = zero, neglect allocation
2: Fixed quantity (no longer used)
allocators REL_MN CX_EXPANDABLE which objects are described by this allocation object. (REL_MN for CX_BUSINES_OBJECT)
amount POINTER CX_AMOUNT Quantity of the allocation, valid per reference quantity of the main allocation. Quantities are multiplied in the hierarchy (CX_PRODUCT_AMOUNT)

The quantity can be assigned to a slot variable via assigned slot. If the set is a specific variable, then this variable is specified in a formula.

attributeSet POINTER CX_ATTRIBUTE_SET Attributes for the description of the allocation
baseAmount POINTER CX_AMOUNT Base quantity, always applies per allocation, regardless of the quantity of allocations higher up in the hierarchy
uniqueID STRING * Unique key
validity POINTER CX_VALIDITY Validity period of the object

* I = Indexable data field,
grey background = inherited data field

Search the PlugSpace
Order Description
2 The data field "object" is plugged and searched.
Use in AppsWH
Module Brief description
billsing.mod Parts list entry module
jobssing.mod Work sequence editing module
allocsng.mod billsing.htm | jobssing.htm Individual allocation of basic module