Benutzer-Werkzeuge

Webseiten-Werkzeuge


schnittstellen:6050

Schnittstelle 6050: Plan-/Stempelzeiten atomisieren

Dokumentiert / statisch geprüft: 2026-10-02. Statisch dokumentiert; Nutzerprüfung offen. Keine Schnittstelle ausgeführt.

Identität und Quellenstand

eProgramm.IstZeitenAtomisieren = 6050. Aktive feste Registrierung → cSchnittTransfer.IstZeitenAtomisieren (E,P). Registrierung und erreichbare Quellen geprüft; installierte Binärdateien ungeprüft. Active=True, InAutomatik=true, ManuellerAufruf=true, NurAufServer=false. Kennzeichen beschreiben Registrierung/Defaults, nicht eingerichtete Jobs; Run selbst prüft keine Serverbindung.

seegerstefan/pep4desktop, master, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Lokale .DS_Store-/cPep/PEP-Abweichungen nicht vermischt; Fachquellen cSchnittstellen/ZW/Sqlfiles unverändert. Kein Remote-/Installationsabgleich.

Parameter und drei alternative Verträge

DATVON/DATBIS: Datumsmuster, registriert−100/0. BASE wertet sie aus; SQL-Fenster einschließlich. DATBIS um Mitternacht kann Gehen am Endtag ausschließen. Kein Dateiinput/-output und kein anschließendes Calc/CalcPep. Berechnete Ist-/Planwerte müssen bereits vorliegen.

Art1 TRANS_ATOM_PEP: zuerst globale Korrektur von Pep2.AnteilStempelzeit (InIstzeit1, Minutenanteile), globales TRUNCATE Istzeiten und StundenAtomar-Löschung im Fenster. Puffer aus Angerechnet und gewähltem positiven Anwesenheitswert. Plan-only: Summe(Netto)×24/Faktor aus PepBerechnet. Ohne Istplan erfolgt direkte Verteilung aus ITPEP.Anteil; restliche Puffer werden über alle Pep2-Anteile verteilt, nicht nur InIstzeit1. Danach globale KZNetto0-Korrektur bei Kennzeichen.Netto0, auch außerhalb des Fensters.

Art2 TRANS_ATOM_STEMPEL: Angerechnet>0 und gewählte Nettoquelle>0. Fehlende Arbeitszeit wird nur nach DATUM, nicht Person geprüft: Buchung einer anderen Person kann Direktverteilung blockieren. Netto2-Anteile je Person/Filiale/Tag; bei Gesamtsumme0 wird der volle Tageswert jeder Filiale zugeordnet. Gruppe erhält die Filiale, nicht eine PEP-Gruppen-ID. Plan-only-Person−1/Summe(Pep2.Netto) ohne ×24, anders als Art1.

Art3 TRANS_ATOM_PEP_DECKUNG: Planzeiten auf Datum rebased; Pause zunächst Gruppe−1, dann Nachbargruppe links/rechts zugeordnet, verwaiste Pause und Nullintervalle entfernt. Öffnungsrahmen aus Umsätze oder ganzer Tag, erweitert durch Minutenparameter; erstes/letztes Planintervall erweitert und auf Schnitt begrenzt. Arbeitszeiten.Netto1 wird gegen Rahmen geschnitten. Mehrfachüberschneidungen können mehrfach zählen. Pause ist keine Planzeit, kann aber über Rahmen Istzuordnung erhalten. Atom/AtomStunde unabhängig; Verdichtung Person−1, Faktor1.

Stunden, Wiederholung und Befunde

Art1/2 liest Arbeitszeiten für Stunden separat, unabhängig von gewählter Nettoquelle: Kommen>=Von und Gehen⇐Bis, kein Geloeschtfilter. Mitternacht ist bei Stunde(Gehen)<Stunde(Kommen) nicht robust. Stundenanteile Minuten/60. Art3 zählt pro überlappender Stunde das ganze Planintervall per DATEDIFF, nicht nur den Stundenschnitt: Überzählungsrisiko.

