Achtung Update Lager und Belege - SelectLine
Achtung Update Lager und Belege - SelectLine
Achtung Update Lager und Belege - SelectLine
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