Lade...
 

CX_ITEM_PATTERN - Muster

CX_ITEM_PATTERN

Klassenhierarchie
Beschreibung:

Variantenteile. Variantenteile sind zu einem Teil zusammengefasste Teile, die sich in einigen Eigenschaften zwar unterscheiden, aber eigentlich alle das selbe Teil repräsentieren. Ein gutes Beispiel hierfür ist die Schraube. Es gibt nur ein Variantenteil für Schrauben. In den Sachmerkmalen (Eigenschaften) der Schraube wird nun eingepflegt, wodurch sich die verschiedenen Schrauben unterscheiden, z.B. die Gewindesteigung, die Länge, die Gewindeart, der Durchmesser, das Material etc.
Wir haben also nur ein Teil mit unterschiedlichen Sachmerkmalen.

Code-Beispiel:
BeginTXN [ testTxn ] PlugSpace testTxn Get(itemPointer.Item())

Ergebnis: das Unterteil, sofern es eines im Variantenteil gibt, das genau den Ausprägungen der Sachmerkmale, die die testTxn enthält, entspricht. Wenn kein Unterteil gefunden wurde, wird das Variantenteil zurückgegeben.
Fehlen für die Ermittlung Sachmerkmale, wird ein Fehler ausgegeben. Diesen Fehler kann man vermeiden, in dem man entweder die Funktion ItemWeak anstelle von Item aufruft, oder eine Message anmeldet, die ausgelöst wird, wenn Sachmerkmale fehlen (SetBindMessage)

Das nachfolgende Diagramm zeigt, wie Variantenteile, ausgeprägte Unterteile und deren Attribute im ClassiX-System üblicherweise verbunden sind (am Beispiel des globalen Attributs "BREITE"):

