---
id: object/table/5077
type: object
title: Table 5077 "Segment Line"
summary: Table 5077 "Segment Line" in Base Application (Microsoft.CRM.Segment). 47 fields, 43 public procedures, 39 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.
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: 2f50739ce7bd839cd5b8a46cecc31d70a69b4096f1129406e0c9315c588a6696
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Segment/SegmentLine.Table.al
    title: src/Layers/W1/BaseApp/CRM/Segment/SegmentLine.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: 5077
name: Segment Line
namespace: Microsoft.CRM.Segment
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 47
  procedures: 100
  events: 39
  subscribers: 0
relations:
  out: 16
  referenced_by: 4
  pages: 4
  extended_by: 0
  event_subscribers: 0
  calls: 11
  called_by: 0
  implements: 0
---

# Table 5077 "Segment Line"

> Table 5077 "Segment Line" in Base Application (Microsoft.CRM.Segment). 47 fields, 43 public procedures, 39 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.

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

## Properties

| Property | Value |
|---|---|
| Caption | Segment Line |
| DataClassification | CustomerContent |
| Permissions | tabledata Attachment = rd, tabledata "Segment Line" = rim, tabledata "Segment History" = rd, tabledata "Segment Criteria Line" = rd, tabledata "Segment Interaction Language" = rid, tabledata Contact = r, tabledata Customer = r |

