Inhaltsverzeichnis
Schnittstelle 1104: Aprocon-Aufträge, Rechnungen und Produktionsbelege
Diese technische Referenz beschreibt die Eingänge, Ausgänge und aktiven Codepfade von Aprocon-Aufträge, Rechnungen und Produktionsbelege. Sie ist keine Anleitung zur ungeprüften Ausführung.
Stand: 02.10.2026, Desktop-Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Statisch dokumentiert; Nutzerprüfung offen. Kein Import, Datenbank- oder HTTP-Test.
Dokumentiert / statisch geprüft: 2026-10-02. Statisch dokumentiert; Nutzerprüfung offen. Keine Schnittstelle ausgeführt.
Identität und Quellenstand
eProgramm.ImpAuftragRechnungApc = 1104. Aktive feste Registrierung → cSchnittKRApc.Import_AuftragRechnung; Projekteinschluss bestätigt (E,P,PRJ). Active=True, InAutomatik=True und ManuellerAufruf=True (Registrierung bzw. Klassendefault); NurAufServer=True. Keine Aussage über eingerichtete Automatik oder produktive Nutzung.
Zweck und Ablauf
ODBC-Aufträge/Rechnungen/Chargen → SCHNITT_KRAuftrag → KRVerkauf, plus Lookup-/Preisstämme. Keine Datei. DATUM=Datumdialog, SetDatum-Prüfung. Speditionen/Verkäufer werden bereits vor Datumsprüfung importiert; Rückgaben dieser Helfer ignoriert.
1. ODBC testen, Datum bestimmen, KostenstellenWaWi upserten, Kunden-/Adress-/Filialmapping laden. 2. SCHNITT_KRAuftrag global leeren, A/R/P bulk einfügen; Filter/Mappings unten. 3. dbo.SCHNITT_KRAuftragRechnung_Vorbereitung. 4. dbo.SCHNITT_KRAuftragApc_SP(@Datum), SCHNITT_KRRechnungApc_SP(@Datum), SCHNITT_KRProduktionApc_SP(@Datum). 5. Import_Preise_Übertragung(„“) globaler Preisneulauf. 6. dbo.ExternenKundenUmschreiben(@Datum,@PreisKatBasis).
Eingang und Stagingvertrag
Aufträge: Lieferdatum>=Datum, Bearbeitungsstand<>6, Artikel>0; Liefermenge/Preis/EKPreis jeweils<999999 (kein ABS/Unterlimit). Rechnungen analog Datum/Artikel/Betragsfilter. Chargen: Datum>=Datum, je Sollmenge BelegArt1 und Menge BelegArt2. SQL-Fachmapping steht feldweise im Indexteil.
cBulkData liest das Zielspaltenschema über sys.tables/all_columns/systypes und mappt alle Spalten. Nicht gesetzte neue DataRow-Felder sindDBNull; Standard SqlBulkCopy ohne KeepNulls kann Zieldefaults verwenden. Pufferflush bei >75000 Zeilen und auf Dispose, auch während Exception-Abwicklung; einzelne Flushes sind nicht Gesamtatomarität. BulkTimeout nicht überschrieben (Standard30s). Rechnung/Produktion setzen die Auftragsonderfelder nicht. DDL U634 plus U635/U638/U640/U695/U850/U854 sind Ergänzungsquellen.
Schreibbereich, Preise und Befunde
Auftrags-/Rechnungsreset schützt SystemKennungA; Produktionsreset löscht dagegen alle DatenquelleP abDatum. P-Neusätze setzen SystemKennung nicht (U766 nullable ohne Default), daher NULL. Keine direkten Umsätze-Schreibbefehle: 2031 ist ein gesondertes Berechnungsprogramm, kein hier automatisch gestarteter Folgelauf.
Umschreiben hat keinen System-/Datenquellenfilter: Kunden, die als interner Lieferant einer PepGruppe zugeordnet sind, werden auf Gruppenkunde geändert. Angebotspreis zuerst, sonst niedrigster vorhandener Kunden-/Basispreis; gültig von/bis, jüngstes von/ts.
1104-F01: CASE BelegArt hat nur2/3, sonstNULL; U634 definiert BelegArt NOT NULL. 1104-F02: Fehlen alle Preisangebote, PreisNetto=NULL; U627 definiert NOT NULL. Deshalb kann der abschließende UPDATE scheitern und vorherige Transfers bleiben bestehen. 1104-F03: Preisimport setzt bei Fehler Stopp, dennoch wird anschließend Umschreiben versucht. Dictionary-Dubletten/Nullkonvertierungen können davor abbrechen.
Keine übergreifende Transaktion, keine Datei/Archivierung. ODBC/Haupt-SP/Preisimport SQL_TIMEOUT; lokale Stammdatencommands/Reset/Bulk Standard30s. FK-Zielkunden/-artikel werden angelegt; keine Schlüsseländerung an Eltern, folglich keine Eltern-Kaskade. Externes ODBC-DDL Q13; Live-Objekte Q02. Test: Produktionsfremdquelle, mehrere Belegarten, fehlende Preise, Fehler nach Bulkreset, Rücklieferungsmengen.
Systemeinstellungen und gemeinsame Nebenwirkungen
Gemeinsames Profil: BASE (interne Referenz).
| Beziehung | Schlüssel / Variable | Default | Einflussweg | Wirkung | Beleg |
|---|---|---|---|---|---|
| 1104-S001 | SCHNITT_APC_DSN / SCHNITT_AproconDSN | leer | ODBC-Eingang | Verbindung zum externen Aprocon-DSN; kein DSN-Wert gespeichert | B,SET |
| 1104-S002 | SQL_TIMEOUT / SQLTimeOut | 60 | Explizite CommandTimeout-Zuweisung | Timeout nur bei den im Betrieb benannten Commands; Standardcommands weiterhin 30 Sekunden | B,SET |
| 1104-S003 | SCHNITT_APC_PreisKatBasis / SCHNITT_AproconPreisKatBasis | 2 | ExternenKundenUmschreiben | Fallback-Preiskategorie | B,EXT,SET |
| 1104-S004 | SCHNITT_KR_DICT_Umschichtung / SCHNITT_KR_DICT_Umschichtung | umschichtung | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→UMS; Reihenfolge wie aufgeführt | B,SET |
| 1104-S005 | SCHNITT_KR_DICT_Rücklieferung / SCHNITT_KR_DICT_Rücklieferung | rücklieferung | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→RÜCK; Reihenfolge wie aufgeführt | B,SET |
| 1104-S006 | SCHNITT_KR_DICT_Kundenlieferschein / SCHNITT_KR_DICT_Kundenlieferschein | kundenlieferschein | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→KLS; Reihenfolge wie aufgeführt | B,SET |
| 1104-S007 | SCHNITT_KR_DICT_Retour / SCHNITT_KR_DICT_Retour | retour,retoure | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→RET; Reihenfolge wie aufgeführt | B,SET |
| 1104-S008 | SCHNITT_KR_DICT_Verderb / SCHNITT_KR_DICT_Verderb | verderb | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→VERD; Reihenfolge wie aufgeführt | B,SET |
| 1104-S009 | SCHNITT_KR_DICT_Mitarbeiterverzehr / SCHNITT_KR_DICT_Mitarbeiterverzehr | mitarbeiterverzehr | A-Bestellnummer | Lowercase Split Komma/Semikolon; exakter Match→VERZ; Reihenfolge wie aufgeführt | B,SET |
Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.
Feldbeziehungen
Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.
| Beziehung | Tabelle.Feld | Operation | Datenfluss / Verwendung | Bedingung | Beleg |
|---|---|---|---|---|---|
| 1104-D001 | Aprocon.Speditionen.Nummer | SELECT | Vor Datumsprüfung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D002 | Aprocon.Speditionen.Suchbegriff | SELECT | Vor Datumsprüfung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D003 | KRSpeditionen.ID | SELECT/INSERT | Nummer; UPDATE dann INSERT | Nebenimport ohne Datumsfilter | B |
| 1104-D004 | KRSpeditionen.Bezeichnung | INSERT/UPDATE | Left(Trim(Suchbegriff),50) | Nebenimport | B |
| 1104-D005 | Aprocon.Verkaeufer.Nummer | SELECT | Vor Datumsprüfung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D006 | Aprocon.Verkaeufer.Suchbegriff | SELECT | Vor Datumsprüfung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D007 | KRVerkaeufer.ID | SELECT/INSERT | Nummer; UPDATE dann INSERT | Nebenimport ohne Datumsfilter | B |
| 1104-D008 | KRVerkaeufer.Bezeichnung | INSERT/UPDATE | Left(Trim(Suchbegriff),50) | Nebenimport | B |
| 1104-D009 | Aprocon.Kostenstellen.Nummer | SELECT | SELECT*; diese zwei Felder tatsächlich genutzt | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D010 | Aprocon.Kostenstellen.Bezeichnung | SELECT | SELECT*; diese zwei Felder tatsächlich genutzt | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D011 | KRKostenstellenWaWi.ID | SELECT/INSERT/UPDATE | Nummer/Bezeichnung; Upsert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D012 | KRKostenstellenWaWi.Bezeichnung | SELECT/INSERT/UPDATE | Nummer/Bezeichnung; Upsert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D013 | Aprocon.Kunden.Filiale | SELECT | Filiale>0; Lieferadresse-Mapping | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D014 | Aprocon.Kunden.Adresse | SELECT | Filiale>0; Lieferadresse-Mapping | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D015 | Aprocon.Filialen.Nummer | SELECT | Kunde→Filialnummer-Mapping, Dublette Dictionary.Add-Fehler | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D016 | Aprocon.Filialen.Kunde | SELECT | Kunde→Filialnummer-Mapping, Dublette Dictionary.Add-Fehler | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D017 | SCHNITT_KRAuftrag.— Zeilen | TRUNCATE | Globales Staging ersetzen | Vor Bulk | B |
| 1104-D018 | Aprocon.Auftraege.Nummer | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D019 | Aprocon.Auftraege.BelegArt | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D020 | Aprocon.Auftraege.Auftraggeber | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D021 | Aprocon.Auftraege.Lieferdatum | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D022 | Aprocon.Auftraege.Bestellnummer | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D023 | Aprocon.Auftraege.Bemerkung | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D024 | Aprocon.Auftraege.BasisAuftrag | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D025 | Aprocon.Auftraege.Kostenstelle | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D026 | Aprocon.Auftraege.Packer | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D027 | Aprocon.Auftraege.Verkaeufer | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D028 | Aprocon.Auftraege.Spedition | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D029 | Aprocon.Auftraege.Lieferadresse | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D030 | Aprocon.Auftraege.Zahlungsbedingung | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D031 | Aprocon.Auftraege.Bearbeitungsstand | SELECT | Lieferdatum>=DATUM, Bearbeitungsstand<>6; Bemerkung SELECT aber nicht gespeichert | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D032 | Aprocon.Auftragspositionen.Auftrag | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D033 | Aprocon.Auftragspositionen.Artikel | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D034 | Aprocon.Auftragspositionen.Liefermenge | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D035 | Aprocon.Auftragspositionen.Preis | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D036 | Aprocon.Auftragspositionen.EKPreis | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D037 | Aprocon.Auftragspositionen.Steuersatz | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D038 | Aprocon.Auftragspositionen.Rabatt | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D039 | Aprocon.Auftragspositionen.Rabattfaehig | SELECT | Join Nummer=Auftrag; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D040 | Aprocon.Rechnungen.Nummer | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D041 | Aprocon.Rechnungen.BelegArt | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D042 | Aprocon.Rechnungen.Empfaenger | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D043 | Aprocon.Rechnungen.Datum | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D044 | Aprocon.Rechnungen.Zahlungsbedingungen | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D045 | Aprocon.Rechnungen.Kostenstelle | SELECT | Datum>=DATUM | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D046 | Aprocon.Rechnungspositionen.Rechnung | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D047 | Aprocon.Rechnungspositionen.Artikel | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D048 | Aprocon.Rechnungspositionen.Liefermenge | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D049 | Aprocon.Rechnungspositionen.Preis | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D050 | Aprocon.Rechnungspositionen.EKPreis | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D051 | Aprocon.Rechnungspositionen.Steuersatz | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D052 | Aprocon.Rechnungspositionen.Rabatt | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D053 | Aprocon.Rechnungspositionen.Rabattfaehig | SELECT | Join Rechnung; Artikel>0; Liefermenge/Preis/EK<999999 | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D054 | Aprocon.Zahlungsbedingungen.Nummer | SELECT | INNER JOIN für Auftrag/Rechnung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D055 | Aprocon.Zahlungsbedingungen.Skonto | SELECT | INNER JOIN für Auftrag/Rechnung | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D056 | Aprocon.Produktionschargen.Datum | SELECT | Datum>=DATUM; zwei Stagingsätze pro Charge | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D057 | Aprocon.Produktionschargen.Artikel | SELECT | Datum>=DATUM; zwei Stagingsätze pro Charge | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D058 | Aprocon.Produktionschargen.Kunde | SELECT | Datum>=DATUM; zwei Stagingsätze pro Charge | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D059 | Aprocon.Produktionschargen.Sollmenge | SELECT | Datum>=DATUM; zwei Stagingsätze pro Charge | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D060 | Aprocon.Produktionschargen.Menge | SELECT | Datum>=DATUM; zwei Stagingsätze pro Charge | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D061 | SCHNITT_KRAuftrag.Nummer | BULK INSERT | A/R Belegnummer, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D062 | SCHNITT_KRAuftrag.BelegArt | BULK INSERT | A/R Belegart, P1(Soll)/2(Ist) | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D063 | SCHNITT_KRAuftrag.AuftragGeber | BULK INSERT | A Auftraggeber/R Empfaenger/P Kunde | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D064 | SCHNITT_KRAuftrag.LieferDatum | BULK INSERT | A Lieferdatum/R Rechnungsdatum/P Datum | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D065 | SCHNITT_KRAuftrag.Artikel | BULK INSERT | Artikel | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D066 | SCHNITT_KRAuftrag.LieferMenge | BULK INSERT | A/R Liefermenge; P Sollmenge bzw.Menge | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D067 | SCHNITT_KRAuftrag.Preis | BULK INSERT | A/R Preis, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D068 | SCHNITT_KRAuftrag.EKPreis | BULK INSERT | A/R EKPreis, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D069 | SCHNITT_KRAuftrag.Steuersatz | BULK INSERT | A/R Steuersatz, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D070 | SCHNITT_KRAuftrag.Rabatt | BULK INSERT | A/R Rabatt, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D071 | SCHNITT_KRAuftrag.RabattFaehig | BULK INSERT | A/R Rabattfaehig, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D072 | SCHNITT_KRAuftrag.Skonto | BULK INSERT | Zahlungsbedingungen.Skonto; P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D073 | SCHNITT_KRAuftrag.BestellNummer | BULK INSERT | A Trim/Left50, R/P leer | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D074 | SCHNITT_KRAuftrag.RKunde | BULK INSERT | Initial0, später Kundentyp-Regel | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D075 | SCHNITT_KRAuftrag.Filiale | BULK INSERT | A/R Kundenfilialmapping, fehlt→0; P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D076 | SCHNITT_KRAuftrag.GegenAuftrag | BULK INSERT | A BasisAuftrag!=0 sonstDBNull; R/P nicht gesetzt | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D077 | SCHNITT_KRAuftrag.Art | BULK INSERT | A/R/P | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D078 | SCHNITT_KRAuftrag.Flag | BULK INSERT | A Steuerungswort; R/P nicht gesetzt | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D079 | SCHNITT_KRAuftrag.Kostenstelle | BULK INSERT | A/R Kostenstelle, P0 | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D080 | SCHNITT_KRAuftrag.Packer | BULK INSERT | Nur A Packer | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D081 | SCHNITT_KRAuftrag.Verkaeufer | BULK INSERT | Nur A Verkaeufer | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D082 | SCHNITT_KRAuftrag.Spedition | BULK INSERT | Nur A Spedition | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D083 | SCHNITT_KRAuftrag.LieferFiliale | BULK INSERT | Nur A aus Lieferadresse-Mapping, fehltNULL | Nicht gesetzte DataRow-Felder DBNull; Standard-BulkCopy ohne KeepNulls | B,BULK |
| 1104-D084 | SCHNITT_KRAuftrag.Nummer | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D085 | SCHNITT_KRAuftrag.BelegArt | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D086 | SCHNITT_KRAuftrag.AuftragGeber | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D087 | SCHNITT_KRAuftrag.LieferDatum | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D088 | SCHNITT_KRAuftrag.Artikel | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D089 | SCHNITT_KRAuftrag.LieferMenge | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D090 | SCHNITT_KRAuftrag.Preis | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D091 | SCHNITT_KRAuftrag.EKPreis | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D092 | SCHNITT_KRAuftrag.Steuersatz | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D093 | SCHNITT_KRAuftrag.Rabatt | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D094 | SCHNITT_KRAuftrag.RabattFaehig | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D095 | SCHNITT_KRAuftrag.Skonto | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D096 | SCHNITT_KRAuftrag.BestellNummer | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D097 | SCHNITT_KRAuftrag.RKunde | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D098 | SCHNITT_KRAuftrag.Filiale | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D099 | SCHNITT_KRAuftrag.GegenAuftrag | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D100 | SCHNITT_KRAuftrag.Art | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D101 | SCHNITT_KRAuftrag.Flag | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D102 | SCHNITT_KRAuftrag.Kostenstelle | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D103 | SCHNITT_KRAuftrag.Packer | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D104 | SCHNITT_KRAuftrag.Verkaeufer | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D105 | SCHNITT_KRAuftrag.Spedition | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D106 | SCHNITT_KRAuftrag.LieferFiliale | SELECT | Transfer-SPs, Typ-/Filter-/Mappingdaten | SQL-Kette | VORB,A,R,PROD |
| 1104-D107 | SCHNITT_KRAuftrag.GegenAuftragKunde | UPDATE | Selfjoin GegenAuftrag=Nummer→AuftragGeber | Vorbereitung | VORB |
| 1104-D108 | SCHNITT_KRAuftrag.RKunde | UPDATE | Zuerst0; Kunde DatenquelleMengeR→1, Gegenkunde sonstNULL | Vorbereitung | VORB |
| 1104-D109 | SCHNITT_KRAuftrag.GegenAuftragRKunde | UPDATE | Zuerst0; Kunde DatenquelleMengeR→1, Gegenkunde sonstNULL | Vorbereitung | VORB |
| 1104-D110 | KRKunden.ID | SELECT | Kundentyp und fehlende IDs | Vorbereitung/Transfer | VORB,A,R,PROD |
| 1104-D111 | KRKunden.DatenquelleMenge | SELECT | Kundentyp und fehlende IDs | Vorbereitung/Transfer | VORB,A,R,PROD |
| 1104-D112 | KRKunden.ID | SELECT/INSERT | A/R neue AuftragGeber: Auftrag:+Nummer; P0 IMPORT_PRODUKTION | Transfer-SPs | A,R,PROD |
| 1104-D113 | KRKunden.Bezeichnung | SELECT/INSERT | A/R neue AuftragGeber: Auftrag:+Nummer; P0 IMPORT_PRODUKTION | Transfer-SPs | A,R,PROD |
| 1104-D114 | KRKostenTräger.ID | SELECT/INSERT | Neue Artikel: Auftrag:/Produktion:+Nummer | Transfer-SPs | A,R,PROD |
| 1104-D115 | KRKostenTräger.Bezeichnung | SELECT/INSERT | Neue Artikel: Auftrag:/Produktion:+Nummer | Transfer-SPs | A,R,PROD |
| 1104-D116 | KRVerkaeufer.ID | SELECT/INSERT | Fehlender A-Verkäufer aus Staging | Transfer-SPs | A,R,PROD |
| 1104-D117 | KRVerkaeufer.Bezeichnung | SELECT/INSERT | Fehlender A-Verkäufer aus Staging | Transfer-SPs | A,R,PROD |
| 1104-D118 | KRSpeditionen.ID | SELECT/INSERT | Fehlende A-Spedition aus Staging | Transfer-SPs | A,R,PROD |
| 1104-D119 | KRSpeditionen.Bezeichnung | SELECT/INSERT | Fehlende A-Spedition aus Staging | Transfer-SPs | A,R,PROD |
| 1104-D120 | KRKunden.DatenquelleMenge | INSERT | - | Kunde0 fehlt, Produktion | PROD |
| 1104-D121 | KRVerkauf.— Zeilen | DELETE | A/R: Datum>=DATUM und Datenquelle A/R und SystemKennungA; P: alle DatenquelleP abDATUM | Vor jeweiligem Insert; kein übergreifender Quellschutz | A,R,PROD |
| 1104-D122 | KRVerkauf.Datum | INSERT | LieferDatum | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D123 | KRVerkauf.KRKunde | INSERT | A/R AuftragGeber, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D124 | KRVerkauf.KRKostenTräger | INSERT | Artikel | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D125 | KRVerkauf.Menge | INSERT | A Beleg3/5/7/9 negativ, R2/4/6 negativ; sonst positiv; P LieferMenge | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D126 | KRVerkauf.PreisNetto | INSERT | A/R Preis, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D127 | KRVerkauf.Steuersatz | INSERT | A/R Steuersatz, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D128 | KRVerkauf.Rabatt | INSERT | A/R Rabatt, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D129 | KRVerkauf.Skonto | INSERT | A/R Skonto, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D130 | KRVerkauf.BelegID | INSERT | A/R Nummer, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D131 | KRVerkauf.BelegArt | INSERT | BelegArt | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D132 | KRVerkauf.Datenquelle | INSERT | Art A/R/P | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D133 | KRVerkauf.RKunde | INSERT | A/R RKunde, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D134 | KRVerkauf.Filiale | INSERT | A/R Filiale, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D135 | KRVerkauf.GegenauftragRKunde | INSERT | A/R ISNULL(…,0), P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D136 | KRVerkauf.Flag | INSERT | A/R Flag, P leer | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D137 | KRVerkauf.PreisEK | INSERT | A/R EKPreis, P0 | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D138 | KRVerkauf.KRKostenstelle | INSERT | A/R Kostenstelle; P nicht gesetzt | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D139 | KRVerkauf.SystemKennung | INSERT | A/R A; P nicht gesetzt (nullable U766) | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D140 | KRVerkauf.Packer | INSERT | Nur A | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D141 | KRVerkauf.Verkaeufer | INSERT | Nur A | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D142 | KRVerkauf.Spedition | INSERT | Nur A | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D143 | KRVerkauf.LieferFiliale | INSERT | Nur A | Je Art/Datumfilter; P setzt nicht alle A/R-Spalten | A,R,PROD |
| 1104-D144 | KRVerkauf.ID | IDENTITY | DB erzeugt neue IDs bei jeder Wiederholung | Transfer INSERT | U627 |
| 1104-D145 | SCHNITT_KRWarenwert.— Zeilen | TRUNCATE | Gesamte Preisstagingtabelle | Import_Preise_Übertragung, leere Kategorienliste | B |
| 1104-D146 | Aprocon.Preise.Preiskategorie | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D147 | Aprocon.Preise.Artikel | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D148 | Aprocon.Preise.Preis | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D149 | Aprocon.Preise.GueltigAb | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D150 | Aprocon.Preise.GueltigBis | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D151 | Aprocon.Preise.DatumLetzteAktualisi | SELECT | Preis<10000; alle Kategorien | Aktiver Pfad; kein Laufzeitnachweis | B |
| 1104-D152 | SCHNITT_KRWarenwert.Preiskategorie | INSERT | Preiskategorie | Preisübernahme | B |
| 1104-D153 | SCHNITT_KRWarenwert.Kostenträger | INSERT | Artikel | Preisübernahme | B |
| 1104-D154 | SCHNITT_KRWarenwert.von | INSERT | GueltigAb | Preisübernahme | B |
| 1104-D155 | SCHNITT_KRWarenwert.bis | INSERT | GueltigBis | Preisübernahme | B |
| 1104-D156 | SCHNITT_KRWarenwert.ts | INSERT | DatumLetzteAktualisi | Preisübernahme | B |
| 1104-D157 | SCHNITT_KRWarenwert.Preis | INSERT | Preis | Preisübernahme | B |
| 1104-D158 | SCHNITT_KRWarenwert.Preiskategorie | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D159 | SCHNITT_KRWarenwert.Kostenträger | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D160 | SCHNITT_KRWarenwert.von | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D161 | SCHNITT_KRWarenwert.bis | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D162 | SCHNITT_KRWarenwert.ts | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D163 | SCHNITT_KRWarenwert.Preis | SELECT | Top1 gültiger Angebots-/Kunden-/Basispreis; von/ts DESC | Umschreiben | EXT |
| 1104-D164 | PepGruppen.PEPGruppenID | SELECT | Lieferant→interne Gruppe | Umschreiben | EXT |
| 1104-D165 | PepGruppen.KRKundeInternerLieferant | SELECT | Lieferant→interne Gruppe | Umschreiben | EXT |
| 1104-D166 | KRKunden.ID | SELECT | Interner Gruppenkunde und Preisgruppen | Umschreiben | EXT |
| 1104-D167 | KRKunden.Angebot | SELECT | Interner Gruppenkunde und Preisgruppen | Umschreiben | EXT |
| 1104-D168 | KRKunden.Preiskategorie | SELECT | Interner Gruppenkunde und Preisgruppen | Umschreiben | EXT |
| 1104-D169 | KRVerkauf.Datum | SELECT | Eligible Kundenjoin, Datum>=DATUM ohne System/Quellenfilter | Umschreiben | EXT |
| 1104-D170 | KRVerkauf.KRKunde | SELECT | Eligible Kundenjoin, Datum>=DATUM ohne System/Quellenfilter | Umschreiben | EXT |
| 1104-D171 | KRVerkauf.KRKostenTräger | SELECT | Eligible Kundenjoin, Datum>=DATUM ohne System/Quellenfilter | Umschreiben | EXT |
| 1104-D172 | KRVerkauf.BelegArt | SELECT | Eligible Kundenjoin, Datum>=DATUM ohne System/Quellenfilter | Umschreiben | EXT |
| 1104-D173 | KRVerkauf.PreisNetto | SELECT | Eligible Kundenjoin, Datum>=DATUM ohne System/Quellenfilter | Umschreiben | EXT |
| 1104-D174 | KRVerkauf.KRKunde | UPDATE | PEPGruppenID | Datum>=DATUM; kein System-/Datenquellenfilter | EXT |
| 1104-D175 | KRVerkauf.BelegArt | UPDATE | 2→4/3→5, sonstNULL (NOT NULL-Spalte!) | Datum>=DATUM; kein System-/Datenquellenfilter | EXT |
| 1104-D176 | KRVerkauf.FLAG | UPDATE | Alte BelegArt3→RÜCK, sonstNULL | Datum>=DATUM; kein System-/Datenquellenfilter | EXT |
| 1104-D177 | KRVerkauf.PreisEK | UPDATE | Alter PreisNetto | Datum>=DATUM; kein System-/Datenquellenfilter | EXT |
| 1104-D178 | KRVerkauf.PreisNetto | UPDATE | Angebot zuerst, sonst min(Kundenpreis,Basispreis), fehlenalle→NULL (NOT NULL!) | Datum>=DATUM; kein System-/Datenquellenfilter | EXT |
Teststatus und Pflege
Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme. Fachbefunde und Grenzen siehe oben und Fragen (interne Referenz); kundenspezifische Trigger/Constraints, DLLs und Jobs bleiben Q02. Nutzerprüfung offen.
Gemeinsame Rückmeldung
Die Basis kann abhängig von MAIL_SCHNITTSTELLEONSUCCESS/ONERROR, MAIL_SCHNITTSTELLETO und SMTP-Einstellungen Mail speichern/versenden (Dokumente/Outbox). SCHNITT_MELDUNG_SchnittstelleOnSuccess/OnError steuert sendmail der Rückmeldungs-API, nicht deren gesamten Aufruf. MANUELL unterdrückt Mail, SILENT beendet den Abschluss früh. GLOBAL_LOGLEVEL/GLOBAL_LOGLEVELEVLOG steuert Logging (Pep3Log/Eventlog). Keine Fachimporttransaktion und kein API-Erfolgsnachweis; Serverwirkung bleibt ungeprüft.
Quellen je Datei
Repository: seegerstefan/pep4desktop, master, obiger Commit. Je Datei ein Quellenlink; Kürzel in den Tabellen. Private Git-Quellen setzen Zugriffsrechte voraus.
Offene Abnahme
Externe Liefer-/API-Verträge und installierte Migrationen sind nicht bestätigt. Vor einem Test die beschriebenen Datenrisiken in einer isolierten Umgebung klären. Bei1214/1215 sind weitere Calc-/CalcPep-Feldwirkungen ausdrücklich noch nicht vollständig analysiert.