Skip to main content
Skip table of contents

TBeBDEBusinessController

TBeBDEBusinessController

Die Klasse kapselt alle Funktionalitäten die zur Erfassung von Auftragsbuchungen im Bereich der BDE (PZE/MDE) benötigt werden. Mit Hilfe dieses BusinessControllers, können Auftragsbuchungen erfasst, verändert, gelöscht werden.
Achtung:
Für Anwesenheitsbuchungen muss weiterhin die Funktion BDEBuch() verwendet werden.

Eigenschaften

Beschreibung

CbDataModule:O

Datenmodul vom Typ TBeDBGet, welches vor der ersten Verwendung des Business-Controllers zugewiesen werden muss.


Funktionen

Beschreibung

CbStartNewPostingParamsObject:O

Diese Funktion liefert ein Objekt vom Typ TBeBDEPostingParams_Start zurück, welches für den Aufruf der Methode CbStartNewPosting benötigt wird.

Parameter

Beschreibung

aTimeRecordingBO:O

Positioniertes (!) TBeTimeRecordingBO, auf dessen Basis das Parameter-Objekt vorbefüllt wird.

CbFinishPostingParamsObject:O

Diese Funktion liefert ein Objekt vom Typ TBeBDEPostingParams_Finish zurück, welches für den Aufruf der Methode CbFinishPosting benötigt wird.

Parameter

Beschreibung

aTimeRecordingBO:O

Positioniertes (!) TBeTimeRecordingBO, auf dessen Basis das Parameter-Objekt vorbefüllt wird.

CbChangePostingValueParamsObject:O

Diese Funktion liefert ein Objekt vom Typ TBeBDEPostingParams_ValueChange zurück, welches für den Aufruf der Methode CbChangePostingValue benötigt wird.

Parameter

Beschreibung

aTimeRecordingBO:O

Positioniertes (!) TBeTimeRecordingBO, auf dessen Basis das Parameter-Objekt vorbefüllt wird.


Methoden

Beschreibung / Parameter

CbStartNewPosting

Diese Methode ermöglicht das Starten einer BDE-Buchung (PZE/MDE). Die Buchung bleibt offen bis die Methode CbPostPosting aufgerufen wurde.

Parameter

Beschreibung

aTimeRecordingBO:O

TBeTimeRecordingBO , das zur Erstellung der Buchung verwendet wird. Nach dem Aufruf bleibt dieses BO auf der neuen Buchung positioniert.

aBDEPostingParams_Start:O

Parameter-Objekt vom Typ TBeBDEPostingParams_Start , welches alle Informationen enthält, die zur Buchungs-Erfassung benötigt werden.

CbFinishPosting

Diese Methode ermöglicht das abschließen einer offenen BDE-Buchung (PZE/MDE). Die abgeschlossene Buchung bleibt im Bearbeitungsmodus, bis CbPostPosting aufgerufen wurd.

Parameter

Beschreibung

aTimeRecordingBO:O

TBeTimeRecordingBO , das auf die abzuschließende Buchung positioniert ist. Nach dem Aufruf bleibt dieses BO auf der abgeschlossenen Buchung positioniert.

aBDEPostingParams_Finish:O

Parameter-Objekt vom Typ TBeBDEPostingParams_Finish , welches alle Informationen enthält, die zum Abschließen der Buchung benötigt werden.

CbChangePostingValue

Diese Methode ermöglicht das bewerten einer abgeschlossenen BDE-Buchung (PZE/MDE). Für den Aufruf dieser Funktion ist es notwendig, dass sich die im übergebenen TBeTimeRecordingBO positionierte Buchung bereits im Bearbeitungs-Modus befinden muss. Nach dem Aufruf bleibt die veränderte Buchung im Bearbeitungs-Modus.

Parameter

Beschreibung

aTimeRecordingBO:O

TBeTimeRecordingBO , das auf die zu verändernde Buchung positioniert ist. Nach dem Aufruf bleibt dieses BO auf der veränderten Buchung positioniert.

aBDEPostingParams_ValueChange:O

Parameter-Objekt vom Typ TBeBDEPostingParams_ValueChange, welches alle Informationen enthält, die zur Veränderung der Buchungsbewertung benötigt werden.

CbEditPosting

Mit Hilfe dieser Methode kann eine Buchung die im übergebenen TBeTimeRecordingBO positioniert ist in den Bearbeitungs-Modus versetzt werden.