## 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 | Segment No. | Code[20] | Specifies the segment number of the contact to whom the segment line applies. | TableRelation [Table 5076 "Segment Header"](../table/5076.md) (Segment Header) |
| 2 | Line No. | Integer | Specifies the line number of the contact to whom the segment line applies. |  |
| 3 | Contact No. | Code[20] | Specifies the number of the contact to which this segment line applies. | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 4 | Campaign No. | Code[20] | Specifies the number of the campaign for which the segment line has been created. | TableRelation [Table 5071 "Campaign"](../table/5071.md) |
| 5 | Salesperson Code | Code[20] | Specifies the code of the salesperson responsible for this segment line and/or interaction. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) ("Salesperson/Purchaser" where(Blocked = const(false))) |
| 6 | Correspondence Type | Enum "Correspondence Type" | Specifies the type of correspondence for the interaction. NOTE: If you use the Web client, you must not select the Hard Copy option because printing is not possible from the web client. | enum [Enum 5076 "Correspondence Type"](../enum/5076.md) |
| 7 | Interaction Template Code | Code[10] | Specifies the type of the interaction. | TableRelation [Table 5064 "Interaction Template"](../table/5064.md) (Interaction Template) |
| 8 | Cost (LCY) | Decimal | Specifies the cost of the interaction with the contact that this segment line applies to. <small>via [Page 5077 "Create Interaction"](../page/5077.md)</small> |  |
| 9 | Duration (Min.) | Decimal | Specifies the duration of the interaction with the contact. <small>via [Page 5077 "Create Interaction"](../page/5077.md)</small> |  |
| 10 | Attachment No. | Integer | — | TableRelation [Table 5062 "Attachment"](../table/5062.md) |
| 11 | Campaign Response | Boolean | Specifies that the interaction created for the segment is the response to a campaign. For example, coupons that are sent as a response to a campaign. |  |
| 12 | Contact Name | Text[100] | Specifies the name of the contact to which the segment line applies. The program automatically fills in this field when you fill in the Contact No. field on the line. | FlowField: lookup(Contact.Name where("No." = field("Contact No."), Type = const(Person))); not editable |
| 13 | Information Flow | Option | Specifies the direction of the information that is part of the interaction created for this segment line. There are two options: Inbound and Outbound. | OptionCaption: ,Outbound,Inbound |
| 14 | Initiated By | Option | Specifies whether the interaction recorded for this segment line was initiated by your company or by one of your contacts. The Us option indicates that your company was the initiator; the Them option indicates that a contact was the initiator. | OptionCaption: ,Us,Them |
| 15 | Contact Alt. Address Code | Code[10] | Specifies the code of the contact's alternate address to use for this interaction. | TableRelation [Table 5051 "Contact Alt. Address"](../table/5051.md) ("Contact Alt. Address".Code where("Contact No." = field("Contact No."))) |
| 16 | Evaluation | Enum "Interaction Evaluation" | Specifies the evaluation of the interaction involving the contact in the segment. | enum [Enum 5078 "Interaction Evaluation"](../enum/5078.md) |
| 17 | Campaign Target | Boolean | Specifies that the segment involved in this interaction is the target of a campaign. This is used to measure the response rate of a campaign. |  |
| 18 | Contact Company Name | Text[100] | Specifies the name of the company for which the contact works. If the contact is a company, this field contains the company's name. | FlowField: lookup(Contact.Name where("No." = field("Contact Company No."), Type = const(Company))); not editable |
| 19 | Language Code | Code[10] | Specifies the language that is used when translating specified text on documents to foreign business partner, such as an item description on an order confirmation. | TableRelation [Table 8 "Language"](../table/8.md) |
| 22 | Description | Text[100] | Specifies the description of the segment line. |  |
| 23 | Date | Date | Specifies the date of the contact to whom the segment line applies. |  |
| 24 | Time of Interaction | Time | Specifies the time when the interaction took place |  |
| 25 | Attempt Failed | Boolean | Specifies the attempt failed of the contact to whom the segment line applies. |  |
| 26 | To-do No. | Code[20] | Specifies the To-do number of the contact to whom the segment line applies. | TableRelation [Table 5080 "To-do"](../table/5080.md) (To-do) |
| 27 | Contact Company No. | Code[20] | Specifies the contact company number of the contact to whom the segment line applies. | TableRelation [Table 5050 "Contact"](../table/5050.md) (Contact where(Type = const(Company))) |
| 28 | Campaign Entry No. | Integer | Specifies the campaign entry number of the contact to whom the segment line applies. | TableRelation [Table 5072 "Campaign Entry"](../table/5072.md) (Campaign Entry); not editable |
| 29 | Interaction Group Code | Code[10] | Specifies the interaction group code of the contact to whom the segment line applies. | TableRelation [Table 5063 "Interaction Group"](../table/5063.md) (Interaction Group) |
| 31 | Document Type | Enum "Interaction Log Entry Document Type" | Specifies the document type of the contact to whom the segment line applies. | enum [Enum 5099 "Interaction Log Entry Document Type"](../enum/5099.md) |
| 32 | Document No. | Code[20] | Specifies the document number of the contact to whom the segment line applies. |  |
| 33 | Send Word Doc. As Attmt. | Boolean | Specifies that the Microsoft Word document that is linked to that segment line should be sent as an attachment in the e-mail message. |  |
| 34 | Contact Via | Text[80] | Specifies the telephone number you used when calling the contact, or the email address you used when sending an email to the contact. |  |
| 35 | Version No. | Integer | Specifies the version number of the contact to whom the segment line applies. |  |
| 36 | Doc. No. Occurrence | Integer | — |  |
| 37 | Subject | Text[100] | Specifies the subject of the segment line. The text in the field is used as the subject in e-mails and Word documents. |  |
| 44 | Opportunity No. | Code[20] | Specifies the opportunity number of the contact to whom the segment line applies. | TableRelation [Table 5092 "Opportunity"](../table/5092.md) |
| 50 | Contact Phone No. | Text[30] | Specifies the telephone number of the contact to whom the segment line applies. The number will be filled in for you if you choose a contact in the Contact No. field on the line. | FlowField: lookup(Contact."Phone No." where("No." = field("Contact No."))); not editable |
| 51 | Contact Mobile Phone No. | Text[30] | Specifies the mobile telephone number of the contact to whom the segment line applies. The number will be filled in for you if you choose a contact in the Contact No. field on the line. | FlowField: lookup(Contact."Mobile Phone No." where("No." = field("Contact No."))); not editable |
| 52 | Contact Email | Text[80] | Specifies the email address of the contact to whom the segment line applies. The address will be filled in for you if you choose a contact in the Contact No. field on the line. | FlowField: lookup(Contact."E-Mail" where("No." = field("Contact No."))); not editable |
| 53 | Word Template Code | Code[30] | Specifies the Word Template code to use for merging. | TableRelation [Table 9988 "Word Template"](../table/9988.md) ("Word Template".Code where("Table ID" = const(5106))) |
| 54 | Merged | Boolean | — | DataClassification SystemMetadata |
| 9501 | Wizard Step | Enum "Segment Line Wizard Step" | Specifies the wizard step of the contact to whom the segment line applies. | enum [Enum 5077 "Segment Line Wizard Step"](../enum/5077.md); not editable |
| 9502 | Wizard Contact Name | Text[100] | Specifies the wizard contact name of the contact to whom the segment line applies. |  |
| 9503 | Opportunity Description | Text[100] | Specifies a description of the opportunity that is related to the segment. The description is copied from the opportunity card. |  |
| 9504 | Campaign Description | Text[100] | Specifies the campaign description of the contact to whom the segment line applies. |  |
| 9505 | Interaction Successful | Boolean | Specifies if the interaction was successful. Clear this check box to indicate that the interaction was not a success. |  |
| 9506 | Dial Contact | Boolean | Specifies the dial contact of the contact to whom the segment line applies. |  |
| 9507 | Mail Contact | Boolean | Specifies the mail contact of the contact to whom the segment line applies. |  |

