---
id: object/table/210
type: object
title: Table 210 "Job Journal Line"
summary: Table 210 "Job Journal Line" in Base Application (Microsoft.Projects.Project.Journal). 87 fields, 35 public procedures, 79 events. Present since at least BC23, still in BC30, changed in BC24-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: f4523800611867ed3c2536bffd313e68ea29a8de7586db2369a870b6506cea26
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al
    title: src/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/projects-how-use-resources
    - https://learn.microsoft.com/dynamics365/business-central/ui-work-general-journals
    - https://learn.microsoft.com/dynamics365/business-central/projects-manage-projects
    - https://learn.microsoft.com/dynamics365/business-central/projects-setup-projects
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables/make-payments
    - topic/business-central/business-functionality/general-business-functionality
    - topic/business-central/business-functionality/project-management
    - topic/business-central/business-functionality/set-up-business-central/set-up-project-management
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 210
name: Job Journal Line
caption: Project Journal Line
namespace: Microsoft.Projects.Project.Journal
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"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 87
  procedures: 155
  events: 79
  subscribers: 0
relations:
  out: 40
  referenced_by: 2
  pages: 3
  extended_by: 3
  event_subscribers: 7
  calls: 10
  called_by: 0
  implements: 0
---

# Table 210 "Job Journal Line"

> Table 210 "Job Journal Line" in Base Application (Microsoft.Projects.Project.Journal). 87 fields, 35 public procedures, 79 events. Present since at least BC23, still in BC30, changed in BC24-28.

Base Application · Microsoft.Projects.Project.Journal · captioned "Project Journal Line" · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 201 "Job Journal"](../page/201.md) (2 Learn pages), [Page 289 "Recurring Job Jnl."](../page/289.md) (2).

## Properties

