---
id: object/codeunit/20143
type: object
title: Codeunit 20143 "Lookup Serialization"
summary: Codeunit 20143 "Lookup Serialization" in INTaxEngine (Microsoft.Finance.TaxEngine.Core). 6 public procedures, 1 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - intaxengine
versions:
  introduced: "29"
  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: c8882192bee56b32be749b87f6368c6319a9dcdf711eed88195fea062db25e5d
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/INTaxEngine/app/TaxEngine-Core/src/Lookup/codeunit/LookupSerialization.Codeunit.al
    title: src/Apps/W1/INTaxEngine/app/TaxEngine-Core/src/Lookup/codeunit/LookupSerialization.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: 20143
name: Lookup Serialization
namespace: Microsoft.Finance.TaxEngine.Core
app: INTaxEngine
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 8
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 2
  calls: 2
  called_by: 35
  implements: 0
---

# Codeunit 20143 "Lookup Serialization"

> Codeunit 20143 "Lookup Serialization" in INTaxEngine (Microsoft.Finance.TaxEngine.Core). 6 public procedures, 1 events. Introduced in BC29, still in BC30.

INTaxEngine · Microsoft.Finance.TaxEngine.Core · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/INTaxEngine/app/TaxEngine-Core/src/Lookup/codeunit/LookupSerialization.Codeunit.al) · facts from BC29

## Events published

- `OnSerializeLookupToString(ScriptSymbolLookup: Record "Script Symbol Lookup"; var SerializedText: Text)` (integration)
  - subscribers: [Codeunit 20167 "Script Serialization"](../codeunit/20167.md) OnSerializeLookupToString, [Codeunit 20296 "Use Case Serialization"](../codeunit/20296.md) OnSerializeLookupToString

## Procedures

- `LookupToString(CaseID: Guid; ScriptID: Guid; ID: Guid): Text`
- `ConstantOrLookupText(CaseID: Guid; ScriptID: Guid; ValueType: Option Constant,Lookup; Value: Text; LookupID: Guid; Datatype: Enum "Symbol Data Type"): Text`
- `TableFilterToString(CaseID: Guid; ScriptID: Guid; ID: Guid): Text`
- `LookupTableToString(ScriptSymbolLookup: Record "Script Symbol Lookup"): Text`
- `FieldFilterToString(LookupFieldFilter: Record "Lookup Field Filter"): Text`
- `TableSortingToString(CaseID: Guid; ScriptID: Guid; ID: Guid): Text`

Plus 1 local procedures.

## 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 20130 "App Object Helper"](../codeunit/20130.md) (5 calls: `FieldFilterToString → GetFieldName`, `LookupTableToString → GetFieldName`, `LookupTableToString → GetObjectName`, …)
- [Codeunit 20132 "Script Data Type Mgmt."](../codeunit/20132.md) (2 calls: `ConstantOrLookupText → ConvertXmlToLocalFormat`, `FieldFilterToString → GetFieldDatatype`)

## Called by

- [Codeunit 20167 "Script Serialization"](../codeunit/20167.md) (23 calls: `AlertMessageToString → ConstantOrLookupText`, `ConcatenateLineToString → ConstantOrLookupText`, `ConditionItemToString → ConstantOrLookupText`, …)
- [Codeunit 20296 "Use Case Serialization"](../codeunit/20296.md) (3 calls: `AttributeTableToString → TableFilterToString`, `ComponentExprTokenToString → ConstantOrLookupText`, `TableRelationToString → TableFilterToString`)
- [Page 20142 "Script Symbol Lookup Dialog"](../page/20142.md) (2 calls: `UpdatePageControls → TableFilterToString`, `UpdatePageControls → TableSortingToString`)
- [Page 20171 "Action Loop Through Rec. Dlg"](../page/20171.md) (2 calls: `FormatLine → TableFilterToString`, `FormatLine → TableSortingToString`)
- [Page 20190 "Conditions Dialog"](../page/20190.md) (2 calls: `FormatLine → ConstantOrLookupText`, `FormatLine → LookupToString`)
- [Page 20336 "Tax Posting Setup Dialog"](../page/20336.md) (2 calls: `FormatLine → LookupToString`, `FormatLine → TableFilterToString`)
- [Codeunit 20134 "Script Symbol Store"](../codeunit/20134.md) (1 call: `GetTableFieldValue → TableSortingToString`)
- [Codeunit 20157 "Script Action Execution"](../codeunit/20157.md) (1 call: `ExecuteLoopThroughRecords → TableSortingToString`)
- [Codeunit 20346 "Tax Posting Helper"](../codeunit/20346.md) (1 call: `InsertRecordToString → ConstantOrLookupText`)
- [Page 20140 "Lookup Field Filter Dialog"](../page/20140.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20157 "Action Concatenate Subform"](../page/20157.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20158 "Action Convert Case Dialog"](../page/20158.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20159 "Action Date Calculation Dialog"](../page/20159.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20160 "Action Date To DateTime Dialog"](../page/20160.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20161 "Action Extract Date Part Dlg"](../page/20161.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20162 "Action Extract DateTime Dialog"](../page/20162.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20163 "Action Ext. Substr. From Index"](../page/20163.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20164 "Action Ext. Substr. From Pos."](../page/20164.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20165 "Action Find Date Interval Dlg"](../page/20165.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20166 "Action Find Substring Dialog"](../page/20166.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20169 "Action Length Of String Dialog"](../page/20169.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20170 "Action Loop N Times Dialog"](../page/20170.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20173 "Action Message Dialog"](../page/20173.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20174 "Action Number Calc. Dialog"](../page/20174.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20176 "Action Number Expr. Subform"](../page/20176.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20177 "Action Replace Substring Dlg"](../page/20177.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20178 "Action Round Number Dialog"](../page/20178.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20179 "Action Set Variable Dialog"](../page/20179.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20181 "Action String Expr. Subform"](../page/20181.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20283 "Switch Statements"](../page/20283.md) (1 call: `FormatLine → LookupToString`)
- [Page 20285 "Tax Component Expr. Subform"](../page/20285.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20286 "Tax Table Relation Dialog"](../page/20286.md) (1 call: `UpdatePageControls → TableFilterToString`)
- [Page 20309 "Use Case Rate Column Relation"](../page/20309.md) (1 call: `FormatLine → LookupToString`)
- [Page 20335 "Tax Insert Record Subform"](../page/20335.md) (1 call: `FormatLine → ConstantOrLookupText`)
- [Page 20337 "Use Case Posting"](../page/20337.md) (1 call: `FormatLine → TableFilterToString`)

## Across versions

- Present in: BC29-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: "Lookup Serialization")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