Art1/2 liest AtomStunde/Verdichten und Art1 Quelle als SQL-Rohwerte; Art3 nutzt geladene VB-Werte. Reload/Validierung kann daher abweichende Stände ergeben. Kein Gesamtrollback/Lock über Puffer, DELETE/INSERT und Anteilsupdates. Parallele Läufe teilen Istzeiten. Deaktivierte Flags lassen Altbestand stehen; Wiederholung ersetzt nur jeweilige Zielbereiche. Nicht unterstützte Art → leere CommandText/Fehler, da CaseElse fehlt. CALC_Atomisieren_Rahmen_InPep wird hier nicht gelesen. Temp-Rahmen/-Resultate sind sitzungsintern.

Einstellungen und gemeinsame Nebenwirkungen

Gemeinsames Profil: BASE (interne Referenz).

Beziehung Schlüssel / Variable Default Einflussweg Wirkung Beleg
6050-S001 SQL_TIMEOUT / SQLTimeOut 60 VB SQLCommand Ausführungstimeout B,ZW
6050-S002 CALC_Atomisieren_Art / tmpLong 1 VB SelectCase 1PEP,2Stempelung,3PEPDeckung; andereWerteleereCommandText→Fehler B,ZW
6050-S003 CALC_Atomisieren_Quelle / CALC_Atomisieren_Quelle 4 PEP SQLRohwert;Stempelung VBParameter 1Anwesend,2AnwesendKZNetto,3AnwesendCut,4CutKZNetto,5Bezahlt,sonst0 P1,P2,ZW
6050-S004 CALC_Atomisieren_RahmenAuf / CALC_Atomisieren_RahmenAuf 0 NurDeckung VBParameter Minuten-Erweiterung Rahmen/erstesKommen/letztesGehen B,P3,ZW
6050-S005 CALC_Atomisieren_RahmenZu / CALC_Atomisieren_RahmenZu 0 NurDeckung VBParameter Minuten-Erweiterung Rahmen/erstesKommen/letztesGehen B,P3,ZW
6050-S006 CALC_Atomisieren_RahmenPepAuf / CALC_Atomisieren_RahmenPepAuf 0 NurDeckung VBParameter Minuten-Erweiterung Rahmen/erstesKommen/letztesGehen B,P3,ZW
6050-S007 CALC_Atomisieren_RahmenPepZu / CALC_Atomisieren_RahmenPepZu 0 NurDeckung VBParameter Minuten-Erweiterung Rahmen/erstesKommen/letztesGehen B,P3,ZW
6050-S008 CALC_Atomisieren_Verdichten / CALC_Atomisieren_Verdichten False DeckungVB,PEP/StempelungSQLRohwert PersonID-1/Faktor1, Dauer*Faktor; beiPEP/StempelungnurStundentabelle B,P1,P2,P3,ZW
6050-S009 CALC_Atomisieren_Atom / CALC_Atomisieren_Atom True NurDeckung VBParameter Tagestabelle löschen/neuschreiben; PEP/StempelungTagimmer B,P3,ZW
6050-S010 CALC_Atomisieren_AtomStunde / CALC_Atomisieren_AtomStunde True DeckungVB,PEP/StempelungSQLRohwert Stundentabelle löschen/neuschreiben; FalsebehältaltenStand B,P1,P2,P3,ZW

Defaults sind keine Livewerte. Melde-/Datei-/DB-Wirkungen sind nicht atomar.

Feldbeziehungen

