---
id: object/codeunit/9180
type: object
title: Codeunit 9180 "Generic Chart Mgt"
summary: Codeunit 9180 "Generic Chart Mgt" in Base Application (System.Visualization). 32 public procedures, 1 event subscribers. 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: 0badd2d35db22e63c61329a498031b9bd74ac0728b88abd7cd1cd2bafe06f86f
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/GenericChart/GenericChartMgt.Codeunit.al
    title: src/Layers/W1/BaseApp/System/GenericChart/GenericChartMgt.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: 9180
name: Generic Chart Mgt
namespace: System.Visualization
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: 55
  events: 0
  subscribers: 1
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 5
  called_by: 3
  implements: 0
---

# Codeunit 9180 "Generic Chart Mgt"

> Codeunit 9180 "Generic Chart Mgt" in Base Application (System.Visualization). 32 public procedures, 1 event subscribers. Present since at least BC23, still in BC30.

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

## Event subscriptions

- CustomizeChart subscribes to Codeunit "System Action Triggers" CustomizeChart

## Procedures

- `RetrieveXML(var Chart: Record Chart; var TempGenericChartSetup: Record "Generic Chart Setup" temporary; var TempGenericChartYAxis: Record "Generic Chart Y-Axis" temporary; var TempGenericChartCaptionsBuf: Record "Generic Chart Captions Buffer" temporary; var TempGenericChartMemoBuf: Record "Generic Chart Memo Buffer" temporary; var TempGenericChartFilter: Record "Generic Chart Filter" temporary)`
- `FillChartHelper(var chartBuilder: DotNet BusinessChartBuilder; TempGenericChartSetup: Record "Generic Chart Setup" temporary; var TempGenericChartYAxis: Record "Generic Chart Y-Axis" temporary; var TempGenericChartFilter: Record "Generic Chart Filter" temporary; var TempGenericChartCaptionsBuf: Record "Generic Chart Captions Buffer" temporary; var TempGenericChartMemoBuf: Record "Generic Chart Memo Buffer" temporary)`
- `SaveChanges(var Chart: Record Chart; TempGenericChartSetup: Record "Generic Chart Setup" temporary; var TempGenericChartYAxis: Record "Generic Chart Y-Axis" temporary; var TempGenericChartFilter: Record "Generic Chart Filter" temporary; var TempGenericChartCaptionsBuf: Record "Generic Chart Captions Buffer" temporary; var TempGenericChartMemoBuf: Record "Generic Chart Memo Buffer" temporary)`
- `LookUpObjectId(ObjType: Option " ","Table","Query"; var ObjID: Integer; var ObjName: Text[50])`
- `ValidateObjectID(ObjType: Option " ","Table","Query"; var ObjID: Integer; var ObjName: Text[50])`
- `ValidateFieldColumn(TempGenericChartSetup: Record "Generic Chart Setup" temporary; var FieldColumnNo: Integer; FieldColumnName: Text[80]; var FieldCaption: Text[250]; Category: Integer; FilteringLookup: Boolean; var Aggregation: Option "None","Count","Sum","Min","Max",Avg)`
- `RetrieveFieldColumn(TempGenericChartSetup: Record "Generic Chart Setup" temporary; var No: Integer; var Name: Text[80]; var Capt: Text[250]; Category: Integer; FilteringLookup: Boolean)`
- `RetrieveFieldColumnIDFromName(ObjType: Option " ","Table","Query"; ObjID: Integer; var No: Integer; Name: Text[50])`
- `SetObjTypeRange(ObjType: Option " ","Table","Query"; var AllObjWithCaption: Record AllObjWithCaption)`
- `GetQueryColumnList(var TempGenericChartQueryColumn: Record "Generic Chart Query Column" temporary; ObjID: Integer; ColFilter: Integer; FilteringLookup: Boolean)`
- `CopyChart(var SourceChart: Record Chart; TargetChartID: Code[20]; TargetChartTitle: Text[50])`
- `BuildFilterText(var FilterText: Text[250]; Inp: Text[100])`
- `FinalizeFilterText(var InTxt: Text[250])`
- `GetDescription(Chart: Record Chart): Text`
- `ChartCustomization(var TempChart: Record Chart temporary): Boolean`
- `CheckSourceTypeID(TempGenericChartSetup: Record "Generic Chart Setup" temporary; CheckSourceID: Boolean)`
- `GetQueryCountColumnName(var TempGenericChartSetup: Record "Generic Chart Setup" temporary): Text[50]`
- `CheckDataTypeAggregationCompliance(TempGenericChartSetup: Record "Generic Chart Setup" temporary; ColumnName: Text[50]; Aggregation: Option "None","Count","Sum","Min","Max",Avg)`
- `TextMLAssistEdit(var TempGenericChartCaptionsBuf: Record "Generic Chart Captions Buffer" temporary; CaptionCode: Code[10]): Text[250]`
- `MemoMLAssistEdit(var TempGenericChartMemoBuf: Record "Generic Chart Memo Buffer" temporary; MemoCode: Code[10]): Text`
- `GetUserLanguage(): Code[10]`
- `DescriptionCode(): Code[10]`
- `XAxisTitleCode(): Code[10]`
- `YAxisTitleCode(): Code[10]`
- `XAxisCaptionCode(): Code[10]`
- `ZAxisCaptionCode(): Code[10]`
- `RequiredMeasureCode(): Code[10]`
- `OptionalMeasure1Code(): Code[10]`
- `OptionalMeasure2Code(): Code[10]`
- `OptionalMeasure3Code(): Code[10]`
- `OptionalMeasure4Code(): Code[10]`
- `OptionalMeasure5Code(): Code[10]`

Plus 22 local procedures.

## 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 43 "Language"](../codeunit/43.md) (5 calls: `BuildCaptionBuf → GetLanguageCode`, `BuildMemoBuf → GetLanguageCode`, `BuildMemoMultilanguageText → GetLanguageId`, …)
- [Codeunit 9806 "Field Selection"](../codeunit/9806.md) (1 call: `RetrieveFieldColumn → Open`)
- [Page 358 "Objects"](../page/358.md) (1 call: `LookUpObjectId → (object)`)
- [Page 9186 "Generic Chart Query Columns"](../page/9186.md) (1 call: `RetrieveFieldColumn → (object)`)
- [Page 9188 "Generic Chart Customization"](../page/9188.md) (1 call: `ChartCustomization → (object)`)

## Called by

- [Page 9183 "Generic Chart Setup"](../page/9183.md) (23 calls: `CheckAggregation → CheckDataTypeAggregationCompliance`, `CheckAggregation → GetQueryCountColumnName`, `FillMatrixWhenOpenPage → GetUserLanguage`, …)
- [Page 9188 "Generic Chart Customization"](../page/9188.md) (20 calls: `CheckAggregation → CheckDataTypeAggregationCompliance`, `CheckAggregation → GetQueryCountColumnName`, `FillMatrixWhenOpenPage → GetUserLanguage`, …)
- [Page 9187 "Copy Generic Chart"](../page/9187.md) (1 call: `OnQueryClosePage → CopyChart`)

## 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: "Generic Chart Mgt")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
