infra:NET Expert
 
×
1.8.9 SB 200 – 299: Kundenauftragsaktionen (Werte, Vorbelegungen usw.)
Nummer
Bedeutung
200 - 299
Besonderheiten, Teil 2
200
G-Zeile zu K-Zeile lesen.
KKO, DIS müssen versorgt sein.
Wenn kein Abrufauftrag: nix tun, kein Fehler.
Wenn keine G-Zeile gefunden: Fehler 2002.
Gelesen werden DIS und DBE. Die Sätze werden gesperrt gelesen
201
Kopfstatus und Zustand aus Positionen ermitteln (Zustand min. und max.).
Ggf. erledigt setzen.
202
Textzeile zu DBE lesen.
DBE, KND müssen versorgt sein. Als Parameter muss der Ident mitgegeben werden (Default: IND). Die Textzeile steht dann in Puffer 46 zur Verfügung
203
Kennungen für Druckausgabe der Texte aus Konfiguration holen und in Ziel schreiben (BLRA). Ziellänge muss 4 sein.
204
Konvertierungstabellen verarbeiten.
Siehe Abschnitt weiter unten zu den Tabellendateien.
205
Nächste freie Adressnummer zu Kundennummer ermitteln.
Die Kundennummer muss in KKO versorgt sein. Als Parameter kann das Feld der Kundennummer in KKO angegeben werden, Default ist Feld 13. Die neue Adressnummer wird in Ziel eingetragen.
Für die Adressnummer werden immer alle Zeichen ohne Leerzeichen belegt, z.B. “00009“ bzw. „AAA01“. Falls als Quelle eine „1“ übergeben wird, wird die Adressnummer auch mit Buchstaben ermittelt. Es wird also die nächste Nummer aus den Zeichen 0 bis 9 und A bis Z gesucht. Ohne eine „1“ in der Quelle werden nur die Zeichen 0 bis 9 benutzt.
206
Neue Teilenummer ermitteln und Teilestamm vorbelegen (ADULO-Schnittstelle).
TSS enthält die Basisteilenummer. Die angegebene Ziellänge gibt die Länge der Basisteilenummer an. Bei Länge 0 wird ein TRIM auf die Basisteilenummer gemacht und die verbleibende Länge verwendet. An die Basisteilenummer wird eine fort­laufende Nummer angehängt (unformatiert). TSS wird aus Basis initialisiert und die neue Teilenummer wird in TSS eingetragen.
Folgende Parameter sind zulässig:
0
Basisteilestamm lesen und neuen Teilestammpuffer erstellen
1
Basisteilestämme TSS, AEF und MWI lesen und neue Teilestammsätze für diese Dateien erstellen (AEF und MWI ohne neue Teilenummer)
2
Wie 1 aber wenn Basisteil fehlt überall Vorbelegungssatz verwenden
207
Kopf und Positionsdaten abgleichen.
Auftragsnummer muss im Ziel stehen.
Summenbildung für Werte und Rohertrag, Zustandsermittlung, Abgleich K-/S-Zeilen usw. (genaueres siehe ACTIPS-Funktion). Achtung: Die Funktion wird im Probelauf nicht ausgeführt!
208
Teilebezogene Texte kopieren.
Ziel = neue Teilenummer. Quelle = Teilenummer für Ursprungstext.
Parameter:
0
TN1 und TN2
1
TN1
2
TN2
Achtung:
URS (Ursprungstexte) werden nicht mitkopiert!
Es werden also keine Auftragspositionen erzeugt, sondern lediglich Textkonserven in Datei 046. Siehe auch Sonderbehandlung „097“ zum Generieren von Textzeilen im Auftrag
209
Aus Quelle Zeit in Sekunden lesen und in Ziel (am besten ein Rechenfeld Rxx) abstellen.
Quelle muss folgenden Aufbau haben: hh:mm:ss. Die einzelnen Komponenten dürfen auch einstellig sein (z.B. h:m:ss)
210
Einkaufstexte löschen (alter Einkauf !).
Puffer 37 muss definiert sein, Feld 2, 3 und 16 müssen versorgt sein.
Parameter = 1: Feld 16 egal (d.h. alle Sprachen löschen)
211
Wenn Inhalt von Zielfeld = 0, dann Parameter eintragen
212
Konditionen in Zieldatei prüfen und korrigieren (nur bei Datei 38 und 41).
Folgendes wird geprüft:
Skonto-Tage aufsteigend, Skonto-% absteigend, Skontotage mit Skonto-% 0 nicht erlaubt. Netto-Tage werden ggf. angepasst, Skonto 2 wird ggf. angepasst (Tage und %, ggf. auf 0!).
Gibt als Fehler 212x zurück, wobei x=Anzahl der Korrekturen ist. Bei x=0 stimmt die Zieldatei nicht.
213
Alle K-Zeilen und die dazugehörigen Unterpositionen zu der angegebenen Kundenauftragsnummer werden gelöscht.
Im Probelauf werden nur minimale Prüfungen durchgeführt (Auftragsnummer versorgt).
Ausnahme bei Parameter 3, hier wird im Probelauf auch protokolliert, welche Positionen in FrozenZone liegen.
Die restlichen eigenständigen Positionen bleiben erhalten!
Die Kundenauftragsnummer muss in Ziel stehen.
Die Sonderbehandlung wird zumeist bei der Übernahme von Lieferabrufen verwendet. Einsatzbeispiele bitte beim Softwarelieferanten erfragen.
  • Parameter 0 oder kein Parameter
  • K-Zeilen mit Status „E“ werden gelöscht.
  • Ist der Zustand der K-Zeile > 20 wird diese K-Zeile samt Unterpositionen nicht gelöscht (auch nicht bei Status „E“).
  • Parameter 1
  • K-Zeilen mit Status „E“ werden nicht gelöscht.
  • K-Zeilen mit Zustand kleiner 40 werden gelöscht.
  • Ist der Zustand der K-Zeile >= 40 wird diese K-Zeile samt Unterpositionen nicht gelöscht, sondern es wird die Auftragsmenge korrigiert (= gelieferte Menge). Die Restmenge wird somit 0.
    Die zu fakturierende Menge bleibt unverändert!
    Die Auslieferungsmenge wird 0.
    Wenn bereits so viel fakturiert wurde wie geliefert, dann wird die Position erledigt und die zu fakturierende Menge wird 0.
  • Parameter 2
  • K-Zeilen mit Status „E“ werden nicht gelöscht.
  • Gelöscht wird samt Unterpositionen, falls:
    Zustand <= 20
    Status aktiv (" ")
    Liefertermin >= Tagesdatum und nicht aktuelle KW
  • Parameter 3
  • Innerhalb eines bestimmten Zeitraums (FrozenZone) werden keine Positionen gelöscht. Der Zeitraum in Wochen wird über ein Feld im Teilestamm (Feld 79 in Datei 28) definiert.
    Ist das Feld im DataDictionary noch nicht vorhanden oder im Teilestamm steht 0 Wochen, so wird für die Sonderbehandlung wie bei Parameter „1“ verfahren!
    Siehe auch Sonderbehandlung 281, die für diesen Ablauf ebenfalls benötigt wird.
    Siehe beispielhaften Einsatz in Steuerdatei TLWmove4905.inf, bitte beim Softwarelieferanten nachfragen.
  • Die FrozenZone beginnt am Tag nach dem Tagesdatum und endet z.B. bei Angabe von einer Woche 7 Tage später.
    Beispiel: Heute ist Dienstag, FrozenZone ist eine Woche, dann bleiben alle Auftragspositionen von Mittwoch bis nächsten Dienstag erhalten.
  • Die Reihenfolge der Abrufe muss zwingend zu den offenen Positionen im Zeitraum „FrozenZone“ passen!
  • Die Positionen innerhalb dieses Zeitraums können durch Anpassung der entsprechenden Steuerdatei (siehe auch Sonderbehandlung 281) mit den neuen Abrufen abgeglichen werden, indem Mengen und Termine angepasst werden.
  • Damit bleiben die an den Auftragspositionen vorgenommenen Änderungen erhalten und zugehörige Fertigungsaufträge mit Verweis auf die Position bleiben korrekt.
  • Nicht mehr benötigte Abrufe dürfen nur einmalig(!) mit Menge 0 übergeben werden.
    Andernfalls passt bei mehrfacher Übergabe von Menge 0 die Reihenfolge der Abrufe nicht mehr zu den infra-Positionen.
    Über ein konfigurierbares Feld (INI-Einstellung SB281feldMng0 in Sektion [AUF448], Default ist Feld 133 in Datei 47) werden Positionen als „bereits ausgenullt“ gekennzeichnet und bei nochmaliger Abrufmenge 0 überlesen werden.
    Positionen mit Zustand < 40 (geliefert) werden  bei Abrufmenge 0 gelöscht.
    Positionen mit Zustand >= 40 werden wie oben beschrieben gekennzeichnet und auf Restmenge 0 gesetzt.
    Dies wird im Protokoll auch vermerkt.
  • Bei Differenzen der Fortschrittszahlen beim Kunden und infra wird wie beim „Standard“ die Bedarfsmenge um die Differenz gekürzt, da Ware unterwegs oder beim Kunden nicht eingebucht ist.
    Bei Abrufmenge 0 wird die Fortschrittszahldifferenz nicht geprüft.
  • Der übergebene Termin und die Menge werden in der Auftragsposition korrigiert, auch bei bereits teilgelieferten Positionen!
  • Bei teilgelieferten Positionen (ab Zustand 40):
    Die Restmenge wird angepasst.
    Falls die gelieferte Menge >= Abrufmenge ist, wird das protokolliert und die Position wird nicht aktualisiert.
    Falls die zu liefernde Menge > neuer Restmenge wird die zu liefernde Menge mit der Restmenge versorgt.
    Falls Summe aus  „zu fakturieren + fakturiert“ > Auftragsmenge wird die zu fakturierende Menge angepasst.
    Ansonsten bleibt die zu fakturierende Menge unverändert.
  • Falls mehr Abrufe als offene Positionen kommen, werden neue Positionen angelegt.
  • Da das Tagesdatum wichtig für den „geschützten“ Bereich ist, muss bei verspätetem Einlesen der Abrufe z.B. am Folgetag das Arbeitsdatum in infra ggf. auf den Vortag gesetzt werden.
  • Hinweise:
  • Falls Termin und Menge in der Auftragsposition mit den Angaben im neuen Abruf übereinstimmen, bleibt die Position unverändert.
  • Alle Folgezeilen zu der aktualisierten Position bleiben unverändert (auch im Auftrag vorhandene Verpackungszeilen bzw. alle Position mit vom Vertrag abweichender Teilenummer)
    Ausnahme: Die erste Z-Zeile zur Position wird gelöscht (in der Kundenanpassung wird ein Metallzuschlag verwendet) und muss per MOVE-Datei ggf. neu generiert werden!)
  • Zähler, Merker oder Datum in Datei 47 für Aktualisierung erforderlich?
    Übertragungsnummer wird immer aktualisiert, vielleicht reicht das (Feld 110)
  • Falls weniger Abrufe als offene Positionen kommen, kann das nur festgestellt werden, indem die Anzahl der offenen Positionen mit der Anzahl der Abrufe verglichen wird! à Ggf. könnte Satzart 300 mit Kennung ENDE helfen!
  • Liefertermine aus Abruf mit dem Tagesdatum oder noch früheren Terminen werden genauso akzeptiert wie Termine nach der FrozenZone!
    Abrufe die mit Tagesdatum oder noch früher abgerufen werden, dürfen nicht mehr übergeben werden! Diese Positionen werden bei nächstem Abruf nicht mehr in der FrozenZone „gefunden“ und damit gibt es Probleme, da ggf. nicht die gewünschten Positionen in der FrozenZone aktualisiert werden.
  • Protokollausgaben:
  • Positionen die wegen Abrufmenge 0 gelöscht werden
    Positionen die wegen Abrufmenge 0 auf Restmenge gesetzt werden (Zustand >= 40)
  • Positionen die überlesen werden, da sie bereits bei früheren Abrufen mit Abrufmenge 0 gekennzeichnet wurden.
  • Offenen Positionen innerhalb FrozenZone vor dem Einlesen der Abrufpositionen und die Anzahl der offenen Positionen in FrozenZone.
  • Mit Sonderbehandlung 281 geänderte Menge / Termin je Position in FrozenZone
  • Hinweis, falls bei bereits teilgelieferten Positionen die neue Menge kleiner der gelieferten Menge werden würde.
    Menge und Termin bleiben dann unverändert!
  • Außerhalb der FrozenZone werden alle Positionen mit Liefertermin <= Tagesdatum folgendermaßen behandelt:
  • Bei Positionen mit dem Zustand der K-Zeile >= 40 wird diese K-Zeile samt Unterpositionen nicht gelöscht, sondern es wird die Auftragsmenge korrigiert (= gelieferte Menge). Die Restmenge wird somit 0.
    Die zu fakturierende Menge bleibt unverändert!
    Die Auslieferungsmenge wird 0.
    Falls bereits so viel fakturiert wurde wie geliefert, dann wird die Position erledigt und die zu fakturierende Menge wird 0.
  • Die restlichen K-Zeilen mit Zustand kleiner 40 werden gelöscht.
