Lade...
 

CX_COSTS - Kosten

CX_COSTS

Klassenhierarchie
Beschreibung:

Folgende Kosten existieren:

 

Typ Objekttyp
Kostenart CX_COST_TYPE
Kostenstelle CX_COST_CENTER
Kostenträger CX_COST_OBJECTIVE

 

Alle Buchungen der Kostenrechnung, unabhängig davon, ob sie für
Kostenstelle, Kostenträger oder Projekt entstanden sind, werden durch
die Kostenart als Aufwands-, Ertrags- oder Leistungsart gekennzeichnet.
Dabei entspricht die Kostenart (meist direkt) einem G+V Konto der
Finanzbuchhaltung.

Eine Kostenart dient also der Klassifizierung von Kosten; Kostenstellen,
Kostenträger, etc. dienen nur der Zuteilung. Diese Zuteilung muss direkt
erfasst werden und nachträglich veränder- oder erweiterbar sein.

Kostenarten müssen (sollten) daher immer mit Multi-Dimensionalen
Transaktionen verbucht werden, also: CX_MULTIPLE_ACCOUNTS_TXN oder 
CX_SPLIT_ACCOUNT_TXN Objekten, in denen subBookings die Kostenaufteilung
steht.
Die Funktion Dimensions() gibt als Vektor die Kosten-Dimension einer
Kostenbuchung zurück; Ist es die Kostenarten Buchung selber, dann ist die
Dimension nur das Kostenarten-Konto, ist es eine untergeordnete Kosten-
stellen Buchung, dann besteht die Dimension aus Kostenart und Kostenstelle.

Die Kostenartenrechnung ist Ausgangspunkt einer Kostenrechnung. Ihr Ergebnis 
ist, dass die urbelegorientierten Kosten-, Erlös- und Leistungsinformationen
- soweit es geht - den Kostenarten, Erlösarten, Kostenstellen und
Leistungsarten zugeordnet und die Einzelkosten mit den Kostenträgern
verbunden sind.

Kosten(arten), die direkt Kostenträgern zugerechnet werden können, werden 
als Einzelkosten, die übrigen als Gemeinkosten bezeichnet.
Gemeinkosten können weiterhin in variable und fixe Kosten unterteilt werden.
Die Gemeinkosten können demnach nur dem Ort ihrer Entstehung zugeordnet
werden.

Auf die Kostenarten- baut die daher die Kostenstellenrechnung auf, deren Ergebnis 
meist in Form eines BAB's dargestellt wird. Darin werden die o.g. Einzelkosten
oberhalb der eigentlichen Kostenstellenrechnung aufgeführt. Sie werden als
Leistungsgrößen für die Ermittlung der Material- bzw. Fertigungsgemein-
kostensätze herangezogen.

Die Aufgaben des BAB sind:
- Gemeinkosten verursachergerecht den Kostenstellen zuordnen
- Errechnung der Gemeinkostenzuschläge je Kostenstelle (Verhältnis
aus Einzelkosten zu Gemeinkosten)
- Vergleiche der Kosten innerhalb und zwischen den Kostenstellen

Die Kostensätze einer Kostenstelle können nach der Ist-, Normal- oder 
Plankostenrechnung ermittelt werden. (Wert der Variablen costCenterCostingEnum)

Bei Kostenstellen/Kostenarten Konten können über direkt zugeordnete
Formel-Attribute z.B. prozentuale Aufteilungen in fixe und variable Kosten
vorgenommen werden, falls eine derartige Aufteilung nicht direkt - oder nur 
unter sehr grossen Anstrengungen - erfolgen kann.

Istkostenrechnung:
Aus Gesamtkosten und Beschäftigung errechnet sich der aktuelle Kostensatz 
zu Vollkosten. Wird eine Spaltung der Kostensätze (fix-unbar, fix-bar, 
variabel) vorgenommen, so lassen sich auch die Teil- und Grenzkostensätze 
errechnen (Teilkostenrechnung). Grenzkostensätze lassen sich mit CX_PER_VALUE
abbilden.

Standard(Normal)kostenrechnung:
Je nach Voll- oder Teilkostenrechnung werden Plan-Kostensätze erfasst.
Die Sollkosten ermitteln sich aus Plan-Kostensatz mal Ist-Beschäftigung.
Wird auch eine Plan-Beschäftigung erfasst, so kann die Beschäftigungs-
abweichnung (Fixkostendeckung) ermittelt werden.

Plankostenrechnung:
Plan-Kostensätze werden auch nach Kostenarten unterteilt erfasst. Darüber hinaus
ist die Beschäftigung zu planen.

