CX_TRANSACTION
Klassenhierarchie
- CX_CLASS
- CX_SIMPLE
- CX_TERMED
- CX_EXPANDABLE
- CX_TRANSACTION
- CX_EXPANDABLE
- CX_TERMED
- CX_SIMPLE
Beschreibung:
Alle Belege eines Unternehmens werden als Transaktionen modelliert. Die Transaktionsobjekte werden mit Hilfe der jeweils spezialisierten Eingabemasken mit Daten gefüllt.
Die Verarbeitung bzw. die Verbuchung der Belege in Konten/Monitoren erfolgt über Transaktionsbeschreibungen, die den Transaktionsmanager steuern.
Es stehen folgende Klassen zur Verfügung:
Transaktion | Objekttyp |
---|---|
Einfacher Beleg (Belegsposition) | CX_TRANSACTION |
Belegkopf mit Belegpositionen | CX_COMPOUND_TXN |
Allokationsbeleg (Stücklisten, Arbeitspläne) | CX_ALLOCATION_TXN |
Arithmetik:
CX_TRANSACTION kann zusammen mit CX_COMPOUND_TXN in einer arithmetischen Operation miteinander verknüpft werden. Erlaubt sind Addition (+) und Subtraktion (-). Es können niemals zwei CX_TRANSACTION-Objekte miteinander verknüpft werden (das würde einen Fehler auslösen), wohl aber zwei CX_COMPOUND_TXN-Objekte (oder davon abgeleitete).
Wird ein CX_TRANSACTION zu einem CX_COMPOUND_TXN oder ein CX_COMPOUND_TXN zu einem CX_TRANSACTION "addiert", so wird folgende Operation durchgeführt:
- CX_COMPOUND_TXN erhält die CX_TRANSACTION als weitere untergeordnete Transaktion
- In CX_TRANSACTION wird die Rückreferenz auf das CX_COMPOUND_TXN gesetzt, so dass dieses zur übergeordneten Transaktion wird
Bei einer Subtraktion wird das CX_TRANSACTION aus der Liste der untergeordneten Transaktionen bei CX_COMPOUND_TXN entfernt und die Rückreferenz auf NULL gesetzt. Wenn das CX_TRANSACTION nicht zu CX_COMPOUND_TXN gehörte, wird nur die Rückreferenz auf NULL gesetzt.
Der Rückgabewert einer solchen Addition oder Subtraktion ist immer das Objekt, das zuletzt auf den Stack gelegt wurde, natürlich wie oben beschrieben modifiziert.
Beim Zusammenspiel von CX_TRANSACTION und CX_COMPOUND_TXN spielt es keine Rolle, in welcher Reihenfolge sie im InstantView®-Code erscheinen. Bei zwei CX_COMPOUND_TXN-Objekten wird das Objekt, was zuerst auf dem Stack liegt, Teil der zweiten CX_COMPOUND_TXN in Form einer untergeordneten Transaktion.
Code-Beispiel:
// Beispiel zur Arithmetik CreateTransObject(CX_TRANSACTION) -> txn CreateTransObject(CX_COMPOUND_TXN) -> compound_txn // txn wird untergeordnete Transaktion von compound_txn, // in beiden Fällen txn compound_txn + compound_txn txn + // Zusammenspiel von zwei CX_COMPOUND_TXN CreateTransObject(CX_COMPOUND_TXN) -> compound_txn2 // compound_txn wird untergeordnete Transaktion von compound_txn2 compound_txn compound_txn2 + // compound_txn2 wird untergeordnete Transaktion von compound_txn compound_txn2 compound_txn +
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
ConnectStateMonitor | OBJECT, STRING | Verbinden mit dem Status- Monitor | ||
FirstPredecessorByCondition | STRING, INTEGER | OBJECT | Untersuchen der Vorgänger- Kette. Liefert den ersten passenden Vorgänger zurück. | |
FirstSuccessorByCondition | STRING, INTEGER | OBJECT | wie FirstPredecessorByCondition nur für Nachfolger. | |
FlattenedUniqueID | STRING, INTEGER | STRING | Sortierbare UniqueID | |
GetProcessed | OBJECT | Als Parameter wird der vorher aus Transaktionsbeschreibungen instanziierte Transaktionsmanager übergeben. Dieser Aufruf entspricht CX_TXN_MANAGER::Process(this) | ||
IsTopTransaction | INTEGER | Prüfung, ob die Transaktion die oberste Transaktion ist. | ||
LevelAboveBottom | INTEGER | Gibt die Ebenentiefe "von unten gesehen" zurück | ||
LevelBelowTop | INTEGER | Gibt die Ebenentiefe "von oben gesehen" zurück | ||
LogicalOrToTop | STRING | OBJECT | Untersuchen der Slot Inhalt der aktuelle Transaktion sowie aller übergeordneten Transaktion. | |
Monitor | STRING, INTEGER | OBJECT | Untersuchen der monitor- Collection. Liefert den ersten passenden Monitor zurück. | |
MonitorByCondition | STRING | OBJECT | Gibt den ersten Monitor zurück, der eine bestimmte Bedingung erfüllt | |
MonitorByUniqueID | STRING | OBJECT | Gibt den ersten Monitor (aus der Collection monitors) mit der uniqueID=STRING | |
MultiplyToTop | STRING | OBJECT | Slot Inhalt bis zu höchsten Ebene auf multiplizieren | |
MultiplyToTopByCondition | STRING, STRING | OBJECT | ||
PostStateByUniqueID | STRING | OBJECT | Vorschauende Rückgabe des Status-Monitors, d.h. analoger Aufruf zu TriggeredStateMonitor() aber OHNE Weiterschalten der Transaktion | |
Predecessors | INTEGER | COLLECTION | Gibt eine Collection aller Vorgänger zurück | |
PredecessorsByCondition | STRING, INTEGER | COLLECTION | Vorgänger-Kette rekursiv mit eine Bedingung untersuchen | |
PredecessorsOfTopType | STRING, INTEGER, INTEGER | COLLECTION | Gibt alle Vorgänger zurück, die zu einer bestimmten Klasse gehören | |
PredecessorsTop | INTEGER | COLLECTION | Gibt eine Collection aller obersten Transaktionen von allen Vorgänger zurück | |
PreviousToPostState | STRING | OBJECT | testet, ob der über uniqueID ausgewählte Statusmonitor der Vorgänger des Statusmonitors ist | |
RemoveStateMonitor | STRING | Status-Monitor nach uniqueID finden und Verbindung lösen | ||
SanityCheck | INTEGER | Prüfung auf Konsistenz des Objektes | ||
SetStateMonitor | STRING, OBJECT | Status-Monitor nach uniqueID finden und die Verbindung zum neuen Status-Monitor umleiten | ||
SmartUniqueID | STRING | uniqueIDs dieser und der übergeordneten Transaktionen, etwas intelligenter formatiert als in UniqueID() | ||
StateMonitor | STRING | OBJECT | Status-Monitor nach uniqueID (STRING) finden (nicht gewrappt) | |
StateMonitorWrapper | STRING | OBJECT | Status-Monitor nach uniqueID finden | |
Successors | INTEGER | COLLECTION | Gibt eine Collection aller Nachfolger zurück | |
SuccessorsByCondition | STRING, INTEGER | COLLECTION | Nachfolger-Kette rekursiv mit eine Bedingung untersuchen | |
SuccessorsOfTopType | STRING, INTEGER, INTEGER | COLLECTION | Gibt alle Nachfolger zurück, die zu einer bestimmten Klasse gehören | |
SuccessorsTop | INTEGER | COLLECTION | Gibt eine Collection aller obersten Transaktionen von allen Nachfolger zurück | |
TopTransaction | OBJECT | Liefert die oberste Transaktion | ||
TotalSlotValue | STRING | OBJECT | Slotinhalt zurückgeben, wenn es ein CX_VALUE ist | |
Transaction | INTEGER | OBJECT | Liefert die Transaktion des n. Levels | |
TriggeredStateMonitor | STRING | OBJECT | Versucht Status-Monitor weiterzuschalten und gibt den neuen Status-Monitor (nicht gewrappt) zurück | |
TriggeredStateMonitorWrapper | STRING | OBJECT | Versucht Status-Monitor weiterzuschalten und gibt den neuen Status-Monitor (gewrappt) zurück | |
UniqueID | STRING | uniqueIDs dieser und der übergeordneten Transaktionen | ||
UniqueIDIndexMaint | INTEGER, OBJECT | INTEGER | für automatische Index-Maintenance de ClassiX-Systems - nicht mit InstantView®-Code aufrufen | |
UniqueIDIndexMaint2 | INTEGER, OBJECT | INTEGER | für automatische Index-Maintenance de ClassiX-Systems - nicht mit InstantView®-Code aufrufen | |
WorkflowRoute | STRING | COLLECTION | Liste aller Status-Monitore | |
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 | ||
PrePostUpdate | INTEGER, OBJECT | Protokollierung von Änderungen | ||
PreviousValidObject | OBJECT | Zeitlich vorangehendes Gültigkeitsobjekt | ||
RestrictedValidity | * | Gültigkeitsbereich eingeschränkt? | ||
SetDomain | INTEGER, INTEGER | Domain setzen | ||
ShortName | STRING | Kurzbezeichnung dieses Objektes | ||
Siblings | * | Objekte mit Gültigkeit | ||
SpanDateValidity | * | Gültigkeitsspanne | ||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
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 |
---|---|---|---|---|
monitors | REL_MN | CX_MONITOR | Monitors | |
transaction | REL_1M | CX_TRANSACTION | Übergeordnete Transaktion | |
transactionStatusEnum | ENUMCHAR | Typ der Transaktion (Bitmuster): Bit 0 (1): nicht gesetzt = angelegt, gesetzt = registriert (verbucht); Bit 1 (2): gesetzt = wartend; Bit 2 (4): gesetzt = gestartet; Bit 3 (8): gesetzt = unterbrochen (Sperrvermerke); Bit 4 (16): gesetzt = beendet (Offene Posten); Bit 5 (32): gesetzt = aufgehoben; Bit 6 (64) gesetzt = übergeben |
||
txnManagerID | SHORT | Bezeichner des Txn-Managers | ||
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_EXPANDABLE. |
2 | Es wird "der Baum" über das Datenfeld "transaction" nach oben durchwandert und jeweils geplugged und durchsucht. |
Modul | Kurzbeschreibung |
---|---|
assetrep.mod | Anlagegüter Auswertungsmodul |
carbonco.mod | Verteilermodul |
cobjrept.mod | Kostenträgerauswertungsmodul |
ecvatsta.mod | Zusammenfassende Meldung Modul |
finabook.mod | Finanzbuchhaltungsbuchung Editiermodul |
fwdfabal.mod | Fibu Saldenvortragsmodul |
loggicid.mod | geänderte Teileanforderungsposition |
loggipit.mod | |
loggipit.htm | Arbeitsvorrat |
loggings.htm | Auftragspositionen im Status zu produzieren Transaktionen Selektionsmodul |
loggiwfl.mod | |
loggipoi.htm | Bereitstellung Basismodul |
loggirit.htm | Bereitstellung Basismodul |
loggitap.htm | Technische Freigabe Basismodul |
loggings.htm | Workflow Transaktionen Selektionsmodul |
loggipoi.mod | Bereitstellungen Selektionsmodul |
loggings.mod | |
loggirec.htm | Transaktionen Basismodul |
loggings.htm | Transaktionen Basismodul |
loggirec.mod | |
loggirec.htm | Wareneingangspositionen Transaktionen Selektionsmodul |
loggings.htm | Wareneingangspositionen Transaktionen Selektionsmodul |
loggirit.mod | Bereitstellungen Selektionsmodul |
txnhisto.mod | Transaktionshistorie Basismodul |
bpihisto.mod | Beleghistorie Modul |
bprhisto.mod | Historie der Belegpositionen Modul |
payhisto.mod | Zahlungshistorie Modul |
loggiapp.mod | Zu genehmigende Bedarfsanforderungen Selektionsmodul |
loggicos.mod | Kostentransaktionen Selektionsmodul |
loggifac.mod | Finanztransaktionen Selektionsmodul |
loggiopa.mod | Finanztransaktionen (Offene Posten) Selektionsmodul |
loggiocr.mod | Finanztransaktionen (Kreditor) Selektionsmodul |
loggiode.mod | Finanztransaktionen (Debitor) Selektionsmodul |
loggioex.mod | Finanztransaktionen (Spesen) Selektionsmodul |
loggiprq.mod | Genehmigte Bedarfsanforderungspositionen Selektionsmodul |
loggisel.mod | Transaktionen Selektionsmodul |
loggisto.mod | Lager Transaktionen Selektionsmodul |
loggibom.mod | Auftragspositionen im Status (Stückliste erstellen) Transaktionen Selektionsmodul |
loggidit.mod | Auftragspositionen im Status (Teile disponiert) Transaktionen Selektionsmodul |
loggidsp.mod | Auftragspositionen im Status (Stückliste erstellt) Transaktionen Selektionsmodul |
loggipor.mod | Bestellpositionen Transaktionen Selektionsmodul |
loggitap.mod | Auftragspositionen im Status (Freigabe Technik) Transaktionen Selektionsmodul |