Lieferscheine einlesen

Dieses Fenster wird vom Fenster Lieferscheine übernehmen aus aufgerufen.

Beton-Steuerungsanlagen stellen die ausgelieferten Betonsorten und -mengen in Form einer speziell definierten Datei bereit. Dieser Menüpunkt dient dazu, die Daten solcher Übergabedateien als Lieferscheine in die Datentabellen von Beton.NET zu übernehmen.

Eine Schnittstelle vom Hersteller der Steuerungsanlage beschreibt, welche Information auf welcher Position im Datensatz der Übergabedatei steht. Es gibt insgesamt mehrere hundert verschiedene Schnittstellen. Zur Anpassung der jeweiligen Schnittstelle an Beton.NET muß die Schnittstellenbeschreibung in der vom Programm vorgesehenen Art bereitstehen. Hierfür dient eine Datei mit Namen "LSImport.def". Diese Datei muß am Beton.NET-Server im Beton.NET-Programmverzeichnis vorhanden sein. Die Datei kann viele verschiedene Importformate enthalten. Die enthaltenen Importformate werden in diesem Fenster im Feld Format angezeigt. Sie müssen das für Ihre Schnittstelle vorgesehene Format auswählen. Das einmal verwendete Format wird bei folgenden Aufrufen des Menüpunktes wieder vorgeschlagen.
Im Jahr 2014 wurde eine erweiterte Syntax für die Defnitionen eingeführt; die ältere Syntax wird weiterhin unterstützt. An der Schriftart des Formatnamens in dieser Combobox erkennen Sie, ob die Formatdefinition in der älteren oder in der neueren Syntax notiert ist.

Wenn es die Datei "LSImport.def" beim Aufruf des Menüpunktes noch nicht gibt, dann erzeugt das Programm nach Rückfrage eine leere Datei mit einem Tipp zum Anlegen der ersten Formatdefinition.

Der Schalter editieren/bearbeiten dient zum (einmaligen) Definieren des Formates. Sie können wahlweise die Datei mit Formatdefinitionen editieren oder die Formate bearbeiten. Das Bearbeiten bezieht sich auf die neuere Syntax.

Im Feld Dateiname geben Sie den Pfad und Dateinamen der Übergabedatei an oder Sie wählen ihn aus. Der Dateiname darf sogenannte Joker-Zeichen (Fragezeichen oder Stern) enthalten, die für ein bzw. mehrere beliebige Zeichen stehen. Wenn mehrere Dateien dem vorgegebenen Namen entsprechen, werden alle zutreffenden Dateien verarbeitet.

Die Auswahl vorhandene Lieferscheine überschreiben bewirkt das Löschen eines eventuell schon vorhandenen Lieferscheines mit derselbe Nummer und demselben Datum wie der neu einzulesende Lieferschein. Im gegenteiligen Fall vorhandene Lieferscheine ignorierern werden wiederholt eingehende Lieferscheine beim Einlesen ignoriert. Die Prüfung auf Vorhandensein und eventuelles Löschen bezieht sich auf den echten, bereits übernommenen Lieferscheinbestand, nicht auf die zwar eingelesenen, aber noch nicht übernommenen Lieferscheine. Letztere werden stets überschrieben. Trotz des Häkchens werden jedoch nur unberechnete Lieferscheine gelöscht; berechnete Lieferscheine hingegen bleiben vorhanden und bewirken ebenfalls das Überlesen der neu einzulesenden Daten ohne weitere Fehlermeldung. Das Löschen geschieht erst im zweiten Verarbeitungsschritt (siehe weiter unten) für jeden neuen Lieferschein einzeln, sowohl dann, wenn der neue Lieferschein fehlerfrei ist als auch dann, wenn inhaltliche Fehler bestehen. Wenn die Verarbeitung nach dem ersten Schritt wegen syntaktischer Fehler endet, sind also noch keine Lieferscheine gelöscht worden. - Diese Einstellung kann z.B. nützlich sein, um eine gesamte Übergabedatei wegen ursprünglich fehlerhafter Daten von der Steuerungsanlage neu einzulesen.
Der Zustand der Option "überschreiben" wird zusätzlich zu den eingelesenen Daten für jede Lieferscheinposition gespeichert. Für den Fall, dass der Lieferschein zwischenzeitlich, zwischen dem Einlesen und der Übernahme in den Lieferscheinbestand, erzeugt worden ist, wird er notwendigenfalls bei der Übernahme (gegebenenfalls nochmals) gelöscht.

