---
id: object/codeunit/701
type: object
title: Codeunit 701 "Data Type Management"
summary: Codeunit 701 "Data Type Management" in Base Application (System.Reflection). 6 public procedures. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: null
  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: 84c90ccf0f07e496bff17f9bb5b96cf545a27160c262e06a7559d1f89a175e71
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/RecordConversion/DataTypeManagement.Codeunit.al
    title: src/Layers/W1/BaseApp/Modules/System/RecordConversion/DataTypeManagement.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: 701
name: Data Type Management
namespace: System.Reflection
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 6
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 45
  implements: 0
---

# Codeunit 701 "Data Type Management"

> Codeunit 701 "Data Type Management" in Base Application (System.Reflection). 6 public procedures. Present since at least BC23, still in BC30.

Base Application · System.Reflection · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/RecordConversion/DataTypeManagement.Codeunit.al) · facts from BC29

## Procedures

- `GetRecordRefAndFieldRef(RecRelatedVariant: Variant; FieldNumber: Integer; var RecordRef: RecordRef; var FieldRef: FieldRef): Boolean`
- `GetRecordRef(RecRelatedVariant: Variant; var ResultRecordRef: RecordRef): Boolean`
- `FindFieldByName(RecordRef: RecordRef; var FieldRef: FieldRef; FieldNameTxt: Text): Boolean`
- `SetFieldValue(var RecordVariant: Variant; FieldName: Text; FieldValue: Variant): Boolean`
- `ValidateFieldValue(var RecordVariant: Variant; FieldName: Text; FieldValue: Variant): Boolean`
- `InsertFieldToBuffer(var TempField: Record "Field" temporary; TableNumber: Integer; FieldNumber: Integer)`

## Triggers

OnRun

## Called by

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.