DB-Rolle PEP4-Anmeldedatenbank, soweit nicht ausdrücklich Aprocon oder Import angegeben. Unqualifizierte Objektschemata nicht als Live-dbo-Vertrag behaupten. INSERT-Defaults/Computed-Spalten sind gesonderte Schemawirkung, kein explizites UPDATE.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
6050-D001 EinstellungenZw.Einstellung SELECT SQLGetEinstellungZw PEPQuelle und1/2Stunde/Verdichten Rohwert, keinVBHashcheck P1,P2,GET
6050-D002 EinstellungenZw.Wert SELECT SQLGetEinstellungZw PEPQuelle und1/2Stunde/Verdichten Rohwert, keinVBHashcheck P1,P2,GET
6050-D003 BerechneteZeiten.Person SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D004 BerechneteZeiten.Datum SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D005 BerechneteZeiten.Angerechnet SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D006 BerechneteZeiten.Anwesend SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D007 BerechneteZeiten.AnwesendKZNetto SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D008 BerechneteZeiten.AnwesendCut SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D009 BerechneteZeiten.AnwesendCutKZNetto SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D010 BerechneteZeiten.AnwesendBezahlt SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D011 BerechneteZeiten.NettoFaktor SELECT Istzeitenpuffer 1/2Tag,Quelle>0;PEPAngerechnet<>0,Stempel>0 P1,P2
6050-D012 Istzeiten.— TRUNCATE GlobalgemeinsamerPuffer Nur1/2;keineTaskisolation P1,P2
6050-D013 Istzeiten.Zeilen TRUNCATE GlobalgemeinsamerPuffer Nur1/2;keineTaskisolation P1,P2
6050-D014 Istzeiten.Name INSERT/SELECT Angerechnet/gewähltesAnwesend/Faktor Nur1/2Datumbereich P1,P2
6050-D015 Istzeiten.Datum INSERT/SELECT Angerechnet/gewähltesAnwesend/Faktor Nur1/2Datumbereich P1,P2
6050-D016 Istzeiten.Brutto INSERT/SELECT Angerechnet/gewähltesAnwesend/Faktor Nur1/2Datumbereich P1,P2
6050-D017 Istzeiten.Netto INSERT/SELECT Angerechnet/gewähltesAnwesend/Faktor Nur1/2Datumbereich P1,P2
6050-D018 Istzeiten.Faktor INSERT/SELECT Angerechnet/gewähltesAnwesend/Faktor Nur1/2Datumbereich P1,P2
6050-D019 Istzeiten.— DELETE Bereitsdirektverteiltentfernen 1keinIstPlan,2KEINEArbeitszeitamDatum vonIRGENDEINERPerson P1,P2
6050-D020 Istzeiten.Zeilen DELETE Bereitsdirektverteiltentfernen 1keinIstPlan,2KEINEArbeitszeitamDatum vonIRGENDEINERPerson P1,P2
6050-D021 Pep2.Name SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D022 Pep2.Datum SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D023 Pep2.Kommen SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D024 Pep2.Gehen SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D025 Pep2.Status SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D026 Pep2.Bereich SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D027 Pep2.Netto SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D028 Pep2.AnteilStempelzeit SELECT Planverteilung/Deckung undAnteile 1 AnteilkorrekturGLOBAL,2Nettoohne*24,3PlanminutennachDatumrebased P1,P2,P3,ANTEIL
6050-D029 Pep2.AnteilStempelzeit UPDATE Minutenanteil proPersonTag Nur1GLOBALungefiltertDatum;InIstzeit1,Tagminuten<>0 ANTEIL
6050-D030 PepBerechnet.PersonID SELECT Plan-only-Faktor Nur1; bestehenderCachejoin P1
6050-D031 PepBerechnet.Datum SELECT Plan-only-Faktor Nur1; bestehenderCachejoin P1
6050-D032 PepBerechnet.Faktor SELECT Plan-only-Faktor Nur1; bestehenderCachejoin P1
6050-D033 ITPEP.PersonenStammID SELECT DirektverteilungohnePlan/Arbeitszeit 1/2IstzeitenDatumgültig P1,P2
6050-D034 ITPEP.von SELECT DirektverteilungohnePlan/Arbeitszeit 1/2IstzeitenDatumgültig P1,P2
6050-D035 ITPEP.bis2 SELECT DirektverteilungohnePlan/Arbeitszeit 1/2IstzeitenDatumgültig P1,P2
6050-D036 ITPEP.PepGruppe SELECT DirektverteilungohnePlan/Arbeitszeit 1/2IstzeitenDatumgültig P1,P2
6050-D037 ITPEP.Anteil SELECT DirektverteilungohnePlan/Arbeitszeit 1/2IstzeitenDatumgültig P1,P2
6050-D038 ITZeit.PersonenStammID SELECT Plan-/Stundenfaktor 2/3und1StundeGültigkeit;keinAktivfilter P1,P2,P3
6050-D039 ITZeit.von SELECT Plan-/Stundenfaktor 2/3und1StundeGültigkeit;keinAktivfilter P1,P2,P3
6050-D040 ITZeit.bis2 SELECT Plan-/Stundenfaktor 2/3und1StundeGültigkeit;keinAktivfilter P1,P2,P3
6050-D041 ITZeit.NettoFaktor SELECT Plan-/Stundenfaktor 2/3und1StundeGültigkeit;keinAktivfilter P1,P2,P3
6050-D042 Arbeitszeiten.Person SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D043 Arbeitszeiten.Filiale SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D044 Arbeitszeiten.Kommen SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D045 Arbeitszeiten.Gehen SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D046 Arbeitszeiten.Kennzeichen SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D047 Arbeitszeiten.Netto2 SELECT Stempelverteilung/Stunden/Deckung Keingeloeschtfilter inAtom-SPs; 2ExistenzprüfungenurDatum nichtPerson P1,P2,P3
6050-D048 Kennzeichen.Kennzeichen SELECT Plananteile/Nettofilter/Pause 1InIstzeitanteile,1/2StundenNetto1,3Anwesenheit+NettooderPause P1,P2,P3,ANTEIL
6050-D049 Kennzeichen.InIstzeit SELECT Plananteile/Nettofilter/Pause 1InIstzeitanteile,1/2StundenNetto1,3Anwesenheit+NettooderPause P1,P2,P3,ANTEIL
6050-D050 Kennzeichen.Netto SELECT Plananteile/Nettofilter/Pause 1InIstzeitanteile,1/2StundenNetto1,3Anwesenheit+NettooderPause P1,P2,P3,ANTEIL
6050-D051 Kennzeichen.Anwesenheit SELECT Plananteile/Nettofilter/Pause 1InIstzeitanteile,1/2StundenNetto1,3Anwesenheit+NettooderPause P1,P2,P3,ANTEIL
6050-D052 Kennzeichen.IstPause SELECT Plananteile/Nettofilter/Pause 1InIstzeitanteile,1/2StundenNetto1,3Anwesenheit+NettooderPause P1,P2,P3,ANTEIL
6050-D053 PepGruppen.PEPGruppenID SELECT Plan-/Stunden-/Öffnungszuordnung FilialGruppe1nur1/2Stunden;3Bereichjoin P1,P2,P3
6050-D054 PepGruppen.Filiale SELECT Plan-/Stunden-/Öffnungszuordnung FilialGruppe1nur1/2Stunden;3Bereichjoin P1,P2,P3
6050-D055 PepGruppen.FilialGruppe SELECT Plan-/Stunden-/Öffnungszuordnung FilialGruppe1nur1/2Stunden;3Bereichjoin P1,P2,P3
6050-D056 PepGruppen.SchnittÖffnung SELECT Plan-/Stunden-/Öffnungszuordnung FilialGruppe1nur1/2Stunden;3Bereichjoin P1,P2,P3
6050-D057 Filialen.FilialID SELECT Pausenplanfreigabe Nur3,NULLPauseStempelAb→2000 P3
6050-D058 Filialen.PauseStempelAb SELECT Pausenplanfreigabe Nur3,NULLPauseStempelAb→2000 P3
6050-D059 Umsätze.GruppenID SELECT Deckungsrahmen Nur3SchnittÖffnung1 sonst0..1440;fehlenderUmsatz→RahmenNULL P3
6050-D060 Umsätze.Datum SELECT Deckungsrahmen Nur3SchnittÖffnung1 sonst0..1440;fehlenderUmsatz→RahmenNULL P3
6050-D061 Umsätze.Auf SELECT Deckungsrahmen Nur3SchnittÖffnung1 sonst0..1440;fehlenderUmsatz→RahmenNULL P3
6050-D062 Umsätze.Zu SELECT Deckungsrahmen Nur3SchnittÖffnung1 sonst0..1440;fehlenderUmsatz→RahmenNULL P3
6050-D063 StundenAtomar.— DELETE ZielTageersetzen 1/2immer;3nurAtomTrue;inklusivDatVonBis P1,P2,P3
6050-D064 StundenAtomar.Zeilen DELETE ZielTageersetzen 1/2immer;3nurAtomTrue;inklusivDatVonBis P1,P2,P3
6050-D065 StundenAtomar.Datum INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D066 StundenAtomar.PersonID INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D067 StundenAtomar.Gruppe INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D068 StundenAtomar.Tätigkeit INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D069 StundenAtomar.StundenPlanNetto INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D070 StundenAtomar.StundenIstNettoKZNetto INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D071 StundenAtomar.StundenIstNetto INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D072 StundenAtomar.StundenBrutto INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D073 StundenAtomar.Faktor INSERT Tagesaggregate 1PEP/ITPEPAnteile,2Stempelanteile,3Deckung; einigeFelderjeBranchunset P1,P2,P3
6050-D074 StundenAtomar.Tätigkeit SELECT Kennzeichen.Netto-Prüfung Nur1 globalUPDATE ohneDatumfilter P1
6050-D075 StundenAtomar.StundenIstNettoKZNetto UPDATE Auf0 beiKennzeichen.Netto0 Nur1GLOBALauchandereTage P1
6050-D076 StundenAtomarStunde.— DELETE StundenStandersetzen NurAtomStundeTrue,inklusivDatumfenster P1,P2,P3
6050-D077 StundenAtomarStunde.Zeilen DELETE StundenStandersetzen NurAtomStundeTrue,inklusivDatumfenster P1,P2,P3
6050-D078 StundenAtomarStunde.Datum INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D079 StundenAtomarStunde.Stunde INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D080 StundenAtomarStunde.PersonID INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D081 StundenAtomarStunde.Gruppe INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D082 StundenAtomarStunde.StundenIstNettoKzNetto INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D083 StundenAtomarStunde.Faktor INSERT Stunden0..23 ausDauern VerdichtenPerson-1/Faktor1;1/2mitITZeitFilialgruppen P1,P2,P3
6050-D084 StundenAtomarStunde.StundenPlanNetto INSERT Deckungsplan proStunde Nur3;ganzePlanintervallDauer wirdproerreichteStunde wiederholt stattanteil P3