## Keys

- Key1: Segment No., Line No. (clustered)
- Key2: Segment No., Campaign No., Date
- Key3: Contact No., Segment No.
- Key4: Campaign No.
- Key5: Campaign No., Contact Company No., Campaign Target

## Events published

- `OnAfterCheckStatus(var SegmentLine: Record "Segment Line")` (integration)
- `OnAfterCopyFromInteractionLogEntry(var SegmentLine: Record "Segment Line"; InteractionLogEntry: Record "Interaction Log Entry")` (integration)
- `OnAfterCreateFromTask(var SegmentLine: Record "Segment Line"; Task: Record "To-do")` (integration)
- `OnAfterInitLine(var SegmentLine: Record "Segment Line"; SegmentHeader: Record "Segment Header")` (integration)
- `OnAfterFinishWizard(var SegmentLine: Record "Segment Line"; InteractionLogEntry: Record "Interaction Log Entry"; IsFinish: Boolean; Flag: Boolean)` (integration)
- `OnBeforeGetFinishInteractionFlag(var SegmentLine: Record "Segment Line"; IsFinish: Boolean; var Flag: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckStatus(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean; var AttachmentTmp: Record Attachment temporary)` (integration)
- `OnBeforeCreatePhoneCall(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFinishSegLineWizard(var SegmentLine: Record "Segment Line"; IsFinish: Boolean; var TempAttachment: Record Attachment temporary; var TempInterLogEntryCommentLine: Record "Inter. Log Entry Comment Line" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeSendCreateOpportunityNotification(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetCorrespondenceType(var SegmentLine: Record "Segment Line"; var xSegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeStartWizard(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeRunCreateInteraction(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeStartWizard2(var SegmentLine: Record "Segment Line")` (integration)
- `OnCreateInteractionFromContactOnBeforeStartWizard(var SegmentLine: Record "Segment Line"; var Contact: Record Contact)` (integration)
- `OnCreateInteractionFromSalespersonOnBeforeStartWizard(var SegmentLine: Record "Segment Line"; SalespersonPurchaser: Record "Salesperson/Purchaser")` (integration)
- `OnCreateInteractionFromInteractLogEntryOnBeforeStartWizard(var SegmentLine: Record "Segment Line"; var InteractionLogEntry: Record "Interaction Log Entry")` (integration)
- `OnCreateInteractionFromTaskOnBeforeStartWizard(var SegmentLine: Record "Segment Line"; Task: Record "To-do")` (integration)
- `OnCreateInteractionFromOppOnBeforeStartWizard(var SegmentLine: Record "Segment Line"; Opportunity: Record Opportunity)` (integration)
- `OnCreatePhoneCallOnBeforeStartWizard2(var TempSegmentLine: Record "Segment Line" temporary; SegmentLine: Record "Segment Line")` (integration)
- `OnDeleteOnBeforeSegmentCriteriaLineDeleteAll(SegmentLine: Record "Segment Line"; SegmentCriteriaLine: Record "Segment Criteria Line")` (integration)
- `OnFinishWizardOnAfterSetSend(var SegmentLine: Record "Segment Line"; var Send: Boolean)` (integration)
- `OnHandleTriggerCaseElse(SegmentLine: Record "Segment Line"; InteractionTemplate: Record "Interaction Template")` (integration)
- `OnValidateInteractionTemplateCode(var SegmentLine: Record "Segment Line"; var Cont: Record Contact; var IsHandled: Boolean)` (integration)
- `OnInteractionTemplValidateOnBeforeGetInteractTemplLanguage(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowComment(var SegmentLine: Record "Segment Line"; var TempInterLogEntryCommentLine: Record "Inter. Log Entry Comment Line" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateSegLineInteractionFromContact(var SegmentLine: Record "Segment Line"; var Cont: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateInteractionFromInteractLogEntry(var SegmentLine: Record "Segment Line"; var Salesperson: Record "Salesperson/Purchaser")` (integration)
- `OnFinishSegLineWizardOnBeforeAssignEmptyOpportunityStep(var SegmentLine: Record "Segment Line"; var ShouldAssignStep: Boolean)` (integration)
- `OnFinishSegLineWizardBeforeLogInteraction(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnValidateInteractionTemplateCodeOnBeforeGetSegInteractTemplLanguage(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnValidateLanguageCodeOnBeforeGetSegmentHeaderGlobal(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFindLanguage(var SegmentLine: Record "Segment Line"; InteractTmplCode: Code[10]; ContactLanguageCode: Code[10]; var Language: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeSetInteractionAttachment(var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)` (integration)
- `OnCreateInteractionMergeDataOnBeforeTempInteractionMergeDataInsert(var TempInteractionMergeData: Record "Interaction Merge Data" temporary; var SegmentLine: Record "Segment Line")` (integration)
- `OnLoadTempAttachmentOnBeforeInsertTempAttachment(SegmentLine: Record "Segment Line"; var TempAttachment: Record Attachment temporary)` (integration)
- `OnValidateInteractionTemplateCodeOnBeforeGettingContact(SegmentLine: Record "Segment Line"; xSegmentLine: Record "Segment Line"; var Contact: Record Contact; var IsHandled: Boolean)` (integration)
- `OnBeforeHandleTrigger(var SegmentLine: Record "Segment Line"; var TempAttachment: Record Attachment temporary; var Merged: Boolean; var IsHandled: Boolean)` (integration)
- `OnStartWizard2OnBeforeInsert(var SegmentLine: Record "Segment Line"; Campaign: Record Campaign)` (integration)

