Ansicht
Dokumentation

MD_ALLOWED_QUANTITY_UNIT - Bestimmung der erlaubten Mengeneinheiten

MD_ALLOWED_QUANTITY_UNIT - Bestimmung der erlaubten Mengeneinheiten

RFUMSV00 - Advance Return for Tax on Sales/Purchases   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Mit diesem Baustein werden die erlaubten logistischen Mengeneinheiten bestimmt. Zur Zeit bietet der Baustein folgende Grundfunktionen:

  • Bestimmung einer Default-ME für die logistisch erlaubten ME
  • Bestimmung der erlaubten ME eines Lieferanten
  • Bestimmung der erlaubten ME eines Abnehmers
  • Bestimmung der erlaubten logistischen ME unter Berücksichtigung der erlaubten Lieferanten- und Abnehmer-ME

Die Auswahl dieser Grundfunktionen erfolgt über Flags der allgemeinen Eingabestruktur I_S_GENERAL (Wichtig: Für diese Struktur gibt es den Daten-Typ: mdr1p_s_in_allowed_qt_unit im Modul-Pool: MDR1P => Bei der Definition der Übergabeparameter sollte immer dieser Datentyp genutzt werden!!!):

  • DEFQTUNIT für die Bestimmung der Default-ME
  • VENQTUNIT für die Bestimmung der erlaubten ME eines Lieferanten
  • BUYQTUNIT für die Bestimmung der erlaubten ME eines Abnehmers
  • ALLQTUNIT Bestimmung der erlaubten logistischen ME unter Berücksichtigung der erlaubten Lieferanten- und Abnehmer-ME

Es muß mindestens eins dieser Flags gesetzt sein. Soll eine Bestimmung der erlaubten logistischen ME erfolgen (4. Flag gesetzt) müssen alle anderen Flags auch gesetzt sein, da diese Funktion die restlichen Funktionen beinhaltet!

Die jeweilige Grundfunktionen können für verschiedene Unternehmenssichten genutzt werden:

  • Einkaufssicht bzw. Bestellsicht oder Abnehmersicht
  • Verkaufssicht bzw. Auftragssicht oder Lieferantensicht
  • Kundenindividuelle Sicht (kann nur bei kundenindividuellen Aufrufen des Bausteins genutzt werden)

Die Unternehmensicht wird über das Kennzeichen I_S_GENERAL-APPVIEW durch die Aufrufstelle belegt. Dieses Kennzeichen muß mit einem der folgenden gültigen Werten belegt sein:

  • 01 = Einkaufssicht
  • 02 = Verkaufssicht
  • X1 = kundenidividuelle Sicht

Allgemeiner Ablauf:

  1. Allgemeine Prüfung der Eingabeparameter, die unabhängig von der gewünschten Funktionalität und der jeweiligen Unternehmenssicht gefüllt sein müssen (siehe: Allgemeine Eingabeprüfung)
  2. Prüfung der Eingabeparameter abhängig von der gewünschten Funktion und unabhängig von der Unternehmenssicht (siehe: Eingabeprüfung abhängig von der gewünschten Funktion)
  3. Durchführung der gewünschten Grundfunktion abhängig von der jeweiligen Sichtweise (siehe: Beschreibung der Grundfunktionen pro Unternehmenssicht).
  4. Möglichkeit der kundenindividuellen Übersteuerung der im 3. Schritt bestimmten Werte mit Hilfe eines User-Exits (siehe: Kundenindividuelle Bestimmung mit Hilfe eines User-Exit)

Detail-Beschreibung

Allgemeine Eingabeprüfung

Bei allen Aufrufen werden die folgenden Prüfung der Eingabeparameter unabhängig von der gewählten Grundfunktion und der jeweiligen Sichtweise durchgeführt:

  • Mindestens eines der folgenden Flags zur Auswahl der Funktionalität muß mit X (= Durchführen) belegt sein:
  • I_S_GENERAL-DEFQTUNIT

  • I_S_GENERAL-VENQTUNIT

  • I_S_GENERAL-BUYQTUNIT

  • I_S_GENERAL-ALLQTUNIT

Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Wenn das Flag I_S_GENERAL-ALLQTUNIT gesetzt ist (= X), dann müssen alle anderen Funktions-Flags gesetzt sein.
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Der Eingabeparameter für die Unternehmenssicht I_S_GENERAL-APPVIEW muß mit einem der folgenden gültigen Werte belegt sein:
  • 01 = Einkaufssicht

  • 02 = Verkaufssicht

  • X1 = kundenindividuelle Sicht

Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Die Material-Nummer I_S_GENERAL-MATNR muß immer von der Aufrufstelle belegt werden
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Wird durch die Aufrufstelle ein Einkaufsinfosatz mit einer Bestell-ME (I_S_EINA-MEINS <> LEER) mitgegeben, so müssen auch die Umrechnungsfaktoren I_S_EINA-UMREZ und I_S_EINA-UMREN gefüllt sein
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Ein übergebener Einkaufsinfosatz muß immer komplett übergeben werden, d.h. es muß sowohl der I_S_EINA- wie auch der I_S_EINE-Eingabeparameter gefüllt sein.
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.
  • Wird eine Default-ME von der Aufrufstelle mitgegeben (I_S_GENERAL- PUTDEFQTUNIT <> LEER), dann müssen auch die zugehörigen Umrechnungsfaktoren I_S_GENERAL- PUTDEFUMREZ und I_S_GENERAL- PUTDEFUMREN belegt sein.
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.