Teststatus und Pflege

Keine Laufzeit-/Live-Schema-/Lieferformat-Abnahme, keine Codekorrektur. Q02 gilt für kundenspezifische Trigger/Constraints/DLLs/Jobs; weitere Grenzen siehe oben und Fragen (interne Referenz). Externe Betriebs-/Schemaabweichungen sind nicht durch die statische Analyse ausgeschlossen.

Gemeinsame Nebenwirkungen BASE

Block17 ergänzt explizit5314/5315/5316/5317/5318/5319/5323/5324/5325/5326/5327/5328/6000/6006/6007/6008/6009. Alle nutzen BASE-Start/Ende;6001/6002/6003/6004/6005 verwenden LEGACY statt BASE. Fachverträge jeID, keine automatische gemeinsame Kunden-/Dateiwirkung.

Stand: 2026-10-02 · Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Gilt ausdrücklich für Block 01: 1012, 1013, 1016, 1017, 1018, 1019, 1079, 1080, 1082, 2016 sowie Block 02: 2011, 2012, 2014, 2015, 2017, 2018, 2019, 2033, 2034, 2041 sowie Block 03: 1057, 1058, 1059, 1060, 2030, 2035, 2040, 2042, 2044 sowie Block 04: 2053, 2054, 1081, 2031, 2052 sowie Block 05: 2045, 2050 sowie Block 06: 3044, Block 08: 1010, 1011, 1015 und Block 10: 1047, 1051 sowie Block 12: 1064. 2024, 1020, 1030, 1048, 1049, 1050, 1052, 1053, 1054, 1061, 1062 und 1063 verwenden diese Basis nicht. 1078 enthält die gleichversionierten Beziehungen weiterhin in seiner Einzelbeschreibung; keine Doppelzählung für 1078. Kein Test-/Deploymentnachweis.

