---
id: object/table/5054
type: object
title: Table 5054 "Contact Business Relation"
summary: Table 5054 "Contact Business Relation" in Base Application (Microsoft.CRM.BusinessRelation). 6 fields, 12 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: dc4c5a2596a234dbe070791c9b720b308680b774de4d128b31a322ec15595da9
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/BusinessRelation/ContactBusinessRelation.Table.al
    title: src/Layers/W1/BaseApp/CRM/BusinessRelation/ContactBusinessRelation.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 5054
name: Contact Business Relation
namespace: Microsoft.CRM.BusinessRelation
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 6
  procedures: 22
  events: 8
  subscribers: 0
relations:
  out: 9
  referenced_by: 2
  pages: 6
  extended_by: 0
  event_subscribers: 4
  calls: 7
  called_by: 0
  implements: 0
---

# Table 5054 "Contact Business Relation"

> Table 5054 "Contact Business Relation" in Base Application (Microsoft.CRM.BusinessRelation). 6 fields, 12 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.

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

## Properties

| Property | Value |
|---|---|
| Caption | Contact Business Relation |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Contact No. | Code[20] | Specifies the contact number of the company you are assigning a business relation. | TableRelation [Table 5050 "Contact"](../table/5050.md) (Contact where(Type = const(Company))); NotBlank |
| 2 | Business Relation Code | Code[10] | Specifies the business relation code. | TableRelation [Table 5053 "Business Relation"](../table/5053.md) (Business Relation); NotBlank |
| 3 | Link to Table | Enum "Contact Business Relation Link To Table" | Specifies the name of the table to which the contact is linked. There are four possible options: &lt;blank&gt;, Vendor, Customer, and Bank Account. | enum [Enum 5057 "Contact Business Relation Link To Table"](../enum/5057.md) |
| 4 | No. | Code[20] | Specifies the number assigned to the contact in the Customer, Vendor, or Bank Account table. This field is only valid for contacts recorded as customer, vendor or bank accounts. | TableRelation [Table 18 "Customer"](../table/18.md), [Table 23 "Vendor"](../table/23.md), [Table 270 "Bank Account"](../table/270.md) (if ("Link to Table" = const(Customer)) Customer else if ("Link to Table" = const(Vendor)) Vendor else if ("Link to Table" = const("Bank Account")) "Bank Account" else if ("Link to Table" = const(Employee)) Employee) |
| 5 | Business Relation Description | Text[100] | Specifies the description for the business relation you have assigned to the contact. This field is not editable. | FlowField: lookup("Business Relation".Description where(Code = field("Business Relation Code"))); not editable |
| 6 | Contact Name | Text[100] | Specifies the name of the contact. | FlowField: lookup(Contact.Name where("No." = field("Contact No."))); not editable |

## Keys

- Key1: Contact No., Business Relation Code (clustered)
- Key2: Link to Table, No.
- Key3: Link to Table, Contact No.
- Key4: Business Relation Code

## Events published