## Procedures

- `InitLine()`
- `AttachmentText(): Text[30]`
- `MaintainSegLineAttachment()`
- `CreateSegLineAttachment()`
- `OpenSegLineAttachment()`
- `ImportSegLineAttachment()`
- `ExportSegLineAttachment()`
- `RemoveAttachment()`
- `CreatePhoneCall()`
- `AttachmentInherited(): Boolean`
- `SetInteractionAttachment()`
- `CopyFromInteractLogEntry(var InteractionLogEntry: Record "Interaction Log Entry")`
- `CreateSegLineInteractionFromContact(var Contact: Record Contact)`
- `CreateInteractionFromSalesperson(var SalespersonPurchaser: Record "Salesperson/Purchaser")`
- `CreateInteractionFromInteractLogEntry(var InteractionLogEntry: Record "Interaction Log Entry")`
- `CreateInteractionFromTask(var Task: Record "To-do")`
- `CreateInteractionFromOpp(var Opportunity: Record Opportunity)`
- `CreateOpportunity(): Code[20]`
- `StartWizard()`
- `SendCreateOpportunityNotification()`
- `CheckStatus()`
- `FinishSegLineWizard(IsFinish: Boolean)`
- `GetInteractionLogEntryNo(): Integer` (internal)
- `ValidateCorrespondenceType()`
- `HandleTrigger()` (internal)
- `SetTempAttachment(var InStream: InStream; FileExtension: Text)`
- `LoadContentBodyTextFromCustomLayoutAttachment(): Text`
- `UpdateContentBodyTextInCustomLayoutAttachment(NewContentBodyText: Text)`
- `ProcessPostponedAttachment()`
- `LoadSegLineAttachment(ForceReload: Boolean)`
- `MakePhoneCallFromContact(var Cont: Record Contact; Task: Record "To-do"; TableNo: Integer; PhoneNo: Text[30]; ContAltAddrCode: Code[10])`
- `StartWizard2()`
- `CheckPhoneCallStatus()`
- `LogSegLinePhoneCall()`
- `ShowComment()`
- `SetComments(var InterLogEntryCommentLineLocal: Record "Inter. Log Entry Comment Line")`
- `IsHTMLAttachment(): Boolean`
- `PreviewSegLineHTMLContent()`
- `LanguageCodeOnLookup()`
- `FilterContactCompanyOpportunities(var Opportunity: Record Opportunity)`
- `ExportODataFields()`
- `ProcessInterLogEntryComments(InterLogEntryNo: Integer)`
- `CreateSegLineInteractionFromContactForEmail(var Contact: Record Contact)` (internal)

