| Docs Hilfe
  AppSource  
Docs  /  Solution  /  Construction Base  /  Entwicklerinformationen

 Ereignisabonnenten & Verwaltungs-Codeunits


2026/09/10 • 5 Min. Lesedauer
Diese Seite richtet sich an Partner und Implementierer, die die technischen Integrationspunkte von Construction Base verstehen müssen: welche Standard-Events von Business Central bzw. MEGABAU 365 abonniert werden und was die gemeinsam genutzten Hilfs-Codeunits leisten. Sie beschreibt keine Endbenutzerfunktionen.

CB Event Handler

CB Event Handler (Codeunit CBEventHandlerNVX) ist die zentrale Sammlung von Event-Subscribern, die Construction Base mit Standardprozessen von Business Central und MEGABAU 365 verzahnt. Die Subscriber lassen sich folgenden Bereichen zuordnen.
BereichWas die Subscriber tun
Projekt-/Auftragsnachverfolgbarkeit in Fertigungs- und ArtikeljournalenSubscriber auf "Requisition Line", "Production Journal Mgt", "Item Journal Line" (OnAfterValidateEvent auf Order No.), "Item Jnl.-Post Line" sowie "Whse. Jnl.-Register Line" / "WMS Management" / "Job Jnl.-Post Line" übertragen Projektnr., Projektaufgabennr., LV-Verkaufsauftragsnr. und Bedarfsanforderungsnr. vom Fertigungsauftrag auf Artikeljournalzeilen, Artikelposten und Lagerjournalzeilen, damit die Herkunft einer Buchung durchgängig nachvollziehbar bleibt.
Verarbeitung der BedarfsanforderungDer Subscriber auf Seite "Demand RequestMGB", Event OnBeforeCreateRequisitionLines, ersetzt die Standard-Zeilenerstellung: Er erzeugt Dispositionslistenzeilen aus den Bedarfsanforderungs-Planungszeilen (Prozedur FillWorksheetLines) und legt, sofern keine Planungsvorlagen verwendet werden, je Artikel einen Fertigungsauftrag mit Beschaffungsart "Fertigungsauftrag" an bzw. aktualisiert diesen (Prozedur CreateProdOrder).
Automatik für Vorgabedimension im ProjektOnAfterInsertEvent / OnAfterModifyEvent auf Tabelle Job legen automatisch eine "Kostenstelle" an und setzen Globale Dimension 2 = Projektnr., sofern dies in der CB-Einrichtung ("Autom. Vorgabedim. 2 im Projekt") aktiviert ist.
Behandlung der Standard-LagerkorrekturSubscriber auf "Release Purchase Document", "Req. Wksh.-Make Order", "Purch.-Post", "Whse.-Purch. Release", Report "Get Source Documents" und "Whse. Jnl.-Register Line" führen den Wert CBDeliveryTypeNVX durch Dispositionsliste, Einkauf und Lagerbuchung mit und unterdrücken den Projektnr.-Filter / die Projektkalkulation / den Lagerposten für Minderungsbuchungen bei Zeilen, die als "Standard warehouse adjustment" gekennzeichnet sind.
Synchronisation Kontakt / BrancheOnAfterInsertEvent / OnAfterModifyEvent / OnAfterDeleteEvent auf "Contact Industry Group" rufen CBMgtNVX.ContactIndustryGroupMerge auf, um die Änderung an die in der Liste Kontakt Branchen Mandanten konfigurierten Mandanten zu replizieren (siehe Branchen & mandantenübergreifende Synchronisation). OnAfterReleasePurchaseDoc auf "Release Purchase Document" ruft CBMgtNVX.UpdateContactBranch auf, um aus den Artikeln eines freigegebenen Einkaufsauftrags eine Branche zu ermitteln und dem Rechnungssteller-Kontakt zuzuweisen.
Bereinigung der KontaktmerkmaleOnAfterDeleteEvent auf Tabelle Contact entfernt alle Kontaktmerkmal-Zuweisungen (CBContactContactAttributesNVX) eines gelöschten Firmenkontakts.
Sperr-Kaskade Debitor/KreditorOnAfterModifyEvent auf Debitor und Kreditor erkennen eine Änderung von Gesperrt auf bzw. von "Alle" und rufen CBMgtNVX.CustomerBlockedAll / VendorBlockedAll auf, wodurch die verknüpften Kontakte geöffnet werden, um sie gemeinsam mit dem Debitor/Kreditor zu sperren oder zu entsperren.
Projektreservierter Bestand in VerfügbarkeitswertenOnAfterCalculateNeed (Codeunit "Item Availability Forms Mgt") und OnAfterMakeEntries (Seite "Item Availability Line List") berücksichtigen den projektreservierten Bestand eines Artikels (Feld CBInventoryOnJobNVX) im Bruttobedarf bzw. in der Verfügbarkeitsaufstellung.
KreditorenzertifikateOnBeforeActionEvent auf Seite "Vendor Card", Aktion CertificatesMGB, speichert die aktuelle Kreditorennr. in CBSingleInstanceNVX, damit die Zertifikate-Seite sie übernehmen kann.

CB Global Event Handler

CB Global Event Handler (Codeunit CBGlobalEventHandlerNVX) abonniert die Codeunit "Global Triggers" (GetDatabaseTableTriggerSetup sowie OnDatabaseInsert/Modify/Delete/Rename), um die generische, mandantenübergreifende Datenspiegelung von Construction Base zu steuern: Für jede als gespiegelt markierte Tabelle (Tabelle CBMirroredTablesNVX) werden Datenbankänderungen an CBMgtNVX.StartMirror weitergegeben, welche die Änderung in den konfigurierten Zielmandanten nachvollzieht (siehe Codeunit CBRunMirrorNVX und die Funktion Datenspiegelung). Außerdem abonniert die Codeunit OnBeforePostJobExpDoc der Codeunit "Post Project ExpensesMGB", um das Buchen eines Rüstzettels mit Gerätezeilen zu blockieren, solange dessen Genehmigungsstatus nicht "Genehmigt" ist - der Durchsetzungspunkt für den automatischen Freigabeprozess.