| Property | Value |
|---|---|
| Caption | Project Journal Line |
| 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 | Journal Template Name | Code[10] | — | TableRelation [Table 209 "Job Journal Template"](../table/209.md) (Job Journal Template) |
| 2 | Line No. | Integer | — |  |
| 3 | Job No. | Code[20] | Specifies the number of the project. | TableRelation [Table 167 "Job"](../table/167.md) |
| 4 | Posting Date | Date | Specifies the posting date you want to assign to each journal line. For more information, see Entering Dates and Times. |  |
| 5 | Document No. | Code[20] | Specifies a document number for the journal line. |  |
| 6 | Type | Enum "Job Journal Line Type" | Specifies an account type for project usage to be posted in the project journal. You can choose from the following options: | enum [Enum 1025 "Job Journal Line Type"](../enum/1025.md) |
| 8 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 156 "Resource"](../table/156.md), [Table 27 "Item"](../table/27.md) (if (Type = const(Resource)) Resource else if (Type = const(Item)) Item where(Blocked = const(false)) else if (Type = const("G/L Account")) "G/L Account") |
| 9 | Description | Text[100] | Specifies the name of the resource, item, or general ledger account to which this entry applies. You can change the description. |  |
| 10 | Quantity | Decimal | Specifies the number of units of the project journal's No. field, that is, either the resource, item, or G/L account number, that applies. If you later change the value in the No. field, the quantity does not change on the journal line. |  |
| 12 | Direct Unit Cost (LCY) | Decimal | Specifies the cost, in the local currency, of one unit of the selected item or resource. <small>via [Page 201 "Job Journal"](../page/201.md)</small> |  |
| 13 | Unit Cost (LCY) | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. <small>via [Page 201 "Job Journal"](../page/201.md)</small> | not editable |
| 14 | Total Cost (LCY) | Decimal | Specifies the total cost for this journal line. The amount is in the local currency. <small>via [Page 201 "Job Journal"](../page/201.md)</small> | not editable |
| 15 | Unit Price (LCY) | Decimal | Specifies the price, in LCY, of one unit of the item or resource. You can enter a price manually or have it entered according to the Price/Profit Calculation field on the related card. <small>via [Page 201 "Job Journal"](../page/201.md)</small> | not editable |
| 16 | Total Price (LCY) | Decimal | Specifies the total price for the journal line. The amount is in the local currency. <small>via [Page 201 "Job Journal"](../page/201.md)</small> | not editable |
| 17 | Resource Group No. | Code[20] | — | TableRelation [Table 152 "Resource Group"](../table/152.md) (Resource Group); not editable |
| 18 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 204 "Unit of Measure"](../table/204.md), [Table 205 "Resource Unit of Measure"](../table/205.md), [Table 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("No.")) else if (Type = const(Resource)) "Resource Unit of Measure".Code where("Resource No." = field("No.")) else "Unit of Measure") |
| 19 | Qty. Rounding Precision | Decimal | — | not editable |
| 20 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 21 | Location Code | Code[10] | Specifies a location code for an item. | TableRelation [Table 14 "Location"](../table/14.md) (Location where("Use As In-Transit" = const(false))) |
| 22 | Chargeable | Boolean | — |  |
| 30 | Posting Group | Code[20] | — | TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (if (Type = const(Item)) "Inventory Posting Group"); not editable |
| 31 | Shortcut Dimension 1 Code | Code[20] | Specifies the code for Shortcut Dimension 1, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false))) |
| 32 | Shortcut Dimension 2 Code | Code[20] | Specifies the code for Shortcut Dimension 2, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false))) |
| 33 | Work Type Code | Code[10] | Specifies which work type the resource applies to. Prices are updated based on this entry. | TableRelation [Table 200 "Work Type"](../table/200.md) (Work Type) |
| 34 | Customer Price Group | Code[10] | — | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group) |
| 37 | Applies-to Entry | Integer | Specifies if the quantity on the journal line must be applied to an already-posted entry. In that case, enter the entry number that the quantity will be applied to. |  |
| 40 | Shpt. Method Code | Code[10] | — | TableRelation [Table 10 "Shipment Method"](../table/10.md) (Shipment Method) |
| 61 | Entry Type | Enum "Job Journal Line Entry Type" | — | enum [Enum 210 "Job Journal Line Entry Type"](../enum/210.md); not editable |
| 62 | Source Code | Code[10] | — | TableRelation [Table 230 "Source Code"](../table/230.md) (Source Code); not editable |
| 73 | Journal Batch Name | Code[10] | — | TableRelation [Table 237 "Job Journal Batch"](../table/237.md) ("Job Journal Batch".Name where("Journal Template Name" = field("Journal Template Name"))) |
| 74 | Reason Code | Code[10] | — | TableRelation [Table 231 "Reason Code"](../table/231.md) (Reason Code) |
| 75 | Recurring Method | Option | Specifies the recurring method. The recurring method determines what happens to the quantity on the journal line after posting. For example, if you use the same quantity each time you post the line, you can reuse the same quantity after posting. | OptionCaption: ,Fixed,Variable |
| 76 | Expiration Date | Date | Specifies the last date on which the recurring journal will be posted if you have indicated in the Recurring field of the project journal template that the journal should be a recurring journal. |  |
| 77 | Recurring Frequency | DateFormula | Specifies a recurring frequency if you have indicated in the Recurring field in the project journal template that the journal is a recurring journal. |  |
| 79 | Gen. Bus. Posting Group | Code[20] | Specifies the vendor's or customer's trade type to link transactions made for this business partner with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 80 | Gen. Prod. Posting Group | Code[20] | Specifies the item's product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group) |
| 81 | Transaction Type | Code[10] | Specifies the type of transaction that the document represents, for the purpose of reporting to INTRASTAT. | TableRelation [Table 258 "Transaction Type"](../table/258.md) (Transaction Type) |
| 82 | Transport Method | Code[10] | Specifies the transport method, for the purpose of reporting to INTRASTAT. | TableRelation [Table 259 "Transport Method"](../table/259.md) (Transport Method) |
| 83 | Country/Region Code | Code[10] | Specifies the country/region of the address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 86 | Entry/Exit Point | Code[10] | — | TableRelation [Table 282 "Entry/Exit Point"](../table/282.md) (Entry/Exit Point) |
| 87 | Document Date | Date | Specifies the date when the related document was created. |  |
| 88 | External Document No. | Code[35] | Specifies a document number that refers to the customer's or vendor's numbering system. |  |
| 89 | Area | Code[10] | — | TableRelation [Table 284 "Area"](../table/284.md) |
| 90 | Transaction Specification | Code[10] | — | TableRelation [Table 285 "Transaction Specification"](../table/285.md) (Transaction Specification) |
| 91 | Serial No. | Code[50] | — |  |
| 92 | Posting No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 93 | Source Currency Code | Code[10] | — | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 94 | Source Currency Total Cost | Decimal | — | not editable |
| 95 | Source Currency Total Price | Decimal | — | not editable |
| 96 | Source Currency Line Amount | Decimal | — | not editable |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 902 | Assemble to Order | Boolean | — | not editable |
| 950 | Time Sheet No. | Code[20] | Specifies the number of a time sheet. A number is assigned to each time sheet when it is created. You cannot edit the number. | TableRelation [Table 950 "Time Sheet Header"](../table/950.md) (Time Sheet Header) |
| 951 | Time Sheet Line No. | Integer | Specifies the line number for a time sheet. | TableRelation [Table 951 "Time Sheet Line"](../table/951.md) ("Time Sheet Line"."Line No." where("Time Sheet No." = field("Time Sheet No."))) |
| 952 | Time Sheet Date | Date | Specifies the date that a time sheet is created. | TableRelation [Table 952 "Time Sheet Detail"](../table/952.md) ("Time Sheet Detail".Date where("Time Sheet No." = field("Time Sheet No."), "Time Sheet Line No." = field("Time Sheet Line No."))) |
| 1000 | Job Task No. | Code[20] | Specifies the number of the related project task. | TableRelation [Table 1001 "Job Task"](../table/1001.md) ("Job Task"."Job Task No." where("Job No." = field("Job No."))) |
| 1001 | Total Cost | Decimal | Specifies the total cost for the journal line. The total cost is calculated based on the project currency, which comes from the Currency Code field on the Project card. | not editable |
| 1002 | Unit Price | Decimal | Specifies the price of one unit of the item or resource. You can enter a price manually or have it entered according to the Price/Profit Calculation field on the related card. |  |
| 1003 | Line Type | Enum "Job Line Type" | Specifies the type of planning line to create when a project ledger entry is posted. If the field is empty, no planning lines are created. | enum [Enum 1002 "Job Line Type"](../enum/1002.md) |
| 1004 | Applies-from Entry | Integer | Specifies the number of the item ledger entry that the journal line costs have been applied from. This should be done when you reverse the usage of an item in a project and you want to return the item to inventory at the same cost as before it was used in the project. |  |
| 1005 | Job Posting Only | Boolean | Project Posting Only <small>caption</small> |  |
| 1006 | Line Discount % | Decimal | Specifies the discount percentage that is granted for the item on the line. |  |
| 1007 | Line Discount Amount | Decimal | Specifies the discount amount that is granted for the item on the line. |  |
| 1008 | Currency Code | Code[10] | Specifies the project's currency code that listed in the Currency Code field in the Project Card. You can only create a Project Journal using this currency code. | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 1009 | Line Amount | Decimal | Specifies the amount that will be posted to the project ledger. |  |
| 1010 | Currency Factor | Decimal | — | not editable |
| 1011 | Unit Cost | Decimal | Specifies the unit cost for the selected type and number on the journal line. The unit cost is in the project currency, derived from the Currency Code field on the project card. |  |
| 1012 | Line Amount (LCY) | Decimal | Specifies the amount in the local currency that will be posted to the project ledger. <small>via [Page 201 "Job Journal"](../page/201.md)</small> | not editable |
| 1013 | Line Discount Amount (LCY) | Decimal | — | not editable |
| 1014 | Total Price | Decimal | Specifies the total price in the project currency on the journal line. | not editable |
| 1015 | Cost Factor | Decimal | — | not editable |
| 1016 | Description 2 | Text[50] | Specifies information in addition to the description. |  |
| 1017 | Ledger Entry Type | Enum "Job Ledger Entry Type" | — | enum [Enum 1026 "Job Ledger Entry Type"](../enum/1026.md) |
| 1018 | Ledger Entry No. | Integer | — | TableRelation [Table 17 "G/L Entry"](../table/17.md), [Table 203 "Res. Ledger Entry"](../table/203.md), [Table 32 "Item Ledger Entry"](../table/32.md) (if ("Ledger Entry Type" = const(Resource)) "Res. Ledger Entry" else if ("Ledger Entry Type" = const(Item)) "Item Ledger Entry" else if ("Ledger Entry Type" = const("G/L Account")) "G/L Entry") |
| 1019 | Job Planning Line No. | Integer | Specifies the project planning line number that the usage should be linked to when the project journal is posted. You can only link to project planning lines that have the Apply Usage Link option enabled. |  |
| 1030 | Remaining Qty. | Decimal | Specifies the quantity of the resource or item that remains to complete a project. The remaining quantity is calculated as the difference between Quantity and Qty. Posted. You can modify this field to indicate the quantity you want to remain on the project planning line after you post usage. |  |
| 1031 | Remaining Qty. (Base) | Decimal | — |  |
| 1081 | Qty. to Transfer to Invoice | Decimal | Specifies the number of units of the project journal's No. field, that is, either the resource, item, or G/L account number, that applies. If you later change the value in the No. field, the quantity does not change on the journal line. <small>via [Page extension 6618 "FS Job Journal"](../pageextension/6618.md)</small> |  |
| 5402 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) (if (Type = const(Item)) "Item Variant".Code where("Item No." = field("No."), Blocked = const(false))) |
| 5403 | Bin Code | Code[20] | Specifies the bin where the items are picked or put away. |  |
| 5404 | Qty. per Unit of Measure | Decimal | — | not editable |
| 5410 | Quantity (Base) | Decimal | — |  |
| 5468 | Reserved Qty. (Base) | Decimal | — | FlowField: sum("Reservation Entry"."Quantity (Base)" where("Source ID" = field("Journal Template Name"), "Source Ref. No." = field("Line No."), "Source Type" = const(210), #pragma warning disable AL0603 "Source Subtype" = field("Entry Type"), #pragma warning restore "Source Batch Name" = field("Journal Batch N...; not editable |
| 6501 | Lot No. | Code[50] | — | not editable |
| 6515 | Package No. | Code[50] | — | not editable |
| 7000 | Price Calculation Method | Enum "Price Calculation Method" | Specifies the method that will be used for price calculation in the item journal line. | enum [Enum 7000 "Price Calculation Method"](../enum/7000.md) |
| 7001 | Cost Calculation Method | Enum "Price Calculation Method" | Specifies the method that will be used for cost calculation in the item journal line. | enum [Enum 7000 "Price Calculation Method"](../enum/7000.md) |

## Keys

- Key1: Journal Template Name, Journal Batch Name, Line No. (clustered)
- Key2: Journal Template Name, Journal Batch Name, Type, No., Unit of Measure Code, Work Type Code
- Key3: Type, No., Variant Code

## Events published

- `OnAfterInitDefaultDimensionSources(var JobJournalLine: Record "Job Journal Line"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; FieldNo: Integer)` (integration)
- `OnAfterAssignGLAccountValues(var JobJournalLine: Record "Job Journal Line"; GLAccount: Record "G/L Account")` (integration)
  - subscribers: [Codeunit 6262 "Sust. Job Subscriber"](../codeunit/6262.md) OnAfterAssignGLAccountValues
- `OnAfterAssignItemValues(var JobJournalLine: Record "Job Journal Line"; Item: Record Item)` (integration)
- `OnAfterAssignResourceValues(var JobJournalLine: Record "Job Journal Line"; Resource: Record Resource; CurrFieldNo: Integer)` (integration)
- `OnAfterAssignItemUoM(var JobJournalLine: Record "Job Journal Line"; Item: Record Item)` (integration)
- `OnAfterAssignResourceUoM(var JobJournalLine: Record "Job Journal Line"; Resource: Record Resource)` (integration)
- `OnAfterAssignGLAccountUoM(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterCopyTrackingFromItemLedgEntry(var JobJournalLine: Record "Job Journal Line"; ItemLedgEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) JobJournalLineCopyTrackingFromItemLedgEntry
- `OnAfterCopyTrackingFromJobPlanningLine(var JobJournalLine: Record "Job Journal Line"; JobPlanningLine: Record "Job Planning Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) JobJournalLineCopyTrackingFromJobPlanningLine
- `OnAfterDeleteAmounts(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterGetLineWithPrice(var LineWithPrice: Interface "Line With Price")` (integration)
- `OnAfterGetSKU(JobJournalLine: Record "Job Journal Line"; var Result: Boolean)` (integration)
- `OnAfterResourceFindCost(var JobJournalLine: Record "Job Journal Line"; var ResourceCost: Record "Resource Cost")` (integration)
- `OnAfterSetUpNewLine(var JobJournalLine: Record "Job Journal Line"; LastJobJournalLine: Record "Job Journal Line"; JobJournalTemplate: Record "Job Journal Template"; JobJournalBatch: Record "Job Journal Batch")` (integration)
- `OnAfterShowDimensions(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterUpdateDimensions(var JobJournalLine: Record "Job Journal Line"; var DimensionSetIDArr: array[10] of Integer)` (integration)
- `OnAfterUpdateTotalCost(var JobJournalLine: Record "Job Journal Line"; AmountRoundingPrecision: Decimal; AmountRoundingPrecisionFCY: Decimal)` (integration)
- `OnAfterUpdateTotalPrice(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterUpdateAmountsAndDiscounts(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterUpdateUnitPrice(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var AmountRoundingPrecision: Decimal; var AmountRoundingPrecisionFCY: Decimal)` (integration)
- `OnAfterUpdateUnitCost(var JobJournalLine: Record "Job Journal Line"; UnitAmountRoundingPrecision: Decimal; CallingFieldNo: Integer)` (integration)
- `OnBeforeCheckDirectPosting(JobJournalLine: Record "Job Journal Line"; var GLAccount: Record "G/L Account"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemAvailable(var JobJournalLine: Record "Job Journal Line"; var ItemJournalLine: Record "Item Journal Line"; var CheckedAvailability: Boolean)` (integration)
- `OnBeforeCheckPostingDateNotEmpty(var JobJournalLine: Record "Job Journal Line"; var LineIsEmpty: Boolean)` (integration)
- `OnBeforeFindPriceAndDiscount(var JobJournalLine: Record "Job Journal Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeGetJob(var JobJournalLine: Record "Job Journal Line"; var Job: Record Job; var IsHandled: Boolean)` (integration)
- `OnBeforeGetLocation(var JobJournalLine: Record "Job Journal Line"; var Location: Record Location; LocationCode: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeHandleCostFactor(var JobJournalLine: Record "Job Journal Line"; Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnBeforeInitRoundingPrecisions(var JobJournalLine: Record "Job Journal Line"; var AmountRoundingPrecision: Decimal; var UnitAmountRoundingPrecision: Decimal; var AmountRoundingPrecisionFCY: Decimal; var UnitAmountRoundingPrecisionFCY: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeEmptyLine(var JobJournalLine: Record "Job Journal Line"; var LineIsEmpty: Boolean)` (integration)
- `OnBeforeRetrieveCostPrice(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; var ShouldRetrieveCostPrice: Boolean; var Result: Boolean; CalledByFieldNo: Integer)` (integration)
- `OnBeforeSetUpNewLine(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; LastJobJnlLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetCountryRegionCodeFromJob(var JobJournalLine: Record "Job Journal Line"; Job: Record Job; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateWorkTypeCodeQty(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; Resource: Record Resource; WorkType: Record "Work Type")` (integration)
- `OnBeforeValidatePostingDate(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantity(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateVariantCode(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateUnitofMeasureCode(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateJobNo(var JobJournalLine: Record "Job Journal Line"; var Customer: Record Customer; var DimensionManagement: Codeunit DimensionManagement; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateAllAmounts(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateUnitCost(var JobJounralLine: Record "Job Journal Line"; var IsHandled: Boolean; xJobJounralLine: Record "Job Journal Line")` (integration)
- `OnAfterSetReservationFilters(var ReservEntry: Record "Reservation Entry"; JobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterUpdateAllAmounts(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line")` (integration)
- `OnAfterValidateShortcutDimCode(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeCheckResource(var JobJournalLine: Record "Job Journal Line"; Resource: Record Resource; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateDim(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean; CurrentFieldNo: Integer)` (integration)
- `OnBeforeFindBinContent(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeBinContentLookUp(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestUnitOfMeasureCode(var JobJournalLine: Record "Job Journal Line"; WorkType: Record "Work Type"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateAmountsAndDiscounts(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateChargeable(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean; xJobJournalLine: Record "Job Journal Line")` (integration)
- `OnBeforeValidateShortcutDimCode(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeValidateWorkTypeCode(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; var IsLineDiscountHandled: Boolean; var IsHandled: Boolean)` (integration)
- `OnCheckItemAvailableOnBeforeAssignQuantity(var JobJournalLine: Record "Job Journal Line"; var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnCheckDirectedPutawayandPickIsFalseOnBeforeTestField(var Location: Record Location; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnCopyFromItemOnAfterCheckItem(var JobJournalLine: Record "Job Journal Line"; Item: Record Item)` (integration)
  - subscribers: [Codeunit 6262 "Sust. Job Subscriber"](../codeunit/6262.md) OnCopyFromItemOnAfterCheckItem
- `OnCopyFromResourceOnAfterCheckResource(var JobJournalLine: Record "Job Journal Line"; Resource: Record Resource; CurrentFieldNo: Integer)` (integration)
  - subscribers: [Codeunit 6262 "Sust. Job Subscriber"](../codeunit/6262.md) OnCopyFromResourceOnAfterCheckResource
- `OnSelectItemEntryOnAfterSetItemLedgerEntryFilters(var ItemLedgEntry: Record "Item Ledger Entry"; CurrentFieldNo: Integer; var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnUpdateCurrencyFactorOnBeforeGetExchangeRate(JobJournalLine: Record "Job Journal Line"; var CurrencyExchangeRate: Record "Currency Exchange Rate")` (integration)
- `OnValidateJobNoOnBeforeCheckJob(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var Customer: Record Customer; var IsHandled: Boolean)` (integration)
- `OnValidateJobTaskNoOnAfterTestJobTaskType(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; JobTask: Record "Job Task")` (integration)
- `OnBeforeValidateJobTaskNo(var JobJournalLine: Record "Job Journal Line"; var xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromGLAccount(var JobJournalLine: Record "Job Journal Line"; GLAccount: Record "G/L Account"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromItem(var JobJournalLine: Record "Job Journal Line"; Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromResource(var JobJournalLine: Record "Job Journal Line"; Resource: Record Resource; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateLocationCodeOnBeforeGetLocation(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnValidateVariantCodeOnBeforeValidateQuantity(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnAfterCreateDim(var JobJournalLine: Record "Job Journal Line"; CurrFieldNo: Integer; xJobJournalLine: Record "Job Journal Line"; OldDimSetID: Integer; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])` (integration)
- `OnValidateUnitOfMeasureCodeOnBeforeOnBeforeValidateQuantity(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnValidateNoOnBeforeValidateQuantity(var JobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnValidateUnitCostLCYOnAfterConvertAmountToFCY(var JobJournalLine: Record "Job Journal Line")` (integration)
- `OnBeforeUpdateDimensions(var JobJournalLine: Record "Job Journal Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnSetUpNewLineOnNewLine(var JobJournalLine: Record "Job Journal Line"; var JobJournalTemplate: Record "Job Journal Template"; var JobJournalBatch: Record "Job Journal Batch")` (integration)
- `OnCopyFromItemOnBeforeValidateUoMCode(var JobJournalLine: Record "Job Journal Line"; Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnAfterInitTableValuePair(var JobJournalLine: Record "Job Journal Line"; var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer)` (integration)
- `OnBeforeSkipRenumberDocumentNo(JobJournalLine: Record "Job Journal Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeRenumberDocNoOnLines(var DocNo: Code[20]; var JobJnlLine2: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)
- `OnAfterRenumberDocNoOnLines(var DocNo: Code[20]; var JobJnlLine2: Record "Job Journal Line")` (integration)
- `OnBeforeValidateJobPlanningLineLink(var JobJournalLine: Record "Job Journal Line"; xJobJournalLine: Record "Job Journal Line"; var IsHandled: Boolean)` (integration)

## Trigger event subscribers

- OnAfterValidateEvent(No.): [Codeunit 6262 "Sust. Job Subscriber"](../codeunit/6262.md) OnAfterValidateNoEvent
- OnAfterValidateEvent(Quantity): [Codeunit 6262 "Sust. Job Subscriber"](../codeunit/6262.md) OnAfterValidateQuantityEvent

## Procedures

- `CheckItemAvailable()`
- `EmptyLine(): Boolean`
- `SetUpNewLine(LastJobJnlLine: Record "Job Journal Line")`
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])`
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `LookupShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `ShowShortcutDimCode(var ShortcutDimCode: array[8] of Code[20])`
- `UpdateCurrencyFactor()`
- `IsInbound(): Boolean`
- `OpenItemTrackingLines(IsReclass: Boolean)`
- `InitRoundingPrecisions()`
- `DontCheckStdCost()`
- `DeleteAmounts()`
- `SetCurrencyFactor(Factor: Decimal)`
- `GetItemTranslation()`
- `SetReservationEntry(var ReservationEntry: Record "Reservation Entry")`
- `SetReservationFilters(var ReservationEntry: Record "Reservation Entry")`
- `ReservEntryExist(): Boolean`
- `UpdateAllAmounts()`
- `UpdateUnitCost()`
- `UpdateTotalCost()`
- `SwitchLinesWithErrorsFilter(var ShowAllLinesEnabled: Boolean)`
- `AfterResourceFindCost(var ResourceCost: Record "Resource Cost")`
- `ApplyPrice(PriceType: enum "Price Type"; CalledByFieldNo: Integer)`
- `GetLineWithPrice(var LineWithPrice: Interface "Line With Price")`
- `ShowDimensions()`
- `UpdateDimensions()`
- `IsOpenedFromBatch(): Boolean`
- `IsNonInventoriableItem(): Boolean`
- `IsInventoriableItem(): Boolean`
- `RowID1(): Text[250]`
- `CopyTrackingFromItemLedgEntry(ItemLedgEntry: Record "Item Ledger Entry")`
- `CopyTrackingFromJobPlanningLine(JobPlanningLine: Record "Job Planning Line")`
- `CreateDimFromDefaultDim(FieldNo: Integer)`
- `RenumberDocumentNo()`: Renumbers the document number of the current job journal line based on the number series specified in the associated job journal batch.

Plus 41 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- Shpt. Method Code: TableRelation [Table 10 "Shipment Method"](../table/10.md)
- Job Task No.: TableRelation [Table 1001 "Job Task"](../table/1001.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Resource Group No.: TableRelation [Table 152 "Resource Group"](../table/152.md)
- No.: TableRelation [Table 156 "Resource"](../table/156.md) (conditional)
- Job No.: TableRelation [Table 167 "Job"](../table/167.md)
- Ledger Entry No.: TableRelation [Table 17 "G/L Entry"](../table/17.md) (conditional)
- Work Type Code: TableRelation [Table 200 "Work Type"](../table/200.md)
- Ledger Entry No.: TableRelation [Table 203 "Res. Ledger Entry"](../table/203.md) (conditional)
- Unit of Measure Code: TableRelation [Table 204 "Unit of Measure"](../table/204.md) (conditional)
- Unit of Measure Code: TableRelation [Table 205 "Resource Unit of Measure"](../table/205.md) (conditional)
- Journal Template Name: TableRelation [Table 209 "Job Journal Template"](../table/209.md)
- Source Code: TableRelation [Table 230 "Source Code"](../table/230.md)
- Reason Code: TableRelation [Table 231 "Reason Code"](../table/231.md)
- Journal Batch Name: TableRelation [Table 237 "Job Journal Batch"](../table/237.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Gen. Prod. Posting Group: TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md)
- Transaction Type: TableRelation [Table 258 "Transaction Type"](../table/258.md)
- Transport Method: TableRelation [Table 259 "Transport Method"](../table/259.md)
- No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Entry/Exit Point: TableRelation [Table 282 "Entry/Exit Point"](../table/282.md)
- Area: TableRelation [Table 284 "Area"](../table/284.md)
- Transaction Specification: TableRelation [Table 285 "Transaction Specification"](../table/285.md)
- Posting No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (conditional)
- Reserved Qty. (Base): CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Source Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) (conditional)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md)
- Time Sheet No.: TableRelation [Table 950 "Time Sheet Header"](../table/950.md)
- Time Sheet Line No.: TableRelation [Table 951 "Time Sheet Line"](../table/951.md)
- Time Sheet Date: TableRelation [Table 952 "Time Sheet Detail"](../table/952.md)

## Referenced by

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

- [Table 1003 "Job Planning Line"](../table/1003.md): Qty. on Journal
- [Table 237 "Job Journal Batch"](../table/237.md): No. of Lines

## Pages and codeunits on this table

- [Page 201 "Job Journal"](../page/201.md) (source table)
- [Page 289 "Recurring Job Jnl."](../page/289.md) (source table)
- [Page 9127 "Job Journal Errors Factbox"](../page/9127.md) (source table)
- [Codeunit 1011 "Job Jnl.-Check Line"](../codeunit/1011.md) (codeunit runs on it)
- [Codeunit 1012 "Job Jnl.-Post Line"](../codeunit/1012.md) (codeunit runs on it)
- [Codeunit 1013 "Job Jnl.-Post Batch"](../codeunit/1013.md) (codeunit runs on it)
- [Codeunit 1021 "Job Jnl.-Post"](../codeunit/1021.md) (codeunit runs on it)
- [Codeunit 1022 "Job Jnl.-Post+Print"](../codeunit/1022.md) (codeunit runs on it)

## Extended by

- [Table extension 6258 "Sust. Job Journal Line"](../tableextension/6258.md)
- [Table extension 6458 "Serv. Job Journal Line"](../tableextension/6458.md)
- [Table extension 6907 "Exp. Job Jnl. Line Ext"](../tableextension/6907.md)

## 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 408 "DimensionManagement"](../codeunit/408.md) (14 calls: `CreateDim → GetRecDefaultDimID`, `CreateDimFromDefaultDim → IsDefaultDimDefinedForTable`, `GetTableValuePair → TypeToTableID2`, …)
- [Codeunit 99000844 "Job Jnl. Line-Reserve"](../codeunit/99000844.md) (5 calls: `OnDelete → DeleteLine`, `OnModify → DeleteLine`, `OnModify → VerifyChange`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (3 calls: `CalcBaseQty → CalcBaseQty`, `CalcBaseQtyForJobPlanningLine → CalcBaseQty`, `CalcQtyFromBaseQty → QtyRndPrecision`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (3 calls: `BinContentLookUp → BinContentLookUp`, `FindBin → GetDefaultBin`, `FindBinContent → FindBinContent`)
- [Page 456 "No. Series"](../page/456.md) (3 calls: `RenumberDocNoOnLines → (object)`, `RenumberDocumentNo → (object)`, `SetUpNewLine → (object)`)
- [Codeunit 311 "Item-Check Avail."](../codeunit/311.md) (2 calls: `CheckItemAvailable → ItemJnlCheckLine`, `CheckItemAvailable → RaiseUpdateInterruptedError`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (2 calls: `ApplyPrice → GetHandler`, `IsQuantityChangedForPrice → IsExtendedPriceCalculationEnabled`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (1 call: `RowID1 → ComposeRowID`)
- [Codeunit 9074 "Job Journal Errors Mgt."](../codeunit/9074.md) (1 call: `SwitchLinesWithErrorsFilter → GetErrorMessages`)
- [Page 38 "Item Ledger Entries"](../page/38.md) (1 call: `SelectItemEntry → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-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: "Job Journal Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
