Get-CustomUnitFromNormalized #
ÜBERSICHT #
Ermittelt die kundenspezifische Mengeneinheit zu einer normierten ISO-Einheit (z.B.. “C62”).
SYNTAX #
Get-CustomUnitFromNormalized [[-Unit] <string>] [[-Conn] <__ComObject>] [[-CustomUnits] <string>]
[-AllowInsert]
BESCHREIBUNG #
Diese Funktion dient zur Rückübersetzung eines ISO-konformen Mengeneinheitscodes (z.B.. “C62”, “KGM”) in eine vom Anwender verwendete MengenEH-Bezeichnung. Je nach Parametern wird in folgenden Quellen gesucht:
- Datenbank: Bei Angabe von -Conn wird die SQL-Tabelle dbo.KonMengenEh abgefragt.
- Kommaliste: Alternativ kann über -CustomUnits eine kommagetrennte Liste mit allen verwendeten MengenEH-Bezeichnungen übergeben werden.
- $script:UnitMapping: Eine interne Mappingtabelle liefert mögliche ISO-Zuordnungen samt Synonymen.
- Optional: Mit -AllowInsert kann bei fehlender MengenEH eine neue Einheit in der DB angelegt werden (nur mit -Conn).
Die Funktion berücksichtigt verschiedene Schreibweisen (z.B.. Punkte, Groß-/Kleinschreibung) und gibt die exakt in der Quelle gefundene Bezeichnung zurück.
PARAMETER #
-Unit #
Type: string
Der ISO-Einheit (z.B.. “C62”, “KGM”, “LTR”), die auf eine kundenspezifische Einheit abgebildet werden soll.
-Conn #
Type: __ComObject
Ein COM-basiertes ADO-Connection-Objekt zur Datenbank. Wird benötigt, um Mengeneinheiten aus dbo.KonMengenEh zu laden und ggf. neue anzulegen.
-CustomUnits #
Type: string
Optional: Eine kommagetrennte Liste (z.B.. “stk,stueck,pcs”), falls keine Datenbankverbindung verwendet wird.
-AllowInsert #
Type: switch
Erlaubt bei fehlender MengenEH die automatische Anlage in der ‘dbo.KonMengenEh’. Der ISO-Code wird als Feld GR übernommen, und das erste Synonym aus UnitMapping wird als Bez (Bezeichnung) eingetragen.
AUSGABEN #
string
Die gefundene oder neu angelegte MengenEH-Bezeichnung (z.B.. “Stk”, “kg”) oder ‘$null’, wenn kein Mapping möglich war.
BEISPIELE #
# Sucht GR-Bezeichnung in der SQL-Tabelle für ISO-Einheit "C62".
Get-CustomUnitFromNormalized -Unit "C62" -Conn $Conn
# Gibt "ltr" zurück, wenn diese Schreibweise in der Mapping-Zeile zu "LTR" enthalten ist.
Get-CustomUnitFromNormalized -Unit "LTR" -CustomUnits "ltr,litre,liters"
# Legt die Einheit "KGM" in dbo.KonMengenEh an, falls keine passende MengenEH vorhanden ist, mit Bezeichnung "kilogramm".
Get-CustomUnitFromNormalized -Unit "KGM" -Conn $Conn -AllowInsert
HINWEISE #
- Punkte und Groß-/Kleinschreibung in GRs werden beim Vergleich toleriert, aber originalgetreu zurückgegeben.
- Wird eine unbekannte ISO-Einheit übergeben, erfolgt ein Warnhinweis und der Rückgabewert ist ‘$null’.
- Die Funktion nutzt intern die Mappingliste $script:UnitMapping (z.B.. aus EULANDA-Kontext).