Einsprungpunkte > Modul Einkauf > Standardskript TRTACHMGT1 

PECBESOINS: Änderung der berücksichtigten Mengen.

Dieser Eingabepunkt ist Teil der Verarbeitung TRTACHMGT1 (Bedarfsberücksichtigung in den Arbeitsplänen, also in der Planungsmaske Organisation, der Planungsmaske Arbeitsbereich und der Gruppierung) und generiert eine "PECBESOINS"-Aktion.

Mit dieser Aktion kann die berücksichtigte Bedarfsmenge in physische Einheiten konvertiert werden.

Dies geschieht je nach Standardtitel des Artikels, jedoch nur für Bedarf, der sich nicht aus einem Einkaufsdokument ableitet.

Kontext und Funktionsmodus

Transaktion

Es gibt keine laufende Maskensteuerung.

Protokolldatei

Eine Protokolldatei ist geöffnet.

Unterschiedliche Anwendungsfälle

Der Eingabepunkt wird für alle in den Arbeitsplänen berücksichtigten Bedarfspositionen aufgerufen.

Verfügbare Variablen und Masken

Bei Aufruf der Aktion PECBESOINS werden folgende Variablen belegt:

TRAIT

Verarbeitungstyp für den berücksichtigten Bedarf:

- 4 = Anlage von Materialanforderungen

- 5 = Anlage von klassischen Bestellungen

- 6 = Anlage von Lieferanfragen (Kontrakte)

ABREV

Abkürzung der verwendeten Maske ("PMG")

Die Maske [M:PMG] steht zur Verfügung, die Variable I gibt die Tabellenzeile an, die gerade verarbeitet wird.

[M:PMG]WIPTYP(I)

Auftragsart:

- 2 = PO = Lieferantenbestellung

- 4 = SC = Fremdbearbeitung

- 7 = TR = Dispositionstransfer

[M:PMG]WIPSTA(I)

Auftragsstatus:

- 1 = F = fest

- 2 = P = geplant

- 7 = S = Vorschlag

Obige Variablen und Klassen dürfen nicht geändert werden.

Folgende Variable muss geändert werden, um in die Verarbeitung Bedarfsberücksichtigung einzugreifen:

RMNQTY

Berücksichtigte Bedarfsmenge, ausgedrückt in:

- physischen STK, wenn sich der Bedarf aus einem Einkaufsdokument ergeben hat (POP, POF, TRP, TRF)

- aktiven STK, wenn sich der Bedarf nicht aus einem Einkaufsdokument ergeben hat (POS, TRS, SCF etc.)

-

Beispiel für eine vom Eingabepunkt aktivierte spezifische Verarbeitung:

$ACTION

Case ACTION

When "PECBESOINS" : Gosub PECBESOINS

When "ORDLEC" : Gosub ORDLEC

When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Konvertierung der berücksichtigten Bedarfsmenge in physische Einheiten -----#

$PECBESOINS

If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)

If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)

Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT

Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV

Endif

Endif

Return

#----- Konvertierung der Mengen in psychische Einheiten nach dem Lesen von [F:ORD] -----#

$ORDLEC

If [F:ITM]ITMREF<>[F:ORD]ITMREF

Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV

[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV

[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV

Endif

Return

#----- Konvertierung der Mengen in aktive Einheiten, wenn sich der Bedarf aus dem Einkauf ergibt -----#

$ORDMAJ

If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"

If [F:ITM]ITMREF<>[F:ORD]ITMREF

Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV

[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV

[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV

Endif

Return

Geöffnete Tabellen

In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind.

Tabelle

Wichtiger Inhalt

Tabellentitel

ORDERS

Nein

Lfd. Vorgänge

ITMMASTER

Nein

Artikel

ITMBPS

Nein

Artikel - Lieferanten

PREQUIS

Falls TRAIT = 4

Materialanforderungen Kopfzeilen

PREQUISD

Falls TRAIT = 4

Materialanforderungen Positionen

PORDER

Wenn TRAIT = 5 oder 6

Bestellungen Kopfzeilen

PORDERC

Falls TRAIT = 6

Artikelpositionen Kontrakte

PORDERP

Wenn TRAIT = 5 oder 6

Bestellpositionen Preis

PORDERQ

Wenn TRAIT = 5 oder 6

Bestellpositionen Menge

Sonstige Hinweise

Um das Problem der Artikel mit Titeln (Mengen in aktiven Einheiten bei laufenden Vorgängen, in physischen Einheiten bei Einkaufsdokumenten) korrekt zu behandeln, muss dieser Eingabepunkt zwingend mit den beiden anderen Eingabepunkten ORDMAJ und ORDLEC verwendet werden.

ORDLEC: Änderung der Mengen nach dem Lesen der laufenden Vorgänge.

Dieser Eingabepunkt ist Teil der Verarbeitung TRTACHMGT1 (Bedarfsberücksichtigung in den Arbeitsplänen, also in der Planungsmaske Organisation, der Planungsmaske Arbeitsbereich und der Gruppierung) und generiert eine "ORDLEC"-Aktion.

Mit dieser Aktion können die soeben gelesenen Mengen der laufenden Vorgänge in physische Einheiten konvertiert werden.

Die Vorgehensweise dabei richtet sich nach dem jeweiligen Standardtitel des Artikels, wobei die Mengen der laufenden Vorgänge stets in aktiven Einheiten ausgedrückt werden.

Kontext und Funktionsmodus

Unterschiedliche Anwendungsfälle

Der Eingabepunkt wird nach dem Lesen eines Datensatzes aus der Tabelle ORDERS in den Verarbeitungen des Einkaufsmoduls aufgerufen.

Verfügbare Variablen und Masken

Bei Aufruf der Aktion ORDLEC wird die Klasse [F :ORD] geladen.

Bei Artikeln mit Titel müssen die folgenden Mengen in physische Einheiten konvertiert werden:

[F :ORD]EXTQTY

Sollmenge

[F :ORD]CPLQTY

Realisierte Menge

[F :ORD]RMNEXTQTY

Restmenge

Beispiel für eine vom Eingabepunkt ORDLEC aktivierte spezifische Verarbeitung:

$ACTION

Case ACTION

When "PECBESOINS" : Gosub PECBESOINS

When "ORDLEC" : Gosub ORDLEC

When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Konvertierung der berücksichtigten Bedarfsmenge in physische Einheiten -----#

$PECBESOINS

If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)

If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)

Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT

Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV

Endif

Endif

Return

#----- Konvertierung der Mengen in psychische Einheiten nach dem Lesen von [F:ORD] -----#

$ORDLEC

If [F:ITM]ITMREF<>[F:ORD]ITMREF

Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV

[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV

[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT

Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV

Endif

Return

#----- Konvertierung der Mengen in aktive Einheiten, wenn sich der Bedarf aus dem Einkauf ergibt -----#

$ORDMAJ

If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"

If [F:ITM]ITMREF<>[F:ORD]ITMREF

Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif

Endif

If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV

[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV

[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100

Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV

Endif

Return

Geöffnete Tabellen

In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind.

Tabelle

Wichtiger Inhalt

Tabellentitel

ORDERS

Ja

Lfd. Vorgänge

ITMMASTER

Nein

Artikel

Sonstige Hinweise

Um das Problem der Artikel mit Titeln (Mengen in aktiven Einheiten bei laufenden Vorgängen, in physischen Einheiten bei Einkaufsdokumenten) korrekt zu behandeln, muss dieser Eingabepunkt zwingend mit den beiden anderen Eingabepunkten PECBESOINS und ORDMAJ verwendet werden.