Inhaltsverzeichnis

2025 — Aprocon-Kostenträger aktualisieren

Dokumentation ins Wiki übernommen am 02.10.2026. Das ist keine Laufzeitabnahme.

Technische Referenz zum aktiven Programm eProgramm.ImpKRKostenTrägerODBC. Sie beschreibt Eingänge, tatsächliche Schreibwirkung und Grenzen am genannten Quellenstand. Erreichbarer Aufruf statisch dokumentiert, nicht zur Laufzeit abgenommen.

Wichtig: ⚠ Rabatt nicht geschrieben / Gruppen trotzdem angelegt. Prüfe vor einem späteren Test die beschriebenen Fälle.

Aufruf und Parameter

Delegate: cSchnittKRApc.Import_Kostenträger. Active=True, Automatik=true, ManuellerAufruf=true, NurAufServer=false. Registrierung/Defaults, keine bestätigten Jobs. Run prüft die Serverbindung nicht selbst.

Keine Fachparameter registriert.

MAILTO und der von RunWithDialog gesetzte MANUELL-Schlüssel sind Registrierung/Dialogzustand, keine ZW-Einstellung. Eine Auswertung durch die Basis ist nur bei ausdrücklich belegtem BASE-Pfad anzunehmen.

Ein-/Ausgänge und Variante

ODBC-Warengruppen/Artikel → lokale KRWarenGruppen und KRKostenTräger. Keine Datei, kein Datumsparameter und keine Fach-SP. Kein INSERT-Parameter registriert: fehlende Kostenträger werden nicht angelegt. Warengruppen werden trotzdem angelegt und aktualisiert.

Beide Kennungen verwenden denselben Einstieg. APCKT beschreibt feldgenau die Quelle, Warengruppen-Voranlage, Artikel-UPDATE/INSERT, Einheitenkonvertierung und nicht geschriebenen Rabatt. BASE beschreibt Meldungen/Mail/API, keine gemeinsame Fachtransaktion. Keine Artikel-/Gruppenlöschung, kein Zeitberechnungslauf.

Betrieb und Testgrenze

ODBC SQL_TIMEOUT(Default60), lokale SQL-CommandsDefault30s; Fehler stoppt den Rest nach ggf. bereits geschriebenen Gruppen/Artikeln. Return Fehlerfrei nach BASE-Abschluss, kein Beleg für erfolgreiche Kundenschema-/ODBC-Ausführung. Q13 externer Vertrag, Q02 Schema. Tests: fehlender Artikel im Update-only-Modus, fehlende WGR, NULL/Gewicht/Berechnungseinheit, unveränderter Rabatt, doppelte Quellnummer und systemübergreifende ID-Kollision. Keine Korrektur vorgenommen.

Direkte Einstellungen

Keine direkte fachliche ZW-Einstellung in diesem Einstiegsteil nachgewiesen; Einstellungen der belegten gemeinsamen Pfade folgen unten.

Direkte Feldbeziehungen

Keine separate direkte Fachbeziehung; tatsächliche Wirkung steht im Ablauf und gegebenenfalls in den ausdrücklich zugeordneten Profilen.

Basis-Rückmeldungen (BASE)

Start setzt Status/Protokoll zurück. Fehlerfrei ist nur bei Status0 wahr. SILENT überspringt den Abschluss. MANUELL unterdrückt direkte Mail und den API-sendmail-Schalter, nicht die API-Meldung. MAILTO fällt auf MAIL_SCHNITTSTELLETO zurück. Ungefangene Fehler können das Ende überspringen. Rückmeldung ist keine Fachtransaktion.

Mailversand kann frühere fällige Outbox-Mails und deren Anhänge verarbeiten. SMTP-Testadresse kann das Ziel ersetzen. Outbox-Retry bei Status20 setzt mStatus=-1 ohne WHERE; CASE ab Status12 kann mDelayUntil=NULL erzeugen. API-Serverquelle bleibt offen(Q01). Kein Codefix.

Einstellungen