CB Mgt

CB Mgt (Codeunit CBMgtNVX) ist die allgemeine Hilfs-Codeunit, die in Construction Base durchgängig verwendet wird. Ihre Prozeduren lassen sich folgenden Bereichen zuordnen.
BereichProzeduren / Aufgabe
Ressourcen-Team-VerwaltungCreateTeamMembersOverview, InitViewSorting und CheckTeamMemberOverlap erstellen die Team-Übersicht und erkennen bzw. lösen überlappende Team-Mitgliedschaften einer Ressource auf.
Freigabe der ProjektzeiterfassungReleaseJobTimeRec und CreateTimeSheetLine übertragen Einträge der Projektzeiterfassung in Projektaufwandszeilen (Wochenzettel/Rüstzettel) und legen dabei bei Bedarf den Wochenzettel-Kopf an bzw. aktualisieren ihn.
Datenspiegelungs-EngineMirrorIsActive, MirrorAlreadyRunning, StartMirror, SetMirrorIsRunning und TablesAreMirrored bilden die Kern-Engine der Datenspiegelung, die vom CB Global Event Handler aufgerufen wird; ContactIndustryGroupMerge und UpdateContactBranch nutzen sie speziell für Kontakt-Branchen-Daten.
Rüstzettel-FreigabeprozessSetSitePickApprovalStatus ist die zentrale Prozedur zur Änderung des Genehmigungsstatus eines Rüstzettels: Sie prüft die Berechtigung zum Genehmigen/Ablehnen, aktualisiert den Status, schreibt den Genehmigungsposten, stößt bei Genehmigung die Buchung an und versendet die Benachrichtigungs-E-Mail. TestSitePickStatusOpen (Überladungen für Kopf, Zeile und Gerätezeile), TestHasMachinery, GetOpenSitePickApprovals und GetSalesPersonSitePicks unterstützen Statusprüfungen und Rollencenter-Kennzahlen; SendSitePickEmail / AddRecipient erstellen und versenden die E-Mails für Genehmigungsanforderung/Ablehnung. Siehe automatischer Freigabeprozess.
Projekt- und LagerplatzbestandGenerateJobInventoryView, GetJobBinContents und GetBinContentNoOfJobs ermitteln und zeigen den aktuell auf einem Projekt oder in einem bestimmten Lagerplatz befindlichen Bestand, aufgeschlüsselt nach Projekt.
Rollencenter-KennzahlenGetDamageReportList, GetJobList und MarkUserJobByJobTask (Überladungen für Projekt und Projektaufwandskopf) zählen die für den aktuellen Benutzer relevanten offenen Schadensmeldungen, Projekte und Rüstzettel und öffnen sie auf Wunsch.
Rückgabeverarbeitung im RüstzettelSitePickItemReturnSuggestion, GetSitePickReturnTempItemLedgerEntry und CreateSitePickReturnSuggestionLines schlagen Materialrückgabezeilen für einen Rüstzettel (Rücklieferung) auf Basis des gebuchten Projektverbrauchs vor und legen sie an, einschließlich Chargen-/Seriennummernreservierungen (CreateReturnLineReservationEntry).
Einkaufs-/DispositionshilfenIsStandardWarehouseAdjustment, ImportTenderers/InsertTenderer und CBDeliveryTypeToDeliveryType unterstützen den Ablauf der Standard-Lagerkorrektur im Einkauf, den Import von Bietern aus den Kontakten einer Branche sowie die Umwandlung zwischen den Liefertyp-Enums von CB und MEGABAU.
ArtikelkalkulationCalculateItemCostsForItemSet berechnet den Kalkulationspreis für eine gefilterte Artikelmenge neu.
Standard-ProjektaufgabeCreateDefaultJobTask legt für ein neues Projekt eine Standard-Projektaufgabe "Gesamtes Projekt" an, sofern dies in der Projekteinrichtung aktiviert ist.
Überwachung KreditorenzertifikateGetCertificateWarning ermittelt Kreditoren aus offenen Einkaufs-LV-Aufträgen, deren Zertifikat innerhalb einer angegebenen Datumsformel abläuft oder bereits abgelaufen ist.
KontaktsperrungOpenContactBusRelation und BlockContacts öffnen die mit einem Debitor/Kreditor verknüpften Kontakte (einschließlich zugehöriger Personenkontakte) und sperren bzw. entsperren sie; wird von der oben beschriebenen Sperr-Kaskade Debitor/Kreditor verwendet.

CB Single Instance

CB Single Instance (Codeunit CBSingleInstanceNVX) ist eine SingleInstance-Codeunit, die als sitzungsbezogener Zwischenspeicher zwischen Seiten/Codeunits dient, die sich sonst keinen gemeinsamen Zustand teilen:
  • SetCurrCBTempMachineryOnJobNVX / GetCurrCBTempMachineryOnJobNVX / ModifyCurrCBTempMachineryOnJobNVX halten den temporären Zwischenspeicher "Geräte im Projekt", der von der Funktion Geräte im Projekt verwendet wird.
  • SetVendorCertificateVendorNo / GetVendorCertificateVendorNo halten die Kreditorennr., die von der Aktion Zertifikate auf der Kreditorenkarte (siehe CB Event Handler oben) an die Zertifikate-Seite übergeben wird.

Weitere Informationen




Feedback senden für
DE|EN Impressum