Zur Verfahrensweise mit den Lieferscheindateien nach dem Einlesen gibt des die Möglichkeit beibehalten. Dann bleiben die eingelesenen Dateien unverändert erhalten. Möglicherweise werden die Dateien durch Ihre Steuerungsanlage gelöscht oder überschrieben oder Sie bereinigen die Dateien auf eine andere Art oder Sie verwenden bei jedem Einlesen einen jeweils anderen, neuen Dateinamen. Die beiden folgenden Methoden wendet das Programm nur dann an, wenn keine syntaktischen Fehler vorlagen. Verschieben und umbenennen erzeugt - wenn noch nicht vorhanden - ein Unterverzeichnis mit Namen BAK. Dorthinein werden die verarbeiteten Dateien verschoben. Außerdem werden die Dateinamen geändert, indem die Dateinamenserweiterung auf ".BAK" geändert oder angefügt wird. Falls doppelte Dateinamen entstehen würden, fügt das Programm zusätzlich Datum und Uhrzeit an den umbenannten Dateinamen an. Wenn Sie Löschen wählen, dann können Sie das Einlesen nicht unmittelbar wiederholen, ohne die Datei(en) erneut bereitzustellen.

Ein Übergabeprotokoll wird stets erzeugt. Sie können an dieser Stelle nur den Namen der Druckdatei ändern; und Sie können beeinflussen, ob die Druckdatei nach dem Einlesen gleich angezeigt werden soll. Im Unterschied zu anderen Druckdateien wird die vorhandene Druckdatei nicht überschrieben, sondern das hinzugekommene Protokoll wird als neue Seite(n) angehängt. Durch das Anhängen kann die Druckdatei im Laufe der Zeit ziemlich groß werden und die Anzeige kann Ihnen zu lange dauern. Sie können die Druckdatei jedoch auf eine bestimmte Anzahl vorausgehender Seiten kürzen. Wenn Sie das Häkchen kürzen setzen und beispielsweise die Seitenzahl 10 vorgeben, dann bleiben vor der neuen Protokollierung nur noch die letzten (=neuesten) 10 Seiten erhalten. - In das Übergabeprotokoll werden auch diejenigen Warnungen aufgenommen, die aus abgelaufenen Preisbindungen resultieren (sehen Sie "Lieferschein-Übernahme", Warnung zu Feld Einzelpreis).

Beim Einlesen und beim späteren Übernehmen der Lieferscheine wird das Einfügen und Löschen aller Datensätze in der Datenbank mitprotokolliert, um im Ausnahmefall den Verarbeitungsablauf zu einem Lieferschein nachverfolgen zu können. Für die eingelesenen Lieferscheine wird die Datenbanktabelle mit Namen zzlog_LSEINLES verwendet. Diese Tabelle kann im Laufe der Zeit sehr groß werden. Durch eine Begrenzung der Aufbewahrungszeit in Tagen können Sie Platz in der Datenbank sparen. Vor dem neuen Einlesen löscht das Programm in diesem Fall vorhandene Datensätze. Die Anzahl Tage von Null bis 365 ist möglich. Der Wert Null bedeutet, dass auch schon vom laufenden Tag vorhandene Protokolldatensätze gelöscht werden.

Über Auswahlspannen können Sie die einzulesenden Lieferscheine eingrenzen. Wenn Sie die Eingrenzung verwenden, werden Lieferscheine nur dann eingelesen, wenn sie innerhalb der Auswahlspanne(n) liegen. Jede Auswahlspanne wirkt jeweils nur dann, wenn mindestens der bis-Wert ungleich Null ist.

