Maßeinheit (Fenster ID-120)
Durch "Maßeinheiten" oder auch "Mengeneinheiten" werden nicht-monetäre Maßeinheiten festgelegt. Es können direkte Umrechnungen zwischen Maßeinheiten durchgeführt werden. Das System bietet manche automatische Umrechnungen (z.B. Minute, Stunde, Tag, Arbeitstag, etc.) an. Weitere Maßeinheiten können natürlich selbst im Fenster Maßeinheit angelegt werden.
Dieser Artikel ist von Thomas Bayen. Meine Artikel sind grundsätzlich nie "fertig", sondern immer eine Einladung, sie zu verbessern. Ich lade jeden gerne jederzeit ein, Verbesserungen hier direkt einzupflegen. Wer möchte, kann mich auch gerne kontaktieren.
Maßeinheiten in iDempiere
Manchmal gibt es Artikel, die man in unterschiedlichen Maßeinheiten verkauft. So kann man Kabel in Metern oder als 50m-Rolle verkaufen; Getränke als Flasche, Kasten, Palette oder auch in Litern oder Hektolitern; Farbpigmente in kg oder in amerikanischen Pfund.
Dem Problem begegnet man in iDempiere, indem man alle verwendeten Maßeinheiten einheitlich im Fenster Maßeinheit definiert. Dann stellt man bei jedem einzelnen Artikel ein, was seine Basiseinheit ist (z.B. Flasche). Nun kann man auf einer Registerkarte Umrechnungen in andere Einheiten angeben.
Bestimmte Angaben wie der Preis oder die Lagermenge werden immer in der Basiseinheit angegeben.
Ich habe übrigens festgestellt, das in einer Rechnungszeile die Berechnung der Mengen nur dann ordentlich funktioniert, wenn die gewählte Maßeinheit auch einen Maßeinheits-Typ angibt. Hier kann man auch "Other" auswählen, wenn keiner der anderen Werte passt.
Festlegung der Standard-Maßeinheit eines Artikels
Schon aus Compiere-Zeiten ist festgelegt, das die Basiseinheit eines Artikels immer die kleinste verwendete Einheit sein muss. Das dient insbesondere dazu, Rundungsfehler bei der Lagerhaltung zu vermeiden. Die Umrechnungen geschehen nämlich mit einer bei der Maßeinheit angegebenen Genauigkeit. Wer z.B. einen 24er Kasten Bier anlegt und jetzt eine einzelne Flasche verkauft, würde nämlich 1/24 (mit einer Genauigkeit von z.B. 2 Stellen) = 0,04 Kästen verkaufen. Wer das 24 mal macht, hat 0,04*24 = 0,96 Kästen verkauft. Natürlich kann man die Genauigkeit hochstellen, aber letztlich ist 1/24*24 für dezimal arbeitende Zahlen nie gleich 1.
Wer sich dieses Risikos bewusst ist, kann iDempiere dennoch so umstellen, das man eine kleinere Umrechnungseinheit angeben kann. Das geschieht mit einem Sysconfig Key namens ProductUOMConversionRateValidate. Die genaue Diskussion, die zur Implementierung dieses Keys geführt hat, kann man unter http://sourceforge.net/p/adempiere/bugs/441/ sehen.
Normen für Maßeinheiten
X12DE355
Die Kodierung der Maßeinheiten wird gemäß ASC X12 angegeben. Diese Organisation ist für die Wartung des US-EDI-Standards (en) zuständig. Sie hat eine Reihe von Dokumenten (DE=Code Data Elements) veröffentlicht, under anderem den Code DE355, das mit vollem Namen "Unit or Basis for Measurement Code" heißt.
Im DE355 ist beispielsweise definiert, daß der Code für Stück EA (=Each) ist. Ein "Six pack" wird mit P6 kodiert.
Bei robert-kuhlemann oder mercateo.com findet man einige Übersetzungen der Maßeinheiten.
ISO-Code
Die ISO-Norm 31 beschreibt Maßeinheiten. Es gibt aber keine Norm (ISO-Code) für Bezeichnungen von Maßeinheiten. Auch das Internationale Größensystem ISQ (International System of Quantities) / ISO 80000 ist in diesem Punkt nicht ganz hilfreich. Dort und im internationalem Einheitensystem SI (Système international d’unités) werden die normativen Grundgrößen (Raum, Zeit, ...) definiert.
SI-Einheiten
Es gibt demnach sieben SI-Basiseinheiten, abgeleitete Einheiten und zugelassene nicht SI-Einheiten:
- SI-Basiseinheiten
- Länge : Meter m
- Masse : Kilogramm kg
- Zeit : Sekunde s
- elektrische Stromstärke : Ampere A
- Temperatur : Kelvin K
- Stoffmenge : Mol mol
- Lichtstärke : Candela cd
- zugelassene nicht SI-Einheiten
In Deutschland gelten die SI-Einheiten für den amtlichen und geschäftlichen Verkehr (Einheiten- und Zeitgesetz). Die Physikalisch-Technische Bundesanstalt (PTB) hat im März 2012 das Merkblatt "Die gesetzlichen Einheiten in Deutschland" veröffentlicht.
UNECE recommendation 20/21
Es gibt aber eine Empfehlung der UN-Wirtschaftskommission UNECE die über die Basisgrößen hinausgeht. Recommendation No. 21 enthält über 2000 informative Codes "for types of cargo, packages and packaging materials".
Siehe Rec21rev11e_Annex-V-VI_2020.xls
bzw. rec20_Rev7e_2010.xls
mit Annex I bis III.
- - Annex I beinhaltet ca 1000 (physikalische) SI-Basiseinheiten und ca 600 abgeleitete Einheiten (meist aus UK und US, wie foot oder mile)
- - in Annex II & III kommen ca 700 informative UoM's hinzu (Level/Category 3 units) mit EA (=Each)
- - mit Annex IV & V wurden zusätzlich ca 400 Definitionen für Verpackungen eingeführt, P6 (=Six pack)
Maßeinheiten für Stück
Die UNECE Empfehlungen 20 und 21 beinhalten mehrere Kodierungen für Stück. C62 (one; unit), H87 (piece), NAR (number of articles), XPP (piece). Oft wird auch PCE, bzw. Stk verwendet, was nicht normkonform ist. EA (each) ist meine Präferenz, wird auch von sfti.se empfohlen.
(Danke an Eugen Hanussek für die oben genannte Spezifizierung der Maßeinheiten)
Fenster
Fenster: Maßeinheit
Beschreibung: Verwaltung Maßeinheiten
Hilfe: Das Fenster "Maßeinheit" wird verwendet um nicht-monetäre Maßeinheiten festzulegen. Es bestimmt auch ob Umrechnungen zwischen Maßeinheiten erlaubt sind und wie diese durchgeführt werden. Das System bietet manche automatische Umrechnungen (z.B. Minute, Stunde, Tag, Arbeitstag, etc.) wenn sie nicht hier explizit festgelegt sind.Umrechnungen müssen direkt sein (d.h. wenn nur je eine Umrechnung zwischen A-B und B-C vorliegt, kann das System nicht zwischen A-C umrechnen. Dazu müsste eine Umrechnung explizit festgelegt werden).
TAB: Maßeinheit
Beschreibung: Maßeinheiten festlegen
Hilfe Im Register "Maßeinheit" legen Sie nicht-monetäre Maßeinheiten fest.
Folgende Felder werden in der Standardmaske angezeigt:
Original Name (englisch) | Name (deutsch) | Beschreibung | Hilfe | Technische Daten |
---|---|---|---|---|
Client | Mandant | Mandant für diese Installation | Ein "Mandant" ist eine Firma oder eine juristische Person. Mandanten können keine Daten teilen/nicht gemeinsam auf Daten zugreifen. | AD_Client_ID numeric(10) NOT NULL Table Direct |
Organization | Organisation | Organisatorische Einheit innerhalb des Mandanten | Eine "Organisation" ist die Geschäftseinheit eines Mandanten oder eine juristische Person, z.B. ein Geschäft oder eine Abteilung. Organisationen können gemeinsam auf Daten zugreifen, bzw. die Daten gemeinsam verwenden. | AD_Org_ID numeric(10) NOT NULL Table Direct |
UOM Code | Maßeinheit Code | Kodierung gemäß UOM EDI X12 | Der "Maßeinheit Code" kennzeichnet die Kodierung gemäß EDI X12 Code Data Element 355 (Einheit oder Basis für Messungen) | X12DE355 character varying(4) NOT NULL String |
Symbol | Symbol | Symbol für eine Maßeinheit | Das "Symbol" einer Maßeinheit für Anzeige und Druck | UOMSymbol character varying(10) String |
Name | Name | Alphanumerischer Identifikator des Eintrags | Der "Name" eines Eintrags wird zusätzlich zum Suchschlüssel als Standardsuchoption verwendet. Ein Name kann bis zu 60 Zeichen lang sein. | Name character varying(60) NOT NULL String |
Description | Beschreibung | Optionale Kurzbeschreibung des Datensatzes | Eine Beschreibung ist auf 255 Zeichen begrenzt. | Description character varying(255) String |
UOM Type | Maßeinheit Typ | null | null | UOMType character varying(2) List |
Active | Aktiv | Der Datensatz ist im System aktiv | Es gibt zwei Methoden um Datensätze im System zu sperren: Eine Methode ist den Datensatz zu löschen. die andere ist es den Datensatz zu deaktivieren. Ein deaktivierter Datensatz kann nicht mehr ausgewählt werden, steht aber weiterhin in Berichten zur Verfügung. Es gibt zwei Gründe dafür einen Datensatz zu deaktivieren und nicht zu löschen: (1) Das System benötigt den Datensatz für Audits (2) Der Datensatz wird von anderen Datensätzen referenziert. Es ist z.B. nicht möglich einen Geschäftspartner zu löschen, wenn zu diesen Geschäftspartner Rechnungen vorliegen. In diesem Fall wird der Geschäftspartner deaktiviert und kann nicht mehr für zukünftige Vorgänge verwendet werden. | IsActive character(1) NOT NULL Yes-No |
Default | Standard | Standardwert | Das Optionsfeld "Standard" zeigt an, ob ein Eintrag als Standardwert benutzt wird. | IsDefault character(1) NOT NULL Yes-No |
Standard Precision | Standardgenauigkeit | Rundungsregel für errechnete Beträge | Die "Standardgenauigkeit" gibt die Anzahl der Dezimalstellen an, auf die Beträge in Buchungsvorgängen und Belegen gerundet werden. | StdPrecision numeric(10) NOT NULL Integer |
Costing Precision | Genauigkeit Kostenrechnung | Rundungsregel für Kostenberechnungen | Die "Genauigkeit Kostenrechnung" legt die Anzahl der Nachkommastellen fest, auf die in der Kostenrechnung gerundet wird. | CostingPrecision numeric(10) NOT NULL Integer |
TAB: Übersetzung
Beschreibung: Übersetzung Maßeinheiten
Hilfe null
Folgende Felder werden in der Standardmaske angezeigt:
Original Name (englisch) | Name (deutsch) | Beschreibung | Hilfe | Technische Daten |
---|---|---|---|---|
Client | Mandant | Mandant für diese Installation | Ein "Mandant" ist eine Firma oder eine juristische Person. Mandanten können keine Daten teilen/nicht gemeinsam auf Daten zugreifen. | AD_Client_ID numeric(10) NOT NULL Table Direct |
Organization | Organisation | Organisatorische Einheit innerhalb des Mandanten | Eine "Organisation" ist die Geschäftseinheit eines Mandanten oder eine juristische Person, z.B. ein Geschäft oder eine Abteilung. Organisationen können gemeinsam auf Daten zugreifen, bzw. die Daten gemeinsam verwenden. | AD_Org_ID numeric(10) NOT NULL Table Direct |
UOM | Maßeinheit | Maßeinheit | Die Maßeinheit bestimmt eine eindeutige (nicht monetäre) Maßeinheit | C_UOM_ID numeric(10) NOT NULL Table Direct |
Language | Sprache | Sprache dieses Eintrags | Im Feld "Sprache" wird die Sprache für Anzeige und Formatierung festgelegt | AD_Language character varying(6) NOT NULL Table |
Active | Aktiv | Der Datensatz ist im System aktiv | Es gibt zwei Methoden um Datensätze im System zu sperren: Eine Methode ist den Datensatz zu löschen. die andere ist es den Datensatz zu deaktivieren. Ein deaktivierter Datensatz kann nicht mehr ausgewählt werden, steht aber weiterhin in Berichten zur Verfügung. Es gibt zwei Gründe dafür einen Datensatz zu deaktivieren und nicht zu löschen: (1) Das System benötigt den Datensatz für Audits (2) Der Datensatz wird von anderen Datensätzen referenziert. Es ist z.B. nicht möglich einen Geschäftspartner zu löschen, wenn zu diesen Geschäftspartner Rechnungen vorliegen. In diesem Fall wird der Geschäftspartner deaktiviert und kann nicht mehr für zukünftige Vorgänge verwendet werden. | IsActive character(1) NOT NULL Yes-No |
Translated | Übersetzt | Die Spalte wird übersetzt | Das Optionsfeld "Übersetzt" zeigt an, ob eine Spalte übersetzt wird. | IsTranslated character(1) NOT NULL Yes-No |
Symbol | Symbol | Symbol für eine Maßeinheit | Das "Symbol" einer Maßeinheit für Anzeige und Druck | UOMSymbol character varying(10) String |
Name | Name | Alphanumerischer Identifikator des Eintrags | Der "Name" eines Eintrags wird zusätzlich zum Suchschlüssel als Standardsuchoption verwendet. Ein Name kann bis zu 60 Zeichen lang sein. | Name character varying(60) NOT NULL String |
Description | Beschreibung | Optionale Kurzbeschreibung des Datensatzes | Eine Beschreibung ist auf 255 Zeichen begrenzt. | Description character varying(255) String |
TAB: Umrechnung
Beschreibung: Standardumrechnungen der Maßeinheit
Hilfe Im Register "Umrechnung" können Sie Kurse für die Umrechnung einer Ausgangswährung in die Buchführungs- oder Berichtswährung festlegen. Das System bietet einige Standardumrechnungen an, z. B. Minute, Stunde, Tag, Arbeitstag, usw., wenn sie hier nicht explizit abweichend festgelegt sind. Umrechnungen müssen direkt erfolgen. Wenn Sie also eine Umrechnung von A nach B und von B nach C definieren, kann das System nicht von A nach C konvertieren. Sie müssen dies explizit festlegen.
Folgende Felder werden in der Standardmaske angezeigt:
Original Name (englisch) | Name (deutsch) | Beschreibung | Hilfe | Technische Daten |
---|---|---|---|---|
Client | Mandant | Mandant für diese Installation | Ein "Mandant" ist eine Firma oder eine juristische Person. Mandanten können keine Daten teilen/nicht gemeinsam auf Daten zugreifen. | AD_Client_ID numeric(10) NOT NULL Table Direct |
Organization | Organisation | Organisatorische Einheit innerhalb des Mandanten | Eine "Organisation" ist die Geschäftseinheit eines Mandanten oder eine juristische Person, z.B. ein Geschäft oder eine Abteilung. Organisationen können gemeinsam auf Daten zugreifen, bzw. die Daten gemeinsam verwenden. | AD_Org_ID numeric(10) NOT NULL Table Direct |
UOM | Maßeinheit | Maßeinheit | Die Maßeinheit bestimmt eine eindeutige (nicht monetäre) Maßeinheit | C_UOM_ID numeric(10) NOT NULL Table Direct |
UoM To | Maßeinheit Nach | Zielmaßeinheit | Die "Zielmaßeinheit" gibt die Zielmaßeinheit einer Umrechnung an. | C_UOM_To_ID numeric(10) NOT NULL Table |
Product | Artikel | Artikel, Dienstleistung, Gegenstand | Kennzeichnet einen Artikel der von dieser Organisation eingekauft oder verkauft wird. | M_Product_ID numeric(10) Search |
Active | Aktiv | Der Datensatz ist im System aktiv | Es gibt zwei Methoden um Datensätze im System zu sperren: Eine Methode ist den Datensatz zu löschen. die andere ist es den Datensatz zu deaktivieren. Ein deaktivierter Datensatz kann nicht mehr ausgewählt werden, steht aber weiterhin in Berichten zur Verfügung. Es gibt zwei Gründe dafür einen Datensatz zu deaktivieren und nicht zu löschen: (1) Das System benötigt den Datensatz für Audits (2) Der Datensatz wird von anderen Datensätzen referenziert. Es ist z.B. nicht möglich einen Geschäftspartner zu löschen, wenn zu diesen Geschäftspartner Rechnungen vorliegen. In diesem Fall wird der Geschäftspartner deaktiviert und kann nicht mehr für zukünftige Vorgänge verwendet werden. | IsActive character(1) NOT NULL Yes-No |
Multiply Rate | Faktor | Der "Multiplikationsfaktor" mit dem ein Ausgangswert multipliziert wird um den Zielbetrag zu erhalten. | Um den Ausgangswert in den Zielwert umzurechnen, wird der Ausgangswert mit dem Faktor multipliziert. Wenn Sie einen Multiplikationsfaktor eingeben, wird der Divisionsfaktor automatisch berechnet. | MultiplyRate numeric NOT NULL Number |
Divide Rate | Divisor | Der "Divisionsfaktor" durch den der Ausgangswert dividiert wird, um den Zielbetrag zu erhalten. | Um den Ausgangswert in den Zielwert umzurechnen, wird der Ausgangswert durch den Divisionsfaktor dividiert. Wenn Sie einen Divisionsfaktor eingeben, wird der Multiplikationsfaktor automatisch berechnet. | DivideRate numeric NOT NULL Number |