Parameter

Beschreibung

aTimeRecordingBO:O

Positioniertes TBeTimeRecordingBO

CbPostPosting

Mit Hilfe dieser Methode kann eine sich im Bearbeitungs-Modus befindliche Buchung gespeichert werden.

Parameter

Beschreibung

aTimeRecordingBO:O

Positioniertes TBeTimeRecordingBO

aPostingUseContext:N

Legt fest in welcher Buchungssituation (Live-Buchung, Buchungsveränderung, Nachbuchung) die Buchung gespeichert werden soll. Dies ist notwendig, um die entsprechenden Rechte für Buchungszeiträume usw. korrekt prüfen zu können.

  • pucLivePosting - Wird verwendet, wenn es sich um die Implementierung eines BDE-Terminals handelt, an dem Personen aktiv Buchungen auslösen können.

  • pucPostingChange - Wird verwendet, wenn es sich um die Veränderung einer bestehenden Buchung handelt.

  • pucSubsequentPosting - Wird verwendet, wenn es sich um das speichern einer eben erstellten Nachbuchung handelt.

aIgnoreBDERightsSettings:L

Dieser Parameter erlaubt es dem Cb-Programmierer die BDE-Spezifischen Rechte beim Speichern einer Buchung zu ignorieren.

CbDeletePosting

Mit Hilfe dieser Methode kann eine BDE-Buchung (PZE/MDE) gelöscht werden.

Parameter

Beschreibung

aTimeRecordingBO:O

Auf zu löschende Buchung positioniertes TBeTimeRecordingBO

aChangeReservedQuantities:L

Dieser Parameter bestimmt, ob die durch eine FA-Buchung erfassten Mengen im Produktionsauftrag wieder Reserviert werden sollen.

aIgnoreBDERightsSettings:L

Dieser Parameter erlaubt es dem Cb-Programmierer die BDE-Spezifischen Rechte beim Löschen einer Buchung zu ignorieren.

Beispiel

CODE
//##############################################################################
//##############################################################################
// Beschreibung: Dieses Programm enthält Beispiele wie mit dem
//               TBeBDEBusinessController und dem TBeTimeRecordingBO neue
//               BDE-Buchungen (PZE/MDE) erstellt, verändert und gelöscht werden
//               können.
//##############################################################################
//##############################################################################
| m_cTestProdOrdPos, m_oDM, m_oBDEBC, m_oTimeRecordingBO, m_oDTH |

//##############################################################################
//##############################################################################
// Konstanten
//##############################################################################
//##############################################################################

m_cTestProdOrdPos := '600614  001', // Existierenden Auftrag für den Test der
                                    // Buchungsfunktionen eintragen.


//******************************************************************************
// Beispiel wie eine BDE-Buchung auf einen Fertigungsauftrag gestartet werden
// kann.
//******************************************************************************
function StartNewPosting()
| oPostingParams_Start, dStartTimeStamp:DT |
   // Zum Starten einer neuen Buchung, muss ein PostingParamsObject vom BDEBC
   // geholt werden.
   oPostingParams_Start := m_oBDEBC.CbStartNewPostingParamsObject(m_oTimeRecordingBO),

   // Buchungsparameter können jetzt im erzeugten Parameter-Objekt gesetzt
   // werden. Nicht benötigte Parameter müssen nicht gesetzt werden, da diese
   // mit Defaultwerten vorbelegt sind.
   oPostingParams_Start.CbPostingUseContext       := pucSubsequentPosting, // Nachbuchung
   oPostingParams_Start.CbIgnoreBDERightsSettings := False,                // BDE-Rechte nicht ignorieren
   oPostingParams_Start.CbResourceType            := prtPerson,             // Personenbuchung
   oPostingParams_Start.CbPostingType             := ptProductionTime,     // Stückzeitpbuchung
   oPostingParams_Start.CbPostingCode             := 0,
   oPostingParams_Start.CbEmployeeNo              := 1,
//   oPostingParams_Start.CbResourceID
//   oPostingParams_Start.CbPostedByEmployeeNo
   oPostingParams_Start.CbProdOrderPosNo          := m_cTestProdOrdPos,
