10.01.2014 Aufrufe

Achtung Update Lager und Belege - SelectLine

Achtung Update Lager und Belege - SelectLine

Achtung Update Lager und Belege - SelectLine

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Es existieren <strong>Belege</strong> mit ungültigen Informationen in den Spalten Menge <strong>und</strong> Verwendet<br />

Es existieren Belegpositionen mit ungültigen Vorgänger-/Nachfolgerinformationen<br />

Da die Reservierungen <strong>und</strong> Bestellungen aus den Belegpositionen neu aufgebaut werden, muss sichergestellt<br />

sein, dass die Daten korrekt sind. Die Spalte „Verwendet“ gibt an, wie viel der ursprünglichen<br />

Positionsmenge bereits in den Folgebeleg übergeben worden ist. Diese Spalte darf weder grösser als die<br />

Positionsmenge noch negativ sein. Makro 1 zeigt fehlerhafte Datensätze an. Diese müssen korrigiert<br />

werden, damit ein <strong>Update</strong> möglich ist. Werden durch das Makro Belegpositionen aufgeführt, die den Status 0<br />

besitzen, kann die Spalte „Verwendet“ mit dem Wert 0 überschrieben werden. Das bedeutet, diese Position<br />

wurde noch nicht übergeben.<br />

Ergebnismenge Makro 1 des Makroassistenten (zur Korrektur im „Änderbar-Modus“ gestartet)<br />

Belegpositionen, die den Status 1 besitzen (Makro 2), wurden bereits teilweise in den Folgebeleg<br />

übergeben. Besitzen diese Positionen einen fehlerhaften Wert in der Spalte Verwendet, muss er auf die<br />

tatsächlich übergebene Menge geändert werden. Hierfür ist die Information wichtig, mit welcher Menge die<br />

Position übergeben wurde (Makro 3).<br />

(Makro 2 Ergebnis) (Makro 3 Ergebnis) (Makro 2 Korrekur im „Änderbar-Modus“)<br />

Makro 3 muss pro Belegtyp angepasst werden. Die Einschränkung auf den Belegtyp kann dafür<br />

entsprechend den Ergebnissen aus Makro 2 geändert werden. Für Bestellungen müsste die Abfrage also<br />

den Belegtyp B abfragen (… WHERE bp.Belegtyp = 'B').<br />

Makro 1 zur Ermittlung:<br />

SELECT bp.Belegtyp, bp.Belegnummer, bp.Status, bp.Kennung, bp.Menge, bp.Verwendet FROM Belegp bp<br />

INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp<br />

WHERE ba.<strong>Lager</strong>flag IN (N'R',N'E')<br />

AND ISNULL(bp.Status, N'0') = N'0'<br />

AND bp.<strong>Lager</strong>artikel = 1 AND ROUND(bp.Menge, 10) > 0 AND (ROUND(bp.Menge, 10) <<br />

ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0);<br />

Makro 2 zur Ermittlung:<br />

SELECT bp.Belegtyp, bp.Belegnummer, bp.Status, bp.Kennung, bp.Menge, bp.Verwendet FROM Belegp bp<br />

INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp<br />

WHERE ba.<strong>Lager</strong>flag IN (N'R',N'E')<br />

AND ISNULL(bp.Status, N'0') = N'1'<br />

AND bp.<strong>Lager</strong>artikel = 1 AND ROUND(bp.Menge, 10) > 0 AND (ROUND(bp.Menge, 10) <<br />

ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0);<br />

Makro 3 zur Ermittlung:<br />

SELECT bp.Kennung, sum(bp2.Menge) as "Korrektur Verwendet" FROM Belegp bp<br />

LEFT OUTER JOIN Belegp bp2 on bp2.Vorgaenger = bp.Kennung<br />

WHERE bp.Belegtyp = 'F'<br />

AND ISNULL(bp.Status, N'0') = N'1'<br />

AND bp.<strong>Lager</strong>artikel = 1<br />

AND ROUND(bp.Menge, 10) > 0<br />

AND (ROUND(bp.Menge, 10) < ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0<br />

GROUP by bp.Kennung;<br />

Seite 10 von 40

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!