Codeunit 1550 "Record Restriction Mgt."
Base Application · System.Automation
Across versions
- BC23-25present
- BC262 procedures added, 1 events added
- BC27unchanged
- BC2816 procedures added
- BC295 procedures added
- BC301 procedures changed
Neighbourhood 6 connected objects and pages
Base Application · System.Automation · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “Restricted Record” = rimd |
Events published
OnAfterSetRestrictedRecordFiltersForRecRef(var RestrictedRecord: Record "Restricted Record"; RecordRef: RecordRef)(integration)OnBeforeCustomerCheckSalesPostRestrictions(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)(integration)OnBeforeVendorCheckPurchasePostRestrictions(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)(integration)OnBeforeCustomerCheckGenJournalLinePostRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)(integration)OnBeforeVendorCheckGenJournalLinePostRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)(integration)OnBeforeItemJournalLineCheckItemPostRestrictions(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)(integration)OnBeforeGenJournalLineCheckGenJournalLinePostRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)(integration)OnBeforeGenJournalLineCheckGenJournalLinePrintCheckRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)(integration)OnBeforeGenJournalBatchCheckGenJournalLinePostRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)(integration)OnBeforeGenJournalBatchCheckGenJournalLineExportRestrictions(var GenJournalBatch: Record "Gen. Journal Batch"; var IsHandled: Boolean)(integration)OnBeforeGenJournalLineCheckLineExportRestrictions(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)+ BC26 (integration)OnBeforeSalesHeaderCheckSalesPostRestrictions(var Sender: Record "Sales Header"; var IsHandled: Boolean)(integration)OnBeforeSalesHeaderCheckSalesReleaseRestrictions(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)(integration)OnBeforePurchaseHeaderCheckPurchasePostRestrictions(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)(integration)OnBeforePurchaseHeaderCheckPurchaseReleaseRestrictions(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)(integration)OnBeforeIncomingDocCheckSetForOCRRestrictions(var IncomingDocument: Record "Incoming Document"; var IsHandled: Boolean)(integration)OnBeforeIncomingDocCheckReleaseRestrictions(var Sender: Record "Incoming Document"; var IsHandled: Boolean)(integration)OnBeforeIncomingDocCheckCreateDocRestrictions(var IncomingDocument: Record "Incoming Document"; var IsHandled: Boolean)(integration)OnRestrictRecordUsageOnBeforeSetFilter(var RestrictedRecord: Record "Restricted Record"; RecordReference: RecordRef)(integration)OnAllowRecordUsageOnBeforeSetFilter(var RestrictedRecord: Record "Restricted Record"; RecordReference: RecordRef)(integration)OnUpdateRestrictionOnBeforeSetFilter(var RestrictedRecord: Record "Restricted Record"; RecordReference: RecordRef; xRecordReference: RecordRef)(integration)OnCheckRecordHasUsageRestrictionsOnBeforeSetFilter(var RestrictedRecord: Record "Restricted Record"; RecordReference: RecordRef)(integration)
Event subscriptions
- RestrictGenJournalLineAfterInsert subscribes to Table “Gen. Journal Line” OnAfterInsertEvent
- RestrictGenJournalLineAfterModify subscribes to Table “Gen. Journal Line” OnAfterModifyEvent
- RestrictItemJournalLineAfterInsert subscribes to Table “Item Journal Line” OnAfterInsertEvent
- RestrictItemJournalLineAfterModify subscribes to Table “Item Journal Line” OnAfterModifyEvent
- RestrictRequisitionLineAfterInsert subscribes to Table “Requisition Line” OnAfterInsertEvent
- RestrictRequisitionLineAfterModify subscribes to Table “Requisition Line” OnAfterModifyEvent
- RestrictVendorBankAccountAfterInsert subscribes to Table “Vendor Bank Account” OnAfterInsertEvent
- RestrictVendorBankAccountAfterModify subscribes to Table “Vendor Bank Account” OnAfterModifyEvent
- CustomerCheckSalesPostRestrictions subscribes to Table “Sales Header” OnCheckSalesPostRestrictions
- VendorCheckPurchasePostRestrictions subscribes to Table “Purchase Header” OnCheckPurchasePostRestrictions
- CustomerCheckGenJournalLinePostRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLinePostRestrictions
- VendorCheckGenJournalLinePostRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLinePostRestrictions
- ItemJournalLineCheckItemPostRestrictions subscribes to Table “Item Journal Line” OnCheckItemJournalLinePostRestrictions
- GenJournalLineCheckGenJournalLinePostRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLinePostRestrictions
- GenJournalLineCheckGenJournalLinePrintCheckRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLinePrintCheckRestrictions
- RequisitionWkshBatchCheckRequisitionWkshLinePostRestrictions subscribes to Table “Requisition Line” OnCheckRequisitionWkshLinePostRestrictions
- RequisitionWkshLineCheckRequisitionWkshLinePostRestrictions subscribes to Table “Requisition Line” OnCheckRequisitionWkshLinePostRestrictions
- CheckPrintRestrictionsBeforeInsertCheckLedgerEntry subscribes to Table “Check Ledger Entry” OnBeforeInsertEvent
- CheckPrintRestrictionsBeforeModifyCheckLedgerEntry subscribes to Table “Check Ledger Entry” OnBeforeModifyEvent
- GenJournalBatchCheckGenJournalLinePostRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLinePostRestrictions
- GenJournalBatchCheckGenJournalLineExportRestrictions subscribes to Table “Gen. Journal Batch” OnCheckGenJournalLineExportRestrictions
- GenJournalLineCheckLineExportRestrictions subscribes to Table “Gen. Journal Line” OnCheckGenJournalLineExportRestrictions
- ItemJournalBatchCheckItemJournalLinePostRestrictions subscribes to Table “Item Journal Line” OnCheckItemJournalLinePostRestrictions
- SalesHeaderCheckSalesPostRestrictions subscribes to Table “Sales Header” OnCheckSalesPostRestrictions
- SalesHeaderCheckSalesReleaseRestrictions subscribes to Table “Sales Header” OnCheckSalesReleaseRestrictions
- PurchaseHeaderCheckPurchasePostRestrictions subscribes to Table “Purchase Header” OnCheckPurchasePostRestrictions
- PurchaseHeaderCheckPurchaseReleaseRestrictions subscribes to Table “Purchase Header” OnCheckPurchaseReleaseRestrictions
- RemoveCustomerRestrictionsBeforeDelete subscribes to Table “Customer” OnBeforeDeleteEvent
- RemoveVendorRestrictionsBeforeDelete subscribes to Table “Vendor” OnBeforeDeleteEvent
- RemoveVendorBankAccountRestrictionsBeforeDelete subscribes to Table “Vendor Bank Account” OnBeforeDeleteEvent
- RemoveItemRestrictionsBeforeDelete subscribes to Table “Item” OnBeforeDeleteEvent
- RemoveGenJournalLineRestrictionsBeforeDelete subscribes to Table “Gen. Journal Line” OnBeforeDeleteEvent
- RemoveGenJournalBatchRestrictionsBeforeDelete subscribes to Table “Gen. Journal Batch” OnBeforeDeleteEvent
- RemoveItemJournalBatchRestrictionsBeforeDelete subscribes to Table “Item Journal Batch” OnBeforeDeleteEvent
- RemoveRequisitionWkshBatchRestrictionsBeforeDelete subscribes to Table “Requisition Wksh. Name” OnBeforeDeleteEvent
- RemoveSalesHeaderRestrictionsBeforeDelete subscribes to Table “Sales Header” OnBeforeDeleteEvent
- RemovePurchaseHeaderRestrictionsBeforeDelete subscribes to Table “Purchase Header” OnBeforeDeleteEvent
- UpdateGenJournalLineRestrictionsAfterRename subscribes to Table “Gen. Journal Line” OnAfterRenameEvent
- UpdateItemJournalLineRestrictionsAfterRename subscribes to Table “Item Journal Line” OnAfterRenameEvent
- UpdateRequisitionWkshLineRestrictionsAfterRename subscribes to Table “Requisition Line” OnAfterRenameEvent
- UpdateVendorBankAccountRestrictionsAfterRename subscribes to Table “Vendor Bank Account” OnAfterRenameEvent
- IncomingDocCheckSetForOCRRestrictions subscribes to Table “Incoming Document” OnCheckIncomingDocSetForOCRRestrictions
- IncomingDocCheckReleaseRestrictions subscribes to Table “Incoming Document” OnCheckIncomingDocReleaseRestrictions
- UpdateGenJournalBatchRestrictionsAfterRename subscribes to Table “Gen. Journal Batch” OnAfterRenameEvent
- UpdateItemJournalBatchRestrictionsAfterRename subscribes to Table “Item Journal Batch” OnAfterRenameEvent
- UpdateRequisitionWkshBatchRestrictionsAfterRename subscribes to Table “Requisition Wksh. Name” OnAfterRenameEvent
- UpdateSalesHeaderRestrictionsAfterRename subscribes to Table “Sales Header” OnAfterRenameEvent
- UpdatePurchaseHeaderRestrictionsAfterRename subscribes to Table “Purchase Header” OnAfterRenameEvent
- IncomingDocCheckCreateDocRestrictions subscribes to Table “Incoming Document” OnCheckIncomingDocCreateDocRestrictions
- CheckRecordRestrictionOnBeforeModifyJobQueueEntry subscribes to Table “Job Queue Entry” OnBeforeModifyEvent
- CheckRecordRestrictionOnBeforeDeleteJobQueueEntry subscribes to Table “Job Queue Entry” OnBeforeDeleteEvent
Procedures
RestrictRecordUsage(RecVar: Variant; RestrictionDetails: Text)AllowGenJournalBatchUsage(GenJournalBatch: Record "Gen. Journal Batch")AllowItemJournalBatchUsage(ItemJournalBatch: Record "Item Journal Batch")AllowFAJournalBatchUsage(FAJournalBatch: Record "FA Journal Batch")AllowRequisitionWkshUsage(RequisitionWkshName: Record "Requisition Wksh. Name")+ BC28AllowRecordUsage(RecVar: Variant)UpdateRestriction(RecVar: Variant; xRecVar: Variant)CheckRecordHasUsageRestrictions(RecVar: Variant)
Plus 7 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 1535 “Approvals Mgmt.” (5 calls:
RestrictBankAccount → IsVendorBankApprovalsWorkflowEnabled,RestrictGenJournalLine → IsGeneralJournalBatchApprovalsWorkflowEnabled,RestrictGenJournalLine → IsGeneralJournalLineApprovalsWorkflowEnabled, …)
Called by
- Codeunit 1521 “Workflow Response Handling” (7 calls:
AllowRecordUsage → AllowFAJournalBatchUsage,AllowRecordUsage → AllowGenJournalBatchUsage,AllowRecordUsage → AllowItemJournalBatchUsage, …) - Codeunit 6280 “Sust. Workflow Event Handling” (6 calls:
AllowSustJournalBatchUsage → AllowRecordUsage,CheckRecordHasUsageRestrictions → CheckRecordHasUsageRestrictions,RemoveSustJournalBatchRestrictionsBeforeDelete → AllowRecordUsage, …) - Codeunit 1535 “Approvals Mgmt.” (3 calls:
PostApprovalEntriesMoveGenJournalBatch → AllowRecordUsage,PostApprovalEntriesMoveItemJournalBatch → AllowRecordUsage,PostApprovalEntriesMoveRequisitionWkshBatch → AllowRecordUsage) - Table 1504 “Workflow Step Instance” (1 call:
RemoveRecordRestrictions → AllowRecordUsage) - Table 81 “Gen. Journal Line” (1 call:
RestrictGenJournalLine → RestrictRecordUsage) - Table 83 “Item Journal Line” (1 call:
RestrictItemJournalBatch → RestrictRecordUsage)
Recent changes
- 2026-10-01 #11609 [Main]-Reduce redundant record restriction checks in item journal line (main, BC30, performance)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Record Restriction Mgt."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.