Block 13 ergänzt ausdrücklich 1065,1066,1068,1069,1071,1072,1074: aktive Implementierungen bzw. Hilfsinstanzen erben BASE und rufen Start/Ende auf. Bei 1074 ist AusführungEnde nur bei unbehelligtem Abschluss erreichbar; Ressourcen-/DB-/SP-Fehler können es überspringen. 1067/1070/1073 verwenden direkte LEGACY-Meldungen.

Block14 ergänzt ausdrücklich 1104,1105,1106,1108,1109,1150,1210,1214,1215,1222. Aktive Klassen/Instanzen erben BASE und starten/beenden den Lauf; ungefangene Fehler können das Ende überspringen. Nur gemeinsame Rückmeldung, keine Gesamttransaktion oder erfolgreiche Fachwirkung. 1203 hat keinen BASE-/LEGACY-Pfad.

Block15 ergänzt ausdrücklich 2025/2026/2027/2049 mit erreichbarem Instanz-Start/Ende. Die aktiven Veraltet-Stubs 2028/2029/2032/2046/2047/2048 nutzen trotz Klassenvererbung nur den direkten LEGACY-Meldepfad; keine BASE-Ausführung. 2022 hat keinen Delegate.

Reichweite und Wiederverwendung

Block16 ergänzt ausdrücklich 2051/2055/3043/3512/3513/3520/3521/3522. WebZerf2 nutzt Multi-Start/Ende mit BASE je Teilstufe; IsMultiSchnitt reduziert Dialoge, nicht Mail-/API-Wirkungen. Nach Fehlern können weitere Teilstufen starten. 3011 ohne Delegate;3031/3032/3041/3042/3060/3500 nur LEGACY.