Hinweise:
  • Die Sonderbehandlung 213 wird im Probelauf nicht ausgeführt (nur Prüfung der Auftragsnummer).
    Ausnahme: Aufruf mit Parameter 3 (FrozenZone-Applikation).
  • Beim Löschen / Erledigen erfolgt eine Bestandskorrektur in Teilestamm und Lager. Individuelle Texte in Datei 46 zu T-Zeilen bzw. Z-Zeilen werden mitgelöscht.
    Bei Abrufaufträgen bleibt die G-Zeile erhalten (und natürlich alle K-Zeilen mit Zustand > 20).
  • Der Kopf des Kundenauftrags wird nicht gelöscht, auch wenn nach dem Löschen keine Position mehr existiert.
  • Achtung:
    Es muss anschließend zwingend der Auftrag neu durchgerechnet werden, siehe Sonderbehandlung 207
Interner Hinweis zur Programmlogik
SB 213 speichert erste Frozen-Zone-Satz (Puffer strBFdbe281) und setzt Merker (Puffer strErf448, Pos. 266 = 1 oder 2 wenn nichts mehr da), der bei Programmstart und bei SB 213 initialisiert wird und bei Argument 3 aktiviert wird).
Neue SB 281 liest den Satz in Puffer 47 (nur Kopie und Lock) und 23. Wenn kein Satz mehr da (FrozenZone nicht prüfen, da Rest ja gelöscht), wird Merker zurückgesetzt, d.h. bei nächster Abrufübernahmeposition wird ganz normal neuer Satz angelegt.
214
Spezielle Preisermittlung (Auftragsnummer muss im Puffer 23, Feld 11 stehen):
S-Zeilen werden benutzt, um Mehrarbeit / Nacharbeit abzubilden, d.h. der Preis einer K-Zeile wird folgendermaßen ermittelt.
Preis neu einer K-Zeile =
Verkaufspreis aus Teilestamm zur K-Zeile + Summe der Verkaufspreise aus Teilestämmen der zugehörigen S-Zeilen.
Nur der Verkaufspreis der K-Zeile wird errechnet und im Puffer der Datei 23 abgestellt. Es wird nicht in die Datenbank geschrieben
215
Gibt den angemeldeten Benutzer zurück (Loginname, nicht Kürzel)
216
Erweiterte Fehlerbehandlung der Sonderbehandlungsnummern 080-089. Die Fehlerbehandlung bezieht sich immer auf mögliche Fehler des zuletzt ausgeführten Befehls. Als Parameter wird die Meldungsnummer zur Ausgabe mitgegeben. Die Meldungen müssen in infra mit dem KEY FEDIxxx, wobei xxx eine eindeutige Nummer ist, erfasst sein. Zusätzlich wird der Inhalt des Ziels in das Fehlerprotokoll geschrieben (????).
217
Liefert zur Teilenummer in Quelle den Verkaufspreis im Ziel zurück.
Konnte der Verkaufspreis nicht ermittelt werden, so werden Leerzeichen in die Zieldatei geschrieben.
218
Ermittelt aus dem Bruttopreis in Fremdwährung (muss in Puffer DBE stehen !) die restlichen Preise und Werte in DBE und DIS.
Zielangabe muss stimmen, wird aber nicht verwendet.
Mengen, Rabatt, Währung, Kurs, Umrechnung, PE usw. müssen versorgt sein.
Bei Z-Zeilen werden aus den Fremdwährungsfeldern für den “Zuschlagswert“ (Feld 28) und „aus Wert“ (Feld 25) die Landeswährungsfelder errechnet.
Zulässige Zeilentypen
K
K-Zeile
S
S-Zeile
G
G-Zeile
Z
Z-Zeile
Hinweise:
Nach dieser Sonderbehandlung bei K-/S-/G-Zeilen unbedingt Rohertragsermittlung (Sonderbehandlung 098) in MOVE-Datei einbauen!
VARGEN-Spezialitäten werden nicht berücksichtigt.
Menge 0 und Gutschriftbehandlung wird nicht berücksichtigt, aber ggf. von Sonderbehandlung „207“ wieder korrigiert.
219
Werte aus Kundenstamm in Auftragskopfpuffer (KKO) übernehmen.
Zielangabe muss da sein, wird aber nicht verwendet.
Hinweise:
Währung wird übernommen, aber Währungssatz nicht gelesen und damit wird Kurs und Shiftfaktor nicht übernommen. Siehe aber Möglichkeiten über Sonderfunktion „095“.
Applikationen / Einstellungen aus AUF435 werden nicht berücksichtigt.
Vorbelegungen aus Vertreterstammsätzen erfolgen nicht
220
Auftragskopfpuffer (KKO) initialisieren.
Zielangabe muss stimmen, wird aber nicht verwendet. Applikationen aus AUF435 werden nicht berücksichtigt.
Muss vor der Versorgung mit anderen Werten benutzt werden, z.B. „219“ erst nach „220“ benutzen!
Der komplette Datensatz wird mit Leerzeichen versorgt und folgende Felder werden versorgt:
Zustand (10), Zwangssteuerungen (alles 0, Lieferschein zwingend usw. muss individuell gesetzt werden !), Änderungsdatum (Tagesdatum), Erfassungsdatum (Tagesdatum), Erfassungsuhrzeit (aktuelle Uhrzeit), Kennung Tageskurs („0“ = nicht aktualisieren), Abschlagsendrechnung („0" = Nein), letzter Lieferschein (00.00.0000), letzte Rechnung (00.00.0000), Liefertermin (00.00.0000), Valutadatum (99.99.9999), Kettrabatt („0“ = Nein), Rabattwert 1 anteilig („0“ = Nein), Rabattwert 2 anteilig („0“ = Nein), Datum ihre Bestellung (Tagesdatum).
221
Vorbelegung der Positionen.
Muss vor Sonderbehandlung 222 eingesetzt werden!
Je nach Parameter wird laut dem entsprechenden Zeilentyp vorbelegt. Zulässige Parameter:
  • „K“ = K-Zeile
    Hinweise:
    Keine Vorbelegung aus ggf. existierender G-Zeile!
    Bei Set unbedingt die Felder 46 (Buchen) und 57 (Fakturieren) und den Zustand in der Disposition („02“, wenn über S-Zeile gebucht wird) in MOVE-Datei versorgen.
  • „S“ = S-Zeile
    In DBE muss Position stehen. Die Felder 46 (Buchen) und 57 (Fakturieren) in der zugehörigen K-Zeile müssen versorgt sein! Es wird aus der K-Zeile vorbelegt
  • „G“ = G-Zeile
  • „F“ = F-Zeile
  • „A“ = A-Zeile, aber keine Prüfung auf korrekte Auftragsart!
  • „T“ = T-Zeile
  • „Z“ = Z-Zeile
 
Es werden die Puffer für Teilestamm (Datei 6), Teilestamm Material (Datei 27), Teilestamm Verkauf (Datei 28), Teilestamm Einkauf (Datei 104), Lager (Datei 24), Umrechnungsfaktor (Datei 25), Auftragsposition (Dateien 23 und 47) und externe Teilenummer (Datei 83) mit Leerzeichen versorgt. Danach werden die Felder in der Auftragsposition (Dateien 23 und 47) mit den Defaultwerten, u.a. aus dem Auftragskopf wie in "435 Aufträge bearbeiten" versorgt. Die Puffer für den Auftragskopf und Kundenstamm müssen versorgt sein.
Hinweise:
Konfigurationen aus 435 werden, wenn nicht nachfolgend erwähnt, nicht berücksichtigt!
Die Position wird mit der Position aus dem Puffer der Datei 47 versorgt (also zuletzt benutzte Position). Falls dort nur Leerzeichen stehen (beim ersten Mal, Puffer sollte in MOVE-Datei mit jedem Auftragskopf initialisiert werden) wird Position inkrementiert.
Unterposition wird nicht versorgt! Sonderbehandlung 091 benutzen!
Lieferbereit wird gesetzt und Fakturierbereit wird laut Konfiguration vorbelegt.
Kurs und Währung werden aus dem Auftragskopf übernommen, unabhängig von Tageskurskennung.
INI-Einstellung für Lager
Falls INI-Einstellung LagPosErf222 ungleich 0 in Sektion [AUF448] eingestellt ist, wird die Lagerangabe aus strErf an dieser Position benutzt. Damit können feste Lagervorgaben verwendet werden.
 
222
Je nach Parameter Zeilentyp die Teilestämme, den Lagerstamm und die Umrechnung lesen und aus den Stammsätzen die Positionsdaten vorbelegen.
Zulässige Parameter:
K
K-Zeile, aber keine Vorbelegung aus ggf. existierender G-Zeile!
S
S-Zeile
G
G-Zeile
F
F-Zeile
A
A-Zeile, aber keine Prüfung auf korrekte Auftragsart!
Es werden die Puffer für Teilestamm (Datei 6), Teilestamm Material (Datei 27), Teilestamm Verkauf (Datei 28), Teilestamm Einkauf (Datei 104), Lager (Datei 24) und Umrechnungsfaktor (Datei 25) gelesen und daraus werden wie in 435 Daten in die Auftragsposition (Dateien 23 und 47) übernommen.
Hinweise:
  • Falls im Ziel eine „1“ steht, werden nur die Puffer versorgt, es erfolgt keine Vorbelegung der Positionen. Ist z.B. beim Update einer <Position sinnvoll.
  • Konfigurationen aus 435 werden, falls nicht nachfolgend erwähnt, nicht berücksichtigt!
    Die Puffer für die Auftragsposition müssen schon „Initialisiert“ sein, siehe Sonderfunktion 221. Im Feld Teilenummer von Datei 47 (Feld 13) muss die Teilenummer stehen.
  • Einstellung "AUSKOPFKST" aus Sektion [AUF435] wird berücksichtigt.
  • Die Felder für die Preisfixierung Verrechnungspreis (Felder 162 und 163 in Datei 47) werden versorgt.
223
Je nach Parameter Zeilentyp die Mengenfelder und Gewichtsfelder auf Basis der Auftragsmenge neu rechnen.
Auch den Umrechnungsfaktor neu ermitteln und die Preiseinheit entsprechend aus Umrechnung oder Teil neu übernehmen!
Zulässige Parameter:
K
K-Zeile, aber keine Vorbelegung aus ggf. existierender G-Zeile!
S
S-Zeile
G
G-Zeile
Hinweise:
Konfigurationen aus 435 werden, falls nicht nachfolgend erwähnt, nicht berücksichtigt! Besonderheiten zum Variantengenerator werden nicht berücksichtigt.
Die Puffer für die Auftragsposition müssen schon „Initialisiert“ sein, siehe Sonderfunktion 221 und 222. Im Feld Auftragsmenge von Datei 23 (Feld 22) muss die Auftragsmenge stehen.
 
Mit Puffer 448, Position 287 kann gesteuert werden, ob die Sonderbehandlung von einer neuen Position ausgeht oder ob eine Änderung einer Position gemacht wurde:
„ „
Neue Position
1
Vorhandene Position (wird innerhalb der Sonderfunktion sofort wieder auf Leerzeichen gesetzt!).
Die übergebene Auftragsmenge wird übernommen.
Die Restmenge wird angepasst (Auftragsmenge – bereits geliefert), wobei schon in der Move-Datei geprüft und abgelehnt werden muss, falls die gelieferte Menge schon >= neue Auftragsmenge ist.
Die zu liefernde Menge wird auf die Restmenge korrigiert, falls größer Restmenge.
Die zu fakturierende Menge wird so korrigiert, dass die Summe aus zu fakturieren und fakturiert nicht größer als die Auftragsmenge wird.
224
Je nach Parameter Zeilentyp den Kundenauftragsbestand in Teilestamm und Lager erhöhen.
Es wird also immer von einer neuen Zeile ausgegangen. Zulässige Parameter:
K
K-Zeile
S
S-Zeile
Hinweise:
Bei Pseudoteilen wird nichts aktualisiert.
Bei Auftragsart Gutschriften wird nicht aktualisiert.
Die Kennung in Feld 46 (Datei 47) für K- und S-Zeilen bei Nutzung von Set-Zeilen wird ausgewertet und nur bei passender Kennung werden Bestände aktualisiert.
Die Puffer für Auftragskopf, Auftragsposition, den Teilestamm und den Lagerstamm müssen komplett versorgt sein.
Teil- und Lagerstamm werden gesperrt.
Bei Angeboten darf die Sonderbehandlung nicht benutzt werden!
 
Mit Puffer 448, Position 271 kann gesteuert werden, ob die Sonderbehandlung von einer neuen Position ausgeht oder ob eine Änderung einer Position gemacht wurde:
„ „
Neue Position
1
Vorhandene Position (wird innerhalb der Sonderfunktion sofort wieder auf Leerzeichen gesetzt!).
Menge alt muss an Position 272 übergeben werden, Menge neu im Dispopuffer 23
225
Neue Textkonserve für Auftragspositionen in Datei 46 generieren oder aktualisieren.
Der Text aus der Quellangabe wird als Textkonserve in der Textdatei abgestellt.
Bei Parameter „1“ werden vorhandene Texte überschrieben, ansonsten aber nicht verändert.
Der Text wird aus der Quellangabe übernommen. Falls der Text aus mehreren Zeilen besteht, müssen die Zeilen mit „\n“ getrennt werden (s. Beispiel). Ansonsten erfolgt die Aufteilung in mehrere Zeilen wie beim Erfassen oder Ändern von Textbausteinen in M435.
Der Textident muss im Puffer für Datei 47 (Feld 40) stehen.
Die Textnummer („000“ bei individuellen Texten) muss im Puffer für Datei 47 (Feld 41) stehen.
Die Kennungen für die Papiere, auf denen der Text gedruckt werden soll, müssen in Feld 42-45 bzw. 87 im Puffer 47 (DBE) abgestellt werden.
Die Zielangabe wird nicht beachtet.
Beispiel:
350
47
F1
 
 
 
 
211,T
 Initialisiere Positionspuffer und Felder
350
47
F1
 
 
 
 
085,!F448034
* Bei Fehler
350
47
F12
 
 
 
 
091,1
* Unterposition holen
350
47
F40
 
 
 
 
001,IND
* Individueller Text
350
47
F41
 
 
 
 
001,000
* Individueller Text
350
47
F42                           
4
 
 
 
203
* Wo Text
350
I02
 
 
 
 
 
008
* Mit Leerzeichen fuellen
350
I02
1
70
0
39
70
000
* Textzeile 1
350
I02
71
2
 
 
 
001,\n
* Zeilenumbruch
350
I02
73
70
0
109
70
00
* Textzeile 2
350
I02
143
2
 
 
 
001,\n
* Zeilenumbruch
350
I02
145
70
0
109
70
000
* Textzeile 3
350
I02
215
2
 
 
 
001,\n
* Zeilenumbruch
350
I02
217
70
0
249
70
000
* Textzeile 4
350
I02
287
2
 
 
 
001,\n
* Zeilenumbruch
350
I02
289
70
0
70
319
000
* Textzeile 5
350
47
F1
 
I02
 
 
225
* Text aus Quelle wird in Datei 46 geschrieben
350
47
F1
 
 
 
 
082,!F448041
* Bei Fehler weitermachen
* Position schreiben (Datei 47)
* -----------------------------
350
47
F1
 
 
 
 
101
* Satz schreiben
350
47
F1
 
 
 
 
083,008
* Ggf. Fehler FEDI008 ausgeben -> naechste Satzart
226
Neue Textkonserve zum Auftragskopf in Datei 46 generieren oder aktualisieren.
z.B. Kopf- und Fußtexte. Der Text aus der Quellangabe wird als Textkonserve in der Textdatei abgestellt.
Bei Parameter „1“ werden vorhandene Texte überschrieben, ansonsten aber nicht verändert.
Der Text wird aus der Quellangabe übernommen. Falls der Text aus mehreren Zeilen besteht, müssen die Zeilen mit „\n“ getrennt werden (s. Beispiel). Ansonsten erfolgt die Aufteilung in mehrere Zeilen wie beim Erfassen oder Ändern von Textbausteinen in M435.
Der Textident muss im Puffer für Datei 46 (Feld 1) stehen. Die Textnummer („000“ bei individuellen Texten) muss bereits im entsprechenden Feld des Auftragskopfpuffers stehen (z.B. Feld 43 für die Textnummer des Kopftextes). Zulässige Angaben in Feld 1 des Dateipuffers 46:
  • KOP (Textnummer in Feld 43: Kopftext)
  • KO2 (Textnummer in Feld 151: Kopftext 2)
  • KO3 (Textnummer in Feld 152: Kopftext 3)
  • FU1 (Textnummer in Feld 44: Fußtext 1)
  • FU3 (Textnummer in Feld 155: zweiter Fußtext 1)
  • FU4 (Textnummer in Feld 156: dritter Fußtext 1)
  • FU2 (Textnummer in Feld 45: Fußtext 2)
  • FU5 (Textnummer in Feld 157: zweiter Fußtext 2)
  • FU6 (Textnummer in Feld 158: dritter Fußtext 2)
  • VRS (Textnummer in Feld 46: Versand)
  • VR2 (Textnummer in Feld 153: Versandtext 2)
  • VR3 (Textnummer in Feld 154: Versandtext 3)
  • INT (Textnummer in Feld 47: Interner Text)
  • ZU1 (Textnummer in Feld 98: Text zu Auftragsrabatt 1)
  • ZU2 (Textnummer in Feld 99: Text zu Auftragsrabatt 2)
Die Kennungen für die Papiere, auf denen der Text gedruckt werden soll, müssen in Feld 12 bzw. 15 im Dateipuffer 46 (TEX) abgestellt werden.
Beispiel:
20
I02
1
70
0
33
70
000
* Textzeile 1 merken
20
I02
71
2
 
 
 
001,\n
* Zeilenumbruch
20
I02
73
70
0
103
70
000
* Textzeile 2 merken
20
I02
143
2
 
 
 
001,\n
* Zeilenumbruch
20
I02
145
70
0
173
70
000
* Textzeile 3 merken
20
38
F47
 
 
 
 
001,00
* Individueller Kopftext (INT)
20
46
F1
 
 
 
 
001,INT
* Textident
20
46
F12
4
 
 
 
203
* Wo Text
20
38
F47
 
I02
 
 
226
* Text aus Quelle (Ziel egal)
20
38
F47
 
 
 
 
082,F448042
* Bei Fehler weitermachen* Bei Fehler weitermachen
227
Abweichung eines Feldes von einem anderen in Prozent prüfen und ausgeben
Das Zielfeld wird als Basis verwendet und die Abweichung des Quellfeldes wird ermittelt. Die zulässige Prozentangabe für die Abweichung erfolgt über den Parameter oder bei leerem Parameter über die INI-Einstellung „Proz-SB227“ in Sektion [AUF448]. Ist die Abweichung größer als zulässig, so wird dies im Druckprotokoll ausgegeben (siehe Drucksteuertabelle 94 und Beschreibung von Puffer 448 mit den notwendigen Infos für die Druckausgabe). Die Fehler (auch die Abweichung wird als Fehler zurückgegeben, siehe Fehlerliste) können zusätzlich in der MOVE-Datei behandelt werden. Die Anzahl der Abweichungen wird am Ende des Druckprotokolls ausgegeben. Beispiel für Preisvergleich (Preis aus Übergabe und Bruttopreis aus Konditionsfindung):
220
47
F23
 
 
 
 
096
* Preis aus Konditionen holen
220
47
F23
 
 
 
 
082,!F448040
* Bei Fehler weitermachen
220
47
F23
 
0
203
10
227,10.00
* Preisvergleich
228
Prüfung, wenn sowohl die Teilenummer des Kunden (externe Teilenummer als Quelle) als auch die infra-Teilenummer (als Ziel) übergeben wird bzw. wenn nur die externe Teilenummer übergeben wird (Zielfeld mit interner Teilenummer muss dann leer sein).
Die (ggf. ermittelte) infra-Teilenummer landet dann in Feld 13 der Datei 47 (DBE) und es kann dann in der MOVE-Datei mit der Sonderbehandlung 222 das Lesen der Teilestämme und das Vorbelegen erfolgen.
Im Fehlerfall wird Feld 13 mit Leerzeichen versorgt.
Hinweise:
In der Quelle muss die externe Teilenummer stehen und im Ziel die infra-Teilenummer. Die Kundennummer muss bereits in Feld 14 von Dateipuffer 47 (DBE) stehen.
Fall 1: Nur die externe Teilenummer wird übergeben:
Dann muss ein Satz in Datei 83 vorhanden sein und von dort wird die Teilenummer versorgt.
Fall 2: Nur die interne Teilenummer wird übergeben:
Dann wird diese Teilenummer verwendet
Fall 3: Beide Teilenummern werden übergeben:
Dann wird ein Satz in Datei 83 angelegt, falls dieser noch nicht vorhanden ist (in Feld Bemerkung wird als Text „448“ hinterlegt). Existiert bereits ein Satz so wird geprüft, ob die infra-Teilenummer dort mit der übergebenen Nummer übereinstimmt. Falls nicht erfolgt eine Fehlerausgabe und keine Übernahme der Teilenummer.
Fehlerfall:
Fehler werden im Druckprotokoll ausgegeben (siehe Drucksteuertabelle 93 und Beschreibung von Puffer 448 mit den notwendigen Infos für die Druckausgabe). Die Fehler (siehe Fehlerliste) können zusätzlich in der MOVE-Datei behandelt werden.
229
Zu einer K-Zeile werden S-Zeilen generiert.
Auch die teilebezogenen Texte zu einer S-Zeile werden automatisch generiert (auch der Kunden / Teiletext mit Ident TKN bzw. TK2).
Die Puffer 23 (DIS, Disposition) und 47 (DBE, Disposition für AUF) für die Auftragsposition (K-Zeile) müssen komplett versorgt sein und die K-Zeile muss bereits geschrieben sein (im Echtlauf, im Probelauf geht es natürlich auch ohne).
Insbesondere die Felder „Buchen über K- oder S-Zeile“ (Feld 46) und „Fakturieren über K- oder S-Zeile“ (Feld 57) nochmals explizit versorgen, siehe Hinweise.
Hinweise:
  • Unbedingt den Abgleich Kopf / Positionen mit Sonderbehandlung 207 anschließend durchführen
  • Nach der Generierung der S-Zeilen haben sich die Puffer 23, 47, 6 und alle anderen Teilestammpuffer usw.
  • Wenn nach dem Erzeugen der K-Zeile z.B. die zugehörigen Textzeilen generiert werden, muss die K-Zeile nochmals gelesen werden oder aber die Puffer 23 und 47 werden vorher zwischengespeichert (interne Variable).
  • Falls nach dem Schreiben der K-Zeile ein Abgleich Kopf / Positionen (Sonderbehandlung 207) veranlasst wird, sind evtl. bereits übergebene Kennungen „Buchen bzw. Fakturieren über K-/S-Zeile“ verändert worden (da ja noch keine S-Zeile existiert).
    Wenn bereits zum Zeitpunkt der K-Zeilenübergabe sichergestellt ist, dass noch S-Zeilen folgen, kann der Abgleich nach der K-Zeile allerdings entfallen.
    Besser ist es, den Abgleich nach der S-Zeilengenerierung anzuordnen.
    Dennoch zur Sicherheit immer die jeweilige Kombination („welcher Zeilentyp gilt für was“) vor der Generierung der S-Zeilen in den Puffer 47 schreiben.
  • Falls über die S-Zeilen gebucht wird, wird der Kundenauftragsbestand für das K-Zeilenteil wieder aus dem Bestand im Teile- und Lagerstamm rausgerechnet.
  • Bei Fehlern während der S-Zeilen-Generierung unbedingt danach die Diagnose zum Berechnen der dispositiven Bestände und zum Abgleich der Kundenauftragskopf- und Positionsdaten nutzen.
  • Wie bei Sonderbehandlung 98 (Rohertrag) kann über Puffer 255 (Position 4 = „1“) eine Meldung wegen „Rohertrag nicht gewährleistet“ unterdrückt werden
Beispiel:
.............
* Position schreiben (Datei 23 und 47)
* ------------------------------------
230
23
F1
 
 
 
 
101
* Satz schreiben
230
23
F1
 
 
 
 
083,700
* Ggf. Fehler FEDI007 ausgeben -> naechste Satzart
230
47
F1
 
 
 
 
101
* Satz schreiben
230
47
F1
 
 
 
 
083,008
* Ggf. Fehler FEDI008 ausgeben -> naechste Satzart
* Kundenauftragsbestand im Teilestamm und Lagerstamm aktualisieren
* ---------------------------------------------------------------
230
38
F1
 
 
 
 
224,K
* Bestaende aktualisieren
230
47
F1
 
 
 
 
082,!F448038
* Bei Fehler weitermachen
230
IO3
1
4000
 
47
1
000
 Puffer 47 sichern
230
IO3
5000
4000
 
23
1
000
* Puffer 23 sichern
* Teilebezogene Texte erzeugen lassen (Achtung Puffer 47 wird veraendert!)
* ---------------------------------------------------------------
230
47
F1
 
 
 
 
097,2
* Texte erzeugen lassen
230
47
1
 
147
I03
1
000
* Puffer 47 ruecksichern
230
23
1
 
I23
I03
5000
000
* Puffer 23 ruecksichern
* S-Zeilen generieren lassen (Achtung fast alle Puffer werden veraendert!)
* --------------------------
230
47
F46
 
 
 
 
001,0
* Buchen ueber S-Zeile
230
47
F57
 
 
 
 
001,1
* Fakturieren ueber K-Zeile
230
47
F1
 
 
 
 
229
* S-Zeilen erzeugen lassen
* Kopf- und Positionsdaten abgleichen (Auftragswert, Rohertrag, Netto usw.)
* -------------------------------
230
38
F1
 
 
 
 
207
* Abgleich Kundenauftrag
230
47
F1
 
 
 
 
082,!F448039
* Bei Fehler weitermachen
250
Schreibt in die Übergabedatei ab der Zielposition mit der Ziellänge den Inhalt der Quelldatei.
Die Zieldatei muss die Übergabedatei sein. Mit dem INI-Eintrag FEHLERDATEI = YES kann hier zusätzlich gesteuert werden, ob nur die veränderten Sätze in die Übergabedatei geschrieben werden. Die Defaulteinstellung schreibt alle Sätze zurück.
Hinweis
Einzelne Sätze der Übergabedatei können durch ein Kennzeichen (z.B. Datum) als fehlerhafte Sätze gekennzeichnet werden. Mit dem INI-Eintrag FEHLERDATEI steuert man zusätzlich, dass nur die fehlerhaften Sätze in der Übergabedatei stehen bleiben und alle korrekten, nicht veränderten Sätze gelöscht werden (Beschreibung für FEHLERDATEI in der ANWENDER.HLP beachten).
251
Die Sonderfunktion 251 wird bei der Übernahme von extern erfassten Serviceberichten, aus denen Kundenaufträge generiert werden, benutzt.
Damit aus einem Servicebericht nicht mehrere Kundenaufträge entstehen, verwaltet die infra:Importschnittstelle die Serviceberichte über einen Status. Ablauf:
1. Nach erfolgreichem Import (mit AUF449) setzt die infra:Importschnittstelle den externen Servicebericht auf Status stat_Finished.
Die Daten des Serviceberichts werden in der infra-Datenbank in den Tabellen 134 (SDB_0.DAT für den Kopf) und 135 (SDB_1.DAT für die Positionen) mit Status stat_Confirmed erstellt.
2. Danach erstellt AUF448 aus einigen Daten des Serviceberichts Kundenaufträge (Satzarten K und P).
Ist die Erstellung erfolgreich, wird über Satzart E in der Datei 134 der Status des Serviceberichts mit Hilfe dieser Sonderbehandlung auf „stat_Finished“ gesetzt.
Zusätzlich zum Status wird auch die Auftragsnummer im Servicebericht abgestellt.
Die Sonderfunktion 251 wird im Probelauf nicht ausgeführt.
Der Erfassungspuffer ist vor dem Aufruf der Funktion zu versorgen:
  • Position 351 in der Länge 9 muss die aktuelle Bericht-ID als Schlüssel für den Datenbankzugriff enthalten.
  • Position 364 in der Länge 13 muss den neuen Status des Serviceberichts enthalten, z.B. „stat_Finished".
  • Position 308 in der Länge 7 muss die Auftragsnummer enthalten, die beim Erstellen des Auftrags vergeben wurde
252
Sehr spezielle Versorgung von Zählern für Verpackungseinheiten, die in Datei 83 in Anwenderfeldern geführt werden (momentan auf Menge 1 abgestimmt !).
Der Zähler für die übergeordnete Einheit (Ladungsträgernummer für z.B. Kisten) läuft von 1 bis 999 und beginnt wieder bei 1. Es wird Feld 6 benutzt. Der Zähler wird erhöht, wenn im untergeordneten Zähler bereits 18 steht (laufende Nummer zu Ladungsträgernummer, z.B. für Stück je Kiste).
Der untergeordnete Zähler läuft von 1 bis 18 und beginnt wieder bei 1. Es wird Feld 8 benutzt. Der Zähler wird bei jedem Aufruf um 1 erhöht.
Es muss zwingend bereits der Satz für die externe Teilenummer gelesen sein (gesperrt).
Die Zähler werden im Puffer 83 abgestellt. Z.B. könnte dann in der MOVE-Datei das Feld 6 aus Datei 83 in Feld 106 (Ladungsträgernummer) der Datei 47 und Feld 8 aus Datei 83 in Feld 107 der Datei 47 (lfd. Nummer zu Ladungsträgernummer) übernommen werden.
253
Infra-Makros auswerten
So kann z.B. der Sachbearbeiterkürzel des angemeldeten Benutzers ins Ziel übernommen werden. Die Makroangabe muss im Parameterbereich angegeben werden.
Beispiel:
5
3823
F42
 
 
 
 
253,GV(GV_sbkurz)
* Sachbearbeiterkuerzel aus Anmeldung
254
Standort, Kostenstelle, Auslieferungslager und Ansprechpartner vorbelegen
Falls der Standort im Auftragskopf noch leer ist, wird er aus dem Benutzer-Standort vorbelegt, siehe „Benutzername, Rechte“ (911).
Die Kostenstelle wird laut INI-Eintrag „KST435“ in der Sektion [STANDORT-..] vorbelegt.
Das Auslieferungslager wird laut INI-Eintrag „VBLAG435“ in der Sektion [STANDORT-..] vorbelegt.
Der Ansprechpartner aus „Kunden-Standortdaten bearbeiten“ (41S) wird vorbelegt, sofern dort ein Ansprechpartner hinterlegt ist.
Ziel muss versorgt sein, ist aber ohne Bedeutung.
255
Verpackungsangaben aus Vertrag auswerten
Vertrag muss im Puffer 143 stehen und im Ziel muss die Menge aus der Auftragsposition stehen, für die dann Verpackungsmengen errechnet werden.
Beispiel:
Menge 995 in Auftragsposition.
Im Vertrag steht für Ebene 1 Teilenummer GITTERBOX-T1 und Fassungsvermögen 50 (Schachteln).
Im Vertrag steht für Ebene 2 Teilenummer SCHACHTEL-TYP3 und Fassungsvermögen 10 (Stück).
Es ergibt sich also ein Bedarf von 100 Schachteln (zu je 10 Stück bzw. eine mit 5 Stück) und 2 Paletten.
Die Ergebnisse werden immer ganzzahlig aufgerundet und im Puffer 448 ab Position 147 zur Verfügung gestellt: Jeweils Kennung ob Verpackung erforderlich und die erforderliche Menge
 
256
Metallanteil ermitteln
Aus den vorhandenen Puffern für Auftragskopf (Index 38), Disposition (23) und Teilestamm (6) wird ermittelt, ob es sich um ein Teil mit Metallanteil handelt.
Aus Parameter (Datei 1) mit Schlüssel „METALL“ + Metallkennzeichen aus Teilestamm (Feld 51, Datei 6) wird die Teilenummer für den Metallzuschlag ermittelt. Wenn Satz fehlt, wird Teilenummer METALLZUSCHLAG verwendet.
Die Teilenummer wird an Position 179 von Puffer 448 abgestellt und kann abgefragt werden, um in der MOVE-Datei dann z.B. eine K-Zeile als Metallzuschlag zu generieren.
Dazu wird der Metallanteil im Mengenformat an Position 204 von Puffer 448 abgestellt. Ermittelt wird der Metallanteil aus der Menge der aktuellen Auftragsposition und dem Metallanteil (Feld 50 in Datei 6 bezogen auf Gewichtseinheit in Feld 46) aus dem Teilestamm.
Und die Metallkennung wird an Position 219 von Puffer 448 abgestellt (aus Feld 51 im Teilestamm, Datei 6)
 
257
Name Sachbearbeiter in Ziel schreiben
In der Quelle muss der Sachbearbeiterkürzel stehen. Mit diesem Kürzel wird dann der zugehörige Name aus Programm „Sachbearbeiter pflegen“ (913) ermittelt (Datei 193, Feld 3) ins Zielfeld geschrieben.
Fehlt der Satz, werden Leerzeichen.
Beispiel:
11
38
F41
 
 
 
 
253,GV(GV_sbkurz
* Sachbearbeiterkuerzel aus Anmeldung
11
38
F42
 
 
38
F41
257
* Sachbearbeitername aus M913
258
Spezielle Texte zum Kunden am Auftragsanfang (INI-Einstellung TextGen..)
Die Auswertung der INI-Einstellungen TextGenIdK und TextGenPos aus Sektion [AUF435] erfolgt auch in M448. Ziel und Quelle werden nicht ausgewertet. Es werden die konfigurierten Textpositionen generiert (maximal drei).
Hinweis: Fehler werden akzeptiert, kein Abbruch. Es wird nicht geprüft, ob die ermittelte erste Positionsnummer schon vergeben ist. Die Sonderbehandlung sollte grundsätzlich im Block zum Auftragskopf aufgerufen werden.
259
Z-Zeile für Metallanteil vorbelegen (nicht die Unterposition)
Es muss vorher zwingend die Sonderbehandlung 256 verwendet werden, s. Beispiel unten.
Alle Felder in Datei 47 werden analog zu der Z-Zeile in „Aufträge bearbeiten“ (435) bei Metallzuschlägen bezogen auf das Gewicht ermittelt.
Ausnahmen: Die Kennung „kein Metallzuschlag“ aus „Externe Teilenummern bearbeiten“ (42A) wird nicht berücksichtigt und Preis 0 wird akzeptiert.
Beispiel:
* Metallanteil merken
* -------------------
230
47
F1
 
 
 
 
256
* Teilenummer und Metallanteil in Puffer 448 /02
* Teilebezogene Texte erzeugen lassen (Achtung Puffer 47 wird veraendert!)
* -----------------------------------
230
47
F1
 
 
 
 
097,2
* Texte erzeugen lassen
* Kopf- und Positionsdaten abgleichen (Auftragswert, Rohertrag, Netto usw.)
* -----------------------------------
230
38
F1
 
 
 
 
207
* Abgleich Kundenauftrag
230
47
F1
 
 
 
 
082,!F448039
* Bei Fehler weitermachen
230
255
1
1
 
 
 
041,240
* -> weiter mit Block 240
* --------------------------
* Metallzuschlag als Z-Zeile
* --------------------------
240
47
1
 
I47
I05
1
000
* Puffer 47 ruecksichern 
240
23
1
 
I23
I05
5000
000
* Puffer 23 ruecksichern
240
448
179
25
 
 
 
026,250
* Kein Metallzuschlag --> Verpackung, Block 250
240
47
F1
 
 
 
 
259
* Vorbelegungen fuer Z-Zeile Metall
240
47
F1
 
 
 
 
083,!F448069
* Bei Fehler naechste Position                
240
47
F12
 
 
 
 
091,1
* Unterposition holen
* Position schreiben (Datei 47)
* -----------------------------
240
47
F1
 
 
 
 
101
* Satz schreiben
240
47
F1
 
 
 
 
083,008
* Ggf. Fehler FEDI008 ausgeben -> naechste Satzart
 
260
Metallzuschläge zu einer Auftragsposition erzeugen laut „Metallanteile bearbeiten“ (11O):
Lizenz muss vorhanden sein. Puffer KND, KKO, DBE, DIS, WAE müssen versorgt und geschrieben sein. Die Z-Zeilen werden analog zu „Aufträge bearbeiten“ (435) erstellt.
Hinweise: Obige Puffer bleiben unverändert, Ausnahme: Im Puffer 47 (DBE) wird in die Unterposition die letzte vergebene Unterposition der Z-Zeilen geschrieben, damit anschließend Textgenerierung (Sonderbehandlung 97) funktioniert!
Die Felder für die Preisfixierung der Metallzuschläge (Felder 162 bis 171 in Datei 47) werden versorgt.
261
Termin in Quelle minus Lieferzeit in Tagen = Termin im Ziel
Damit kann z.B. folgendes erreicht werden:
            Bestätigter Liefertermin (aus Schnittstelle) - Lieferzeit ergibt (internen) Liefertermin.
Die Berechnung erfolgt wie bei "435 Aufträge bearbeiten".
Ob bei den Terminrechnungen die Lieferzeit aus dem Kundenstamm oder aus dem Teilestamm berücksichtigt werden soll bzw. in welcher Reihenfolge, kann über die INI-Einstellung „TermLZprio“ in Sektion [AUF435] konfiguriert werden.
Hinweise:
Bei Parameter „1“ werden nur die Zeitangaben aus dem Kundenstamm berücksichtigt (also Verwendung im Auftragskopf) und bei Parameter „2“ (Default) wird laut INI-Einstellung verfahren.
Teilestamm Verkauf muss im Puffer 28 (AEF) und Kunde im Puffer 41 (KND) stehen.
Beispiel:    
*Mindestlieferzeit aus Kundenstamm pruefen (Tagesdatum + Lieferzeit > Liefertermin)
* -----------------------------------------
200
I01
50
8
0
26
8
8261,1
* Liefertermin - Lieferzeit Kunde
200
R01
 
 
I01
50
8
000
* Als Rechenfeld
200
R02
 
 
38
F10
8
000
* Tagesdatum
200
R02
 
 
R01
 
 
034,205
* Tagesdatum <= Liefertermin-Zeit
200
255
1501
132
 
 
 
003,32
* alles Leerzeichen
200
255
1501
132
 
 
 
001, Tageszeit + Lieferdatum (
200
255
1526
4
41
F208
4
000
* Lieferzeit
200
255
1530
3
 
 
 
001,)>
200
255
1534
8
0
26
8
000
* Liefertermin
200
255
1501
132
 
 
 
074,3
* Ausgabe fett + rot
200
255
1501
132
 
 
 
003,32
* alles Leerzeichen
200
255
1501
41
 
 
 
004,=
* Unterstreichen
200
255
1501
132
 
 
 
074,3
* Ausgabe fett + rot
200
255
1
1
 
 
 
041,205
* Weiter gehts
* Liefertermin
205
23
F31
8
0
26
8
000
* Liefertermin
205
47
F54
 
 
23
F31
000
* Liefertermin
262
Aus Angabe in Quelle Kundenauftrag ermitteln.
Z.B. kann man damit abfragen, ob zu einer bestimmten Vertragsnummer (in Quelle übergeben) bereits ein Auftrag existiert, siehe auch „Abarten“ bei SB 265 und 267.
Hinweise:
Als Parameter 1 muss eine Feldnummer aus dem Auftragskopf (Datei 38) angegeben werden, z.B. Feldnummer 109 für Anwenderfeld 5. Kundennummer muss schon im Kundenpuffer 41 stehen.
Über Pfad 5 (nur offene Aufträge zu Kunde) wird der erste Auftrag mit dem Eintrag laut Quelle ermittelt.
Die Auftragsnummer wird formatiert im Ziel zurückgegeben. Konnte kein Auftrag ermittelt werden, so werden Leerzeichen in das Zielfeld geschrieben.
Beispiel:
* PRUEFUNG VERTRAGSNUMMER UND GGF. AUFTRAG SUCHEN
141
I01
47
40
 
 
 
027,142
* weiter bei Block 142 wenn Vertragsnummer angegeben
141
255
1
1
 
 
 
089,9996
* Fehler 9996 setzen (nur Meldungsausgabe ohne Fehlernummer)
141
255
1
1
 
 
R05
085,!F448071
* Vertrag fehlt -> naechste Satzart 100
141
255
1
1
 
 
 
041,150
* -> weiter mit Block 150
142
I04
1
7
I01
47
40
262,109
* Auftrag mit Vertragsangabe in Feld 109 suchen (Datei 38)
142
I04
1
7
 
 
 
026,150
* weiter bei Block 150 wenn kein Auftrag (=0) gefunden
263
G-Zeile zu einer Teilenummer ermitteln.
Auftragsnummer und Teilenummer müssen im Puffer 47 stehen (Feld 10 und 13). Die Positionsnummer wird dann im Erfolgsfall im Puffer 47 versorgt (Feld 11), ansonsten Fehlerausgang.
Parameter = 1:Nur G-Zeilen mit Restmenge > 0 werden berücksichtigt
264
K-Zeile aus G-Zeile vorbelegen.
Die „Grundvorbelegung“ über Sonderbehandlung 221 muss vorliegen. Teilenummer und Position (z.B. über Sonderbehandlung 263) müssen im Puffer 47 versorgt sein. Fehlerausgang wird versorgt.
265
Aus Angabe in Quelle und Puffer 255 Kundenauftrag ermitteln.
Über die Felder „Ihr Zeichen“ (Feld 19) und Anwenderfeld 24 (Feld 188) im Auftragskopf kann eine Kundenauftragsnummer ermittelt werden, siehe auch „Abarten“ bei SB 262 und 267
Z.B. kann man damit abfragen, ob zu einer bestimmten Bestellnummer und Position ein Auftrag existiert.
Die Kundennummer muss schon im Kundenpuffer 41 stehen.
Über Pfad 5 (nur offene Aufträge zu Kunde) wird der erste Auftrag mit dem Eintrag laut Quelle (dort muss Wert für Feld „Ihr Zeichen“ stehen) und Puffer 255 (Position 255, Länge 5) ermittelt.
Die Auftragsnummer wird formatiert im Ziel zurückgegeben. Konnte kein Auftrag ermittelt werden, so werden Leerzeichen in das Zielfeld geschrieben.
Beispiel: 
* AUFTRAG SUCHEN (ueber Bestellnummer und Position)
140
I01
47
12
 
 
 
026,150
* weiter bei Block 150 ohne Bestellnummer
140
255
300
5
I02
153
5
000
* Bestellpos. in Puffer fuer SB 265
140
I04
1
7
I01
47
12
265
* Auftrag mit Bestellnr + Pos (Feld 19 und Feld 188 in Datei 38 suchen)
140
I04
1
7
 
 
 
026,150
* weiter bei Block 150 wenn kein Auftrag (=0) gefunden
266
Erledigen von Positionen mit Zustand < 40
Alle K-Zeilen und die dazugehörigen Unterpositionen zu der Kundenauftragsnummer (muss im Ziel stehen) werden erledigt, sofern der Zustand < 40 ist (noch nicht geliefert). G- und S-Zeilen dürfen nicht im Auftrag vorhanden sein!
Die restlichen eigenständigen Positionen bleiben erhalten!
K-Zeilen mit Zustand ab „40“ werden im Protokoll aufgeführt und bleiben unverändert. Falls solche Positionen vorhanden sind, wird nach Abarbeitung des gesamten Auftrags der Fehler 2666 zurückgemeldet und man kann ggf. abbrechen.
267
Aus Angabe in Quelle Kundenauftrag ermitteln
Wie bei SB 262, aber hinter der Suchangabe dürfen zusätzliche Informationen stehen. Beispiel: „Ihre Bestellung“ wird als Bestellnummernfeld verwendet. Infra sucht den ersten Auftrag mit der Rahmenbestellung „21000833“. Wenn es zwei Aufträge mit 21000833-ABC und 21000833-XYZ im verwendeten Suchfeld „Ihre Bestellung“ gibt, wird nur der erste Auftrag mit 21000833-ABC ausgewertet.
268
Spezielle Datumsprüfung
Termin aus Quelle wird geprüft (8-stellig mit Jahrhundert!). Der übergebene Termin muss mindestens 3 Tage nach dem Tagesdatum liegen und es muss der Freitag in der aktuellen Woche bzw. der Dienstag in der folgenden Woche sein. Ist das nicht der Fall, wird eine Frage ausgegeben, ob dennoch übernommen werden soll. Bei Antwort „Nein“ wird Fehler zurückgegeben. Damit kann eine Fehlerausgabe im Protokoll erfolgen. Beispiel: Heute ist Mittwoch und übergebener Termin ist Freitag --> Ablehnung / Frage (da nur 2 Tage).
Ausgang:
Im Ziel wird 4-stellig ein Fehlercode abgestellt:
0000 =
Kein Fehler
0001 =
Fehlerhafter Termin, aber Frage wurde mit Ja beantwortet
0002 =
Fehlerhafter Termin und Frage wurde mit Nein beantwortet
2681 =
Kein gültiges Datum übergeben (Länge != 8)
2682 =
Kein gültiges Datum übergeben (laut Datumsprüfung)
2683 =
Fehler bei Ermittlung Tageszahl aus Termin bzw. Tagesdatum
269
Passende K-Zeile zu G-Zeile suchen (sehr speziell)
Auftragsnummer, Position und Liefertermin müssen im Puffer 47 stehen.
Der Liefertermin muss mit dem Termin in der K-Zeile übereinstimmen. Nur Positionen mit Status aktiv („ „) und Zustand < 40 (noch nicht geliefert) werden geprüft.
Falls es sich bei der gefundenen Auftragsposition um einen Pseudoabruf handelt, wird die übergebene Menge übernommen (auch als Liefermenge und zu fakturierende Menge) und damit die vorhandene Menge überschrieben. Einen Pseudoabruf erkennt man am Anwenderfeld 2 der K-Zeile (Feld 66 in Datei 47). Steht dort ein „p“ als erstes Zeichen, handelt es sich um einen Pseudoabruf.
Bei einem Sonderabruf („s“ im Anwenderfeld 2) bleibt alles unverändert und es erfolgt keine Übernahme, aber ein Eintrag im Druckprotokoll.
Bei „echten“ Abrufen (Leerzeichen an erster Stelle im Anwenderfeld 2) wird die übergebene Menge zu der bisherigen Auftragsmenge addiert und diese Menge wird auch als Liefermenge und zu fakturierende Menge übernommen.
Ausgang:
Die Menge vor der Änderung wird in Puffer 448 an Position 220 zurückgegeben. Vor Aufruf sollte der Bereich ab Position 220, Länge 5, mit Leerzeichen versorgt werden.
Im Ziel wird folgendes abgestellt:
0
Keine K-Zeile gefunden
1
„normaler Abruf“, Menge wurde addiert
2
Sonderabruf erkannt, nichts tun
3
Pseudoabruf, Menge wird überschrieben
4
Unbekannter Wert in Anwenderfeld 2
270
Spezielle Textzeile mit Abruf-/Bestellnummern pflegen
Es wird eine spezielle Textzeile zu einer K-Zeile gesucht. Im Anwenderfeld 5 (Feld 89) muss ABRUFNR stehen und die Textzeile muss dieselbe Positionsnummer wie die K-Zeile besitzen (es wird maximal bis zur nächsten K-Zeile gelesen).
Falls die T-Zeile gefunden wird, wird der Text aus der Quelle hinten angehängt, falls er nicht schon im Textbaustein enthalten ist (führende und abschließende Leerzeichen werden bei der Suche ignoriert).
Z.B. wird als Zusatzinfo zu jeder Abrufzeile (K-Zeile) beim Generieren eine T-Zeile mit obiger Eigenschaft generiert (z.B. mit Sonderbehandlung 225). Beim Aktualisieren einer K-Zeile muss auch die Textzeile aktualisiert werden, falls ein neuer Abruf dazukommt (mit Mengenkorrektur). Die neue Abrufnummer wird dann angehängt. Falls die Nummer bereits im Text enthalten ist, wird nichts verändert.
271
Protokollierung für zusammenfassende Ausgabe am Ende
Die Daten aus der Quellangabe werden für die Druckausgabe in einem Array gespeichert.
Die Daten aus der Zielangabe werden als Kennung (max. 8 Stellen) für individuelle Druckanpassungen abgestellt, aber im Standard beim Druck nicht ausgegeben / ausgewertet.
Die so protokollierten Daten werden nach der Abarbeitung der Steuerdatei am Ende der Liste ausgegeben, siehe Drucktabelle 92. es wird dort der Puffer 256 mit max. Länge 500 benutzt. Also sollten keine längeren Daten je Ausgabe abgestellt werden, da diese sonst ignoriert werden.
Im Standard werden die ersten 132 Zeichen ausgegeben.
272
Aus Angabe in Quelle Kundenauftrag suchen (Pfad 6) und Nr. hochzählen.
Z.B. kann man damit suchen, ob in anderen Aufträgen schon die Bestellnummer verwendet wurde und kann diese dann um einen Zähler hinten erhöhen.
Z.B. „Suche alle Aufträge zum Kunden mit Bestellnummer 4711“. Gibt es schon einen Auftrag, dann wird 4711-2 zurückgegeben. Gibt es den schon, dann 4711-3 usw. Es wird immer die höchste gefundene Nummer erhöht. Hinter dem Suchmuster laut Quellangabe (Leerzeichen hinten werden ignoriert) wird zwingend ein Minuszeichen erwartet, ansonsten wird der Auftrag bei der Suche ignoriert.
Hinweise:
Die Kundennummer muss schon im Kundenpuffer 41 stehen. Wenn der übergebene Suchbegriff in der Quelle leer, wird nichts gemacht.
Im Ziel wird die neue Nummer zurückgegeben. Wenn noch kein Auftrag da war, dann die übergebene Nummer.
Beispiel:
1
38
F19
 
I01
5
7
272
* Suche Auftrag mit Bestellnummer
273
Fehlende Adressen anlegen (siehe auch 278)
Die Kundennummer muss in Puffer 38 (KKO) versorgt sein.
Die Adressdaten samt Kundennummer müssen im Puffer 42 (ADR) eingetragen sein. Falls keine Kundennummer oder keine Bezeichnung 1 oder kein Ort angegeben wird, dann erfolgt keine Aktion (Adressnummer SPACE wird im Ziel zurückgegeben).
Im Anwenderfeld 2 (Feld 17 in Datei 42) muss eine externe Adressnummer abgestellt werden.
Infra prüft nun, ob es eine Adresse mit der übergebenen Adressnummer im Anwenderfeld gibt. Wenn ja (Kundennummer muss übereinstimmen, der Rest wird nicht geprüft), wird die infra-Adressnummer im Ziel zurückgegeben, ansonsten wird die Adresse neu angelegt.
Falls Leerzeichen als externe Adressnummer übergeben werden, wird ebenfalls eine neue Adresse angelegt.
Für die neue Adressnummer werden immer alle Zeichen ohne Leerzeichen belegt, z.B. “00009“ bzw. „AAA01“. Falls als Parameter eine „1“ übergeben wird, wird die nächste Adressnummer auch mit Buchstaben ermittelt. Es wird also die nächste Nummer aus den Zeichen 0 bis 9 und A bis Z gesucht. Ohne eine „1“ in der Quelle werden nur die Zeichen 0 bis 9 benutzt.
 
274
Z-Zeilen zu einer Auftragsposition erzeugen
Puffer KND, KKO, DBE, DIS, WAE müssen versorgt und geschrieben sein. Die Z-Zeilen werden analog zu "435 Aufträge bearbeiten" erstellt (aber ohne Berücksichtigung spezieller INI-Einstellungen oder Kundenstammdaten).
Hinweise:
Obige Puffer bleiben unverändert, Ausnahme: Im Puffer 47 (DBE) wird in die Unterposition die letzte vergebene Unterposition der Z-Zeilen geschrieben, damit anschließend Textgenerierung (Sonderbehandlung 97) funktioniert!
Es muss vorher eine Preisfindung stattgefunden haben (Sonderbehandlung 96) und im Puffer 448 steht dann an Pos. 247 eine 1, wenn bei letzter Preisfindung eine Kondition gefunden wurde und damit der Puffer 43 mit dem Konditionssatz gefüllt ist. Ansonsten werden keine Z-Zeilen generiert.
Vor der Preisfindung muss Puffer 448 an Pos. 247 mit einem Leerzeichen versorgt werden.
Folgender Spezialwert im Puffer 448 an der Stelle 235 (im Preisfeldformat) wird auch versorgt:
Preis inklusive erster Z-Zeile für einen Preisvergleich (Sonderbehandlung 227). Es werden nur %-Angaben oder ein Zuschlag je ME berücksichtigt. Falls keine Z-Zeilen in Kondition angegeben, gilt der Preis aus der K-Zeile (Datei 47, Feld 23)
275
Spezielle Lösungen
Abhängig vom Parameter sind ganz spezielle Lösungen realisiert:
 
Parameter = 1: Auswahl Auftrag zu Vertragsnummer
Die übergebene Vertragsnummer muss in der Quelle stehen.
Zu dem Vertrag werden über Feld 109 im Auftragskopf (Anwenderfeld) alle noch nicht erledigten Aufträge gesucht und angezeigt (Dialog SPEZ1). Der ausgewählte Kundenauftrag wird dann übernommen und im Ziel bereitgestellt. Wird kein Auftrag gefunden, werden Leerzeichen im Puffer zurückgegeben.
Wenn nur ein Auftrag vorhanden ist, wird dieser kommentarlos zurückgegeben.
Der im Probelauf  selektierte Auftrag wird vorgemerkt und im Echtlauf dann vorselektiert (markiert).
Bedingungen:
Kunde muss im Puffer 41 stehen und die Teilenummer in Puffer 6.
Beispiel:                     
142
I04
1
7
I01
47
40
275,1
* Auftrag suchen und ggf. Dialog
142
I04
1
7
 
 
 
027,50
* weiter bei Block 150 wenn Auftrag gefunden (nicht nur Leerzeichen)
142
255
1
1
 
 
 
089,9996
* Fehler 9996 setzen (nur Meldungsausgabe ohne Fehlernummer)
142
255
1
1
 
 
R05
085,!F448072
* Kein KA gefunden, naechste Satzart 100
276
Angebote importieren
Quelle und Ziel sind ohne Bedeutung. Muss ganz am Anfang der Move-Datei gesetzt werden.
Ansonsten wird in der Move-Datei immer mit Puffer 38 gearbeitet, aber:
Beim Schreiben / Aktualisieren / Lesen / Sperren usw. in der MOVE-Datei muss mit Puffer 49 gearbeitet werden. Dazu immer Puffer 49 mit Puffer 38 füllen und nach Aktion auch wieder zurück. Z.B.:    
154
49
1
 
I38
38
1
000
* Angebotspuffer fuellen
154
49
F1
 
 
 
 
101
* Satz schreiben
154
38
F1
 
 
 
 
085,002
* Ggf. Fehler FEDI002 ausgeben -> naechste Satzart 100
154
49
F1
 
 
 
 
103
* gleich wieder gelockt lesen
154
38
F1
 
 
 
 
082,012
* Bei Fehler FEDI012 und weiter
154
38
1
 
I38
49
1
000
* Angebotspuffer zurueck in Puffer 38
277
Nächste Nummer aus Nummernkreis
Quelle: Key für Parameter in Datei 1. Satz muss da sein
Aufbau Nummernkreisparameter:
Pos. 9
Aktueller Wert
Pos. 19
Endwert
Pos. 29
Startwert
Als Parameter kann die Länge des Nummernfeldes angegeben werden, z.B. 5, Default ist 10.
Im Ziel wird die nächste Nummer im Format n mit führenden Nullen laut der vorgegebenen Länge versorgt. Beispiel:
Länge 5 liefert 00123.
Beim Erreichen des Endwerts wird wieder mit dem Startwert begonnen.
Falls die führenden Nullen nicht erwünscht sind, kann die Zielangabe anschließend in ein Rechenfeld kopiert werden und von dort wieder in das gewünschte Datenbankfeld. Damit erhält man den Wert ohne führende Nullen.
278
Fehlende Adressen anlegen (siehe auch 273)
Im Unterschied zu SB 273 werden hier die Adressen folgendermaßen gesucht:
Die übergebenen Daten im Puffer 42 bei Straße, PLZ, Ort und Bezeichnung 1 werden mit den vorhandenen Adressen vergleichen.
Außer Groß-/Kleinschreibung müssen alle Angaben genau übereinstimmen, also z.B. auch die Hausnummern-Angabe im Straßenfeld.
Um Abweichungen wie „Geo Data“ statt „GeoData“ zu ignorieren, werden vor dem Vergleich je Feld alle Leerzeichen entfernt und dann vergleichen.
279
Aus Kalenderwoche Termin rechnen, Parameter Tag
In der Quelle muss die KW in der Form JJWW übergeben werden. Im Parameter steht der Wochentag, also 1 für Montag bis 7 für Sonntag. Default ist Donnerstag (wenn Parameter nicht zwischen 1 und 7).
Im Ziel wird der Termin in der Form JJJJMMTT abgestellt.
Bei Fehlern steht im Ziel „00000000“
280
Tagesdatum + Mindestbeschaffungszeit <= Liefertermin
Quelle muss den Liefertermin enthalten (JJJJMMTT).
Teilestamm (Datei 27) und Kundenstamm müssen versorgt sein.
Wenn der Liefertermin einer Auftragsposition vor der Mindestbeschaffungszeit, ausgehend vom Tagesdatum liegt, steht im Ziel eine 1.
Sollte es bei den Berechnungen einen Zeitrechnungsfehler geben, steht im Ziel eine 2.
Ansonsten steht ein Leerzeichen im Ziel.
Bei der Berechnung werden Arbeitstage vorausgesetzt und es gilt das Prinzip „Montag + 2 Tage = Mittwoch“.
Falls die Mindestbeschaffungszeit im Teilestamm (Datei 27, Feld 41) nicht 0 ist, wird diese Angabe verwendet, ansonsten die Mindestbeschaffungszeit aus dem Kundenstamm (Feld 308 in Datei 41).
Wenn beide Mindestbeschaffungszeiten 0 sind und der Liefertermin liegt vor dem Tagesdatum wird ein Fehler gemeldet (also eine 1 im Ziel).
Bei Liefertermin 00.00.0000 oder 99.99.9999 erfolgt keine Prüfung.
Beispiel:
* Tagesdatum + Mindestbeschaffungszeit > Liefertermin?
205
I02
58
1
I01
20
8
280
* Mindestbeschaff.zeit pruefen
205
I02
58
1
 
 
 
026,208
* Leerzeichen, alles passt
205
255
1501
132
 
 
 
003,32
* alles Leerzeichen
205
255
1501
41
 
 
 
001,Achtung: Beschaffungszeit unterschritten!
205
255
1501
132
 
 
 
074,3
* Ausgabe fett + rot
205
255
1501
132
 
 
 
003,32
* alles Leerzeichen
205
255
1501
41
 
 
 
004,=
* Unterstreichen
205
255
1501
132
 
 
 
074,3
* Ausgabe fett + rot
205
255
1
1
 
 
 
041,208
* Weiter gehts
281
Spezielle Anpassung von Positionen bei Abrufen (siehe SB 213, Parameter 3)
Siehe Beschreibung zum Ablauf für spezielle Abrufbehandlung bei SB 213, Parameter 3.
Wird im Probelauf ignoriert.
Die in SB 213 gelesene Position in Puffer strBFdbe281 wird gesperrt gelesen und in den Standardpuffer zu Datei 47 geschrieben. Auch die zugehörige Disposition in Datei 23 wird gesperrt gelesen.
In den Puffer strBFdbe281 wird die nächste offene Position eingelesen (alle Positionen außerhalb FrozenZone sind ja gelöscht).
Wenn kein Satz mehr da ist, wird der Merker zurückgesetzt, d.h. bei nächster Abrufübernahmeposition wird in der MOVE-Datei eine neue Position angelegt.
Außerdem sollte die erste gefundene Z-Zeile gelöscht mit Sonderbehandlung 282 gelöscht und über die MOVE-Datei wieder generiert werden:
* Z-Zeilen laut M11O erzeugen lassen
* ----------------------------------
530     47      F1                                              260     * Z-Zeilen erzeugen lassen
282
Spezielle Anpassung von Positionen bei Abrufen (siehe SB 281)
Es wird die erste Z-Zeile zur aktuellen K-Zeile gelöscht, die dann über die über die MOVE-Datei wieder generiert werden muss