---
id: object/codeunit/702
type: object
title: Codeunit 702 "Sync.Dep.Fld-Utilities"
summary: Codeunit 702 "Sync.Dep.Fld-Utilities" in Base Application (Microsoft.Utilities). 15 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "24"
  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: 455ec3f7c69a954e4d11ad64b492e737f6f8fe09f407b48fc155f9a264abd237
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Utilities/SyncDepFldUtilities.Codeunit.al
    title: src/Layers/W1/BaseApp/Utilities/SyncDepFldUtilities.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: 702
name: Sync.Dep.Fld-Utilities
namespace: Microsoft.Utilities
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 16
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Codeunit 702 "Sync.Dep.Fld-Utilities"

> Codeunit 702 "Sync.Dep.Fld-Utilities" in Base Application (Microsoft.Utilities). 15 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24.

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

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Events published

- `OnAfterIsFieldSynchronizationDisabled(var FieldSynchronizationDisabled: Boolean)` (integration)

## Procedures

- `GetPreviousRecord(CurrentRecord: variant; var PreviousRecordRef: RecordRef): Boolean`: Gets the previous record - xRec is not the previous version of the record it is the previous record on the page. If the update was not started from page, xRec will be same as the Rec. This function MUST be called before the update of the record is done, for example from OnBeforeModify trigger.
- `IsFieldSynchronizationDisabled(): Boolean`: Check if synchronization is disabled. By default is disabled when install or upgrade is in progress. In that cases is not suitable to run synchronization.
- `SyncFields(var ObsoleteFieldValue: Boolean; var ValidFieldValue: Boolean)`
- `SyncFields(var ObsoleteFieldValue: Boolean; var ValidFieldValue: Boolean; PrevObsoleteFieldValue: Boolean; PrevValidFieldValue: Boolean)`
- `SyncFieldsCode10(var ObsoleteFieldValue: Code[10]; var ValidFieldValue: Code[10])`
- `SyncFieldsCode10(var ObsoleteFieldValue: Code[10]; var ValidFieldValue: Code[10]; PrevObsoleteFieldValue: Code[10]; PrevValidFieldValue: Code[10])`
- `SyncFieldsCode20(var ObsoleteFieldValue: Code[20]; var ValidFieldValue: Code[20])`
- `SyncFieldsCode20(var ObsoleteFieldValue: Code[20]; var ValidFieldValue: Code[20]; PrevObsoleteFieldValue: Code[20]; PrevValidFieldValue: Code[20])`
- `SyncFields(var ObsoleteFieldValue: Text; var ValidFieldValue: Text)`
- `SyncFields(var ObsoleteFieldValue: Text; var ValidFieldValue: Text; PrevObsoleteFieldValue: Text; PrevValidFieldValue: Text)`
- `SyncFields(var ObsoleteFieldValue: Date; var ValidFieldValue: Date; PrevObsoleteFieldValue: Date; PrevValidFieldValue: Date)`
- `SyncFields(var ObsoleteFieldValue: DateTime; var ValidFieldValue: DateTime; PrevObsoleteFieldValue: DateTime; PrevValidFieldValue: DateTime)`
- `SyncFields(var ObsoleteFieldValue: Integer; var ValidFieldValue: Integer)`
- `SyncFields(var ObsoleteFieldValue: Integer; var ValidFieldValue: Integer; PrevObsoleteFieldValue: Integer; PrevValidFieldValue: Integer)`
- `SyncFields(var ObsoleteFieldValue: Decimal; var ValidFieldValue: Decimal; PrevObsoleteFieldValue: Decimal; PrevValidFieldValue: Decimal)`

## 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 701 "Data Type Management"](../codeunit/701.md) (1 call: `GetPreviousRecord → GetRecordRef`)
- [Codeunit 9900 "Data Upgrade Mgt."](../codeunit/9900.md) (1 call: `IsFieldSynchronizationDisabled → IsUpgradeInProgress`)

## Across versions

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

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: "Sync.Dep.Fld-Utilities")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