Beziehung Schlüssel / Variable Default Einfluss Wirkung Beleg
BASE-S001 MAIL_SCHNITTSTELLEONSUCCESS / MAIL_SchnittstelleOnSuccess False Basis Direkte Mail bei Result 0 oder1, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S002 MAIL_SCHNITTSTELLEONERROR / MAIL_SchnittstelleOnError False Basis Direkte Mail bei Result 1 oder2, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S003 SCHNITT_MELDUNG_SchnittstelleOnSuccess / SCHNITT_MELDUNG_SchnittstelleOnSuccess False Basis/API sendmail=1 bei Result 0 oder1, nicht MANUELL/SILENT; API-Meldung sonst weiterhin sendmail=0 BASE:BASE, BASE:SET
BASE-S004 SCHNITT_MELDUNG_SchnittstelleOnError / SCHNITT_MELDUNG_SchnittstelleOnError True Basis/API sendmail=1 bei Result 1 oder2, nicht MANUELL/SILENT BASE:BASE, BASE:SET
BASE-S005 MAIL_SCHNITTSTELLETO / MAIL_SchnittstelleTo leer Mail Ersatz bei leerem MAILTO; Semikolonliste BASE:MAIL, BASE:SET
BASE-S006 MAIL_SMTP_SERVER / MAIL_SMTPServer leer SMTP Server für direkten Versand BASE:MAIL, BASE:SET
BASE-S007 MAIL_USER / MAIL_User leer SMTP Nichtleer setzt NetworkCredential und überschreibt Defaultcredentials BASE:MAIL, BASE:SET
BASE-S008 MAIL_PASS / MAIL_Pass leer; verschlüsselte Einstellung SMTP Passwort für explizite Credentials; kein Geheimnis dokumentiert BASE:MAIL, BASE:SET
BASE-S009 MAIL_USEDEFAULTCREDENTIALS / MAIL_UseDefaultCredentials False SMTP SmtpClient.UseDefaultCredentials; ggf. durch MAIL_USER überschrieben BASE:MAIL, BASE:SET
BASE-S010 MAIL_SSL / MAIL_SSL True SMTP SmtpClient.EnableSsl BASE:MAIL, BASE:SET
BASE-S011 MAIL_TESTADRESSE / MAIL_TestAdresse nichtleere Testadresse im Quellcode (Wert bewusst nicht kopiert) SMTP Nichtleer ersetzt tatsächlichen To-Empfänger, auch wenn MAILTO gesetzt BASE:MAIL, BASE:SET
BASE-S012 MAIL_FROM / MAIL_From leer SMTP Absenderadresse BASE:MAIL, BASE:SET
BASE-S013 MAIL_FROM_NAME / MAIL_FromName leer SMTP Absendername BASE:MAIL, BASE:SET
BASE-S014 GLOBAL_LOGLEVEL / GLOBAL_LOGLEVEL 50 Logging Persistenz bei InfoLevel>=Schwelle; Start/Erfolg51, ImportError102 BASE:INIT, BASE:LOG, BASE:SET
BASE-S015 GLOBAL_LOGLEVELEVLOG / GLOBAL_LOGLEVELEVENTLOG 0 Logging Eventlog bei Level>Schwelle, Schwelle>0 und Level<200 BASE:INIT, BASE:LOG, BASE:SET

Datenbeziehungen