Plus 18 local procedures.

## Triggers

OnDelete

## Relations

- Salesperson Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Contact Company Name: CalcFormula [Table 5050 "Contact"](../table/5050.md)
- Contact Name: CalcFormula [Table 5050 "Contact"](../table/5050.md)
- Contact Company No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Contact Alt. Address Code: TableRelation [Table 5051 "Contact Alt. Address"](../table/5051.md)
- Attachment No.: TableRelation [Table 5062 "Attachment"](../table/5062.md)
- Interaction Group Code: TableRelation [Table 5063 "Interaction Group"](../table/5063.md)
- Interaction Template Code: TableRelation [Table 5064 "Interaction Template"](../table/5064.md)
- Campaign No.: TableRelation [Table 5071 "Campaign"](../table/5071.md)
- Campaign Entry No.: TableRelation [Table 5072 "Campaign Entry"](../table/5072.md)
- Segment No.: TableRelation [Table 5076 "Segment Header"](../table/5076.md)
- To-do No.: TableRelation [Table 5080 "To-do"](../table/5080.md)
- Opportunity No.: TableRelation [Table 5092 "Opportunity"](../table/5092.md)
- Language Code: TableRelation [Table 8 "Language"](../table/8.md)
- Word Template Code: TableRelation [Table 9988 "Word Template"](../table/9988.md)

## Referenced by

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

- [Table 5076 "Segment Header"](../table/5076.md): Cost (LCY), Duration (Min.), No. of Lines
- [Table 5104 "Segment Interaction Language"](../table/5104.md): Segment Line No.

## Pages and codeunits on this table

- [Page 5077 "Create Interaction"](../page/5077.md) (source table)
- [Page 5092 "Segment Subform"](../page/5092.md) (source table)
- [Page 5147 "Make Phone Call"](../page/5147.md) (source table)
- [Page 5150 "Contact Segment List"](../page/5150.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 5051 "SegManagement"](../codeunit/5051.md) (4 calls: `CreateSegLineInteractionFromContactForEmail → LogInteraction`, `FinishSegLineWizard → LogInteraction`, `LogSegLinePhoneCall → LogInteraction`, …)
- [Codeunit 7030 "Campaign Target Group Mgt"](../codeunit/7030.md) (3 calls: `OnDelete → DeleteSegfromTargetGr`, `SetCampaignTargetGroup → AddSegLinetoTargetGr`, `SetCampaignTargetGroup → DeleteSegfromTargetGr`)
- [Codeunit 9987 "Word Template"](../codeunit/9987.md) (3 calls: `LoadTemplateAttachment → Load`, `MergeTemplate → GetDocument`, `MergeTemplate → Merge`)
- [Codeunit 419 "File Management"](../codeunit/419.md) (2 calls: `HandleTrigger → BLOBImport`, `HandleTrigger → GetExtension`)
- [Codeunit 8711 "Telemetry"](../codeunit/8711.md) (2 calls: `HandleTrigger → LogMessage`, `MaintainSegLineAttachment → LogMessage`)
- [Codeunit 9560 "Document Sharing"](../codeunit/9560.md) (2 calls: `HandleTrigger → ShareEnabled`, `MaintainSegLineAttachment → ShareEnabled`)
- [Codeunit 5052 "AttachmentManagement"](../codeunit/5052.md) (1 call: `FinishSegLineWizard → GenerateHTMLContent`)
- [Codeunit 783 "Relationship Performance Mgt."](../codeunit/783.md) (1 call: `SendCreateOpportunityNotification → SendCreateOpportunityNotification`)
- [Page 5077 "Create Interaction"](../page/5077.md) (1 call: `RunCreateInteraction → (object)`)
- [Page 5147 "Make Phone Call"](../page/5147.md) (1 call: `StartWizard2 → (object)`)
- [Page 5187 "Inter. Log Entry Comment Sheet"](../page/5187.md) (1 call: `ShowComment → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-25, BC27-28

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: "Segment Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
