---
id: object/codeunit/447
type: object
title: Codeunit 447 "Record Link Management"
summary: Codeunit 447 "Record Link Management" in System Application (System.Utilities). 5 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC26.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: "26"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 9ada550d791211ad0a1e487cdbe54100a34df1d45282f3b449a8f36279db4516
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Record%20Link%20Management/src/RecordLinkManagement.Codeunit.al
    title: src/System Application/App/Record Link Management/src/RecordLinkManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 447
name: Record Link Management
namespace: System.Utilities
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "26"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 6
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 40
  implements: 0
---

# Codeunit 447 "Record Link Management"

> Codeunit 447 "Record Link Management" in System Application (System.Utilities). 5 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC26.

System Application · System.Utilities · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Record%20Link%20Management/src/RecordLinkManagement.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |
| SingleInstance | true |

## Events published

- `OnAfterCopyLinks(FromRecord: Variant; ToRecord: Variant)` (integration): Integration event for after copying links from one record to the other.

## Procedures

- `CopyLinks(FromRecord: Variant; ToRecord: Variant)`: Copies all the links from one record to the other and sets Notify to FALSE for them.
- `WriteNote(var RecordLink: Record "Record Link"; Note: Text)`: Writes the Note BLOB into the format the client code expects.
- `ReadNote(RecordLink: Record "Record Link"): Text`: Read the Note BLOB
- `RemoveLinks(RecVariant: Variant)`: Removes all record links from all records in the RecVariant within current filters
- `RemoveOrphanedLinks()`: Iterates over the record link table and removes those with obsolete record ids.

## 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 4470 "Record Link Impl."](../codeunit/4470.md) (5 calls: `CopyLinks → CopyLinks`, `ReadNote → ReadNote`, `RemoveLinks → RemoveLinks`, …)

## Called by