- [Table 700 "Error Message"](../table/700.md) (11 calls: `CopyFromContext → GetRecordRef`, `FieldValueIsWithinFilter → GetRecordRefAndFieldRef`, `HasErrorMessagesRelatedTo → GetRecordRef`, …)
- [Codeunit 2003 "ML Prediction Management"](../codeunit/2003.md) (7 calls: `CreateInput → GetRecordRef`, `IsDataSufficientBase → GetRecordRef`, `LoadPrediction → GetRecordRef`, …)
- [Table 1060 "Payment Service Setup"](../table/1060.md) (6 calls: `CanChangePaymentService → FindFieldByName`, `CanChangePaymentService → GetRecordRef`, `CreateReportingArgs → FindFieldByName`, …)
- [Table 130 "Incoming Document"](../table/130.md) (5 calls: `FindByDocumentNoAndPostingDate → FindFieldByName`, `FindFromIncomingDocumentEntryNo → FindFieldByName`, `GetRecordLinkText → GetRecordRef`, …)
- [Codeunit 249 "VAT Registration Log Mgt."](../codeunit/249.md) (3 calls: `CheckVIESForVATNoField → FindFieldByName`, `CheckVIESForVATNoField → GetRecordRef`, `UpdateRecordFromVATRegLog → GetRecordRef`)
- [Codeunit 5503 "Graph Mgt - Attachment Buffer"](../codeunit/5503.md) (3 calls: `GetDocumentAttachmentDocumentId → FindFieldByName`, `GetGLEntryNo → FindFieldByName`, `SetDocumentAttachmentNo → FindFieldByName`)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (2 calls: `GetKeyAsString → GetRecordRef`, `TransferFieldsWithValidate → GetRecordRef`)
- [Codeunit 1420 "Doc. Exch. Serv.- Doc. Status"](../codeunit/1420.md) (2 calls: `DefaultDocExchStatusDrillDown → FindFieldByName`, `DocExchStatusDrillDown → GetRecordRef`)
- [Codeunit 1509 "Notification Entry Dispatcher"](../codeunit/1509.md) (2 calls: `ApprovalNotificationEntryIsOutdated → GetRecordRef`, `GetTargetRecRef → GetRecordRef`)
- [Codeunit 2000 "Time Series Management"](../codeunit/2000.md) (2 calls: `FillTimeSeriesBuffer → GetRecordRef`, `HasMinimumHistoricalData → GetRecordRef`)
- [Codeunit 20404 "Qlty. Inspection - Create"](../codeunit/20404.md) (2 calls: `ApplyAllSourceFieldsToStub → GetRecordRef`, `FindExistingInspectionWithMultipleVariants → GetRecordRef`)
- [Codeunit 8800 "Custom Layout Reporting"](../codeunit/8800.md) (2 calls: `GetKeyFieldRef → FindFieldByName`, `GetNameFieldRef → FindFieldByName`)
- [Page 193 "Incoming Doc. Attach. FactBox"](../page/193.md) (2 calls: `GetIncomingDocumentRecord → GetRecordRef`, `LoadDataFromRecord → GetRecordRef`)
- [Table 560 "VAT Clause"](../table/560.md) (2 calls: `GetDescriptionByExtendedText → GetRecordRef`, `GetDocumentTypeAndLanguageCode → GetRecordRef`)
- [Table 710 "Activity Log"](../table/710.md) (2 calls: `LogActivityImplementation → GetRecordRef`, `ShowEntries → GetRecordRef`)
- [Table 77 "Report Selections"](../table/77.md) (2 calls: `GetEmailAddress → FindFieldByName`, `SendEmailDirectly → FindFieldByName`)
- [Codeunit 1002 "Job Create-Invoice"](../codeunit/1002.md) (1 call: `ReturnJobDataDependingOnTaskBillingMethod → FindFieldByName`)
- [Codeunit 1070 "MS - PayPal Standard Mgt."](../codeunit/1070.md) (1 call: `GenerateHyperlink → GetRecordRef`)
- [Codeunit 134 "Import Attachment - Inc. Doc."](../codeunit/134.md) (1 call: `CreateIncomingDocumentExtended → GetRecordRef`)
- [Codeunit 1510 "Notification Management"](../codeunit/1510.md) (1 call: `GetActionTextFor → GetRecordRef`)
- [Codeunit 1802 "Data Migration Notifier"](../codeunit/1802.md) (1 call: `ShowListEmptyNotification → GetRecordRef`)
- [Codeunit 20118 "AMC Bank Service Request Mgt."](../codeunit/20118.md) (1 call: `ShowResponseError → GetRecordRef`)
- [Codeunit 20124 "AMC Bank REST Request Mgt."](../codeunit/20124.md) (1 call: `ShowResponseError → GetRecordRef`)
- [Codeunit 20424 "Qlty. Workflow Response"](../codeunit/20424.md) (1 call: `HandleOnExecuteWorkflowResponse → GetRecordRef`)
- [Codeunit 20425 "Qlty. Workflow Approvals"](../codeunit/20425.md) (1 call: `HandleOnBeforeGetActionTextFor → GetRecordRef`)
- [Codeunit 20437 "Qlty. Notification Mgmt."](../codeunit/20437.md) (1 call: `HandleOpenDocument → GetRecordRef`)
- [Codeunit 20599 "Qlty. Misc Helpers"](../codeunit/20599.md) (1 call: `GetRecordRefFromVariant → GetRecordRef`)
- [Codeunit 248 "VAT Lookup Ext. Data Hndl"](../codeunit/248.md) (1 call: `GetField → FindFieldByName`)
- [Codeunit 5509 "Graph Mgt - Inc Doc Attachment"](../codeunit/5509.md) (1 call: `UpdateRelatedDocument → GetRecordRef`)
- [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) (1 call: `TransferFieldsWithValidate → GetRecordRef`)
- [Codeunit 5579 "Digital Voucher Impl."](../codeunit/5579.md) (1 call: `CheckIncomingDocumentChange → GetRecordRef`)
- [Codeunit 6486 "Serv. VAT Specification Mgt."](../codeunit/6486.md) (1 call: `OnGetDocumentTypeAndLanguageCode → GetRecordRef`)
- [Codeunit 700 "Page Management"](../codeunit/700.md) (1 call: `GetDefaultLookupPageIDByVar → GetRecordRef`)
- [Codeunit 702 "Sync.Dep.Fld-Utilities"](../codeunit/702.md) (1 call: `GetPreviousRecord → GetRecordRef`)
- [Codeunit 8400 "Record Set Management"](../codeunit/8400.md) (1 call: `SaveSetSingleTable → GetRecordRef`)
- [Page 1339 "EU VAT Registration No Check"](../page/1339.md) (1 call: `SetRecordRef → GetRecordRef`)
- [Page 20107 "AMC Bank Webcall Log"](../page/20107.md) (1 call: `DeleteEntriesAMC → GetRecordRef`)
- [Page 30443 "Approval Entry Overview"](../page/30443.md) (1 call: `FindNoField → FindFieldByName`)
- [Table 133 "Incoming Document Attachment"](../table/133.md) (1 call: `SetFiltersFromMainRecord → FindFieldByName`)
- [Table 1511 "Notification Entry"](../table/1511.md) (1 call: `CreateNotificationEntry → GetRecordRef`)
- [Table 18 "Customer"](../table/18.md) (1 call: `GetReferencedIds → InsertFieldToBuffer`)
- [Table 23 "Vendor"](../table/23.md) (1 call: `GetReferencedIds → InsertFieldToBuffer`)
- [Table 249 "VAT Registration Log"](../table/249.md) (1 call: `ValidateField → FindFieldByName`)
- [Table 27 "Item"](../table/27.md) (1 call: `GetReferencedIds → InsertFieldToBuffer`)
- [Table 8620 "Config. Tmpl. Selection Rules"](../table/8620.md) (1 call: `FindTemplateBasedOnRecordFields → GetRecordRef`)

## Across versions

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

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