- `OnFindOrRestoreContactBusinessRelationCaseElse(RecVar: Variant)` (integration)
- `OnGetBusinessRelationCodeFromSetupCaseElse(LinkToTable: Enum "Contact Business Relation Link To Table"; var Result: Code[10])` (integration)
- `OnGetContactBusinessRelation(var ContactBusinessRelation: Record "Contact Business Relation"; var RecordRead: Boolean)` (integration)
- `OnGetNameCaseElse(ContactBusinessRelation: Record "Contact Business Relation"; var Name: Text)` (integration)
- `OnShowRelatedCardPageCaseElse(ContactBusinessRelation: Record "Contact Business Relation")` (integration)
- `OnInsertOnBeforeFindByRelation(ContactBusinessRelation: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnInsertOnBeforeFindByContact(ContactBusinessRelation: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateContactBusinessRelation(ContactBusinessRelation: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) OnAfterDeleteContBusRelation
- OnAfterInsertEvent: [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) OnAfterInsertContBusRelation
- OnAfterModifyEvent: [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) OnAfterModifyContBusRelation
- OnAfterRenameEvent: [Codeunit 5055 "CustVendBank-Update"](../codeunit/5055.md) OnAfterRenameContBusRelation

## Procedures

- `GetLinkedTables(FromLinkToTable: Enum "Contact Business Relation Link To Table"; FromNo: Code[20]; ToLinkToTable: Enum "Contact Business Relation Link To Table"): Code[20]`
- `FindByContact(LinkType: Enum "Contact Business Relation Link To Table"; ContactNo: Code[20]): Boolean`
- `FindByRelation(LinkType: Enum "Contact Business Relation Link To Table"; LinkNo: Code[20]): Boolean`
- `GetContactNo(LinkType: Enum "Contact Business Relation Link To Table"; LinkNo: Code[20]): Code[20]`
- `CreateRelation(ContactNo: Code[20]; LinkNo: Code[20]; LinkToTable: Enum "Contact Business Relation Link To Table")`
- `FindOrRestoreContactBusinessRelation(var Cont: Record Contact; RecVar: Variant; LinkToTable: Enum "Contact Business Relation Link To Table")`
- `UpdateEmptyNoForContact(EntityNo: Code[20]; PrimaryContactNo: Code[20]; LinkToTableOption: Enum "Contact Business Relation Link To Table"): Boolean`
- `FindContactsByRelation(var Contact: Record Contact; LinkType: Enum "Contact Business Relation Link To Table"; LinkNo: Code[20]): Boolean`
- `GetName(): Text`
- `ShowRelatedCardPage()`
- `UpdateContactBusinessRelation()`
- `GetBusinessRelatedSystemIds(TableId: Integer; SystemId: Guid; var RelatedSystemIds: Dictionary of [Integer, List of [Guid]])` (internal)

Plus 2 local procedures.

## Triggers

OnInsert

## Relations

- drill-down page [Page 5061 "Contact Business Relations"](../page/5061.md)
- No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- No.: TableRelation [Table 23 "Vendor"](../table/23.md) (conditional)
- No.: TableRelation [Table 270 "Bank Account"](../table/270.md) (conditional)
- Contact Name: CalcFormula [Table 5050 "Contact"](../table/5050.md)
- Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Business Relation Description: CalcFormula [Table 5053 "Business Relation"](../table/5053.md)
- Business Relation Code: TableRelation [Table 5053 "Business Relation"](../table/5053.md)
- No.: TableRelation [Table 5200 "Employee"](../table/5200.md) (conditional)

## Referenced by

2 fields in 2 objects relate to this table (TableRelation or CalcFormula).

- [Table 5050 "Contact"](../table/5050.md): No. of Business Relations
- [Table 5053 "Business Relation"](../table/5053.md): No. of Contacts

## Pages and codeunits on this table

- [Page 1348 "Employee Link"](../page/1348.md) (source table)
- [Page 5061 "Contact Business Relations"](../page/5061.md) (source table)
- [Page 5062 "Business Relation Contacts"](../page/5062.md) (source table)
- [Page 5135 "Customer Link"](../page/5135.md) (source table)
- [Page 5136 "Vendor Link"](../page/5136.md) (source table)
- [Page 5137 "Bank Account Link"](../page/5137.md) (source table)

## 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 5056 "CustCont-Update"](../codeunit/5056.md) (1 call: `FindOrRestoreContactBusinessRelation → OnInsert`)
- [Codeunit 5057 "VendCont-Update"](../codeunit/5057.md) (1 call: `FindOrRestoreContactBusinessRelation → OnInsert`)
- [Page 21 "Customer Card"](../page/21.md) (1 call: `ShowRelatedCardPage → (object)`)
- [Page 26 "Vendor Card"](../page/26.md) (1 call: `ShowRelatedCardPage → (object)`)
- [Page 370 "Bank Account Card"](../page/370.md) (1 call: `ShowRelatedCardPage → (object)`)
- [Page 5061 "Contact Business Relations"](../page/5061.md) (1 call: `ShowRelatedCardPage → (object)`)
- [Page 5200 "Employee Card"](../page/5200.md) (1 call: `ShowRelatedCardPage → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC28

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: "table", object_name: "Contact Business Relation")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