DB-Rolle Anmeldung; Logging über cInfoTools-Verbindung. Keine Geheimnisse/Livewerte. Indizes verknüpfen jede Mitglieds-ID mit diesen Beziehungen, auch wenn die Details nur einmal stehen.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
BASE-D001 Dokumente.oFilename INSERT MAIL_BODY Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D002 Dokumente.oFilesize INSERT Byteanzahl Body Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D003 Dokumente.Daten INSERT cFn.StringToByteArray(MailBody) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D004 Dokumente.UserID INSERT dbo.fnUserId() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D005 Dokumente.ts INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D006 Outbox.mTo INSERT MAILTO oder MAIL_SCHNITTSTELLETO; je Semikolonadresse Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D007 Outbox.mCc INSERT leer Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D008 Outbox.mFrom INSERT leer Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D009 Outbox.mSubject INSERT Statusabhängiger Betreff Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D010 Outbox.mBodyID INSERT ID des gespeicherten Bodys Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D011 Outbox.mBodyHtml INSERT False Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D012 Outbox.mDelayUntil INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D013 Outbox.mStatus INSERT 1 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D014 Outbox.mSize INSERT Bodyzeichenanzahl (ohne Anhänge) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D015 Outbox.refArt INSERT 0 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D016 Outbox.RefID INSERT 0 Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D017 Outbox.MailArt INSERT 5 (SchnittstellenMeldung) Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D018 Outbox.UserID INSERT fnUserId() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D019 Outbox.ts INSERT getdate() Direkte Rückmeldung aktiviert BASE:MAIL
BASE-D020 Outbox.ID SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D021 Outbox.mFrom SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D022 Outbox.mTo SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D023 Outbox.mCc SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D024 Outbox.mBodyID SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D025 Outbox.mSubject SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D026 Outbox.mBodyHtml SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D027 Outbox.mStatus SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D028 Outbox.mDelayUntil SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D029 Outbox.MailArt SELECT SendOutbox(5): fällige Mails; auch frühere Outbox-Einträge derselben MailArt Versandpfad BASE:MAIL
BASE-D030 Outbox.mSent UPDATE Erfolg → getdate() Versandpfad BASE:MAIL
BASE-D031 Outbox.mStatus UPDATE Erfolg → 0; Fehler → +1, bei Status 20 pauschal -1 ohne WHERE Versandpfad BASE:MAIL
BASE-D032 Outbox.mDelayUntil UPDATE Fehler → Staffel 2/5/10/30 Minuten; ab Status 12 CASE ohne ELSE → NULL Versandpfad BASE:MAIL
BASE-D033 Dokumente.ID SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D034 Dokumente.oFilename SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D035 Dokumente.Daten SELECT Body/Anhänge laden Versandpfad BASE:MAIL, BASE:DOC
BASE-D036 OutboxAttachment.OutBoxID SELECT Anhangszuordnung; diese Basisaufrufe erstellt selbst keine Anhänge SendOutbox kann ältere Mailart-5-Einträge versenden BASE:MAIL
BASE-D037 OutboxAttachment.DokumenteID SELECT Anhangszuordnung; diese Basisaufrufe erstellt selbst keine Anhänge SendOutbox kann ältere Mailart-5-Einträge versenden BASE:MAIL
BASE-D038 Pep3Log.UserID INSERT fnUserId() InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D039 Pep3Log.Datum INSERT getdate() InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D040 Pep3Log.Kurz INSERT Kurztext max255 InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D041 Pep3Log.LogText INSERT Protokoll InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D042 Pep3Log.Modul INSERT Modulname max50 InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D043 Pep3Log.InfoLevel INSERT Start/Erfolg=51; Importfehler=102; weitere Mail-Meldungen InfoLevel >= GLOBAL_LOGLEVEL, DB-Logging möglich BASE:LOG
BASE-D044 tblUser.Name SELECT fnUserId: min(UserID) WHERE Name=RIGHT(SUSER_NAME(),25), sonst 0 Mail-/Logpersistenz BASE:USER
BASE-D045 tblUser.UserID SELECT fnUserId: min(UserID) WHERE Name=RIGHT(SUSER_NAME(),25), sonst 0 Mail-/Logpersistenz BASE:USER

Weitere Ausgänge und Grenzen

Logdateien unter ApplicationData/PEP/LogFiles; kontextabhängig Windows-Eventlog. Start/Erfolg InfoLevel 51, Importfehler 102; Schwellen beeinflussen Persistenz. SQL-fnUserId liest tblUser anhand RIGHT(SUSER_NAME(),25). API Send(MELDUNG) nutzt Anmeldungskontext und fest codierten Endpoint; dessen Serverimplementierung fehlt in dieser Quellenbasis (Q01).