Die ausdrücklich zugeordneten Programmregistrierungen mit ihren Implementierungen erben cSchnitt_Basis und rufen AusführungStart/AusführungEnde auf. Gemeinsam geprüfte Basisklasse/Registrierung; Mail-/Logging-/API-Details aus der dokumentierten Pilotprüfung desselben Commits wiederverwendet. Nicht automatisch auf jede zukünftige Schnittstelle übertragen: Erreichbarkeit, Overrides, Sonderpfade und Quellenstand jeweils prüfen.

Start setzt Status/Protokoll zurück. Fehlerstatus steigt nur (0→1→2). Fehlerfrei() ist True nur bei Status 0. SILENT unterdrückt die Startanzeige und beendet AusführungEnde sofort. MANUELL wird über Schlüsselinzidenz erkannt, unterdrückt direkte Mail und API-sendmail, nicht die API-Meldung selbst. MAILTO leer → MAIL_SCHNITTSTELLETO. Bei nicht lokal gefangener Exception kann der Abschluss ausfallen (besonders 1079/1082); 2016 hat einen getrennten Rückgabe-/Fehlerstatusbefund; 2017 reicht ebenfalls den Instanzstatus nicht als Shared-Rückgabe durch. 1057–1060 besitzen untypisierte Shared-Einstiege ohne Return (Nothing) und übernehmen Modul nicht; Instanz-Abschluss separat betrachten. Die acht Exporte aus Block 02/03 verwenden cSchnittExport mit Start/Ende.

Erfolg: OnSuccess; Fehlerstatus 1: OnSuccess ODER OnError; Stoppstatus 2: OnError. Mail nur nicht MANUELL und nicht SILENT; API wird sonst unabhängig vom sendmail-Schalter aufgerufen. Direkte Mail speichert Body/Outbox in eigener Transaktion (keine Fachimporttransaktion). SendOutbox(5) kann ältere fällige Schnittstellenmails versenden und deren Anhänge lesen; diese Fachpfade erzeugen selbst keine Anhänge. SMTP-Testadresse kann Zieladresse ersetzen. Mail-/API-Ergebnis ist kein verlässlicher Bestandteil von Fehlerfrei().

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.

Quellenverzeichnis

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
schnittstellen/6050.txt · Zuletzt geändert: von codex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki