Skip to main content
Skip table of contents

TBeBDECodesBO

TBeBDECodesBO

Die Klasse TBeBDECodesBO kapselt Zugriffe auf die BDE-Codes (DabBDC).

Funktionen


CbGoToCode(aCode:N)

Positioniert das BO auf den übergebenen Code

aCode:N

Code / Schlüssel


Tabellen und Felder


CbID:N

Datensatz-ID
(DABBDC:ID) (nur lesender Zugriff)

CbCreatedBy:D

Erstellt am / um
(DABBDC:ERSTELLT)

CbCreated:C

Erstellt durch
(DABBDC:PLATZ)

CbChangedBy:D

Zuletzt geändert am / um
(DABBDC:GEAENDERT)

CbChanged:C

Zuletzt geändert durch
(DABBDC:GEAEND_USR)

CbCode:N

Code / Schlüssel -
Eindeutiger, frei vergebbarer Code / Schlüssel zur Identifikation des Buchungs-Codes / Störgrunds / Ausschussgrunds.
Nummern im Bereich der System-"BDE-Codes" können vom Benutzer nicht vergeben oder geändert werden.
Sofern ein Code verwendet wird, kann dieser nicht mehr geändert werden, um die Nachvollziehbarkeit von bestehenden Buchungen nicht zu gefährden.
(DABBDC:CODE)

CbDescription:C

Bezeichnung -
Bezeichnung des Codes zur Anzeige an den Verwendungsstellen (z.B. BDE-Buchungserfassung).
Die Bezeichnung sollte kurz und prägnant gewählt werden, damit diese im Buchungsprozess schnell erfasst werden kann.
(DABBDC:BEZ)

CbIsActive:L

Aktiv, freigeg. zur Nutzung -
Definiert, ob der Code zur Verwendung in Buchungsprozessen aktuell freigegeben ist.
Sofern ein Code nicht zur Nutzung freigegeben ist, ist dieser in den Buchungs-Erfassung-Oberflächen nicht verfügbar, in bestehenden Buchungen aber schon.
Hiermit kann ein Code "stillgelegt" werden, der aufgrund der bereits erfolgten Verwendung nicht mehr gelöscht werden kann.
(DABBDC:AKTIV)

CbComment:C

Kommentar -
Langtext zur detaillierten Beschreibung des Codes.
(DABBDC:MEMO)

CbAllowPostingCodeForPostingTypes:C

Nutzbar als Buchungs-Code -
Definiert, für welche Buchungstypen dieser Code als "Buchungscode" (Dab340:BUCH_CODE) genutzt werden kann.
Maßgeblich relevant für Buchungen der Typen "Service", "Störung" und "Stillstand" zur weiteren Qualifizierung des Buchungsvorgangs.
(DABBDC:BUCH_CODE)

CbAllowTroubleCodeForPostingTypes:C

Nutzbar als integr. Störcode -
Definiert, für welche Buchungstypen dieser Code für die Erfassung von "integrierten Störungen" (Dab340:STOER_CODE) genutzt werden kann.
(DABBDC:STOER_CODE)

CbSubtractTroubleTimePreset:L

Vorbeleg. "Störzeit abziehen" -
Sofern dieser Code als "integrierter Störcode" genutzt in einer Buchung erfasst wird, definiert das Feld DabBDC:STOER_ABZ die Vorbelegung von Dab340:STOER_ABZ.
Das Feld ist nur relevant für die Erfassung von integrierten Störungen
(DABBDC:STOER_ABZ)

CbAllowScrapCodeForPostingTypes:C

Nutzbar als Ausschuss-Code -
Definiert, für welche Buchungstypen dieser Code als Qualifizierung für eine Ausschuss-Meldung (Dab340:AUSS_CODE) genutzt werden kann.
(DABBDC:AUSS_CODE)

CbIsSystemCode:L

Gibt zurück, ob es sich bei dem positionierten Code um einen System-Code handelt -
(nur "lesender" Zugriff)

Beispiel

CODE

//##############################################################################
//##############################################################################
// Beschreibung: Dieses Programm legt zur Demonstration des BDEBusinessObjects
//               einen BDE Code an, verändert diesen und entfernt ihn
//               anschließend wieder
//##############################################################################
//##############################################################################
| m_oDM |

//******************************************************************************
// Behandelt Fehler je nach Typen. Liefert zurück, ob der übergebene Fehler
// bereits behandelt wurde
//******************************************************************************
function HandleException(oError)
   Result := False, // Fehler noch nicht behandelt

   // Prüfen ob ein Code nicht gefunden werden konnte
   if ClassOf(oError, 'EBeCustomDBBoIDNotFoundException') or
      ClassOf(oError, 'EBeBDECodesBO') then
      Result := True, // Fehler wurde behandelt

      // Schöne Meldung ausgeben
      SetError(GetErrorText(oError) + crlf + crlf +
               ArrToStr(GetErrorStack(True))),
   endif,
end,

//******************************************************************************
// Erstellt einen neuen BDE Code
//******************************************************************************
function CreateNewBDECode(oDM, nCode, cDescription, bIsActive, cComment)
| oBDECBC, oBDECodesBO |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         // Anlegen eines neuen Codes ******************************************
         DBStartTrans(oDM.ADSConnection),
         startseq
            oBDECBC.BDECode_Insert(oBDECodesBO),
            oBDECodesBO.CbCode        := nCode,
            oBDECodesBO.CbDescription := cDescription,
            oBDECodesBO.CbIsActive    := bIsActive,
            oBDECodesBO.CbComment     := cComment,
            oBDECBC.BDECode_Post(oBDECodesBO),

            DBCommit(oDM.ADSConnection),
         always
            if DBInTrans(oDM.ADSConnection) then
               DBRollback(oDM.ADSConnection),
            endif,
         stopseq,
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

//******************************************************************************
// Editiert einen BDE Code
//******************************************************************************
function EditBDECode(oDM, nCode, cDescription, bIsActive, cComment)
| oBDECBC, oBDECodesBO, oError |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         startseq
            oBDECodesBO.CbGoToCode(nCode), // Code positionieren -> Wirft einen Fehler wenn der Code nicht existiert

            // Verändern des Codes
            DBStartTrans(oDM.ADSConnection),
            startseq
               oBDECBC.BDECode_Edit(oBDECodesBO),
               oBDECodesBO.CbCode        := nCode,
               oBDECodesBO.CbDescription := cDescription,
               oBDECodesBO.CbIsActive    := bIsActive,
               oBDECodesBO.CbComment     := cComment,
               oBDECBC.BDECode_Post(oBDECodesBO),

               DBCommit(oDM.ADSConnection),
            always
               if DBInTrans(oDM.ADSConnection) then
                  DBRollback(oDM.ADSConnection),
               endif,
            stopseq,
         onerror
            if not HandleException(GetErrorObj()) then
               Raise(),
            endif,
         stopseq
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

//******************************************************************************
// Löscht einen BDE Code
//******************************************************************************
function DeleteBDECode(oDM, nCode)
| oBDECBC, oBDECodesBO, oError |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         startseq
            oBDECodesBO.CbGoToCode(nCode), // Code positionieren -> Wirft einen Fehler wenn der Code nicht existiert

            // Verändern des Codes
            DBStartTrans(oDM.ADSConnection),
            startseq
               oBDECBC.BDECode_Delete(oBDECodesBO),
               DBCommit(oDM.ADSConnection),
            always
               if DBInTrans(oDM.ADSConnection) then
                  DBRollback(oDM.ADSConnection),
               endif,
            stopseq,
         onerror
            if not HandleException(GetErrorObj()) then
               SetError(GetErrorText() + crlf + crlf + ArrToStr(GetErrorStack(True))),
            endif,
         stopseq
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

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

m_oDM := CreateObject('TBeDBGet', 'TESTGET'),
startseq
   // Erstellten eines Test BDE Codes
   CreateNewBDECode(m_oDM,
                    1234,
                    'Test BDE Code',
                    False,
                    'Dieser BDE Code ist ein Test'),
   // Verändern des Test BDE Codes
   EditBDECode(m_oDM,
               1234,
               'Veränderter Test BDE Code',
               True,
               'Dieser BDE Code ist ein veränderter Test'),

   // Löschen des Test BDE Codes
   DeleteBDECode(m_oDM, 1234),

   // Versuch einen System-Code zu löschen
//   DeleteBDECode(m_oDM, -11),

   // Versuch einen nicht existierenden Code zu Löschen
//   DeleteBDECode(m_oDM, -9999),
always
   DestroyObject(m_oDM),
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.