Ansicht
Dokumentation

MDR1_DETERMINE_ROUND_PARAMS - Bestimmung der Rundungsparameter

MDR1_DETERMINE_ROUND_PARAMS - Bestimmung der Rundungsparameter

CPI1466 during Backup   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Der Funktionsbaustein kapselt im Wesentlichen die Funktionalität der Unterroutine "read_data_u12", d.h. die Bestimmung der Rundungsparameter von der Datenbank (nur falls nicht schon vor dem Aufruf gefüllt) und der erlaubten Mengeneinheiten. Diese Daten werden in der Feldleiste CH_S_RESULTS bzw. der internen Tabelle CH_T_QT_UNITS abgelegt. Allerdings müssen vor dem Aufruf der Routine evtl. noch die allgemeinen Materialdaten zum Material CH_S_GENERAL-MATNR aus der Tabelle MARA gelesen werden, da diese in der Routine "read_data_u12" benötigt werden. CH_S_GENERAL-MATNR muß deßhalb auf jeden Fall gefüllt sein, da sonst der Fumtionsbaustein mit einer Fehlermeldung und der Ausnahme "WRONG_CALL" abbricht. Sofern die Rundungsparameter nicht schon vor der Aufrufstelle bestimmt worden sind (einige Felder in CH_S_GENERAL), werden diese zunächst aus der Datenbank gelesen (Unterroutine "read_data_from_db_u12"). Dabei sind die Daten, die gelesen werden von CH_S_GENERAL-OPCODE abhängig:

CH_S_GENERAL-OPCODE =

  1. MDR1P_C_OP_MM_NORMAL oder MDR1P_C_OP_MMUB oder MDR1P_C_OP_LB
=> Es werden die Einkaufsdaten zum Material gelesen:
  1. Lieferant bekannt (CH_S_GENERAL-LIFNR <> LEER)
Falls keine Einkaufsorganisation vorhanden ist (CH_S_GENERAL-EKORG = LEER) wird zunächst die Ekorg zum Werk (= Abnehmer = CH_S_GENERAL-WERKS) bestimmt, falls sie eindeutig bestimmt werden kann (Tabelle T024W). Anschließend wird der Einkaufsinfosatz zum Lieferanten und der Einkaufsorganisation von der Datenbank gelesen, wobei folgende Felder mit entsprechenden Werten gefüllt sein müssen:
- CH_S_GENERAL-INFNR (EK-Info-Satz-Nr)
- CH_S_MARA-SATNR (Werksübergreifendes konfigurierbares Material)
- CH_S_MARA-ATTYP (Materialtyp)
- CH_S_GENERAL-PSTYP (BestellPosTyp aus EKPO)
Ist die Bestellmengeneinheit (CH_S_EINA-MEINS) nicht belegt, müssen noch weitere Daten zur Bestimmung der erlaubten ME bestimmt werden.
  1. Lieferant unbekannt (CH_S_GENERAL-LIFNR = LEER)
Falls ein interner Lieferant ohne Stammdaten belegt ist (CH_S_GENERAL-WERKS_KRED <> LEER), werden die MARC-Daten zu diesem Werk gelesen und das Kennzeichen (CH_S_RESULTS-INTVEND) auf interner Lieferant gesetzt.
Nach Abarbeitung von Fall 1 bzw. Fall 2 werden die gelesenen EINA / EINE Einträge für die Rundungsparameter benutzt (Fall 1) bzw. nicht genutzt (Fall 2). Anschließend wird der MARC-Satz zum Abnehmer-Werk gelesen, wobei der Rundungswert aus diesem Satz benutzt wird (MARC-BSTRF) und in Fall 2 die Daten für die Rundungsparameter benutzt werden.
  1. MDR1P_C_OP_SD_AUFTRAG oder MDR1P_C_OP_SD_LIEFERUNG