Eingabeprüfung abhängig von der gewünschten Funktion

Für die folgenden Funktionalitäten werden zusätzliche Eingabeprüfungen unabhängig von der Sichtweise durchgeführt:

Bei der Bestimmung der logistischen Default-ME:

  • Muß immer der aktuelle MARA-Eintrag zu dem Material (I_S_MARA <> LEER) übergeben werden, mindestens jedoch die Basis-ME des Materials (I_S_MARA-MEINS <> LEER)
Bei negativer Prüfung bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme BAD_PARAMS ab.

Beschreibung der Grundfunktionalität pro Unternehmenssicht

Zur genaueren technischen Beschreibung des Funktionsbausteins werden zwischen den möglichen Unternehmenssichten unterschieden:

Beschreibung der Grundfunktionalitäten für die Einkaufssicht:

In der Einkaufssicht wird der Lieferant durch den Eingabeparameter I_S_GENERAL-LIFNR und der Abnehmer durch den Eingabeparameter I_S_GENERAL-WERKS repräsentiert.

  • Bestimmung der Default-Bestell-ME:
  • I_S_GENERAL-PUTDEFQTUNIT <> LEER

  • I_S_EINA-MEINS <> LEER

  • I_S_MARA-BSTME <> LEER, bei P_S_GENERAL-INVEND = LEER (externer Lieferant)

  • I_S_MARC_2-AUSME <> LEER, bei P_S_GENERAL-INVEND <> X (interner Lieferant)

  • I_S_MARA-MEINS

Die entsprechenden Umrechnungsfaktoren werden in Fall 1 und 2 durch die jeweilige Eingabestruktur mitgegeben und bei allen anderen Fällen aus der MARM mit Hilfe eines gepufferten Zugrgriffes (FB: MARM_GENERIC_READ_WITH_MATNR) bestimmt. Wird kein Eintrag in MARM gefunden, bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Damit im in Fall 3 und und 4 die korrekte Unterscheidung zwischen internem (LFA1-WERKS <> LEER) und externem Lieferanten (LFA1-WERKS = LEER) erfolgen kann muß der Eingabeparameter entsprechend richtig von der Aufrufstelle belegt werden (es erfolgt hierfür keine Prüfung!!!)
Ein existierender EK-Infosatz (EINA und EINE) muß von der Aufrufstelle bestimmt und übergeben werden.
Bei internen Lieferanten muß der gültige MARC- Satz zu dem Material und dem Lieferwerk LFA1-WERKS ebstimmt werden und in der Eingabestruktur I_S_MARC_2 übergeben werden. Bei nicht bestandsgeführtem Material kann kein MARC-Satz existieren, in diesem Fall wird der MARC-Satz zu dem entsprechenden Wert-Material genommen.
Die Bestimmte Default-ME wird in der Ergebnis-Tabelle O_T_QT_UNITS eingetragen und als Default-ME durch das Setzen des Flag DEFQTUNIT (= X) gekennzeichnet.
  • Bestimmung der erlaubten Lieferanten-ME:
Hierzu werden als Einschränkung der Leiferanten-ME auf die gültigen ME des Materials aus der MARM die eine ME-Gruppe bestimmt:
  • I_S_GENERAL-PUTVENUNITGR <> LEER

  • I_S_EINE-MEGRU <> LEER