Jegliche Kostenstrukturen, d.h. die grundsätzliche Zuordnung, welche Kostenart
für welche Kostenstelle relevant ist, können über Strukturelemente definiert
werden. Meist ergibt sich diese Zuordnung direkt aus dem Aufbau eines BAB's, der
ebenso als Strukturobjekt abgebildet wird, oder ist mit diesem sogar identisch.

Eine Einteilung in Kostenstelle oder Kostenplatz und deren hierachische 
Gliederung ist beliebig.

Ebenso ist eine Einteilung in sogenannte Hilfs-Kostenstellen, Vor-Kostenstellen,
End-Kostenstellen, usw. frei. Diese strukturellen Gliederungen und deren 
mögliche Verdichtungen werden über Struktur-Elemente realisiert.

Die Leistungsverflechtung zwischen den Kostenstellen ist somit unabhängig von 
ihrer organisatorischen Struktur, kann aber auch auf ihr basieren.
Leistungsverflechtungen werden ebenfalls über CX_STRUCTURE Objekte und
zugehörige CX_ALLOCATION Objekte realisiert.

Innerhalb der Kostenstellenrechnung werden Gemeinkosten in primäre und sekundäre 
Kosten unterteilt. Primäre Kosten sind Kosten, die durch externe Einkäufe 
entstanden sind, sekundäre Kosten betreffen Leistungen, die von Stellen 
innerhalb des Betriebes bezogen werden. Diese Unterscheidung wird wichtig bei
Verteilung der Kosten:

1. Verteilung der Primärkosten
Zunächst werden die lediglich nach Kostenart erfassten (primären) Gemeinkosten
über Leistungsgrößen auf die Kostenstellen verteilt.

Die Leistungsmessung erfolgt anhand einer Leistungs- oder Bezugsgrösse, die als
slot im Konto der Kostenstelle mitaufgeführt wird (neben costs, revenues, ..).
Die Ist-Leistung einer Kostenstelle kann entweder direkt in ein Balance-Objekt
der Kostenstelle geschrieben werden (manuell oder aus einer Datenübernahme),
bzw. auch direkt (da ja als slot im Konto definiert) gebucht werden.

Es können auch beliebige, unterschiedliche Leistungsgrößen pro
Kostenstelle definiert werden. Es muss dann allerdings darauf geachtet werden,
dass derart definierte Kostenstellen spezifische Formeln zur Errechnung der
Ist-Kosten und eventueller Weiterbelastungen haben müssen.

2. Umlage der Sekundärkosten
Bei hierarchischer Umlage von Kostenstellen ist nur darauf zu achten, dass
die Umlage "von unten nach oben" erfolgt (Stufenleiterverfahren).
Bei gegenseitiger Leistungsverflechtung der (Hilfs-)Kostenstellen ergibt sich
ein lineares Gleichungssystem, dass iterativ gelöst werden kann. Im ersten
Schritt wird der ursprüngliche Betrag (Summe Istkosten) auf die Kostenstellen
verteilt, in den folgenden Iterationsschritten wird dann immer nur noch der
Betrag umgelegt, den die Kostenstelle beim vorhergehenden Schritt empfangen
hat. Schon nach wenigen Rechenschritten (ca. 5-6) ist die Summe des unverteilten
Restes aller Kostenstellen so klein, dass die Iteration abgebrochen werden kann.

Kostenarten können über Verteilungsstrukturen direkt auf Kostenstellen
verteilt werden, auch ohne fiktive Kostenstellen !
Die Verteilung der Kosten kann Kostenarten abhängig oder auch unter einer
statistischen Kostenart, etc durchgeführt werden !
Die Verteilung erfolgt über Strukturen und angebundene Allokationsobjekte.

Als Abschluss der Kostenstellenrechnung werden die Kalkulationssätze gebildet,
indem die Gesamtkosten der Kostenstelle durch den Wert der Leistungsgröße der
Kostenstelle dividiert wird. Je nach Kostenrechnungsverfahren (Vollkosten-, 
Teilkostenrechnung) wird dieses für die Gesamtkosten oder lediglich für die
variablen Kosten der Stelle berechnet.

Im Rahmen der Kostenträgerrechnung werden die Kosten der Kostenträger bestimmt.
Werden sie pro Einheit errechnet, sowird dieses als Kostenträgerstückrechnung
oder Kalkulation bezeichnet, werden die Kosten eines Kostenträgers für eine 
bestimmte Periode errechnet, so wird dieses als Kostenträgerzeitrechnung 
bezeichnet.

Der Kalkulationsvorgang innerhalb der Kostenträgerstückrechnung vollzieht
sich folgendermassen:

