SelectLine Auftrag ab Version 12 Ausführliche Beschreibung der Änderungen, Neuerungen und Update des Lagers und der Belege © Copyright 2013 by SelectLine Software AG, CH-9016 St. Gallen Kein Teil dieses Dokumentes darf ohne ausdrückliche Genehmigung in irgendeiner Form ganz oder in Auszügen reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Wir behalten uns vor, ohne besondere Ankündigung, Änderungen am Dokument und am Programm vorzunehmen. Die im Dokument verwendeten Soft- und Hardware-Bezeichnungen sind überwiegend eingetragene Warenbezeichnungen und unterliegen als solche den gesetzlichen Bestimmungen des Urheberrechtsschutzes. 06.12.2013/bl/V1.1 Seite 1 von 40 Inhalt 1.1 1.2 1.2.1 1.2.2 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.4 3 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3 3.3.1 3.3.2 3.3.3 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Lagerupdate ........................................................................................................................................4 Möglichkeiten der Lagerdatenübernahme ..........................................................................................5 Prüfung der Daten vor dem Update mit DBChecker...........................................................................5 Übernahme aller Lagerdaten während des Updates ..........................................................................8 Fehlerszenarien & Lösungsvorschläge ...............................................................................................9 Kritische Fehler ...................................................................................................................................9 Fehler und Hinweise .........................................................................................................................11 Lager-Korrekturmöglichkeiten innerhalb der Version 12 und 13 ......................................................13 Positive und negative Lagerbestände ...............................................................................................13 Positive und negative Seriennummernbestände ..............................................................................13 Gepackte Bestände erledigter Packzettel .........................................................................................13 Negative Bestände erledigter Packzettel ..........................................................................................13 Teilfertige Werkaufträge ohne Reservierungen ................................................................................13 Lagerbestände, die nicht zur Artikeleinstellung passen, Bestände ausbuchen/korrigieren .............14 Update von der Version 12 betr. offenen Inventuren (13.0.0) ..........................................................16 Mandanteneinstellungen ...................................................................................................................17 Seite „Belege/Belegpositionen“, neuer Bereich „Bestände“ .............................................................17 Seite Werkaufträge ...........................................................................................................................18 Seite „Lager“ .....................................................................................................................................19 Einlagern/Lagerdialog immer zeigen ................................................................................................19 Auslagern/Für den Vorschlag gilt die Reihenfolge: (12.0.3) .............................................................20 Auslagern /Einlagern/Warnen bei abweichender Menge im Lagerdialog (12.0.3) ...........................20 Auslagern /Negativ lagern zulassen .................................................................................................20 Serien-/Chargennummer im Dialog scannen (12.0.3) ......................................................................21 Untermenüpunkt „Manuelle Lagerungen“ auf Seite „Lager“ entfernt ................................................21 Checkbox „Automatisch, wenn Lager vorgegeben“ entfallen/ersetzt ...............................................22 Checkbox „Vorschlagsliste über alle Läger“ entfallen/ersetzt ...........................................................22 Packzettel in Aufgaben (13.0.0) ........................................................................................................23 Neuerungen und Änderungen in den Strukturen/Tabellen ...............................................................24 Neue Tabellenstrukturen ...................................................................................................................24 Nicht mehr benutzte Tabellen ...........................................................................................................25 Datentypänderung Feld „Kennung“ in der BELEGP und Auswirkungen ..........................................25 COM-Schnittstelle von Auftrag ..........................................................................................................26 Zukünftig nicht mehr unterstützte Programm- und Mandantenoptionen ..........................................26 Extrafelder vom Typ GUID und „select newid()“ (12.0.3)..................................................................26 Neuerungen der Lagerverwaltung und Lagerfunktionalitäten ...........................................................27 Status/Details ....................................................................................................................................27 Artikelinformationen ..........................................................................................................................28 Schnellerfassungszeile im Einlagerungsdialog .................................................................................28 Lagergrid ...........................................................................................................................................28 Zeile „Serien-/Chargennummern scannen“ (12.0.3) .........................................................................28 Beispiele ............................................................................................................................................29 Neue Funktion „Baumauswahl verwenden“ im Kontextmenü ...........................................................30 Neue Logik Positionslager/Wegfall der Lagerplatzpflicht in den Belegpositionen ............................30 Neuer Dialog und Bezeichnung für „Serien/Chargennummern erzeugen…“ ...................................31 Neu unter „Lagern“ ............................................................................................................................32 Manuelle Lagerung ...........................................................................................................................32 Mit Textdatei Lagern .........................................................................................................................33 Lagerprotokoll neu Lagerbewegungen .............................................................................................34 Artikel ................................................................................................................................................35 Option „Lagerungsdialog immer zeigen“ anstelle „Bestandesauswahl“ im Artikelstamm .................35 Vorschlag für „Verfallsdatum“ ...........................................................................................................36 Einstellung für die Artikelgenerierung bei Varianten .........................................................................37 Lagerstrategie „keine“ (12.0.3) ..........................................................................................................38 Liefertermin bei Reservierungen und Bestellung (12.0.3) ................................................................38 Seite 2 von 40 3.4.6 3.5 3.5.1 3.5.2 3.6 3.6.1 3.7 4 Verhalten/Logik Standardlager in der Belegpositionen .....................................................................38 Serien-/Chargennummer zuordnen ..................................................................................................39 Serien-/Chargennummer Verwendung anzeigen/nachverfolgen ......................................................39 Anzeige von Artikelzuordnung Artikelnummer, Bezeichnung und Zusatz (12.0.4) ..........................39 Inventur .............................................................................................................................................40 Druck Inventurhistorie nach Lager ....................................................................................................40 Lagerbestände neu aufbauen ...........................................................................................................40 Änderungen an Tabellen/Tabellenfeldern .........................................................................................40 Anmerkung: Hinweise zu programmübergreifenden Funktionen wie Veränderungen im Setup/Installationsprogramm und zum Drucken/Formulareditor finden sie in den Dokumenten • Achtung Update Version 12 und 13 • Update Programmübergreifendes Version 12 und 13 sowie zu programmspezifischen Funktionen in den Dokumenten • Update Auftrag Version 12 und 13 Seite 3 von 40 1.1 Lagerupdate Um festzustellen, ob ein Update auf die Versionen 12 und 13 möglich ist, können die Daten wie oben erwähnt über den DBChecker der Version gefahrlos in der Version 11.5.4.x geprüft werden. SelectLine empfiehlt dringend vor dem Update diese Prüfung durchzuführen, um ggf. noch Fehler-Korrekturen vornehmen zu können. Das Update auf die Versionen 12 und 13 prüft die lagerrelevanten Mandantendaten auf ihre Konsistenz (und führt dieselben Routinen wie der DBChecker aus). Um die Datenintegrität für die Version zu gewährleisten, können nur Lagerbewegungen übernommen werden, die bei der Prüfung keine Fehler aufweisen. Die Prüfung mit dem DBChecker simuliert jedoch keine reale Datenübernahme. Es wird daher empfohlen die Datenübernahme zuvor in einem Testsystem durchzuführen und das Ergebnis zu überprüfen. Wurden in dem zu übernehmenden 11.5.4.x-Mandanten manuelle Änderungen an den Lager-Tabellen vorgenommen, kann das dazu führen, dass einige Daten nicht in das neue Lagerprotokoll übernommen werden können. Dies könnte sonst fehlerhafte Datenkonstellationen verursachen, die z.B. doppelt vergebene Seriennummern oder offene Packbestände aufweisen, die sich nur sehr umständlich oder gar nicht mehr korrigieren lassen. Daher werden nach der Konvertierung der Lagerdaten die Bestände aus den Lagerdaten der Version 11 mit den Versionen 12 und 13 verglichen. Gibt es Abweichungen werden diese pro Standort durch einen manuellen Lagerbeleg – beginnend mit der Nummer "__V12_", bzw. „__V13_“ – ausgeglichen. Die angelegten manuellen Lagerbelege werden im Anschluss an die Übernahme in einem Fehlerprotokoll aufgelistet und sind zu überprüfen. Bei der Prüfung des Mandanten können Hinweise und/oder kritische Fehler auftreten. Bei kritischen Fehlern kann kein Update durchgeführt werden. Hinweise: Die Prüfung hat fehlerhafte Daten ermittelt, welche vom Update aber korrigiert werden können. Ein Update inkl. Übernahme der Lagerbewegungen ist möglich. Teilweise kann die Lagerdatenübernahme fehlerhafte Daten korrigieren, teilweise werden die Daten vom Update aber ignoriert: z. B. • passt Lager <> Standort nicht laut LAGERP-Datensatz zueinander kann korrigiert werden • LAGERP-Datensatz hat keinen Bezugsdatensatz in BELEGP mehr kann nicht korrigiert werden. Kritische Fehler: Ein Update ist nicht möglich, so lange begonnene Inventuren oder Belegposition mit ungültigem Wert in der Spalte „Verwendet“ existieren. Die Prüfung erfolgt in der Regel innerhalb weniger Minuten. Wir empfehlen dennoch für einen Update genügend Zeit einzuplanen. Startet dann im Anschluss die richtige Datenübernahme, so kann das auch mehrere Stunden dauern. Bitte beachten Sie dies bei Ihren Updateplanungen. Wir empfehlen neben der Lagerdatenprüfung mit dem DBChecker bereits in der Version 11.5.4.x auch die testweise Datenübernahme einer 11.5-er Mandantensicherung in eine 12-er/13-er Test-Installation. Seite 4 von 40 1.2 Möglichkeiten der Lagerdatenübernahme 1.2.1 Prüfung der Daten vor dem Update mit DBChecker Die Prüfung der Daten sollte bereits in der aktuellen 11.5.4.x Version erfolgen. Über den DBChecker kann die Update-Tauglichkeit der Lagerdaten geprüft werden, ohne dass es Änderungen an den Daten des Mandanten gibt. Zudem können mögliche Hindernisse vor dem Versionswechsel erkannt werden. DB-Checker Version 13 Der DB-Checker prüft nicht nur die Lagerdaten, sondern vorrangig die Datenbanktabellen auf ihre Konsistenz. Es werden mit dem DB-Checker der Version 13 nun auch die Spalten der Tabellen auf eine für SelectLine gültige Sortierung geprüft. Prüfung über den DBChecker Für die Lagerdatenprüfung ist der DBChecker der Version 12 oder 13 notwendig. Die „Standard.xml“ muss aus der Serverinstallation der Version 12 oder Version 13 ausgewählt werden. Es muss der SQL Server ausgewählt werden, auf dem sich der Mandant (Version 11.5.4.x) befindet. Die Anmeldung am Server muss über „sa“ oder einem Nutzer mit administrativen Rechten auf dem SQL Server erfolgen. Brechen Sie die Prüfung mit ab oder gehen Sie mit zur Mandantenauswahl. Mit starten Sie den Prüfvorgang. Die Prüfung der Lagerdaten erfolgt automatisch, wenn der Mandant eine Version 11.5.x oder älter aufweist und wenn die Tabelle LAGERP vorhanden ist. Seite 5 von 40 Hinweise: In älteren Versionen des DB-Checkers gab es noch einen separaten Schalter . Auch wurde eine fehlerfreie Prüfung im Protokoll mit einem Text aufgezeigt. Jetzt erfolgt nur eine Textausgabe im Protokoll, wenn Hinweise/Fehler bezüglich der Lagerdaten festgestellt wurden bzw. wird die Anzahl der Fehler sowie Dateifehler je mit dem Wert „0“ angezeigt. Mittels eines grünen Fortschrittsbalkens zeigen wir den Ablauf der Prüfungen an. Auf der Seite „Protokoll“ sehen Sie mögliche Lagerdaten-Hinweise am unteren Ende (nach den Prüfhinweisen der einzelnen Tabellen von A-Z). Seite 6 von 40 Ein mögliches Ergebnis der Prüfung mit Hinweise kann so aussehen: Kritische Fehler Treten bei der Prüfung kritische Fehler auf, kann für den Mandanten kein Update durchgeführt werden, solange nicht alle Fehler behoben werden. Diese Fehler sollten unbedingt in der Version 11.5.x behoben werden (weitere Informationen und Lösungsvorschläge im Kapitel 2.3). Ein Beispiel für das Auftreten eines kritischen Fehlers: Prüfen Sie unbedingt beide Karteireiter „Protokoll“ und „Fehlerprotokoll“! Seite 7 von 40 1.2.2 Übernahme aller Lagerdaten während des Updates Nach dem Update einer 11.5.4.x-er Installation mit der Version 12 oder 13 muss der aktuelle Mandant reorganisiert werden. Dabei erfolgt (wie auch durch den DBChecker) eine Lagerdatenprüfung. Werden dabei keine kritischen Fehler festgestellt, folgt die Übernahme der Lagerdaten ohne weiteren Dialog. Wurde während der Prüfung ein kritischer Fehler (z. B. offene Inventur) festgestellt, stoppt die Reorganisation mit einer Fehlermeldung. Zu diesem Zeitpunkt mussten bereits Änderungen an den Tabellenstrukturen vorgenommen werden. Der Mandant kann nicht mehr in einer Version kleiner der 12.0.4.10/13.0.0 verwendet werden. Es öffnet sich die Mandantenauswahl, um zu einem anderen Mandanten zu gelangen. Übernahme der Lagerdaten Durch die Lagerdatenübernahme werden die Informationen zu Lagerbewegungen aus der Version 11.5.x in die neue Struktur der Version 12 übertragen. Während der Lagerdatenübernahme finden Sie einen grünen Fortschrittsbalken in der SelectLine-Fusszeile: Das Programm korrigiert folgende Belegpositions- und Lagerprotokolleinträge: • Lagerprotokolleinträge ohne gültiges Datum • Belegpositionen (für Belegtypen die reservieren, bestellen oder fertigen) ohne gültiges Datum • Belegpositionen mit Lager und Standortangaben, die von den Lagerstammdaten abweichen (für Belegtypen die reservieren, bestellen oder fertigen) • Bestandsrelevante Lagerprotokolleinträge Lager und Standortangaben, die von den Lagerstammdaten abweichen Im Ergebnis dessen kann eine Meldung nach folgendem Schema am Ende der Lagerdatenübernahme auf dem Bildschirm erfolgen: Im ersten Beispiel wurde für Korrekturzwecke ein Beleg vom Typ „Manuelle Lagerung“ und der Belegnummer „__V12_1“ angelegt. Dieser Beleg kann unter „Lagerverwaltung/Manuelle Lagerung“ eingesehen werden. Lagerprotokolleinträge (für Belegtypen die reservieren, bestellen oder fertigen) werden auf Grundlage der Belegpositionen neu aufgebaut. Zudem werden keine bestandsrelevanten Lagerprotokolleinträge übernommen, zu denen keine Belegposition mehr existiert. Weitere Detail-Informationen zu stattfindenden Prüfungen siehe unter Kapitel 2.3.2. Seite 8 von 40 1.3 Fehlerszenarien & Lösungsvorschläge 1.3.1 Kritische Fehler Ein Update des Mandanten ist nicht möglich, da begonnene Inventuren oder Belegpositionen mit ungültigem Wert in der Spalte „Verwendet" existieren. Im folgenden finden Sie Makroanweisungen, mit denen Sie die fehlerhaften Datensätze in der Version 11.5.4.x aufspüren können. Es existieren offene Inventuren Inventuren müssen über das Programm abgeschlossen oder gelöscht werden. Makro zur Ermittlung: SELECT bl.Belegtyp, bl.Belegnummer FROM Beleg bl WHERE bl.Belegtyp = (N'I') AND ISNULL(bl.Status, N'0') < N'2'; Arithmetischer Überlauffehler beim Konvertieren von float in den numeric-Datentyp Diese Fehlermeldung besagt, dass sehr grosse oder sehr kleine Werte im Feld Menge der Tabellen LagerP, LagerLnk und BelegP existieren. Ursache sind zu grosse Lagermengen. Gegebenenfalls müssen diese Werte manuell angepasst werden. Makro zur Ermittlung der Anzahl betroffener Datensätze in der Tabelle LagerP: SELECT COUNT(*) FROM Lagerp WHERE Code IN (N'Z', N'z', N'A', N'a', N'P', N'p') AND ((Menge >= 1.0E12) OR (Menge <= -1.0E12) OR (Preismenge >= 1.0E12) OR (Preismenge <= -1.0E12)); Makro zur Ermittlung der Anzahl betroffener Datensätze in der Tabelle LagerLnk: SELECT COUNT(*) FROM LagerLnk WHERE (Menge >= 1.0E12) OR (Menge <= -1.0E12); Makro zur Ermittlung der Anzahl betroffener Datensätze in der Tabelle BelegP: SELECT COUNT(*) FROM BELEGP WHERE ((Menge*Lagerfaktor) >= 1.0E12) OR ((Menge*Lagerfaktor) <= -1.0E12) OR ((Verwendet*Lagerfaktor) >= 1.0E12) OR ((Verwendet*Lagerfaktor) <= -1.0E12); Makro zur Ermittlung betroffener Belege: SELECT bp.Artikelnummer, bp.Belegnummer, bp.Menge as [Menge BelegP], bp.Lagerfaktor as [Lagerfaktor BelegP], (bp.menge*bp.lagerfaktor) as [Lagermenge Position], lp.Menge as [Lagermenge LagerP], lp.id as LagerPID FROM BELEGP bp LEFT OUTER JOIN LAGERP lp ON bp.Kennung = lp.Kennung WHERE ((bp.Menge*bp.Lagerfaktor) >= 1.0E12) OR ((bp.Menge*bp.Lagerfaktor) <= -1.0E12); Makro zur Ermittlung betroffener Belege nach abgebrochener Lagerdatenübernahme: SELECT bp.Artikelnummer, bp.Belegnummer, bp.Menge as [Menge BelegP], bp.Lagerfaktor as [Lagerfaktor BelegP], (bp.menge*bp.lagerfaktor) as [Lagermenge Position], lp.Menge as [Lagermenge LagerP], lp.id as LagerPID FROM BELEGP bp LEFT OUTER JOIN KennungZuGUID kg ON kg.Id = bp.Kennung LEFT OUTER JOIN LagerP lp ON kg.Kennung = lp.Kennung WHERE ((bp.Menge*bp.Lagerfaktor) >= 1.0E12) OR ((bp.Menge*bp.Lagerfaktor) <= -1.0E12); Seite 9 von 40 Es existieren Belege mit ungültigen Informationen in den Spalten Menge und Verwendet Es existieren Belegpositionen mit ungültigen Vorgänger-/Nachfolgerinformationen Da die Reservierungen und Bestellungen aus den Belegpositionen neu aufgebaut werden, muss sichergestellt sein, dass die Daten korrekt sind. Die Spalte „Verwendet“ gibt an, wie viel der ursprünglichen Positionsmenge bereits in den Folgebeleg übergeben worden ist. Diese Spalte darf weder grösser als die Positionsmenge noch negativ sein. Makro 1 zeigt fehlerhafte Datensätze an. Diese müssen korrigiert werden, damit ein Update möglich ist. Werden durch das Makro Belegpositionen aufgeführt, die den Status 0 besitzen, kann die Spalte „Verwendet“ mit dem Wert 0 überschrieben werden. Das bedeutet, diese Position wurde noch nicht übergeben. Ergebnismenge Makro 1 des Makroassistenten (zur Korrektur im „Änderbar-Modus“ gestartet) Belegpositionen, die den Status 1 besitzen (Makro 2), wurden bereits teilweise in den Folgebeleg übergeben. Besitzen diese Positionen einen fehlerhaften Wert in der Spalte Verwendet, muss er auf die tatsächlich übergebene Menge geändert werden. Hierfür ist die Information wichtig, mit welcher Menge die Position übergeben wurde (Makro 3). (Makro 2 Ergebnis) (Makro 3 Ergebnis) (Makro 2 Korrekur im „Änderbar-Modus“) Makro 3 muss pro Belegtyp angepasst werden. Die Einschränkung auf den Belegtyp kann dafür entsprechend den Ergebnissen aus Makro 2 geändert werden. Für Bestellungen müsste die Abfrage also den Belegtyp B abfragen (… WHERE bp.Belegtyp = 'B'). Makro 1 zur Ermittlung: SELECT bp.Belegtyp, bp.Belegnummer, bp.Status, bp.Kennung, bp.Menge, bp.Verwendet FROM Belegp bp INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp WHERE ba.Lagerflag IN (N'R',N'E') AND ISNULL(bp.Status, N'0') = N'0' AND bp.Lagerartikel = 1 AND ROUND(bp.Menge, 10) > 0 AND (ROUND(bp.Menge, 10) < ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0); Makro 2 zur Ermittlung: SELECT bp.Belegtyp, bp.Belegnummer, bp.Status, bp.Kennung, bp.Menge, bp.Verwendet FROM Belegp bp INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp WHERE ba.Lagerflag IN (N'R',N'E') AND ISNULL(bp.Status, N'0') = N'1' AND bp.Lagerartikel = 1 AND ROUND(bp.Menge, 10) > 0 AND (ROUND(bp.Menge, 10) < ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0); Makro 3 zur Ermittlung: SELECT bp.Kennung, sum(bp2.Menge) as "Korrektur Verwendet" FROM Belegp bp LEFT OUTER JOIN Belegp bp2 on bp2.Vorgaenger = bp.Kennung WHERE bp.Belegtyp = 'F' AND ISNULL(bp.Status, N'0') = N'1' AND bp.Lagerartikel = 1 AND ROUND(bp.Menge, 10) > 0 AND (ROUND(bp.Menge, 10) < ROUND(bp.Verwendet, 10) OR ROUND(bp.Verwendet, 10) < 0 GROUP by bp.Kennung; Seite 10 von 40 1.3.2 Fehler und Hinweise Fehler die während der Lagerdatenübernahme programmintern korrigiert werden. Es existieren Lagerprotokolleinträge ohne Belegpositionen Makro zur Ermittlung in Version 12: SELECT * FROM Lagerp lp LEFT OUTER JOIN KennungZuGUID kg ON kg.Kennung = lp.Kennung WHERE ISNULL(kg.Kennung, 0) < 1 AND lp.Code IN (N'Z',N'A',N'P'); Makro zur Ermittlung in Version 11.5.4.x: SELECT * FROM Lagerp lp LEFT OUTER JOIN Belegp bp ON bp.Kennung = lp.Kennung WHERE ISNULL(bp.Kennung, 0) < 1 AND lp.Code IN (N'Z',N'A',N'P'); Es existieren Lagerprotokolleinträge mit ungültigen Lagerinformationen Makro zur Ermittlung: SELECT * FROM Lagerp lp WHERE lp.LagerplatzID NOT IN (SELECT ID FROM Lagerplatz) AND ISNULL(lp.LagerplatzID, 0) > 0; Es existieren Lagerprotokolleinträge mit ungültigen Serien- und Chargeninformationen (z. B. die auf eine Serien-/Chargennummer verweisen, welche in den Stammdaten nicht exisitert) Makro zur Ermittlung: SELECT * FROM Lagerp lp WHERE lp.IdSerie NOT IN (SELECT ID FROM Serie) AND ISNULL(lp.IdSerie, 0) > 0; Es existieren Lagerprotokolleinträge mit ungültigen Mengenangaben zu Seriennummern (Eine Seriennummer-Lagerung darf in der alten LAGERP nur die Menge +/-1 aufweisen) Makro zur Ermittlung: SELECT lp.IdSerie, lp.Code FROM Lagerp lp LEFT OUTER JOIN Serie ch ON ch.Id = lp.IdSerie WHERE ISNULL(lp.IdSerie, 0) > 0 AND ch.SCTyp IN (N'S',N'V') AND lp.Code IN (N'Z',N'A') GROUP BY lp.IdSerie, lp.Code HAVING (SUM(lp.Menge) > 1 OR SUM(lp.Menge) < -1) Es existieren Lagerprotokolleinträge mit ungültigem Wert in der Spalte „Menge“ oder „Bestand“ Makro zur Ermittlung: SELECT * FROM Lagerp WHERE (Code = N'Z' AND ROUND(Bestand, 10) < 0) OR (Code IN (N'A',N'a')AND ROUND(Menge, 10) > 0) OR (Code IN (N'Z',N'z',N'P',N'p') AND ROUND(Menge, 10) < 0); In der Belegpositions- und Lagerprotokolltabelle existieren Einträge, die einen ungültigen Wert in der Spalte "Datum" besitzen Makro zur Ermittlung: SELECT Kennung, Datum, '01.01.1900' as "Korrekur in" FROM Belegp bp INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp WHERE ba.Lagerflag IN (N'R',N'E',N'F') AND ISNULL(bp.Status, N'0') < N'2' AND bp.Datum IS NULL; Seite 11 von 40 In der Belegpositions- und Lagerprotokolltabelle existieren Einträge, die einen ungültigen Wert in der Spalte „Datum“ besitzen Makro zur Ermittlung: SELECT ID, Datum, '01.01.1900' as "Korrekur in" FROM Lagerp lp WHERE NOT lp.Code IN (N'R',N'E',N'F',N'I') AND lp.Datum IS NULL; In der Lagerprotokolltabelle existieren Einträge für Artikel mit der Dispositionsart „FEFO“ ohne gültiges Verfallsdatum Makro zur Ermittlung: SELECT Id, Code, lp.Artikelnummer, Verfallsdatum, '01.01.1900' as "Korrekur in" FROM Lagerp lp INNER JOIN Art a ON a.Artikelnummer = lp.Artikelnummer AND a.Lagerstrategie = N'V' WHERE lp.Code IN (N'Z',N'A',N'P') AND ISNULL(lp.Verfallsdatum, 0) = 0; In der Belegpositionstabelle existieren Einträge (für Belegtypen, die reservieren, bestellen oder fertigen) mit Angaben zu „Standort“ und „Lager“, die nicht den Lagerstammdaten entsprechen Makro zur Ermittlung: SELECT bp.Kennung, bp.Lager as "Lager Belegp", bp.Standort as "Standort Belegp", la.Lager as "Lager Stamm", la.Standort as "Standort Stamm" FROM Belegp bp INNER JOIN BelArten ba ON ba.Belegtyp = bp.Belegtyp INNER JOIN Lagerplatz lap ON lap.Id = bp.LagerplatzId LEFT OUTER JOIN Lager la ON la.Lager = lap.Lager WHERE ba.Lagerflag IN (N'R',N'E',N'F') AND ISNULL(bp.Status, N'0') < N'2' AND (bp.Standort <> ISNULL(la.Standort, N'') OR bp.Lager <> ISNULL(la.Lager, N'')); In der Lagerprotokolltabelle existieren Einträge (für Belegtypen, die reservieren, bestellen oder fertigen) mit Angaben zu „Standort“ und „Lager“, die nicht den Lagerstammdaten entsprechen Makro zur Ermittlung: SELECT lp.Id, lp.Standort as "Standort Lagerp", lp.Lager as "Lager Lagerp", la.Lager as "Lager Stamm", la.Standort as "Standort Stamm" FROM Lagerp lp INNER JOIN Lagerplatz lap ON lap.Id = lp.LagerplatzId LEFT OUTER JOIN Lager la ON la.Lager = lap.Lager WHERE NOT lp.Code IN (N'R',N'E',N'F',N'I') AND (lp.Standort <> ISNULL(la.Standort, N'') OR lp.Lager <> ISNULL(la.Lager, N'')); Seite 12 von 40 1.4 Lager-Korrekturmöglichkeiten innerhalb der Version 12 und 13 In diesem Abschnitt werden bisher bekannte Lagerdifferenzen behandelt, welche nach dem Durchlaufen der Lagerdatenübernahme aus Version 11.5.4.x in Version 12.x oder 13.x auftreten können. Dabei werden Funktionen beschrieben, die innerhalb eines 12er Mandanten aufgerufen werden können, um fehlerhafte Zustände im neuen LAGERPROTOKOLL zu bereinigen/zu korrigieren. Diese Funktionen werden einmalig durch sogenannte „INI-Einträge“ aktiviert. Wenden Sie sich bei Bedarf an den SelectLine-Support. 1.4.1 Positive und negative Lagerbestände Nach dem Lagerupdate werden im Artikelstamm auf der Seite „Lager“ Bestände mit der Menge=0 angezeigt. Diese Null-Bestände ergeben sich durch positive und negative Bestände im selben Lager, welche als Summe dann Null ergeben. 1.4.2 Positive und negative Seriennummernbestände Bei Lagerdatenübernahmen von 11.5.4.x auf 12.0.4.1 oder höher wird diese Funktion automatisch ausgeführt, um fehlerhafte Lagerdaten zu korrigieren. Diese Zusatzfunktion ist erforderlich, wenn die Lagerdatenübernahme mit einer Version kleiner 12.0.4.1 ausgeführt wurde. Nach dem Lagerupdate werden im Artikelstamm auf der Seite „Lager“ Bestände mit derselben Seriennummer mit positiver und negativer Menge (=1/=-1) in verschiedenen Lägern/Lagerplätzen angezeigt. Eine eventuell im 11.5.4.x stattgefundene Umlagerung des Seriennummernbestandes konnte bei der Lagerdatenübernahme nicht nachvollzogen werden. Deshalb existiert nun im Quelllager weiterhin der positive Bestand und im Ziellager ein negativer Bestand (weil nach der Umlagerung z. B. ein Lieferschein/eine Rechnung die Seriennummer ausgelagert hatte). 1.4.3 Gepackte Bestände erledigter Packzettel Nach dem Lagerupdate werden im Artikelstamm in der Seite „Lager“ Packbestände aufgelistet, obwohl die Packzettel bereits einen Nachfolgerbeleg haben (Lieferschein/Rechnung) und damit lagerseitig und belegübergabeseitig erledigt sind. Mit einer Zusatzfunktion werden diese gepackten Bestände wieder frei gegeben – danach sind die Packmengen wieder normale Bestände und erhöhen damit natürlich den normalen Bestand. Notfalls muss manuell der Bestand – z. B. durch Inventur oder manuelle Lagerung – wieder reduziert werden! Es wird ein Protokoll erstellt, bei welchen Artikeln Packbestände freigegeben werden konnten und wo eventuell nicht. 1.4.4 Negative Bestände erledigter Packzettel Nach dem Lagerupdate werden im Artikelstamm auf der Seite „Lager“ Packbestände mit negativer Menge aufgelistet, obwohl die Packzettel bereits einen Nachfolgerbeleg haben (Lieferschein/Rechnung) und damit lagerseitig und belegübergabeseitig erledigt sind. Oder die Zusatzfunktion, wie im Kapitel 2.5.3 beschrieben, bleibt bei der Korrektur „hängen“. Es werden automatisch manuelle Lagerungen zur Bestandskorrektur ausgeführt, so sich diese Zusatzfunktion „bestandsneutral“ verhält. 1.4.5 Teilfertige Werkaufträge ohne Reservierungen Nach dem Lagerupdate fehlen für Werkaufträge, die in der Version 11.5.4.x teilfertig gestellt wurden, die Reservierungen der noch nicht verwendeten Teile. Bei Lagerdatenübernahmen von 11.5.4.x auf 12.0.4.10 oder höher wird diese Funktion automatisch ausgeführt, um fehlerhafte Lagerdaten zu korrigieren. Diese Zusatzfunktion ist erforderlich, wenn die Lagerdatenübernahme mit einer Version kleiner 12.0.4.10 ausgeführt wurde. Seite 13 von 40 1.4.6 Lagerbestände, die nicht zur Artikeleinstellung passen, Bestände ausbuchen/korrigieren Nach dem Lagerupdate werden im Artikelstamm auf der Seite „Lager/Bestände“ Bestände aufgelistet. Das kann die folgenden Gründe haben: sie wurden nicht „miteinander verrechnet“ oder alle oben aufgeführten Funktionen haben nicht zum gewünschten Erfolg geführt oder Bestände können mit manuellen Lageraktionen/Inventuren nicht verändert werden. Die Funktionalität „Bestände ausbuchen/korrigieren“ wird standardmässig im Zusatz-Funktionsmenü einer manuellen Lagerung angeboten (ab 12.0.4.10). Nach Ausführung der Bestandesanpassungen sollten keine offenen Inventuren mehr vorhanden sein. Andernfalls könnte der Inventurabschluss wiederum Fehlbestände erzeugen. Mit dieser Funktion werden aktuelle Bestände im aktiven Mandanten gesucht, die nicht der Artikeleinstellung entsprechen. Was das bedeutet, wird an Beispielen deutlicher: • Artikel ist lagerseitig mit Seriennummer eingestellt es werden Bestände ohne Seriennummer gefunden • (Der INI-Eintrag weiter oben verrechnet nur Bestände mit identischer Seriennummer) Artikel ist lagerseitig ohne Chargennummer, aber mit Verfallsdatum (Lagerstrategie FEFO) eingestellt es werden Bestände mit Chargennummer, aber ohne Verfallsdatum gefunden es werden Bestände ohne Chargennummer, aber mit Verfallsdatum gefunden es werden Bestände ohne Chargennummer und ohne Verfallsdatum gefunden • Artikel soll keine Serien-/Chargennummer bekommen und kein Verfallsdatum aufweisen es werden Bestände mit Chargennummer und Verfallsdatum gefunden es werden Bestände ohne Chargennummer und Verfallsdatum gefunden und weitere Kombinationen Die Funktion überprüft die Bestände aller Artikel und listet diese dann tabellarisch auf. Seite 14 von 40 Beispiel In den beiden nächsten Bildern sehen Sie als Beispiel, dass der Artikel 72533A ein Lagerartikel ohne Verfallsdatum und ohne Serien-/Chargennummer ist. Es wird ein Bestand der Menge 2 angezeigt, was allerdings irreführend sein kann. Die Prüfroutine findet zwei Lagerbestände, die jedoch ein Verfallsdatum aufweisen! Die „nichtpassenden“ Eigenschaften werden durch ein rotes Ausrufezeichen (im Beispiel das Verfallsdatum) markiert. In der Auflistung können nun einzelne oder mehrere Datensätze windows-typisch markiert werden. Dann kann entweder [Korrigieren] oder [Ausbuchen] als auszuführende Aktion gewählt werden. 1. Ausbuchen Man will den Bestand loswerden. Es wird der markierte Bestand „vernichtet“. Im Allgemeinen wird dadurch der Gesamtbestand verändert. 2. Korrigieren Der Bestand soll erhalten bleiben und für reguläre Lagerbuchungen verfügbar gemacht werden. Dazu muss der Bestand zuerst ausgebucht werden und dann mit korrekten „Eigenschaften“ wieder eingelagert werden. Beim Einlagern kann ein Lagerdialog erscheinen, um fehlende Angaben zu ergänzen (z. B. fehlt Chargen-/Seriennummer und/oder Verfallsdatum). Müssen nur Angaben weggelassen werden (wie im angegeben Beispiel das Verfallsdatum), wird kein Einlagerungsdialog eingeblendet. Die Lagerbewegungen werden auf zwei Arten protokolliert: a) im Fehlerprotokoll „Bestandsanpassungen“, wenn irreguläre Aktionen ausgeführt werden müssen, um einen Bestand auszubuchen. b) im manuellen Lagerbeleg als Lagerpositionen , wenn es sich um reguläre Lageraktionen handelt wie z. B. eine (Wieder-) Einlagerung mit allen erforderlichen Angaben. Seite 15 von 40 Die Prüfliste wird nach den Anpassungen um die markierten und ausgebuchten Bestände reduziert. Im Artikelstamm auf der Seite Lager sieht man beim [Ausbuchen] dann keinen Bestand mehr. Während beim [Korrigieren] der Bestand „unverändert“ erscheint: Im Artikelstamm werden Ausbuchungen auf der Seite „Lager“ unter „Lagerabgang“ als „Datenreduktion“ angezeigt, weil es keine zugehörigen Belegpositionen für diese Lageraktionen gibt. Wir empfehlen Ihnen, nach den Anpassungen eine Inventur durchzuführen. 1.5 Update von der Version 12 betr. offenen Inventuren (13.0.0) Aufgrund der neuen Lagerstruktur ist es für ein Update von der Version 12 auf 13 nicht mehr zwingend notwendig, offene Inventuren vorher abzuschliessen. Eine Prüfung über den DB-Checker sollte aber in jedem Fall vor dem Update erfolgen. Der DB-Checker der aktuellen Version 13 ist notwendig. Die Standard.xml muss aus der Installation der Version 13 ausgewählt werden. Seite 16 von 40 2 Mandanteneinstellungen 2.1 Seite „Belege/Belegpositionen“, neuer Bereich „Bestände“ Für die Überarbeitung der Lagerverwaltung wurde die Mandantenoption „Lager für Anzeigen Bestand (über Artikelnummer) und Lieferbarkeit beachten“ aus dem Bereich „Artikel“ entfernt. An dessen Stelle tritt nun im neuen Bereich „Bestände“ das frei über ein „Calculator“-Feld zu definierende Feld „Bestandsanzeige über dem Artikelfeld“. vorher in 11.5.4: neu in 12.0.0: Damit kann nun mit Hilfe der aus dem Formulareditor bekannten Funktionalitäten für Calculator-Felder (z. B. für Formelfelder) der anzuzeigende Bestand beliebig vordefiniert werden. Seite 17 von 40 2.2 Seite Werkaufträge Die bisher vorhandenen Optionen wurden mit der Überarbeitung der Lagerfunktionen neu angeordnet: vorher in 11.5.4: neu in 12.0.0: Seite 18 von 40 2.3 Seite „Lager“ Auch auf dieser Seite wurden Optionen neu gestaltet. Beachten Sie zu der schon immer verfügbaren Funktion „Lagerdialog immer zeigen“ zusätzlich das Kapitel 4.4.1. Ab der Version 12 können im Artikel ebenfalls Einstellungen vorgenommen werden, die je nach dem diese Mandanteneinstellung übersteuern könnten. 2.3.1 Einlagern/Lagerdialog immer zeigen Hier kann eingestellt werden, dass – unabhängig von der Hinterlegung von Automatismen beim Artikel – der Lagerdialog immer gezeigt werden soll. Seite 19 von 40 2.3.2 Auslagern/Für den Vorschlag gilt die Reihenfolge: (12.0.3) Bereits in 12.0.0 bzw. 12.0.2 konnte in den Lagereinstellungen des Mandanten (Seite „Lager“) im Bereich „Auslagern“ für die automatischen Auslagerungsvorschläge vorgegeben werden, welche Läger verwendet werden sollen. vorher in 12.0.2 : neu in 12.0.3: Der Auslagerungsvorschlag kann über alle Läger entsprechend der Auslagerungsstrategie des Artikels erstellt werden, er kann auf das Positionslager (Lager in der Belegposition) eingeschränkt werden und er kann so eingestellt werden, dass zuerst die Bestände aus dem Positionslager und danach die Bestände aller anderen Läger verwendet werden. Ab der Version 12.0.3 kann neu noch unterschieden werden, ob ein bestimmter oder alle Lagerplätze aus dem vorgegebenen Lager für den Lagerungsvorschlag verwendet werden sollen. Zudem wurde aufgrund der Änderung der Logik die Beschriftung von „Bestände vorschlagen aus“ auf „Für den Vorschlag gilt die Reihenfolge:“ geändert. Beachten Sie, dass hier auch noch zusätzlich die Lagerstrategie des Artikels mit berücksichtigt wird. Somit lässt sich wie folgt zusammenfassen: • Der „Auslagerungsvorschlag über“ bestimmt, aus welchen Lägern die Bestände in welcher LagerReihenfolge (z. B. erst Positionslager-Lager, dann alle Läger) zur Verfügung stehen. • Die Artikeleinstellung „Lagerstrategie“ bestimmt, in welcher Reihenfolge die zur Verfügung stehenden Bestände abgearbeitet werden. Steht hier die Strategie auf „keine“, erfolgt kein Auslagerungsvorschlag, d. h. die Ist-Menge der Lagerung = 0. In diesem Fall öffnet sich immer der Lagerdialog. Für diesen speziellen Fall greift weder das Standardlager noch „Auslagerungsvorschlag über“, da kein Vorschlag erfolgt. 2.3.3 Auslagern /Einlagern/Warnen bei abweichender Menge im Lagerdialog (12.0.3) Hier kann getrennt für Ein- und Auslagern die Option „Warnen bei abweichender Menge im Lagerdialog“ gesetzt werden. Wird im Lagerdialog eine von der Belegposition abweichende Menge erfasst, weil der Lagerbestand z.B. nicht ausreicht oder weil der Lieferant weniger geliefert hat, erscheint eine Warnung, dass die erwartete Menge abweicht. Das Lagern mit abweichender Menge ist dabei möglich. 2.3.4 Auslagern /Negativ lagern zulassen Von besonderer Bedeutung ist die neue Option „Negativ lagern zulassen“. Damit kann nun die Entstehung von negativen Beständen verhindert werden. Ab der Version 13.0.0 wird hier auch das Verhalten der Lageraktion „Packen“ gesteuert. Wird die Option „Negativ lagern zulassen“ deaktiviert, verhindert das Programm nun auch, dass negative Packbestände entstehen bzw. in Negative gepackt werden. Seite 20 von 40 2.3.5 Serien-/Chargennummer im Dialog scannen (12.0.3) Bisher (bis 11.5.x) konnte mit einer Option in den Mandanteneinstellungen beim Auslagerdialog automatisch ein zusätzliches Fenster aktiviert werden, welches die eingescannte Seriennummer „aufnimmt“. Der Auslagerungsdialog selbst war „nicht editierbar“ im Hintergrund geöffnet, die gescannten Seriennummern wurden automatisch markiert. War die Zielmenge erreicht, wurden das „Zusatzfenster“ und der Auslagerdialog automatisch geschlossen. Nun öffnet sich über den Auslagerdialog jedoch kein zusätzliches Fenster mehr und die Scanzeile ist im Dialog „Auslagern“ enthalten: Innerhalb des Auslagerungsdialoges steht der Cursor sofort in der „Eingabezeile“ für die Seriennummer („Serien-Chargennummer scannen“). Jeder Scan führt zum Suchen der Seriennummer, Markieren und Füllen der Menge. Ist die Gesamtmenge erreicht, schliesst sich auch hierbei der Auslagerdialog automatisch. 2.3.6 Untermenüpunkt „Manuelle Lagerungen“ auf Seite „Lager“ entfernt vorher in 11.5.4: Der Unterabschnitt „Manuelle Lagerungen“ wurde ersatzlos gestrichen, da alle manuellen Lagerungen jetzt einen eigenständigen Belegdialog haben. Seite 21 von 40 2.3.7 Checkbox „Automatisch, wenn Lager vorgegeben“ entfallen/ersetzt vorher in 11.5.4: neu in 12.0.0: Entspricht der Kombination „Positionslager, bestimmter Lagerplatz“ und Checkbox „negativ lagern“ aktiv. Da in der Version 11.5 noch Lagerplatzpflicht bestand, kam es zu der Situation, dass das Standard-Lager mit erstem Lagerplatz in der Position vorgetragen wurde. Bei ausgeschaltetem Lagerdialog führte das dann dazu, dass auf dem ersten Lagerplatz in jedem Fall und ohne Rücksicht auf andere Bestände negativ gelagert wurde, obwohl auf weiteren Lagerplätzen noch ausreichend Bestand vorhanden war. Durch den Lagerungsvorschlag „Positionslager – alle Lagerplätze“ kann dies jetzt verhindert werden. Die Einstellung, ob negativ gelagert werden darf, kann jetzt auch unabhängig vom Lagerungsvorschlag erfolgen. 2.3.8 Checkbox „Vorschlagsliste über alle Läger“ entfallen/ersetzt vorher in 11.5.4: neu in 12.0.0: Entspricht exakt dem Lagerungsvorschlag „alle Läger“. Neu ist, dass mit „Positionslager – alle Plätze, dann alle Läger“ Bestände im Positionslager (Standard-Lager), Beständen in allen anderen Lägern vorgezogen werden können. Seite 22 von 40 2.4 Packzettel in Aufgaben (13.0.0) In die Aufgabenliste des Mandanten wurden die Packzettel mit aufgenommen. Seite 23 von 40 3 Neuerungen und Änderungen in den Strukturen/Tabellen In der Version 12 von SelectLine Auftrag ist eine grundlegend neu entwickelte Lagerverwaltung enthalten, die sich in ihren Strukturen, Abläufen und Dialogen wesentlich von der Lagerverwaltung der Versionen 11.5 und davor unterscheidet. Oberstes Ziel aller Änderungen ist die Sicherstellung der Korrektheit aller Beleg- und Lagerdaten. Erreicht wird dieses Ziel durch die Zusammenfassung aller Beleg-, Belegpositions- und Lageraktionen in der Datenbank zu einer einzigen Datenbankoperation. So können Abweichungen zwischen Belegen und Lager sowie inkonsistente Lagerzustände künftig vermieden werden. Vor diesem Hintergrund werden die Datenstrukturen sowohl der Lagerverwaltung als auch der Belege überarbeitet und angepasst. Änderungen ergeben sich ebenfalls in der COM-Schnittstelle, die an die neuen Strukturen angepasst werden muss. Folgende zwei Funktionen stehen ab der Version 12 nicht mehr zur Verfügung: • Die Artikelnummer kann in bereits vorhandenen lagernden Belegpositionen nicht getauscht werden • Das Vorzeichen der Mengenangabe kann in bereits vorhandenen lagernden Belegpositionen nicht geändert werden In diesen Fällen muss die gesamte Position gelöscht und mit korrekter Artikelnummer bzw. korrektem Vorzeichen erfasst werden. Hiervon sind aber nur Artikel mit Lagerfunktion betroffen! Die gesamte bisherige Tabellenstruktur wurde geändert. Beachten Sie bitte, dass das Positionslager in den Belegen nur als Vorschlag für den Lagerdialog verwendet wird. Insbesondere erfolgt keine Anpassung des Positionslagers, wenn in der Lagerung selbst ein oder sogar mehrere abweichende Läger verwendet werden. Eine Änderung der Lagerdaten einer Position ist über den Menüpunkt „Lagerdaten bearbeiten“ vorzunehmen. 3.1.1 Neue Tabellenstrukturen Die bisherige Tabelle LAGERP entfällt in Version 12 der Auftragsbearbeitung. Stattdessen wird es eine neue Tabelle LAGERPROTOKOLL geben, in der jede Lageraktion einzeln protokolliert wird. Anhand der Datensätze der Tabelle LAGERPROTOKOLL erfolgt die eigentliche Lagerung in den ebenfalls neuen Lagertabellen LAGERBESTAND, LAGERBEDARF, LAGERBESTANDPACK und LAGERFERTIGUNG: • LAGERPROTOKOLL Die Tabelle enthält alle durchzuführenden Lagerungsaktionen (auch „Wertaktionen“). Sie hat echten „Protokollcharakter“: Es werden immer nur Datensätze angehängt, bereits vorhandene Datensätze werden nie gelöscht oder verändert. • LAGERBESTAND Die Tabelle enthält alle aktuell vorhandenen Bestände sowie offene Lagerabgänge (negative Auslagerungen). Sie ist damit vergleichbar zu den bisherigen „Z“- und „A“-Zeilen in der LAGERP. • LAGERBEDARF In der Tabelle LAGERBEDARF werden alle Reservierungen und Bestellungen erfasst. Sie enthält also die „R“- und „E“-Zeilen der aktuell verwendeten LAGERP. • LAGERBESTANDPACK Die Tabelle LAGERBESTANDPACK enthält die bisher als „P“-Zeilen in der LAGERP geführten Packzettelbestände. • LAGERFERTIGUNG In der Tabelle LAGERFERTIGUNG werden die in Produktion befindlichen Artikelmengen erfasst, die in der LAGERP als „F“-Zeilen geführt werden. Zusätzlich wird eine neue Tabelle SNINFO angelegt, in der die bisherigen „I“-Zeilen der LAGERP und die Seriennummern im Verkauf abgebildet werden. Seite 24 von 40 3.1.2 Nicht mehr benutzte Tabellen In der Version 12 werden folgende Tabellen nicht mehr enthalten sein: • LAGERP • LAGERLNK Das betrifft einen in Version 12 neu angelegten Mandanten. Nach einem Update von Version 11.5.x auf Version 12 werden die Inhalte der beiden Tabellen verarbeitet und bleiben weiterhin im Mandanten bestehen. Sie werden jedoch seitens des Programmes nicht mehr benutzt. 3.1.3 Datentypänderung Feld „Kennung“ in der BELEGP und Auswirkungen Das Feld „Kennung“ wird in der Version 12 vom Typ UNIQUEIDENTIFIER sein (bisher INT). Dadurch wird in allen vorhandenen Konstellationen sichergestellt, dass die Kennung eindeutig ist. Insbesondere auch dann, wenn Kennungen „vorab“ im Programm oder aber erst „später“ im SQL Server erzeugt werden müssen. Aus der Änderung des Datentyps für „Kennung“ ergeben sich folgende Konsequenzen: • Die von „Kennung“ abhängigen Felder der BELEGP werden ebenfalls auf den Datentyp UNIQUEIDENTIFIER umgestellt: • Hauptkennung • Vorgaenger • Fertigung • ZuschlagFuer • Alle Felder anderer Tabellen, die Verweise auf die Kennung einer Belegposition enthalten, werden ebenfalls auf den Datentyp UNIQUEIDENTIFIER umgestellt. Das betrifft insbesondere die bisherigen Felder „Kennung“ in den Tabellen: • BELEGPDETAILS • VORTRAGP • GSCHEIN • LEISTUNG • INMELDP • PROVABR • VERBRAUCH • VERTRAGL TEXT (Feld „Blobkey“ verlängert) • Zusätzlich werden die o.a. „Kennung“-Felder einheitlich umbenannt in „BelegPKennung“: z. B. GSCHEIN.BelegPKennung usw. • Die Umstellung hat zur Folge, dass sämtliche Zugriffe auf Belegpositionen über die Belegpositionskennung ebenfalls auf den neuen Datentyp umgestellt werden müssen. Dazu gehören u. a.: • Eigene und angepasste Druckvorlagen • Makros • Verwendungen der Toolbox-Belegpositions-Datenquellen • Import-/Export-Muster, insbesondere für die BELEGP-Tabelle • Anwendungen mit Zugriff auf den Auftrag über die COM-Schnittstelle Zur Erleichterung der notwendigen Umstellungsarbeiten wird beim Update auf die Version 12 eine Tabelle KENNUNGZUGUID angelegt, in der zu allen Kennungen aus der BELEGP und der VORTRAGP jeweils die neue GUID abgelegt wird. Seite 25 von 40 3.1.4 COM-Schnittstelle von Auftrag Durch die Umstellung des Datentyps für das Feld „Kennung“ in der Tabelle BELEGP werden sich die Signaturen verschiedener COM-Funktionen ändern. Das betrifft die folgenden Funktionen: • IOleBeleg.EditPos • IOleBeleg.DeletePos • IOleBeleg.CreateUnterPos In den oben erwähnten Funktionen wurde jeweils der Typ des Parameters Kennung bzw. Hauptkennung von long zu BSTR geändert, damit GUID’s (als Zeichenketten) übergeben werden können. Passend dazu wurden die Typen der Rückgabewerte der Funktionen • IOlePos.Save • IOlePos.GetKennung von long auf BSTR umgestellt. Die Funktion IApp.SetzeOptionen wertet in der Version 12 die folgenden Optionen nicht aus und liefert sie in IApp.LiesOptionen auch nicht zurück: • • • • • Beleg.Lagerung.Einlagerungsdialog.ImmerAnzeigen Beleg.Lagerung.Einlagerungsdialog.SCBearbeitungsdialogAnzeigen Beleg.Lagerung.AuslagerungsDialog.ImmerAnzeigen Beleg.Lagerung.Auslagerungsdialog.AutomatischLagern Beleg.Lagerung.Auslagerungsdialog.VorschlagAlleLaeger Die Methode • IApp.Umlagern ist in der Version 12 ohne Funktion. Ein komplett überarbeiteter Beschrieb der COM-Schnittstelle inkl. der entsprechenden Testfiles folgt schnellstmöglich. 3.1.5 Zukünftig nicht mehr unterstützte Programm- und Mandantenoptionen SelectLine Auftrag wird ab der Version 12 folgende versteckte Programm- und Mandantenoptionen (INIEinträge) nicht mehr unterstützen: • Bei nicht ausreichendem Bestand die Eingabemenge auf 0 setzen (Optionen „MengeZuNull“ und „Bestand“). Wird durch die Checkbox „negativ Lagern erlaubt“ ersetzt. • Nach dem Beenden des Einlagerungsdialogs wird automatisch ein bestimmtes Makro ausgeführt (Option „NachEinlagerung“). Mögliche Alternativen über Toolbox. 3.1.6 Extrafelder vom Typ GUID und „select newid()“ (12.0.3) Wie bereits mehrfach erwähnt, werden in der neuen Beleg- und Lagerstruktur die Belegpositions- und LagerprotokolltabellenKennungen in eine GUID abgelegt. In Extradialogen und in allen Masken in denen bereits Extrafelder verfügbar sind, können neu Extrafelder vom Typ GUID angelegt werden. Diese Extrafelder dienen hauptsächlich der Anwendung in Sonderprogrammierungen, um selbst erstellte GUIDs zu verwenden oder um sich auf im System vorhandene GUIDs zu beziehen. Dieser Extrafeldtyp lässt sich nicht in Masken platzieren. Im Tabellenmodus ist das Feld sichtbar und kann über den Spalteneditor ein- oder ausgeblendet werden. Befüllt werden kann dieser durch die Anweisung „selectnewid()“. Seite 26 von 40 3.2 Neuerungen der Lagerverwaltung und Lagerfunktionalitäten Funktionell laufen Belegpositions- und Lageraktionen in gemeinsamen Datenbanktransaktionen ab. Das bedeutet, dass bei einem Fehler während der Lageraktion weder Lagerdaten geschrieben oder verändert, noch Belegpositionen neu angelegt oder Änderungen an der auslösenden Belegposition vorgenommen werden. Lageraktionen können vom Benutzer im Lagerdialog noch abgebrochen werden, und das negative Lagern kann unterbunden werden (siehe Abschnitt „Mandanteneinstellungen“ weiter unten). Die programminternen Veränderungen gehen mit einer Überarbeitung der Lagerdialoge für das Einlagern, Auslagern und Umlagern einher. Ein Merkmal ist vor allem der neue Lagerdialog bzw. die Gestaltung desjenigen. Dieser teilt sich in folgende Bereiche auf: • Status/Details • Artikelinformationen • Schnellerfassungszeile • Lagergrid 3.2.1 Status/Details Im Lagerdialog werden oben stets der Status, sowie die Nummer der Eingangsrechnung und des dazugehörigen Lieferanten angezeigt. Die Symbole bedeuten folgendes: Lagerung nicht möglich (z. B. bei Überschreitung einer maximalen Lagermenge) Lagerung möglich (z. B. bei nicht Erreichen der Lagermenge) Lagerung OK (alle Konventionen erfüllt) Im Falle von „Lagerung nicht möglich“ und „Lagerung möglich“ werden in der Statuszeile des Auftrages sowie als Hint die entsprechenden Hinweise dazu ausgegeben. Seite 27 von 40 3.2.2 Artikelinformationen Dieser Bereich zeigt den Artikel im Detail auf. Es können mittels des Spalteneditors diverse Felder ein-, ausgeblendet und platziert werden. Wichtig ist sicher das Feld „Fehlerbeschreibung“, das im Detail darauf hinweist, weshalb der Lagervorgang nicht möglich ist. Derselbe Hinweis steht auch in der im Kapitel 4.2.1 erwähnten Statuszeile bzw. dem Hint. 3.2.3 Schnellerfassungszeile im Einlagerungsdialog Je nach ausgewähltem Artikeltyp werden die notwendigen Eingabefelder aktiviert oder deaktiviert. So werden Menge und Lager des Artikels vorgeschlagen, die dann um die Serien- oder Chargennummer, allenfalls Preismenge und Verfallsdatum ergänzt werden können. Mit der [Enter]-Taste wird die Eingabe abgeschlossen, und es wird im Lagergrid eine Position erzeugt. 3.2.4 Lagergrid Im Lagergrid können die automatisch vorgeschlagenen Transaktionen nochmals bearbeitet oder auch wieder gelöscht werden. Entsprechend passt sich der Status diesen Vorgängen an. Über die Funktion aufgerufen werden. 3.2.5 können weitere lagerrelevante Aktionen Zeile „Serien-/Chargennummern scannen“ (12.0.3) Beachten Sie die im Kapitel 3.4.5 erwähnte überarbeitete Scan-Funktion inkl. der dazugehörigen Mandanteneinstellung betr. der Scanfunktion bei der Auslagerung. Seite 28 von 40 3.2.6 Beispiele Auslagerung eines Artikels mit Bestand: Auslagerung einer Handelsstückliste (nur Artikel 110003 und 130003 haben Bestand), die nur komplett gelagert werden dürfen: Einlagern eines Artikels: Alle manuellen Lagerungen (auch Umlagerungen) und die dafür bisher vorhandenen verschiedenen Stellen im Programm erhalten jetzt einen neuen einheitlichen Eingabedialog. Dieser enthält nicht mehr nur die zu lagernden Positionen, sondern auch einen Belegkopf. Seite 29 von 40 3.2.7 Neue Funktion „Baumauswahl verwenden“ im Kontextmenü Die Art der Lager-/ Lagerplatzauswahl kann im Kontextmenü des Eingabefeldes auf eine Baumauswahl umgestellt werden. D. h. in einem Eingabefeld zur Auswahl eines Lagers kann über die rechte Maustaste ein anderes Auswahlfenster eingeblendet werden. Es zeigt einen Baum an, in dem die Läger in ihrer Struktur angezeigt und ein Lagerplatz ausgewählt werden können. 3.2.8 Neue Logik Positionslager/Wegfall der Lagerplatzpflicht in den Belegpositionen Je nach eingestelltem Auslagerungsvorschlag in den Mandanten-Einstellungen kann bei fehlendem Lagerplatz ein Lagerungsvorschlag erstellt werden oder nicht (z. B. „nicht“ bei „Positionslager – bestimmter Lagerplatz“). Ohne Verwendung des Standardlagers bleibt diese Position leer, und es öffnet sich der Lagerdialog. Seite 30 von 40 3.2.9 Neuer Dialog und Bezeichnung für „Serien/Chargennummern erzeugen…“ vorher in 11.5.4 : neu in 12.0.0: Standardmodus Expertenmodus Massgeblich hat sich auch die Erzeugung von neuen Serien-/Chargennummern geändert. Neu wird zwischen einem sogenannten „Standardmodus“ und einem „Expertenmodus“ unterschieden, in die man mit den entsprechenden Schaltern bzw. gelangt. • Standardmodus Hier werden die Serien-/Chargennummern mit • Präfix • Startwert • Suffix • Schrittweite • Länge • Auffüllen mit generiert. Im Bereich „Nummern“ ist stets ersichtlich, wie diese generiert werden würden. • Expertenmodus Hier werden die Serien-/Chargennummern mit der neu integrierten Kalkulator-Funktion erzeugt, in der aus beliebigen Variablen ein Nummernwert erzeugt werden kann Bei beiden Modi kann zudem wie folgt die Konfliktbehandlung definiert werden: • Vorhandene Nummern überspringen • Neue Nummern fortlaufend anlegen Neu wurde dazu der bisherige Menüpunkt „Nummern nach einer Vorschrift erzeugen“ zu „Serien/Chargennummern erzeugen…“ umbenannt. Seite 31 von 40 3.3 Neu unter „Lagern“ vorher in 11.5.4: neu in 12.0.0: Der Menüpunkt „Lagern“ wurde neu auf „Manuelle Lagerung“ und „Lagerbewegungen“ reduziert. 3.3.1 Manuelle Lagerung Neu ist es möglich auch eine Adresse, Texte und Notizen zu erfassen. Die Lagerungsvorgänge finden sich auf der Seite „Positionen“. Wichtig ist, dass jetzt über einen Schalter die Lageraktion (Einlagern, Auslagern, Umlagern) definiert wird. Es gibt somit nicht mehr die klassische „Manuelle Einlagerung“ oder „Manuelle Auslagerung“. Der neue Beleg „manuelle Lagerung“ unterstützt alle drei Lageraktionen. Dies geschieht mit dem Button neben dem Schalter der entsprechenden Einlagerungsfunktion. Entsprechend hat sich auch der Menüpunkt „Lagern“ angepasst. Zudem ist bei Direkteingabe einer Serien-/Chargennummer in das Artikelnummernfeld der manuellen Lagerung eine Umlagerung dieser möglich. Handling, Symbolleiste, Icons und wesentliche Unterschiede zur Version 11.5 Beachten Sie, dass die grundsätzliche Handhabung der manuellen Lagerung gleich geblieben ist – d. h. eine getätigte Ein-, Aus- oder Umlagerung lässt sich nach wie vor NICHT löschen. Bis zur Version 11.5 gab es für manuelle Lagerungen einfach keine zusätzlichen Belegköpfe, sondern nur die einzelnen Positionen. Seit der Version 12 haben auch manuelle Lagerungen einen Belegkopf. Dies hat den Vorteil, dass alte manuelle Lagerungen wieder geöffnet (ansehen) und weitere Positionen hinzugefügt, aber nicht gelöscht werden können. Ein irrtümlich erstellter Beleg ohne Positionen lässt sich daher mit dem Symbol wieder löschen und ggf. falsche im Editiermodus befindlichen Positionen bis zum Speichervorgang lassen sich mit wieder verwerfen. Jede "ungewollte" manuelle Lagerbewegung kann daher weiterhin nur durch eine weitere entgegengesetzte Lagerbewegung korrigiert werden. Seite 32 von 40 3.3.2 Mit Textdatei Lagern Der Menüpunkt „Mit Textdatei Lagern“ wurde in die „Einstellungen und Zusatzfunktionen“ von „Manuelle Lagerung“ als eigenständiger Menüpunkt „Lagern mit XML-/Textdatei“ implementiert und kann mit der Taste [F12] oder dem Symbol aufgerufen werden. vorher in 11.5.4 : neu in 12.0.0: Das Einlagern mit Textdatei wurde um die Felder Preismenge und Verfallsdatum erweitert. Ausserdem können jetzt auch XML-Dateien eingelesen werden, die auch mehrere Lagerungspositionen zu einer Belegposition enthalten können. Die Belegnummer ist nicht vorhanden, da beim Aufruf dieser Funktion bereits eine Abfrage zur Vergabe derjenigen erscheint. Seite 33 von 40 3.3.3 Lagerprotokoll neu Lagerbewegungen Der Menüpunkt „Lagerprotokoll“ heisst neu „Lagerbewegungen“ und verfügt über die folgenden neuen Filterkriterien: • Belegtyp • Datum Von…Bis Beim Ausdruck können die Sortierung und die Filtereinstellungen noch angepasst werden. Das komplette Lagerprotokoll mit allen Einträgen können Sie über das Kontextmenü mittels rechter Maustaste aufrufen. Folgende Lageraktionen und Belegtypen stehen zu Auswahl: Lageraktion: Seite 34 von 40 Belegtyp: 3.4 Artikel 3.4.1 Option „Lagerungsdialog immer zeigen“ anstelle „Bestandesauswahl“ im Artikelstamm vorher in 11.5.4: neu in 12.0.0: Die ehemalige Option auf der Seite „Lager“ unter „Stammdaten Artikel“ wird „umfunktioniert“. Nun kann mit einer Option direkt am konkreten Artikel eingestellt werden: • ob der Lagerdialog für diesen Artikel geöffnet werden soll oder • ob die Lageraktion ohne Bildschirmdialog automatisch durchgeführt werden soll Dies ist vor allem bei Artikeln mit Serien- oder Chargennummern anzuwenden. Wenn aber ein Artikel in einer Stückliste verwendet wurde, ist diese Funktion weiterhin nicht möglich bzw. wird mit dieser Meldung darauf hingewiesen. Beachten Sie, dass hier aber gegenüber der Version 11.5 die Checkbox „Lagerdialog immer anzeigen“ im Mandaten diese Einstellung beeinflussen bzw. übersteuern kann. Nachfolgende Aufstellung soll Ihnen einen Überblick über die Kombinationen und Verhaltensweisen der Checkbox „Lagerdialog immer zeigen“ aufzeigen. Mandant Artikel Beschreibung Aktiv Inaktiv KEIN Lagerdialog Inaktiv Aktiv Mandant wird übersteuert und nur bei entspr. Artikeln der Lagerdialog angezeigt Aktiv Aktiv Einstellung im Artikelstamm irrelevant, Lagerdialog wird angezeigt Aktiv Inaktiv Einstellung im Artikelstamm irrelevant, Lagerdialog wird angezeigt Seite 35 von 40 3.4.2 Vorschlag für „Verfallsdatum“ Für Artikel mit Verfallsdatum (FEFO) ist es jetzt zusätzlich möglich, dass das Verfallsdatum im Lagerdialog nicht vorgeschlagen wird. Auf der Seite „Lager“ im Artikel wurde das Feld „Verfallsfrist“ um folgende Funktionen erweitert • leer = KEIN Datum wird vorgeschlagen • Null = das Verfallsdatum im Einlagerungsdialog wird mit dem Belegdatum vorbelegt. Im Lagerdialog wird auf die Angabe eines Verfallsdatums geprüft: Umstellung Stücklistentyp, Meldung „Diese Einstellung kann wegen…nicht geändert werden.“ Ein Artikel • hat noch vorhandene Bestände • wird in offenen Packzetteln verwendet • ist noch in einer offenen/laufenden Inventur so ist es nun nicht mehr möglich, diesen Artikel auf einen Variantenartikel oder einen aus einer Musterstückliste Typ 1 umzustellen. Je nachdem wie und wo dieser Artikel verwendet wurde, weist eine Meldung entsprechend darauf hin. Seite 36 von 40 Anzeige des „Verfallsdatum“ im Artikelstamm und unter „Serien/Chargennummern“ Das Verfallsdatum aus den Lagerbuchungen kann im Artikel auf der Seite „Lager“ bei den entsprechenden Untereinträgen „Zugänge“, „Abgänge“ und „Inventuren“ neu mit dem Spalteneditor beliebig eingeblendet und platziert werden. Zudem kann das Verfalldatum unter „Lagerdaten/Serien/Chargennummern“ auf der Seite „Verwendung“ neu mit dem Spalteneditor beliebig eingeblendet und beliebig platziert werden. 3.4.3 Einstellung für die Artikelgenerierung bei Varianten vorher in 11.5.4: neu in 12.0.0: Der Dialog „Einstellungen für die Artikelgenerierung“ wurde überarbeitet, und wo nötig wurden Checkboxen durch Radiobuttons ersetzt sowie logischere Unterteilungen vorgenommen. Zudem kann neu gewählt werden, ob der Fremdsprachen-Langtext ebenfalls vom Varianten-Hauptartikel übernommen werden soll. Ausserdem werden die gewählten Optionen zur Generierung der Varianten jetzt mandantenbezogen gespeichert. Seite 37 von 40 3.4.4 Lagerstrategie „keine“ (12.0.3) Neben den bisher im Artikelstamm verfügbaren Lagerungsstrategien „FIFO“, „LIFO“, „HIFO“, „LOFO“, „FEFO“, gibt es neu eine weitere Strategie „keine“. Dabei wird vom Programm kein Auslagerungsvorschlag erstellt. Die zu lagernden Bestände müssen manuell ausgewählt werden. Dazu wird in auslagernden und packenden Belegen immer der Lagerungsdialog angezeigt. Beachten Sie auch, dass bei der Lagerstrategie „keine“ das Standardlager an Bedeutung verliert. 3.4.5 Liefertermin bei Reservierungen und Bestellung (12.0.3) Bei den Lageraktionen „Bestellungen“ und „Reservierungen“ kann per Spalteneditor der Termin ein- oder ausgeblendet und nach Belieben platziert werden. 3.4.6 Verhalten/Logik Standardlager in der Belegpositionen Grundsätzlich hat sich am Verhalten und der Logik des Standardlagers gegenüber der Version 11.5 nichts geändert. Sollte sich dennoch der Auslagerungsvorgang anders verhalten, beachten Sie, dass sich u. U. die Mandanteneinstellungen betr. der Einstellung des Auslagerungsvorschlages bemerkbar machen. Das Standardlager im Artikel ist das Lager, das zunächst in die Belegposition eingetragen wird. Wird dann gelagert (gespeichert), entscheidet nun neu der „Auslagerungsvorschlag über“, ob nur dieses Lager ( „Positionslager“, dann evtl. weitere) oder gleich Bestände aus allen Lägern ( „Alle Läger") zur Verfügung stehen. Vom Standardlager wird nur in den Mandanteneinstellungen „Positionslager..." ein Lagerungsvorschlag erstellt. Ist die Mandanteneinstellung „Lagerdialog immer zeigen“ deaktiviert, wird dann auch ohne Dialog gelagert. Ist der Lagerdialog an, wird immer der vom Programm erstellte Lagerungsvorschlag eingeblendet. Seite 38 von 40 3.5 Serien-/Chargennummer zuordnen Einer Belegposition (eingangs- wie ausgangseitig) kann eine beliebige Seriennummer zugeordnet werden. Ziel ist es, in der Seriennummerntabelle neben der Historie des SN-Artikels (Einlagern/Auslagern) auch „indirekte“ Vorgänge sichtbar zu machen. So kann z. B. eine Wartungsposition ebenfalls der SN des „gewarteten“ Seriennummer-Artikels zugeordnet werden. Dazu können einfach im Positionsgrid NACH Speicherung des Artikels mit der rechten Maustaste das entsprechende Kontextmenü und die sich darin befindende Funktion „Serien-/Chargennummer zuordnen“ aufgerufen werden. In einem weiteren Schritt kann die entsprechende Serien/Chargennummer ausgewählt und wahlweise für die aktuelle oder alle Positionen zugeordnet werden. Somit können auch im Nachhinein bei einzelnen Positionen Serien-/Chargennummer-Zuordnungen vorgenommen werden. Serien- oder Chargennummern können bei folgenden Zeilentypen, die keine Zuschläge sind, zugeordnet werden: • A (Artikel) • E (Versand) • G (Stücklistenartikel) • H (Handelsstückliste) 3.5.1 Serien-/Chargennummer Verwendung anzeigen/nachverfolgen Im Menüpunkt „Lagerdaten/Seriennummern/Chargen“ wird auf der Seite „Verwendung“ auch die Zuordnung angezeigt. Sie kann bei Bedarf entsprechend in Auswertungen berücksichtigt werden. 3.5.2 Anzeige von Artikelzuordnung Artikelnummer, Bezeichnung und Zusatz (12.0.4) Auf der Seite „Verwendung“ werden zusätzlich die Spalten „Artikelzuordnung“, „Bezeichnung Artikelzuordnung“, „Zusatz Artikelzuordnung“ unabhängig vom Typen angezeigt. Dies betrifft ebenfalls die Serien-/Chargennummern-Anzeige beim Stammdialog des Kunden sowie Lieferanten. Dort werden die Spalten Artikelzuordnung und Bezeichnung Artikelzuordnung unabhängig vom Typen angezeigt. Seite 39 von 40 3.6 Inventur 3.6.1 Druck Inventurhistorie nach Lager Beim Druck der Inventurhistorie kann eine Sortierung nach Lager vorgenommen werden. 3.7 Lagerbestände neu aufbauen Im Wartungsassistenten unter dem Punkt „Auftrag“ gibt es eine neue Funktion „Lagerbestände neu aufbauen“. Über diesen Menüpunkt können die Lagerbestandstabellen anhand der Daten in der Tabelle Lagerprotokoll komplett neu aufgebaut werden. 4 Änderungen an Tabellen/Tabellenfeldern Siehe separate Dokumentation „Update Auftrag Version 12“ Seite 40 von 40
© Copyright 2024 ExpyDoc