- [Codeunit 5139 "Job Archive Management"](../codeunit/5139.md) (7 calls: `RenameJobArchieve → CopyLinks`, `RenameJobPlanningLineArchive → CopyLinks`, `RenameJobTaskArchive → CopyLinks`, …)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (5 calls: `InsertCrMemoHeader → CopyLinks`, `InsertInvoiceHeader → CopyLinks`, `InsertReturnReceiptHeader → CopyLinks`, …)
- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (5 calls: `InsertCrMemoHeader → CopyLinks`, `InsertInvoiceHeader → CopyLinks`, `InsertReceiptHeader → CopyLinks`, …)
- [Codeunit 5063 "ArchiveManagement"](../codeunit/5063.md) (4 calls: `RestoreSalesDocument → CopyLinks`, `RestoreSalesLines → CopyLinks`, `StorePurchDocument → CopyLinks`, …)
- [Codeunit 5355 "CRM Notes Synch Job"](../codeunit/5355.md) (3 calls: `CreateCRMAnnotation → ReadNote`, `ModifyNote → ReadNote`, `ModifyNote → WriteNote`)
- [Codeunit 5988 "Serv-Documents Mgt."](../codeunit/5988.md) (3 calls: `PrepareCrMemoHeader → CopyLinks`, `PrepareInvoiceHeader → CopyLinks`, `PrepareShipmentHeader → CopyLinks`)
- [Codeunit 6041 "Service Document Archive Mgmt."](../codeunit/6041.md) (3 calls: `RestoreServiceDocument → CopyLinks`, `RestoreServiceLines → CopyLinks`, `StoreServiceDocument → CopyLinks`)
- [Table 5970 "Filed Service Contract Header"](../table/5970.md) (3 calls: `FileContract → CopyLinks`, `FileServiceContractContractServDiscounts → CopyLinks`, `FileServiceContractServiceHours → CopyLinks`)
- [Table 20406 "Qlty. Inspection Line"](../table/20406.md) (2 calls: `GetMeasurementNote → ReadNote`, `SetMeasurementNote → WriteNote`)
- [Codeunit 13 "Gen. Jnl.-Post Batch"](../codeunit/13.md) (1 call: `UpdateAndDeleteLines → RemoveLinks`)
- [Codeunit 1305 "Sales-Quote to Invoice"](../codeunit/1305.md) (1 call: `MoveLineCommentsToSalesInvoice → CopyLinks`)
- [Codeunit 1509 "Notification Entry Dispatcher"](../codeunit/1509.md) (1 call: `AddNote → WriteNote`)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (1 call: `PostApprovalEntries → CopyLinks`)
- [Codeunit 1690 "Bank Deposit-Post"](../codeunit/1690.md) (1 call: `InsertPostedBankDepositHeader → CopyLinks`)
- [Codeunit 213 "Res. Jnl.-Post Batch"](../codeunit/213.md) (1 call: `Code → RemoveLinks`)
- [Codeunit 23 "Item Jnl.-Post Batch"](../codeunit/23.md) (1 call: `HandleNonRecurringLine → RemoveLinks`)
- [Codeunit 4470 "Record Link Impl."](../codeunit/4470.md) (1 call: `CopyLinks → OnAfterCopyLinks`)
- [Codeunit 454 "Job Queue - Send Notification"](../codeunit/454.md) (1 call: `SetText → WriteNote`)
- [Codeunit 5341 "CRM Int. Table. Subscriber"](../codeunit/5341.md) (1 call: `CreateNote → WriteNote`)
- [Codeunit 5343 "CRM Sales Order to Sales Order"](../codeunit/5343.md) (1 call: `CreateNote → WriteNote`)
- [Codeunit 5348 "CRM Quote to Sales Quote"](../codeunit/5348.md) (1 call: `CreateNote → WriteNote`)
- [Codeunit 5600 "FA Insert Ledger Entry"](../codeunit/5600.md) (1 call: `CopyRecordLinksToFALedgEntry → CopyLinks`)
- [Codeunit 5704 "TransferOrder-Post Shipment"](../codeunit/5704.md) (1 call: `RunWithCheck → CopyLinks`)
- [Codeunit 5705 "TransferOrder-Post Receipt"](../codeunit/5705.md) (1 call: `RunWithCheck → CopyLinks`)
- [Codeunit 5760 "Whse.-Post Receipt"](../codeunit/5760.md) (1 call: `CreatePostedRcptHeader → CopyLinks`)
- [Codeunit 5763 "Whse.-Post Shipment"](../codeunit/5763.md) (1 call: `CreatePostedShptHeader → CopyLinks`)
- [Codeunit 5850 "Invt. Doc.-Post Receipt"](../codeunit/5850.md) (1 call: `OnRun → CopyLinks`)
- [Codeunit 5851 "Invt. Doc.-Post Shipment"](../codeunit/5851.md) (1 call: `OnRun → CopyLinks`)
- [Codeunit 5856 "TransferOrder-Post Transfer"](../codeunit/5856.md) (1 call: `RunWithCheck → CopyLinks`)
- [Codeunit 5923 "Service-Quote to Order"](../codeunit/5923.md) (1 call: `MakeOrder → CopyLinks`)
- [Codeunit 5940 "ServContractManagement"](../codeunit/5940.md) (1 call: `CreateServHeader → CopyLinks`)
- [Codeunit 5944 "SignServContractDoc"](../codeunit/5944.md) (1 call: `SignContractQuote → CopyLinks`)
- [Codeunit 7307 "Whse.-Activity-Register"](../codeunit/7307.md) (1 call: `CreateRegActivHeader → CopyLinks`)
- [Codeunit 7324 "Whse.-Activity-Post"](../codeunit/7324.md) (1 call: `CreatePostedActivHeader → CopyLinks`)
- [Codeunit 86 "Sales-Quote to Order"](../codeunit/86.md) (1 call: `OnRun → CopyLinks`)
- [Codeunit 87 "Blanket Sales Order to Order"](../codeunit/87.md) (1 call: `OnRun → CopyLinks`)
- [Codeunit 900 "Assembly-Post"](../codeunit/900.md) (1 call: `Post → CopyLinks`)
- [Codeunit 96 "Purch.-Quote to Order"](../codeunit/96.md) (1 call: `OnRun → CopyLinks`)
- [Codeunit 97 "Blanket Purch. Order to Order"](../codeunit/97.md) (1 call: `OnRun → CopyLinks`)
- [Table 904 "Assemble-to-Order Link"](../table/904.md) (1 call: `CopyAsmToNewAsmOrder → CopyLinks`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC26

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## 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 Link Management")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