Der Bearbeitungsstand ist ein Anzeigeelement für Dateinamen, Bearbeitungsstaus und Fortschrittsanzeige innerhalb einer Datei.

Nach Start der Verarbeitung prüft das Programm bei der älteren Syntax zunächst (a) die Formatdefinition und (b) die Übergabedatei(en) auf syntaktische Fehler, also grobe Fehler, beispielsweise daraufhin, daß die Satzlänge bzw. Feldanzahl stimmt und daß in numerischen Datenfeldern auch Ziffern, nicht etwa Buchstaben stehen. Sofern dabei Fehler erkannt werden, bricht das Programm die Weiterarbeit mit einer Fehlermeldung ab; Sie können die Fehler mit einer Kurzinformation als Textdatei anzeigen lassen. Ursachen für syntaktische Fehler können darin bestehen, daß Sie ein falsches Format verwendet haben, daß Sie eine falsche Datei ausgewählt haben, daß die Schnittstelle an der Steuerungsanlage verändert wurde oder daß ein Fehler beim Erzeugen oder Übertragen der Datei von der Steuerungsanlage zu Beton.NET vorlag.
Die Prüfung bei der älteren Syntax beinhaltet die folgenden Pflichtfelder: LNUMMER, DATUM, KUNDENNR oder Bit 2 = Kunden aus Baustellen ermitteln, BAUSTELLE oder DISPOBAUST, AUTONR oder KFZKENNZ, WERK, BNAME1 oder Bit 4 = Baust-Bez. aus Baustellen ermitteln, ARTNR.

Wenn keine syntaktischen Fehler erkannt wurden, setzt das Programm mit weiteren Schritten fort. Die nächste Aktion, das Löschen eventuell schon vorhandenen Lieferscheine, findet nur dann statt, wenn Sie die oben beschriebene Auswahl "überschreiben" gewählt haben. Im letzten Schritt, der Verarbeitung, werden die Daten der Übergabedatei in eine Datenbanktabelle übernommen. Hierbei können inhaltliche Fehler auftreten, indem zum Beispiel für eine übergebene Kundennummer kein Kunde existiert oder für eine übergebene Artikelnummer kein Artikel existiert. Solche inhaltliche Fehler erkennen Sie bei der Weiterverarbeitung durch farbliche Markierungen. Beim Ende des Einlesens erhalten Sie eine Meldung unter anderem mit der Anzahl fehlerhafter Positionen.
Nach dem Schließen dieses Fensters befinden Sie sich wieder im Fenster Lieferscheine übernehmen, von dem aus Sie das Einlesen aufgerufen hatten. Dort können Sie ggf. die Fehler korrigieren, die Daten prüfen und dann in die Lieferscheintabelle übernehmen.

Das Programm führt beim Einlesen der Daten Anpassungen durch, die teilweise durch Einstellungen in der Format-Definition beeinflusst werden können.
Die Bedeutung der Bitpositionen ist im Fenster Formate bearbeiten direkt auf der Karteiseite "Beschreibung" (nicht in der zugehörigen Hilfe) beschrieben.