Der entsprechende EK-Info-Satz muß durch die Aufrufstelle bestimmt und in der Eingabe-Struktur I_S_EINE übermittelt werden.
Mit Hilfe der Definion der bestimmte ME-Gruppe (aus- oder Einschluß von ME) aus der TWMEG werden die ME aus der MARM zu dem Material auf die erlaubten Lieferanten-ME eingeschränkt (siehe: Einschränkung der ME mit einer ME-Gruppe)
Auch hier erfolgt ein gepufferter Zugriff auf die MARM (es wird der gleiche Puffer genutzt => FB: MARM_GENERIC_READ_WITH_MATNR) zu dem Material. Existiert kein Eintrag in der MARM zu dem Material bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die Bestimmung der Definition der ME-Gruppe aus der TWMEG erfolgt ebenfalls über einen gepufferten Lesezugriff (FB: ???). Wirk keine Definition zu der bestimmten ME-Gruppe gefunden, bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die bestimmten erlaubten Lieferanten-ME werden in der Ergebnis-Tabelle O_T_QT_UNITS eingetragen und als erlaubte Lieferanten-ME durch das Setzen des Flags VENQTUNIT (= X) gekennzeichnet.
  • Bestimmung der erlaubten Abnehmer-ME
Hierzu werden als Einschränkung der Abnehmer-ME auf die gültigen ME des Materials aus der MARM die eine ME-Gruppe bestimmt:
  • I_S_GENERAL-PUTBUYUNITGR <> LEER

  • I_S_MARC-MEGRU <> LEER

Der entsprechende MARC-Satz muß durch die Aufrufstelle bestimmt zu Material und dem Werk (= Abnehmer) bestimmt und in der Eingabe-Struktur I_S_MVKE übermittelt werden. Wird keine zu dem Material keine Bestandsführung durchgeführt, kann ein MARC-Satz fehlen, in diesem Fall wird der MARC-Satz zum Wert-Artikel genommen.
Mit Hilfe der Definion der bestimmte ME-Gruppe (aus- oder Einschluß von ME) aus der TWMEG werden die ME aus der MARM zu dem Material auf die erlaubten Lieferanten-ME eingeschränkt (siehe: Einschränkung der ME mit einer ME-Gruppe)
Auch hier erfolgt ein gepufferter Zugriff auf die MARM (es wird der gleiche Puffer genutzt => FB: MARM_GENERIC_READ_WITH_MATNR) zu dem Material. Existiert kein Eintrag in der MARM zu dem Material bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die Bestimmung der Definition der ME-Gruppe aus der TWMEG erfolgt ebenfalls über einen gepufferten Lesezugriff (FB: ???). Wirk keine Definition zu der bestimmten ME-Gruppe gefunden, bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die bestimmten erlaubten Abnehmer-ME werden in der Ergebnis-Tabelle O_T_QT_UNITS eingetragen und als erlaubte Lieferanten-ME durch das Setzen des Flags BUYQTUNIT (= X) gekennzeichnet.
  • Bestimmung der erlaubten Bestell-ME
Die Bestimmung der erlaubten Bestell-ME beinhaltet auch alle restlichen Grundfunktion. Zusätzlich zu den durch die restlichen Grundfunktionen bestimmten Werte werden in der aufgebauten Ergebnisliste O_T_QT_UNITS die ME auch als erlaubte ME gekennzeichnet (durch Setzen des Flags ALLQTUNIT = X) für die eines der folgenden Kriterien gilt:
  • ME ist als Default-ME gekennzeichnet (DEFQTUNIT = X) =>ALLQTUNIT = X

  • ME ist erlaubte Lieferanten- und Abnehmer-ME =>ALLQTUNIT = X

wenn alternative ME zulässig sind. Die Möglichkeit von alternativen ME werden durch die folgende Datenbank-Flags gesteuert:
  • I_S_EINA-VABME <> LEER => Alternative-ME erlaubt (sonst nicht), wenn ein Info-Satz existiert

  • I_S_MARA-VABME <> LEER => Alternative ME erlaubt (sonst nicht), wenn kein EK-Info-Satz existiert

Auch hier muß der existierende EK-Info-Satz durch die Aufrufstelle bestimmt und übermittelt werden.

Beschreibung der Grundfunktionalitäten für die Verkaufssicht:

In der Verkaufssicht wird der Lieferant durch den Eingabeparameter I_S_GENERAL-WERKS (immer internes Lieferwerk) und der Abnehmer durch den Eingabeparameter I_S_GENERAL-KUNNR (= Kunde) repräsentiert.

  • Bestimmung der Default-Verkaufs-ME:
  • I_S_GENERAL-PUTDEFQTUNIT <> LEER

  • I_S_MVKE-VRKME <> LEER

  • MAW1-WAUSME <> LEER, bei TVKOV-VLTYP = .1 (Filial-Vertriebstyp)

  • MAW1-WVRKM <> LEER bei TVKOV-VLTYP <> .1 (kein Filial-Vertiebstyp)

  • I_S_MARA-MEINS

