---
id: object/codeunit/20133
type: object
title: Codeunit 20133 "Script Symbols Mgmt."
summary: Codeunit 20133 "Script Symbols Mgmt." in INTaxEngine (Microsoft.Finance.TaxEngine.Core). 14 public procedures, 3 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: b87b76562e772f2397dfecd5868257aedb7d439354601efd3bd84a115e027572
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/INTaxEngine/app/TaxEngine-Core/src/Core/Codeunit/ScriptSymbolsMgmt.Codeunit.al
    title: src/Apps/W1/INTaxEngine/app/TaxEngine-Core/src/Core/Codeunit/ScriptSymbolsMgmt.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: 20133
name: Script Symbols Mgmt.
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: 20
  events: 3
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 4
  calls: 1
  called_by: 42
  implements: 0
---

# Codeunit 20133 "Script Symbols Mgmt."

> Codeunit 20133 "Script Symbols Mgmt." in INTaxEngine (Microsoft.Finance.TaxEngine.Core). 14 public procedures, 3 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/Core/Codeunit/ScriptSymbolsMgmt.Codeunit.al) · facts from BC29

## Events published

- `OnInitScriptSymbols(TaxType: Code[20]; CaseID: Guid; ScriptID: Guid; var Symbols: Record "Script Symbol" temporary)` (integration)
  - subscribers: [Codeunit 20168 "Script Symbol Handler"](../codeunit/20168.md) OnInitScriptSymbols, [Codeunit 20297 "Use Case Symbols Handler"](../codeunit/20297.md) OnInitScriptSymbols, [Codeunit 20345 "Tax Posting Handler"](../codeunit/20345.md) OnInitScriptSymbols
- `OnGetTaxType(CaseID: Guid; var TaxType: Code[20]; var Handled: Boolean; var NotFound: Boolean)` (integration)
  - subscribers: [Codeunit 20297 "Use Case Symbols Handler"](../codeunit/20297.md) OnGetTaxType
- `OnBeforeGetFormulaID(SymbolType: Enum "Symbol Type"; ID: Integer; var CanHaveFormulaID: Boolean)` (integration)

## Procedures

- `SearchSymbol(SymbolType: Enum "Symbol Type"; var ID: Integer; var Name: Text[30])`
- `GetSymbolInfo(SymbolType: Enum "Symbol Type"; ID: Integer; var Name: Text[30]; var Datatype: Enum "Symbol Data Type")`
- `GetSymbolDataType(SymbolType: Enum "Symbol Type"; ID: Integer): Enum "Symbol Data Type"`
- `GetSymbolName(SymbolType: Enum "Symbol Type"; ID: Integer): Text[30]`
- `GetSymbolFormulaID(SymbolType: Enum "Symbol Type"; ID: Integer): Guid`
- `InsertScriptSymbol(SymbolType: Enum "Symbol Type"; ID: Integer; Name: Text[30]; Datatype: enum "Symbol Data Type")`
- `InsertScriptSymbol(SymbolType: Enum "Symbol Type"; ID: Integer; Name: Text[30]; Datatype: enum "Symbol Data Type"; FormaulID: Guid)`
- `SetContext(NewTaxType: Code[20]; NewCaseID: Guid; NewScriptID: Guid)`
- `SetContext(NewCaseID: Guid; NewScriptID: Guid)`
- `GetSymbolID(SymbolType: Enum "Symbol Type"; Name: Text[30]): Integer`
- `SearchSymbolOfType(SymbolType: Enum "Symbol Type"; Datatype: Enum "Symbol Data Type"; var ID: Integer; var Name: Text[30])`
- `OpenSymbolsLookup(SymbolType: Enum "Symbol Type"; SearchText: Text; var ID: Integer; var Name: Text[30])`
- `OpenSymbolsLookupOfType(SymbolType: Enum "Symbol Type"; SearchText: Text; Datatype: Enum "Symbol Data Type"; var ID: Integer; var Name: Text[30])`
- `UseStrict()`

Plus 3 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.

- [Page 20131 "Script Symbols"](../page/20131.md) (2 calls: `OpenSymbolsLookup → (object)`, `OpenSymbolsLookupOfType → (object)`)

## Called by

