BDEBuch()
BDEBuch() – BDE Buchungsfunktion
Hinweis
Diese Codeblockfunktion ist in Verbindung mit Fertigungs- und Kundenaufträgen ab Version 6.5.65 nicht mehr einsetzbar und gibt keine entsprechende Fehlermeldung aus.
Für die Funktion stehen im Codeblock entsprechend leistungsfähigere Funktionen / Klassen (TBeBDEBusinessController) zur Verfügung, mit denen die unter Version 6.5 neu eingeführten Funktionalitäten im Bereich der BDE / MDE genutzt werden können.
Bei Anwesenheitsbuchungen können keine expliziten Zeiten mehr für Buchungen angegeben werden, welche keiner vollständigen Nachbuchung entsprechen.
Die Parameter cStartZeit:C und cStopZeit:C werden also nur berücksichtigt, wenn alle Parameter zum Erzeugen einer vollständigen Buchung (dStartDatum:D, cStartZeit:C, dStopDatum:D, cStopZeit:C) gleichzeitig angegeben werden.
Bei Buchungen bei denen nur die Parameter für das Starten oder Stoppen angegeben werden, verhält sich die Buchung genau wie das BDE-Buchungs-Fenster.
Ein Abschließen einer Buchung zu einem gewünschten Zeitpunkt kann durch eine nachträgliche Veränderung der Buchung direkt im Anschluss erreicht werden.
Die Funktion bucht die BDE-Zeiten der Mitarbeiter. Das Datenmodul muss von der Klasse "TDM_TMEdit" sein. Die Funktion muss in jedem Fall in einer Transaktion ausgeführt werden.
- Wird die Funktion ohne den Parameter cAPosNummer aufgerufen, wird eine Anwesenheits-Buchung zu Grunde gelegt.
- Wird die Funktion ohne Stop-Datum/Zeit aufgerufen, wird eine Kommen- bzw. Auftragsstart-Buchung durchgeführt.
Wird die Funktion ohne Start-Datum/Zeit aufgerufen, wird eine Gehen- bzw. Auftragsende-Buchung durchgeführt.
Parameter Beschreibung oDM_TMEdit:O
Datamodul-Objekt (Klasse: TDM_TMEdit)
nPersNr:N
Mitarbeiter-Nummer
dStartDatum:D
Start-Datum; default = leer
cStartZeit:C
Start-Zeit (erforderlich falls Start-Datum übergeben); default = Leerstring
dStopDatum:D
Stop-Datum; default = leer
cStopZeit:C
Stop-Zeit (erforderlich falls Stop-Datum übergeben); default = Leerstring
cAPosNummer:C
Kundenauftragsnr. (DAB050:ANUMMER) oder Prod.Auftr.Pos.Nr. (DAB240:B_POS_LFD); default = Leerstring
cTaetigkeit:C
Art.Nr. der Tätigkeit (erforderlich falls Kundenauftragsnr. übergeben); default = Leerstring
cTaetigTyp:C
Typ der Tätigkeit, S = Stundenabrechnung, G = Budgetzeit (erforderlich falls Tätigkeit übergeben); default = Leerstring
cKommentar:C
Kommentar zur Buchung; default = Leerstring
nFertigMenge:N
Gefertigte Stückzahl-Menge
lQuiet:L
Ressourcen-Auswahl-Dialog nicht anzeigen (default = False) / Exception auslösen
Rückgabewert
Keiner - Falls eine Buchung nicht durchgeführt werden kann, wird eine Exception ausgelöst
Beispiel
//##############################################################################
//##############################################################################
// Beschreibung: Dieses Programm legt testweise mehrere BDE-Buchungen an.
//##############################################################################
//##############################################################################
| m_oDM, m_PostingPersNr |
//##############################################################################
//##############################################################################
// Konstanten
//##############################################################################
//##############################################################################
m_PostingPersNr := 1, // Personalnummer der Person für die gebucht werden soll
//##############################################################################
//##############################################################################
// Funktionen
//##############################################################################
//##############################################################################
//******************************************************************************
// Diese Funktion legt ein Paar Beispielbuchungen auf Basis der angegebenen
// Testdaten an
//******************************************************************************
function PostingExamples(oDM)
| dADSNow, dStartDate, cStartTime, dEndDate, cEndTime |
// Beispiel-Buchungszeitpunkte berechnen
dADSNow := GetADSServerTime(), // ACHTUNG: Für BDE-Buchungen immer die ADS-Zeit verwenden!
dStartDate := STOD(FormatDateTime('YYYYMMDD', dADSNow)), // Start-Datum
dEndDate := STOD(FormatDateTime('YYYYMMDD', dADSNow)), // End-Datum
// Beispiel-Buchungszeiten berechnen
cStartTime := FormatDateTime('HH:NN:SS', dADSNow - 3/24), // Erste Start-Zeit = vor drei Stunden für die Nachbuchung
cEndTime := FormatDateTime('HH:NN:SS', dADSNow - 2/24), // Erste End-Zeit = vor zwei Stunden für die Nachbuchung
// Anwesenheitszeit nachbuchen
BDEBuch(m_oDM, m_PostingPersNr, dStartDate, cStartTime, dEndDate, cEndTime), // Entspricht einer Nachbuchung im BDE-Nachbuchen-Fenster
// Kommen buchen
BDEBuch(m_oDM, m_PostingPersNr, STOD('20201231'), '00:00'), // Entspricht einer Kommen-Buchung im BDE-Buchen-Fenster, eingegebene Anfangs- Datum und Zeit werden ignoriert, aber dürfen nicht leer sein
// Gehen buchen
BDEBuch(m_oDM, m_PostingPersNr, 0, '', STOD('20201231'), '00:00'), // Entspricht einer Gehen-Buchung im BDE-Buchen-Fenster, eingegebene Schluss- Datum und Zeit werden ignoriert, aber dürfen nicht leer sein
end,
//##############################################################################
//##############################################################################
// Hauptprogramm
//##############################################################################
//##############################################################################
m_oDM := CreateObject('TDM_TMEdit', 'BDEBUCHDM'),
startseq
PostingExamples(m_oDM),
always
DestroyObject(m_oDM),
stopseq,