Die entsprechenden Umrechnungsfaktoren werden in Fall 1 durch die jeweilige Eingabestruktur mitgegeben und bei allen anderen Fällen aus der MARM bestimmt mit Hilfe eines gepufferten Zugriffes (FB: MARM_GENERIC_READ_WITH_MATNR). Wird kein Eintrag in MARM gefunden, bricht der Funktionsbaustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Weiter muß ein existierender MVKE-Satz durch die Aufrufstelle bestimmt und in der Eingabestruktur I_S_MVKE übermittelt werden.
Für den Zugriff auf die TVKOV müssen jeweils der Verkaufsorganisation I_S_GENERAL-VKORG und der Vertriebstyp I_S_GENERAL-VTWEGdurch die Aufrufstelle korrekt gefüllt sein. Es erfolgt hierzu keine Eingabeprüfung, sollten die Werte nicht gefüllt sein, findet eine Bestimmung laut Fall 4 und 5 nicht statt!!!
Die Datenbank-Zugriffe auf TVKOV und MAW1 erfolgen gepuffert (!) mit Hilfe der Funktionsbausteine MAW1_SINGLE_READ und TVKOV_SINGLE_READ.
  • Bestimmung der erlaubten Lieferanten-ME:
Hierzu werden als Einschränkung der Lieferanten-ME auf die gültigen ME des Materials aus der MARM die eine ME-Gruppe bestimmt:
  • I_S_GENERAL-PUTVENUNITGR <> LEER

  • I_S_MVKE-MEGRU <> LEER

Der entsprechende MVKE-Satz muß durch die Aufrufstelle bestimmt und in der Eingabe-Struktur I_S_MVKE übermittelt werden.
Mit Hilfe der Definion der bestimmte ME-Gruppe (aus- oder Einschluß von ME) aus der TWMEG werden die ME aus der MARM zu dem Material auf die erlaubten Lieferanten-ME eingeschränkt (siehe: Einschränkung der ME mit einer ME-Gruppe)
Auch hier erfolgt ein gepufferter Zugriff auf die MARM (es wird der gleiche Puffer genutzt => Funktionsbaustein: MARM_GENERIC_READ_WITH_MATNR) zu dem Material. Existiert kein Eintrag in der MARM zu dem Material bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die Bestimmung der Definition der ME-Gruppe aus der TWMEG erfolgt ebenfalls über einen gepufferten Lesezugriff (Funktionsbaustein: ???). Wirk keine Definition zu der bestimmten ME-Gruppe gefunden, bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die bestimmten erlaubten Lieferanten-ME werden in der Ergebnis-Tabelle O_T_QT_UNITS eingetragen und als erlaubte Lieferanten-ME durch das Setzen des Flags VENQTUNIT (= X) gekennzeichnet.
  • Bestimmung der erlaubten Abnehmer-ME:
Hierzu werden als Einschränkung der Abnehmer-ME auf die gültigen ME des Materials aus der MARM die eine ME-Gruppe bestimmt:
  • I_S_GENERAL-PUTBUYUNITGR <> LEER

  • I_S_KNMT-MEGRU <> LEER, bei P_S_GENERAL-INFLS <> LEER (Kunden-Material-Infosatz soll berücksichtigt werden)

  • I_S_KNVV-MEGRU <> LEER, sonst

Die existierenede KNMT- und KNVV-Sätze müssen durch die Aufrufstelle bestimmt und über die entsprechenden Eingabeparameter übermittelt werden.
Damit im in Fall 2 der KNMT-Eintrag berücksichtigt wird muß das Feld I_S_GENERAL-INFLS korrekt belegt werden (beim Kundenauftrag wird der Eintrag aus der TVAK genommen).
Damit für den Fall 3 die korrekte Unterscheidung zwischen internem (LFA1-WERKS <> LEER) und externem Kunde (LFA1-WERKS = LEER) erfolgen kann muß der Eingabeparameter I_S_GENERAL-INCUST entsprechend richtig von der Aufrufstelle belegt werden (es erfolgt hierfür keine Prüfung!!!)
Mit Hilfe der Definion der bestimmte ME-Gruppe (aus- oder Einschluß von ME) aus der TWMEG werden die ME aus der MARM zu dem Material auf die erlaubten Lieferanten-ME eingeschränkt (siehe: Einschränkung der ME mit einer ME-Gruppe)
Auch hier erfolgt ein gepufferter Zugriff auf die MARM (es wird der gleiche Puffer genutzt => Funktionsbaustein: MARM_GENERIC_READ_WITH_MATNR) zu dem Material. Existiert kein Eintrag in der MARM zu dem Material bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die Bestimmung der Definition der ME-Gruppe aus der TWMEG erfolgt ebenfalls über einen gepufferten Lesezugriff (Funktionsbaustein: ???). Wirk keine Definition zu der bestimmten ME-Gruppe gefunden, bricht der Baustein mit einer Fehlermeldung und der Ausnahme ERROR ab.
Die bestimmten erlaubten Abnehmer-ME werden in der Ergebnis-Tabelle O_T_QT_UNITS eingetragen und als erlaubte Lieferanten-ME durch das Setzen des Flags BUYQTUNIT (= X) gekennzeichnet.
  • Bestimmung der erlaubten Verkaufs-ME