Bekannte gemeinsame Befunde aus Pilot: Outbox-Retry bei Status 20 setzt mStatus=-1 ohne WHERE; Retry-CASE ab Status 12 ohne ELSE → NULL. Nicht korrigiert. Keine Kundendaten oder Zugangswerte übertragen.

Gemeinsamer Datenpfad APCKT

Stand02.10.2026, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Explizite Mitglieder2025/2026, beide→cSchnittKRApc.Import_KostenTräger. Nur2026 registriert INSERT (Info); bloße Schlüsselanwesenheit, nicht dessen Wert, schaltet Artikelanlage ein. Kein Dateieingang, kein SP-Aufruf.

Ablauf und Befunde

BASE-Start→ODBC-Verbindungsprüfung→Warengruppen und Artikel vollständig puffern→lokale Gruppen-Upserts→Artikel-UPDATE bzw.INSERT→BASE-Ende/Fehlerfrei. Doppelte Nummern brechen Dictionary.Add bereits vor lokalen Fachschreibvorgängen ab; NULL-/Typkonvertierungen können ebenfalls abbrechen.

Alle Artikel-Warengruppen zuerst mit Bezeichnung'-' und Artikel-Auswertungsgruppe upserten. Danach vollständige Quell-Warengruppen mit echten Werten upserten. Auch2025 legt daher neue Gruppen an, obwohl es fehlende Kostenträger nicht anlegt. Nicht in der Quelle vorhandene Gruppen werden nicht gelöscht; betroffene Artikel-WGR ohne Quell-WGR bleiben mit Platzhalterbezeichnung. Kein UPDATE-Schutz für manuelle Gruppenwerte.

Artikel schreibt Bezeichnung(Trim/Left50),KRWarenGruppe,Skonto,Einheit,MatchCode,Leergut,KRAuswertungsGruppe. APCKT-F01: Waagenrabatt wird gelesen und @Rabatt gesetzt, aber das SQL verwendet diesen Parameter nicht; KRKostenTräger.Rabatt wird nicht aktualisiert. Nicht als Rabatt-Importer dokumentieren.

Berechnungseinheit wird im VB-Objekt alsLong gehalten, obwohl der KonstruktorDouble erhält. Nur gespeicherter Wert2→Einheit1, sonst Gewicht(NULL→0). MatchCode-Parametervarchar20 ohne expliziteVB-Kürzung, BezeichnungNVarChar50. Keine Datum-/Quellsystemfilter. U610 FK auf lokaleWarengruppe; U839 ergänzt beide Auswertungsgruppenfelder ohne weitere FK in dieser Migration.

ODBC-CommandsSQL_TIMEOUT, lokale FachcommandsStandard30s. Keine Transaktion, keine Lösch-/Archiv-/Berechnungskette. Ein Fehler stoppt den Rest, frühere lokale Änderungen bleiben; BASE-Rückmeldungen gesondert. Externer Artikel/WGR-VertragQ13, aktuellesSchemaQ02. Keine fachliche Bestätigung des Einheiten-/Rabattverhaltens.

Einstellungen

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
APCKT-S001 SCHNITT_APC_DSN / SCHNITT_AproconDSN leer CheckApcConnect/ApcConnectionString ODBC-Datenquelle ohne dokumentierte Verbindungswerte APCKT:B,APCKT:BASE,APCKT:SET
APCKT-S002 SQL_TIMEOUT / SQLTimeOut 60 ODBC-Lesecommands Quellabfragen verwenden Einstellung, lokale Fachcommands dagegen Default30s APCKT:B,APCKT:SET

Feldbeziehungen