In jedem Fall, ohne Einstellung von Bitpositionen, erfolgen folgende Aktionen:
  • Wenn die Baustellennummer Null ist, aber die Dispobaustelle ungleich Null ist, dann wird die Baustelle aus der Faktura-Baustelle aus den Feldern Kunden und Dispobaustelle ermittelt.
  • Wenn die Fahrzeug-Nr Null ist und ein eindeutiges Fahrzeug in Tabelle Fahrzeuge über das Feld KFZKENNZ (getrimmt) vorliegt, dann wird dieses Fahrzeug verwendet; falls das Kennzeichen mehrdeutig ist, dann wird die Fahrzeug-Nr auf 99999 gesetzt. "getrimmt" bedeutet: unter Ausschluss von Leerzeichen und Minuszeichen
  • Wenn die Händler-Nr Null ist und die Händler-Nr in MndGeschaeftspartner oder in BAUSTELLEN hinterlegt ist, dann wird diese verwendet.
  • Wenn in Tabelle BAUSTELLEN ein GEBIET hinterlegt ist, dann wird dieses verwendet.
  • Die Tarifzone wird entweder aus der Faktura-Baustelle ermittelt, oder - wenn in Optionen das Häkchen "TarifzonenJeWerk" gesetzt ist, dann aus "BSTWERKTARIFZONEN, wie im Baustellen-Fenster eingebbar.
  • Wenn Tabelle OrteTarifzonen belegt ist und Name1 in der Faktura-Baustelle leer ist, dann erfolgt der Zugriff auf diese Tabelle über das eingelesene Feld BNAME2 für das Datenbankfeld "Ort". Falls der zutreffende Satz vorhanden ist, wird dessen Tarifzone übernommen.
  • Wenn Fahrzeugtyp Null ist, dann wird der Fahrzeugtyp aus "Mndfahrzeuge" ermittelt.
  • Aus der Tabelle MndGeschaeftspartner werden belegt: Namen und Adresse, Infotext, RechnungsGruppe, Zustaendiger. Wenn die Debitor-Zahlungsart "Barzahlung" lautet, dann erhält der Lieferschein das Kennzeichen "barbezahlt". Die Rechnungsgruppe wird - wenn vorhanden - bei allen Positionen dieses Lieferscheins gesetzt RGruppeSetzen(lnummer,datum,werk);
  • Der Zuständige aus der Baustelle wird belegt - wenn nicht Null - und überschreibt damit gegebenenfalls denjenigen aus dem Kunden.
  • Das Feld Fremdprodukt wird aus dem Werk belegt, wenn dort beide zutreffende Häkchen gesetzt sind.
  • Das Feld IMPORTLAUF aus Optionen wird hochgezählt und belegt.
  • Zusätzlich zur schon genannten Zahlungsart des MndGeschäftspartner-Satzes wird auch das Barzahlungskennzeichen laut Artikel berücksichtigt.
  • Feld TABZLNR wird für alle Positionen von 1 beginnen hochgezählt und belegt.
  • Falls der Artikel der bearbeiteten Position das Kennzeichen "Menge aus Zementanteil ermitteln" hat, dann wird das Feld "Zementanteil" des Hauptartikel verwendet. Die Menge der aktuellen Position wird mit der Menge der Hauptposition multipliziert und auf diesen Prozentsatz abgebrochen.

Weiterhin wird auch eine Mindermengenberechnung auf folgendem Weg durchgeführt:
Die Berechnung erfolgt nur für Folgepositionen eines Lieferscheins, nicht für die erste Artikelposition. Es wird aber der erste Lieferscheinartikel und dessen Produktgruppe, abhängig vom Eigen-Fremd-Kennzeichen des Lieferscheins, benutzt. Wenn in dieser Produktgruppe ein Mindermengenartikel hinterlegt ist und wenn diese hinterlegte Artikelnummer gleich dem Artikel der bearbeiteten Lieferscheinposition ist, wird fortgesetzt. Die Berechnung der Mindestmenge erfolgt mit den Daten des ersten Artikels des Lieferscheines und dessen Menge so, wie es unter den automatischen Lieferscheinpositionen beschrieben ist. Falls das Ergebnis der Mindermenge nicht Null ist und falls das Häkchen "Mindermenge immer pauschal mit Menge '1'" in den Optionen gesetzt ist, wird die so ermittelte Mindermenge auf "1" abgeändert.

Es gibt Gründe, die das Übernehmen von Lieferscheinpositionen verhindern, auch wenn es laut Formatdefinitionen möglich wäre, einen Satz zu erzeugen, zum Beispiel wenn der Artikel einer Position das Häkchen hat "nicht von Steuerung übernehmen", oder wenn ein beliebiger Artikel innerhalb eines Lieferscheins das Häkchen hat "Lieferschein nicht übernehmen", oder wenn ab zweiter Position je Lieferschein die Artikelnummer oder die Menge Null ist, oder wenn bei der ersten Position die Artikelnummer Null ist, oder wenn ein Lieferschein schon vorhanden ist und nicht überschrieben werden soll oder schon berechnet ist.
Bamberg