=> Es werden die Verkaufsdatenzum Material gelesen:
Zunächst werden die Verkaufsdaten zum Material aus der Tabelle MVKE gelesen, wobei die Verkaufsorganisation (CH_S_GENERAL-VKORG) und der Vertriebsweg (CH_S_GENERAL-VTWEG) belegt sein müssen. Sofern der VK-Info-Satz aus der Tabelle KNMT gelesen werden soll (z.B. bei einer Lieferung), so muß das entsprechende Kennzeichen gesetzt sein (CH_S_GENERAL-INFLS = 'X') und die Felder Kunde (CH_S_GENERAL-KUNNR) sowie Sparte (CH_S_GENERAL-SPART) mit Werten belegt sein. Konnte die Abnehmer-ME-Gruppe nicht aus der Tabelle KNMT bestimmt werden, so wird sie aus dem Kundenstamm und den Vertriebsdaten ermittelt (Tabelle KNVV), wobei auch wiederum die Felder Kunde und Sparte belegt sein müssen. Falls vorhanden werden noch die Liefermengenschrittweite und dessen ME aus dem MVKE-Satz bestimmt. Im folgenden werden die Rundungsparameter abhängig vom Steuerungscode (CH_S_GENERAL-OPCODE) bestimmt.
  1. MDR1P_C_OP_SD_VERF
Bei diesem Fall liegt ein spezielles VK-Verfahren vor, bei dem keine weiteren Datenbank-Zugriffe benötigt werden, da die Rundungsparameter von der Aufrufstelle aus vorgegeben sind.
  1. MDR1P_C_OP_ADDITIONALS
Bei Verkaufshilfsmitteln werden nur die Werksdaten zum Material aus der Tabelle MARC gelesen, wobei das Werk (CH_S_GENERAL-WERKS) belegt sein muß, und die Rundungsparameter dann aus diesen Daten bestimmt.

Nachdem die Rundungsparameter nun auf jeden Fall gefüllt sind, sollen nun die erlaubten ME(CH_T_QT_UNITS) bestimmt werden. Hierbei wird die Eingabestruktur für den Funktionsbaustein "MD_ALLOWED_QT_UNIT" mit Werten der allgemeinen Eingabestruktur (CH_S_GENERAL) und Rundungsparametern (CH_S_RESULT) gefüllt. Die Unternehmenssicht wird abhängig vom Steuercode (CH_S_GENERAL-OPCODE) in der Eingabestruktur gespeichert, wobei 3 Fälle zu unterscheiden sind:

  • Einkaufssicht
  • Verkaufssicht
  • Verkaufshilfsmittel

Bei Verkaufshilfsmitteln ist zu beachten, daß nur die Basis-ME erlaubt ist und der Funktionsbaustein "MD_ALLOWED_QT_UNITS" deßhalb nicht aufgerufen werden muß. Nachdem die Tabelle CH_T_QT_UNITS mit den erlaubten ME zum Material gefüllt ist, wird zunächst die Default-ME bestimmt und dann das Kennzeichen für variable Bestell- und Verkaufsmengeneinheit gesetzt (nur, falls Rundungsparameter nicht von der Aufrufstelle mitgegeben). Für einen LB-Aufruf (CH_S_GENERAL-OPCODE = MDR1_C_OP_LB) wird dann eine "Spezialbehandlung" durchgeführt und ganz am Ende des Codings wird dem Kunden durch einen User-Exit die Möglichkeit gegeben, eine Korrektur der Rundungsparameter durchzuführen.

Hinweise

Weiterführende Informationen





Parameter

CH_S_EINA
CH_S_EINE
CH_S_GENERAL
CH_S_KNMT
CH_S_KNVV
CH_S_MARA
CH_S_MARC
CH_S_MARC_2
CH_S_MVKE
CH_S_RESULTS
CH_T_QT_UNITS

Ausnahmen

ERROR
NO_ROUND

Funktionsgruppe

MDR1

RFUMSV00 - Advance Return for Tax on Sales/Purchases   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6788 Date: 20240605 Time: 214355     sap01-206 ( 153 ms )