Materialkosten inkl. Materialgemeinkostenzuschläge (Stücklisten)
+ Fertigungskosten inkl. Fertigungsgemeinkostenzuschläge (Arbeitspläne)
= Herstellkosten
+ Verwaltungsgemeinkostenzuschläge
+ Vertriebsgemeinkostenzuschläge
+ Verwaltungs-/Vertriebssondereinzelkosten
= Selbstkosten

Die Differenz aus Verkaufspreis und Selbstkosten ist der Deckungsbeitrag.

Die Kostenträgerzeitrechnung (auch als Betriebsergebnis- oder Kurzfristige
Erfolgsrechnung bezeichnet) setzt die Kostenträgerstückrechnung als 
wesentlichen Datenlieferanten voraus. Es wird zwischen dem Gesamtkostenverfahren 
und dem Umsatzkostenverfahren unterschieden und weiter nach Ist-, Plan- und
Normalkosten.

Die Kostenträgerzeitrechnung dient zur Erfolgsplanung und zur Erfolgskontrolle.
Dabei kann sie sich auf unterschiedliche Kostenträger wie Einzelartikel, 
Artikelgruppen, einzelne Kunden, Kundengruppen, Absatzgebiete, Vertreter, usw.
beziehen.

Da es ausgeschlossen ist, alle möglichen Berichte als Standardauswertungen
vorzusehen, werden spezielle Struktur-Objekte (OLPA Objekte) für diese 
Aufgabenstellungen zur Verfügung gestellt.

Bei der kurzfristigen Erfolgsrechnung auf Vollkostenbasis ergibt sich der 
Gewinn, indem zu dem Periodenerlös die bewerteten Bestandsveränderungen an
Halb- und Fertigfabrikaten addiert werden und davon die Gesamtkosten
subtrahiert werden.

Beim Umsatzkostenverfahren auf Basis von Grenzkosten (Deckungsbeitragsrechnung) 
werden von dem Verkaufspreis lediglich die variablen Stückkosten abgezogen.
(DB I). Die fixen Kosten werden nach Kostenarten erfasst und global
abgezogen (DBII).


SLOTS
costs Kosten
marginalVariableCosts variabler (Grenz)Kostensatz
variableCosts variable Kosten
marginalFixedCosts fixer, barer (Grenz)Kostensatz
fixedCosts fixe, bare Kosten
marginalimputedCosts fixer, unbarer (Grenz)Kostensatz
imputedCosts fixe, unbare (kalkulatorische) Kosten
revenues Erlöse
marginalRevenues (Grenz)Erlössatz
activity Beschäftigung
activityLevel Beschäftigungsgrad
activityVariance Beschäftigungsabweichung (Fixkostendeckung)
budgetVariance Verbrauchsabweichnung


FORMELN
?? Soll-Kosten
budgetBalance.costs = budgetBalance.fixedCosts + budgetBalance.imputedCosts +
budgetBalance.marginalCosts * currentBalance.activity

?? Ist-Kosten
currentBalance.costs = currentBalance.fixedCosts + currentBalance.imputedCosts +
currentBalance.marginalCosts * currentBalance.activity + 


?? Verbrauchsabweichung
currentBalance.budgetVariance = 
budgetBalance.marginalCosts * currentBalance.activity -
budgetBalance.marginalCosts * budgetBalance.activity

?? Soll-Teilkosten
currentBalance.variableCosts = 
budgetBalance.marginalCosts * currentBalance.activity


Beschäftigungsabweichung
currentBalance.activityVariance = (budgetBalance.marginalFixedCosts +
budgetBalance.marginalImputedCosts) *
currentBalance.activity - 
(budgetBalance.marginalFixedCosts +
budgetBalance.marginalImputedCosts) *
budgetBalance.activity

Code-Beispiel:
...
Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
SanityCheck     INTEGER Prüfung auf Konsistenz des Objektes
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  
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 ?
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
GetStructure   OBJECT OBJECT Untergeordnete Struktur suchen, die zur selben Hierarchie gehört
InsertMonitor   OBJECT   ?
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 ?
RemoveMonitor   OBJECT   ?
RemoveStateStructure   STRING   Status-Struktur nach uniqueID finden und Verbindung lösen
RestrictedValidity *     Gültigkeitsbereich eingeschränkt?
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
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
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

 

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
allocations REL_MN CX_EXPANDABLE   ?
clearingObjects REL_MN CX_CLEARING_OBJECT   Abrechnungskreise
generalTerms REL_1M CX_GENERAL_TERMS   ?
monitors REL_MN CX_MONITOR   ?
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