Aprocon bezeichnet externe ODBC-Rolle, kein bestätigtes Schema; lokal Anmeldedatenbank.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
APCKT-D001 Aprocon.Warengruppen.Nummer SELECT Alle Warengruppen im Dictionary nach Nummer ODBC erfolgreich, doppelte Nummer bricht ab APCKT:B
APCKT-D002 Aprocon.Warengruppen.Bezeichnung SELECT Alle Warengruppen im Dictionary nach Nummer ODBC erfolgreich, doppelte Nummer bricht ab APCKT:B
APCKT-D003 Aprocon.Warengruppen.AuswertungsGruppe SELECT Alle Warengruppen im Dictionary nach Nummer ODBC erfolgreich, doppelte Nummer bricht ab APCKT:B
APCKT-D004 Aprocon.Artikel.Nummer SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D005 Aprocon.Artikel.Bezeichnung SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D006 Aprocon.Artikel.Warengruppe SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D007 Aprocon.Artikel.Skontierbar SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D008 Aprocon.Artikel.Waagenrabatt SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D009 Aprocon.Artikel.Berechnungseinheit SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D010 Aprocon.Artikel.Gewicht SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D011 Aprocon.Artikel.MatchCode SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D012 Aprocon.Artikel.Leergut SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D013 Aprocon.Artikel.Auswertungsgruppe SELECT Artikelnummer>0; GewichtNULL→0, Artikel nach Nummer eindeutig im VB-Dictionary ODBC; Waagenrabatt wird nicht lokal geschrieben APCKT:B
APCKT-D014 KRWarenGruppen.ID SELECT/INSERT Artikel-WGR und anschließend alle Quell-WGR upserten 2025 und2026, auch bei update-only Artikelmodus APCKT:B
APCKT-D015 KRWarenGruppen.Bezeichnung INSERT/UPDATE Erst '-' und Artikelgruppe, dann Trim(Bezeichnung)/Quellgruppe überschreibt Jede Artikel-WGR; anschließend alle Quell-WGR APCKT:B
APCKT-D016 KRWarenGruppen.KRAuswertungsGruppe INSERT/UPDATE Erst '-' und Artikelgruppe, dann Trim(Bezeichnung)/Quellgruppe überschreibt Jede Artikel-WGR; anschließend alle Quell-WGR APCKT:B
APCKT-D017 KRKostenTräger.ID SELECT UPDATE-Match auf Quellartikel.Nummer, ohne Systemfilter 2025 und2026 APCKT:B
APCKT-D018 KRKostenTräger.ID INSERT Quellartikel.Nummer Nur2026: INSERT-Schlüssel vorhanden und UPDATE rowcount0 APCKT:B
APCKT-D019 KRKostenTräger.KRWarenGruppe UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D020 KRKostenTräger.Bezeichnung UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D021 KRKostenTräger.Skonto UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D022 KRKostenTräger.Einheit UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D023 KRKostenTräger.MatchCode UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D024 KRKostenTräger.Leergut UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D025 KRKostenTräger.KRAuswertungsGruppe UPDATE Artikelwerte; BezeichnungTrim/Left50; Einheit=BERECH2→1, sonstGewicht 2025 und2026 bestehende IDs APCKT:B
APCKT-D026 KRKostenTräger.KRWarenGruppe INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D027 KRKostenTräger.Bezeichnung INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D028 KRKostenTräger.Skonto INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D029 KRKostenTräger.Einheit INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D030 KRKostenTräger.MatchCode INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D031 KRKostenTräger.Leergut INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D032 KRKostenTräger.KRAuswertungsGruppe INSERT Gleiche Zuordnung; keine explizite Rabatt-Zuweisung im SQL Nur2026 fehlende IDs APCKT:B
APCKT-D033 KRWarenGruppen.ID CONSTRAINT Lokaler FK aus KRKostenTräger.KRWarenGruppe; Gruppen vor Artikel angelegt Artikel-INSERT/UPDATE APCKT:U610

Quellen und Prüfstand

Geprüft am02.10.2026 gegen master, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Kein aktueller Installations-/Live-Schema-/DLL-/Jobabgleich. Aprocon bezeichnet die externe Datenbankrolle, keinen bestätigten Schemanamen. Defaults/Computed-Spalten sind gesonderte Schemawirkung. Q02:Installationsgrenze; Q11:offene Motoranalyse; Q13/Q15:Liefer-/Einheiten-/Ersatzverträge.

Siehe auch: Übersicht der Schnittstellen. Keine Ausführung oder Fehlerkorrektur.