CX ITEM PATTERN

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
AttributeSetValuesID     STRING String mit Name-Werte-Paaren der Attribute
AttributesID     STRING Namen aller Attribute
AttributesUnplugged     COLLECTION Ungepluggte Attribute finden
Item     OBJECT Durch die Funktion Item() auf dem Variantenteil wird geprüft, ob die Ausprägungen der im Plugspace befindlichen Sachmerkmale genau der Ausprägung eines Unterteils entsprechen. Wenn ja, wird das ermittelte Unterteil zurückgegeben, ansonsten das Variantenteil. Fehlen für die Ermittlung Sachmerkmale, wird ein Fehler ausgegeben. Diesen Fehler kann man vermeiden, in dem man entweder die Funktion ItemWeak anstelle von Item aufruft, oder eine Message anmeldet, die ausgelöst wird, wenn Sachmerkmale fehlen (SetBindMessage)
PluggedID     STRING "uniqueID" und Namen aller Attribute
SanityCheck     INTEGER Prüfung auf Konsistenz des Objektes
UniqueID     STRING Inhalt des festen Datenfeldes "uniqueID" und der Namen aller Attribute
AccountOwner   STRING INTEGER ?
AccountOwnerMA * STRING   ?
AllocatedObject   STRING, INTEGER OBJECT Liefert allokiertes Objekt des gewünschten Typs
AllocatedObjectMA * STRING, INTEGER   Zugriff auf allokierte Objekte eines gewünschten Typs
Allocation   STRING, INTEGER OBJECT Liefert Allokation des gewünschten Typs
AllocationMA * STRING, INTEGER   Zugriff auf Allokation des gewünschten Typs
Allocations     COLLECTION Allokationen, die sich nicht auf dieses Objekt beziehen
Allocators     COLLECTION Allokationen, die sich auf dieses Objekt beziehen
Asset     OBJECT Liefert Abrechnungsobjekt "Anlagegut" (CX_ASSET)
Attribute   INTEGER OBJECT n. Attribut
BillOfMaterial     OBJECT Liefert Allokation "Stückliste" (CX_BILL_OF_MATERIAL) aus dem zugeordneten Produkt
CastedStructureByCondition   STRING OBJECT  
ClassFilter   STRING, INTEGER OBJECT Dieses Objekt, wenn es einer bestimmten Klasse entspricht
ClearingObject   STRING, INTEGER OBJECT Erste Zuordnung zu Abrechnungsobjekten
ClearingObjectMA * STRING, INTEGER   Zuordnungen zu Abrechnungsobjekten
ConditionedFilter   STRING, OBJECT OBJECT Wird eine Formel ausgeführt, so werden alle Objekte sequentiell im Plugspace nach dem gesuchten Datenfeld durchsucht. Sind im Plugspace nun aber nicht nur Belege, die zum Beispiel ein Datenmember "transaction" haben, sondern auch einfache Werte als Objekte, dann würde die Auswertung der Formel einen Fehler bringen, weil auch vom einfachen Wert versucht wird, das Datenfeld "transaction" auszulesen, was es aber nicht hat. Hier ist die Lösung, vor das gewünschte Datenfeld den ConditionedFilter zu setzen:
ConditionedFilter("inherited(this, CX_LINK_TXN)").FirstSuccessorByCondition("type(TopTransaction())=CX_ITEM_DEMAND")
ConditionedFilter2   OBJECT OBJECT  
ConnectStateStructure   OBJECT, STRING   Verbinden mit der Status-Struktur
Deleted     INTEGER Objekt als gelöscht markiert?
Description     STRING Bezeichnung dieses Objektes
EvaluateTotalMonitors   STRING, INTEGER, STRING OBJECT ?
ForceMonitor   STRING OBJECT Sucht am Teil den angegebenen Monitor und legt diesen auch an, wenn er nicht gefunden wurde
GetDomain     INTEGER Domain dieses Objektes
GetSiblings     COLLECTION Alle Siblings dieses Objektes
GetSiblings2     COLLECTION Alle Siblings dieses Objektes
GetSlotEntries     VECTORject> Rückgabe von internen Informationen zu Slots
GetStructure   OBJECT OBJECT Untergeordnete Struktur suchen, die zur selben Hierarchie gehört
InsertMonitor   OBJECT   ?
ItemWeak     OBJECT  
JobSchedule     OBJECT Liefert Allokation "Arbeitsplan" (CX_JOB_SCHEDULE) aus dem zugeordneten Produkt
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
Monitor   STRING OBJECT Gibt den Monitor des Teils zurück, dessen Klassenname als String übergeben wurde
NextValidObject     OBJECT Zeitlich nachfolgendes Gültigkeitsobjekt
PreviousValidObject     OBJECT Zeitlich vorangehendes Gültigkeitsobjekt
Product     OBJECT Liefert Abrechnungsobjekt "Fertigungsartikel" (CX_PRODUCT)
ProductAllocation   STRING, INTEGER OBJECT Liefert Allokation des gewünschten Typs aus dem zugeordneten Produkt
PurchaseItem     OBJECT Liefert Abrechnungsobjekt "Bestellartikel" (CX_PURCHASE_ITEM)
RemoveMonitor   OBJECT, OBJECT   Entfernt die Verbindung zu einen Monitor aus einem Objekt
RemoveStateStructure   STRING   Status-Struktur nach uniqueID finden und Verbindung lösen
RestrictedValidity *     Gültigkeitsbereich eingeschränkt?
SalesItem     OBJECT Liefert Abrechnungsobjekt "Verkaufsartikel" (CX_SALES_ITEM)
SetDomain   INTEGER, INTEGER   Domain setzen
SetStructure   OBJECT   Stellt sicher, dass eine Struktur zur untergeordneten Struktur wird
ShortName     STRING Kurzbezeichnung dieses Objektes
Siblings *     Objekte mit Gültigkeit
SpanDateValidity *     Gültigkeitsspanne
StateStructure   STRING OBJECT Status-Struktur nach uniqueID (STRING) finden (nicht gewrappt)
StateStructureWrapper   STRING OBJECT Status-Struktur nach uniqueID finden
string   INTEGER CX_STRING Liefert die String-Darstellung des Objektes
StructureByCondition   STRING OBJECT Untergeordnete Struktur mit einer bestimmten Bedingung
StructureByID   STRING OBJECT Untergeordnete Struktur mit einem bestimmten eindeutigen Schlüssel
StructureByIDMA * STRING   Untergeordnete Strukturen mit einem bestimmten eindeutigen Schlüssel
StructureByType   STRING, INTEGER OBJECT Untergeordnete Struktur eines bestimmten Typs
TestDataAccess   STRING, STRING    
TopItem     OBJECT Oberstes Item(pattern) in der Teile-Hierarchie
TotalMonitors   STRING, INTEGER, STRING OBJECT ?
TriggeredStateStructure   STRING OBJECT Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (nicht gewrappt) zurück
TriggeredStateStructureWrapper   STRING OBJECT Versucht Status-Struktur weiterzuschalten und gibt die neue Status-Struktur (gewrappt) zurück
TriggerStateStructures       Schaltet alle Status-Strukturen weiter
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

 

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
items REL_M1 CX_ITEM   Verbindung zu Sachen
allocations REL_MN CX_EXPANDABLE   ?
attributeSet POINTER CX_ATTRIBUTE_SET   Attribute-Tabelle (Sachmerkmale), die Slots näher erklärt
clearingObjects REL_MN CX_CLEARING_OBJECT   Abrechnungskreise
generalTerms REL_1M CX_GENERAL_TERMS   ?
monitors REL_MN CX_MONITOR   ?
pattern REL_1M CX_ITEM_PATTERN   (Übergeordnetes) Muster
structures REL_MN CX_EXPANDABLE   Organisations-Strukturen
uniqueID STRING   * Eindeutiger Schlüssel
validity POINTER CX_VALIDITY   Gültigkeitszeitraum des Objektes

* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld

Verwendung in AppsWH
Modul Kurzbeschreibung