Die Bestimmung der erlaubten Verkaufs-ME beinhaltet auch alle restlichen Grundfunktionen. Zusätzlich zu den durch die restlichen Grundfunktionen bestimmten Werte werden in der aufgebauten Ergebnistabelle O_T_QT_UNITS die ME auch als erlaubte ME gekennzeichnet (durch Setzen des Flags ALLQTUNIT = X) für die eines der folgenden Kriterien gilt:
  • ME ist als Default-ME gekennzeichnet (DEFQTUNIT = X) =>ALLQTUNIT = X

  • ME ist erlaubte Lieferanten- und Abnehmer-ME =>ALLQTUNIT = X wenn alternative ME zulässig sind. Die Möglichkeit von alternativen ME werden durch die folgende Datenbank-Flags gesteuert:

  • I_S_MVKE-VRKME = LEER => Alternative-ME erlaubt (sonst nicht), wenn MVKE-Satz existiert

  • Alternative ME immer erlaubt , wenn kein MVKE-Satz existiert

Auch hier muß der existierende MVKE-Satz durch die Aufrufstelle bestimmt und übermittelt werden.

Beschreibung der Grundfunktionalitäten für die kundenindividuellen Verkaufssicht:

Zu dieser Unternehmenssicht werden alle in der MARM zu dem Material (I_S_GENERAL-MATNR) definierte ME sowohl als erlaubte Lieferanten- wie auch als erlaubte Abnehmer-ME festgelegt. Eine Festlegung der logistischen Default-ME wird nicht vorgenommen. Eine Berücksichtigung dieser kundenindividuellen Unternehmenssicht kann nur in dem am Ende aufgerufenen User-Exit erfolgen (siehe: Kundenindividuelle Bestimmung mit Hilfe eines User-Exit).

Voraussetzung:

Außer der gefüllten Pflichtparameter (siehe: Allgemeine Eingabeprüfung und Eingabeprüfung abhängig von der gewünschten Funktion) müssen keine weiteren Eingabewerte durch die Aufrufstelle belegt werden.

Einschränkung der ME mit einer ME-Gruppe

Bei der Einschränkung einer ME mit Hilfe einer ME-Gruppe gibt es je nach Definition der ME-Gruppe die folgenden Möglichkeiten:

  • Definition durch Einschluß von ME:
In diesem Fall wird die ME-Gruppe über Zuordnung von erlaubten ME definiert (TWMEG-WITHOUT = LEER) => bei der Berücksichtigung dieser ME-Gruppe muß eine vorgegebene ME der ME-Gruppe in der Tabelle TWMEG zugeordnet sein.
  • Definition durch Ausschluß von ME
In diesem Fall wird eine ME-Gruppe über die Zuordnung von nicht erlaubten ME definiert (TWMEG-WITHOUT = X) => bei der Berücksichtigung dieser ME-Gruppe darf eine vorgegebene ME der ME-Gruppe nicht in der Tabelle TWMEG zugeordnet sein.

Kundenindividuelle Bestimmung mit Hilfe eines User-Exits

Mit Hilfe des User-Exits: EXIT_SAPLMDR1_002 (Erweiterung: MDR10001) können die bestimmten Werte kundenindividuell verändert werde. Der User-Exit erhält als Eingabeparameter die gleichen Eingabewerte wie der Baustein erweitert um die durch den Baustein bestimmten Werten.





Parameter

I_S_EINA
I_S_EINE
I_S_GENERAL
I_S_KNMT
I_S_KNVV
I_S_MARA
I_S_MARC
I_S_MARC_2
I_S_MVKE
O_T_QT_UNITS

Ausnahmen

BAD_PARAMS
ERROR

Funktionsgruppe

MDR1

ROGBILLS - Synchronize billing plans   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 25238 Date: 20240523 Time: 134013     sap01-206 ( 327 ms )