- [Codeunit 20362 "Tax Json Serialization"](../codeunit/20362.md) (33 calls: `ExportTaxType → SetContext`, `ExportTaxType → UseStrict`, `WriteComponentFormulaExpression → GetSymbolName`, …)
- [Codeunit 20167 "Script Serialization"](../codeunit/20167.md) (22 calls: `ConcatenateToString → GetSymbolName`, `ConvertCaseToString → GetSymbolName`, `DateCalculationToString → GetSymbolName`, …)
- [Codeunit 20134 "Script Symbol Store"](../codeunit/20134.md) (7 calls: `GetSymbolMemberValue → GetSymbolName`, `GetSymbolValue → GetSymbolFormulaID`, `GetSymbolValue → GetSymbolName`, …)
- [Codeunit 20296 "Use Case Serialization"](../codeunit/20296.md) (5 calls: `AttributeTableToString → GetSymbolName`, `ComponentExpressionToString → GetSymbolName`, `ComponentExpressionToString → SetContext`, …)
- [Codeunit 20297 "Use Case Symbols Handler"](../codeunit/20297.md) (5 calls: `InsertTaxAttributes → InsertScriptSymbol`, `InsertTaxComponents → InsertScriptSymbol`, `InsertTaxRateColumns → InsertScriptSymbol`, …)
- [Page 20179 "Action Set Variable Dialog"](../page/20179.md) (3 calls: `FormatLine → GetSymbolDataType`, `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20336 "Tax Posting Setup Dialog"](../page/20336.md) (3 calls: `FormatLine → GetSymbolName`, `OnAfterGetCurrRecord → SetContext`, `OnAfterGetRecord → SetContext`)
- [Table 20252 "Tax Rate Column Setup"](../table/20252.md) (3 calls: `GetColumnName → OpenSymbolsLookup`, `GetColumnName → SearchSymbol`, `GetColumnName → SetContext`)
- [Codeunit 20157 "Script Action Execution"](../codeunit/20157.md) (2 calls: `OnGetSymbolDataType → GetSymbolDataType`, `OnGetSymbolDataType → SetContext`)
- [Codeunit 20298 "Use Case Variables Mgmt."](../codeunit/20298.md) (2 calls: `GetTaxAttributeValue → GetSymbolName`, `GetTaxAttributeValue → SetContext`)
- [Codeunit 20301 "Tax Document Stats Mgmt."](../codeunit/20301.md) (2 calls: `FillComponentBuffer → GetSymbolName`, `FillComponentBuffer → SetContext`)
- [Page 20142 "Script Symbol Lookup Dialog"](../page/20142.md) (2 calls: `SetCurrentRecord → SetContext`, `UpdatePageControls → GetSymbolName`)
- [Page 20156 "Action Concatenate Dialog"](../page/20156.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20158 "Action Convert Case Dialog"](../page/20158.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20159 "Action Date Calculation Dialog"](../page/20159.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20160 "Action Date To DateTime Dialog"](../page/20160.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20161 "Action Extract Date Part Dlg"](../page/20161.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20162 "Action Extract DateTime Dialog"](../page/20162.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20163 "Action Ext. Substr. From Index"](../page/20163.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20164 "Action Ext. Substr. From Pos."](../page/20164.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20165 "Action Find Date Interval Dlg"](../page/20165.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20166 "Action Find Substring Dialog"](../page/20166.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20169 "Action Length Of String Dialog"](../page/20169.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20170 "Action Loop N Times Dialog"](../page/20170.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20171 "Action Loop Through Rec. Dlg"](../page/20171.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20172 "Action Loop Thr. Rec. Field"](../page/20172.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Page 20174 "Action Number Calc. Dialog"](../page/20174.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20175 "Action Number Expr. Dialog"](../page/20175.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20177 "Action Replace Substring Dlg"](../page/20177.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20178 "Action Round Number Dialog"](../page/20178.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20180 "Action String Expr. Dialog"](../page/20180.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20233 "Entity Value Factbox"](../page/20233.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Page 20234 "Entity Values"](../page/20234.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Page 20262 "Tax Component Formula Subform"](../page/20262.md) (2 calls: `ConstantOrLookupText → GetSymbolName`, `ConstantOrLookupText → SetContext`)
- [Page 20263 "Tax Component Formula Dialog"](../page/20263.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20284 "Tax Component Expr. Dialog"](../page/20284.md) (2 calls: `FormatLine → GetSymbolName`, `SetCurrentRecord → SetContext`)
- [Page 20306 "Component Calculation Dialog"](../page/20306.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Page 20307 "Use Case Attribute Mapping"](../page/20307.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Page 20309 "Use Case Rate Column Relation"](../page/20309.md) (2 calls: `FormatLine → GetSymbolName`, `FormatLine → SetContext`)
- [Codeunit 20168 "Script Symbol Handler"](../codeunit/20168.md) (1 call: `OnInitScriptSymbols → InsertScriptSymbol`)
- [Codeunit 20345 "Tax Posting Handler"](../codeunit/20345.md) (1 call: `OnInitScriptSymbols → InsertScriptSymbol`)
- [Page 20334 "Tax Insert Record Dialog"](../page/20334.md) (1 call: `SetCurrentRecord → SetContext`)

## 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: "Script Symbols Mgmt.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