//   oPostingParams_Start.CbArticleNo  //Artikelnummer für Kundenaufträge buchen
//   oPostingParams_Start.CbCustomerOrderNo  // Auftragsnummer für Kundenaufträge buchen
//   oPostingParams_Start.CbActivityType //Tätigkeitstyp für Kundenaufträge buchen
   oPostingParams_Start.CbComment                 := 'Über TBeBDEBusinessController erstellte Stückzeitbuchung',

   // Der Startzeitpunkt muss über einen TBeCbDateTime-Wert mit passender
   // Prezision gesetzt werden.
   // • Personen können nur Minutengenau buchen (precMinutes)
   // • Maschinen können Millisekundengenau buchen (precMilSeconds)
   dStartTimeStamp                       := m_oDTH.InitDateTime(precMinutes),
   dStartTimeStamp.DateTime              := Now() - 1/24, // Jetzt vor einer Stunde
   oPostingParams_Start.CbStartTimeStamp := dStartTimeStamp,

   // Buchung erzeugen
   m_oBDEBC.CbStartNewPosting(m_oTimeRecordingBO, oPostingParams_Start),
end,

//******************************************************************************
// Beispiel wie eine offene BDE-Buchung abgeschlossen werden kann.
//******************************************************************************
function FinishPosting()
| oPostingParams_Finish, dEndTimeStamp:DT |

   // Zum abschließen einer neuen Buchung, muss ein PostingParamsObject vom BDEBC
   // geholt werden.
   oPostingParams_Finish := m_oBDEBC.CbFinishPostingParamsObject(m_oTimeRecordingBO),

   // Buchungsparameter können jetzt im erzeugten Parameter-Objekt gesetzt
   // werden. Nicht benötigte Parameter müssen nicht gesetzt werden, da diese
   // mit Defaultwerten vorbelegt sind.

   oPostingParams_Finish.CbPostingUseContext                := pucSubsequentPosting, // Nachbuchung
   oPostingParams_Finish.CbIgnoreBDERightsSettings          := False,
   oPostingParams_Finish.CbYieldQuantity                    := 1,    // Produzierte Menge
   oPostingParams_Finish.CbScrapQuantity                    := 0,    // Produzierter Ausschuss
   oPostingParams_Finish.CbScrapCode                        := 0,    // Code zur identifizierung weshalb der Ausschuss entstanden ist.
   oPostingParams_Finish.CbIntegratedTroubleDurationSeconds := 0,    // Buchung enthält keine Störzeit
   oPostingParams_Finish.CbIntegratedTroubleCode            := 0,    // Code zur identifizierung des Störungs-Grunds.
   oPostingParams_Finish.CbSubtractIntegratedTroubleTime    := sitmUseDefault, // Ob eine Störzeit in die Bewertung einfließt, soll durch die Einstellung des genutzten Codes bestimmt werden.

   // Erweiterung des vorherigen Buchungs-Kommentars
   oPostingParams_Finish.CbComment := oPostingParams_Finish.CbComment + crlf +
                                      'Durch TBeBDEBusinessController abgeschlossene Buchung',

   // Der Endzeitpukt muss über einen TBeCbDateTime-Wert mit passender
   // Prezision gesetzt werden.
   // • Personen können nur Minutengenau buchen (precMinutes)
   // • Maschinen können Millisekundengenau buchen (precMilSeconds)
   dEndTimeStamp                        := m_oDTH.InitDateTime(precMinutes),
   dEndTimeStamp.DateTime               := Now() - (1/24)/2, // Jetzt vor einer halben Stunde
   oPostingParams_Finish.CbEndTimeStamp := dEndTimeStamp,

   // Buchung abschließen
   m_oBDEBC.CbFinishPosting(m_oTimeRecordingBO, oPostingParams_Finish),
end,

//******************************************************************************
// Schließt die sich in Bearbeitung befindliche Buchung ab. Hierbei wird
// auch das Cb-Event ausgelöst.
//******************************************************************************
function PostPosting()
   m_oBDEBC.CbPostPosting(m_oTimeRecordingBO,   // Zu speichernde Buchung
                          pucSubsequentPosting, // Rechteprüfung für die Erstellung einer Nachbuchung
                          False),               // Rechteprüfung nicht ignorieren
end,

//******************************************************************************
// Beispiel wie eine Bewertungsänderung für eine Buchung durchgeführt werden
// kann.
//******************************************************************************
function PostingValueChange()
| oPostingParams_ValueChange |
   // Für die Bewertungsänderung muss die Buchung bereits im Bearbeitungsmodus
   // sein.
   if m_oTimeRecordingBO.CbInBrowseMode() then
      m_oBDEBC.CbEditPosting(m_oTimeRecordingBO),
   endif,

   // Zum Verändern einer Buchungsbewertung, muss ein PostingParamsObject vom
   // BDEBC geholt werden.
   oPostingParams_ValueChange := m_oBDEBC.CbChangePostingValueParamsObject(m_oTimeRecordingBO),

   // Buchungsparameter können jetzt im erzeugten Parameter-Objekt gesetzt
   // werden. Nicht benötigte Parameter müssen nicht gesetzt werden, da diese
   // mit den aktuell in der Buchung gesetzten Werten vorbelegt sind.

   oPostingParams_ValueChange.CbCostCorrectionAbsolute      := 1.5, // Buchungswert um 1.5 € verringern
   oPostingParams_ValueChange.CbCostCorrectionInPercent     := 0.9, // Nur 90 % der Buchung sollen in die Kosten einfließen
   oPostingParams_ValueChange.CbDurationCorrectionAbsolute  := 0,   // Keine Zeitkorrektur
   oPostingParams_ValueChange.CbDurationCorrectionInPercent := 0,   // Keine Zeitkorrektur

   // Erweiterung des vorherigen Buchungskommentars
   oPostingParams_ValueChange.CbComment := oPostingParams_ValueChange.CbComment + crlf +
                                           'Durch TBeBDEBusinessController veränderte Bewertung',

   // Verändern der Buchungsbewertung
   m_oBDEBC.CbChangePostingValue(m_oTimeRecordingBO, oPostingParams_ValueChange),

   // Speichern der veränderten Buchungsbewertung
   m_oBDEBC.CbPostPosting(m_oTimeRecordingBO,
                          pucPostingChange, // Berechtigungen zum Verändern einer Buchung prüfen
                          False),           // Rechteprüfung nicht ignorieren
end,

//******************************************************************************
// Beispiel wie eine Buchung gelöscht werden kann.
//******************************************************************************
function DeletePosting()
   m_oBDEBC.CbDeletePosting(m_oTimeRecordingBO,
                            True,   // Gebuchte Mengen wieder Reservieren
                            False), // Rechteprüfung nicht ignorieren
end,

//##############################################################################
//##############################################################################
// Hauptprogramm
//##############################################################################
//##############################################################################

startseq



   m_oDM := CreateObject('TBeDBGet'),
   startseq
      // CbDateTimeHelper erzeugen. Dieser wird für das erstellen von
      // BeDateTime-Werten benötigt.
      m_oDTH := CreateObject('TBeCbDateTimeHelper', 'DTH', m_oDM, m_oDM),

      // BusinessController und TimeRecordingBO erzeugen
      m_oBDEBC           := CreateObject('TBeBDEBusinessController', 'TIMEBC', m_oDM, m_oDM),
      m_oTimeRecordingBO := CreateObject('TBeTimeRecordingBO',       'TIMEBO', m_oDM, m_oDM),

      // Datenmodul zuweisen
      m_oBDEBC.CbDataModule           := m_oDM,
      m_oTimeRecordingBO.CbDataModule := m_oDM,

      // Für jede weitere Aktion ist eine Transaktion notwendig, daher wird diese
      // jetzt gestartet.
      DBStartTrans(m_oDM.ADSConnection),
      startseq
         // Eine Buchung starten
         StartNewPosting(),

         // Eine Buchung abschließen
         FinishPosting(),

         // Angelegte und abgeschlossene Buchung speichern
         PostPosting(),

         // Eine Buchung anders bewerten
         PostingValueChange(),

         // Eine Buchung löschen
         DeletePosting(),

         // Da es sich um ein Beispielprogramm handelt, wird kein Commit durchgeführt
//         DBCommit(m_oDM.ADSConnection),
      always
         if DBInTrans(m_oDM.ADSConnection) then
            DBRollback(m_oDM.ADSConnection),
         endif,
      stopseq,
   always
      DestroyObject(m_oDM),
   stopseq,
onerror
   MessageDlg(GetErrorText() + crlf + crlf + DebugArr(GetErrorStack(true)), mtError),
stopseq,

Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.