---
id: object/table/1003
type: object
title: Table 1003 "Job Planning Line"
summary: Table 1003 "Job Planning Line" in Base Application (Microsoft.Projects.Project.Planning). 101 fields, 76 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: 474d147eb36dd244929d0dc26a7e8dee66e64e81996c0f0c5807e57e1c5dcbf5
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al
    title: src/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/projects-assemble-to-project
    - https://learn.microsoft.com/dynamics365/business-central/projects-how-create-jobs
    - https://learn.microsoft.com/dynamics365/business-central/projects-how-invoice-jobs
    - https://learn.microsoft.com/dynamics365/business-central/projects-how-manage-budgets
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/project-management
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8905
object_type: table
object_id: 1003
name: Job Planning Line
caption: Project Planning Line
namespace: Microsoft.Projects.Project.Planning
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: 101
  procedures: 205
  events: 79
  subscribers: 0
relations:
  out: 36
  referenced_by: 25
  pages: 4
  extended_by: 1
  event_subscribers: 10
  calls: 13
  called_by: 0
  implements: 0
---

# Table 1003 "Job Planning Line"

> Table 1003 "Job Planning Line" in Base Application (Microsoft.Projects.Project.Planning). 101 fields, 76 public procedures, 79 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

Learn documents this table through its pages: [Page 1007 "Job Planning Lines"](../page/1007.md) (4 Learn pages).

## Properties

| Property | Value |
|---|---|
| Caption | Project Planning 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 | Line No. | Integer | Specifies the planning line's entry number. | not editable |
| 2 | Job No. | Code[20] | Specifies the number of the related project. | TableRelation [Table 167 "Job"](../table/167.md); NotBlank |
| 3 | Planning Date | Date | Specifies the date of the planning line. You can use the planning date for filtering the totals of the project, for example, if you want to see the scheduled usage for a specific month of the year. |  |
| 4 | Document No. | Code[20] | Specifies a document number for the planning line. |  |
| 5 | Type | Enum "Job Planning Line Type" | Specifies the type of account to which the planning line relates. | enum [Enum 1023 "Job Planning Line Type"](../enum/1023.md) |
| 7 | No. | Code[20] | Specifies the number of the account to which the resource, item or general ledger account is posted, depending on your selection in the Type field. | 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 else if (Type = const("G/L Account")) "G/L Account" else if (Type = const(Text)) "Standard Text") |
| 8 | Description | Text[100] | Specifies the name of the resource, item, or G/L account to which this entry applies. You can change the description. |  |
| 9 | Quantity | Decimal | Specifies the number of units of the resource, item, or general ledger account that should be specified on the planning line. If you later change the No., the quantity you have entered remains on the line. |  |
| 11 | Direct Unit Cost (LCY) | Decimal | Specifies the cost, in the local currency, of one unit of the selected item or resource. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> |  |
| 12 | Unit Cost (LCY) | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 13 | Total Cost (LCY) | Decimal | Specifies the total cost for the planning line. The amount is in the local currency. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 14 | 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 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 15 | Total Price (LCY) | Decimal | Specifies the total price on the planning line. The total price is in the local currency. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 16 | Resource Group No. | Code[20] | — | TableRelation [Table 152 "Resource Group"](../table/152.md) (Resource Group); not editable |
| 17 | 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") |
| 18 | Qty. Rounding Precision | Decimal | — | not editable |
| 19 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 20 | 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))) |
| 29 | Last Date Modified | Date | — | not editable |
| 30 | User ID | Code[50] | Specifies the ID of the user who posted the entry, to be used, for example, in the change log. | TableRelation User."User Name"; not editable; DataClassification EndUserIdentifiableInformation |
| 32 | 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) |
| 33 | Customer Price Group | Code[10] | — | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group) |
| 79 | Country/Region Code | Code[10] | — | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region); not editable |
| 80 | 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); not editable |
| 81 | 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); not editable |
| 83 | Document Date | Date | — |  |
| 84 | Planning Due Date | Date | — |  |
| 900 | Qty. to Assemble | Decimal | Specifies how many units of the project planning line quantity that you want to supply by assembly. |  |
| 901 | Qty. to Assemble (Base) | Decimal | — |  |
| 902 | Assemble to Order | Boolean | — | not editable |
| 903 | BOM Item No. | Code[20] | — | TableRelation [Table 27 "Item"](../table/27.md) |
| 904 | Attached to Line No. | Integer | — | TableRelation [Table 1003 "Job Planning Line"](../table/1003.md) ("Job Planning Line"."Line No." where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."))); not editable |
| 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."))); NotBlank |
| 1001 | Line Amount (LCY) | Decimal | Specifies the amount in the local currency that will be posted to the project ledger. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 1002 | Unit Cost | Decimal | Specifies the cost of one unit of the item or resource on the line. |  |
| 1003 | Total Cost | Decimal | Specifies the total cost for the planning line. The total cost is in the project currency, which comes from the Currency Code field in the Project Card. | not editable |
| 1004 | 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. |  |
| 1005 | Total Price | Decimal | Specifies the total price in the project currency on the planning line. | not editable |
| 1006 | Line Amount | Decimal | Specifies the amount that will be posted to the project ledger. |  |
| 1007 | Line Discount Amount | Decimal | Specifies the discount amount that is granted for the item on the line. |  |
| 1008 | Line Discount Amount (LCY) | Decimal | — | not editable |
| 1015 | Cost Factor | Decimal | — | not editable |
| 1019 | Serial No. | Code[50] | Specifies the serial number that is applied to the posted item if the planning line was created from the posting of a project journal line. | not editable |
| 1020 | Lot No. | Code[50] | Specifies the lot number that is applied to the posted item if the planning line was created from the posting of a project journal line. | not editable |
| 1021 | Line Discount % | Decimal | Specifies the discount percentage that is granted for the item on the line. |  |
| 1022 | Line Type | Enum "Job Planning Line Line Type" | Specifies the type of planning line. | enum [Enum 1003 "Job Planning Line Line Type"](../enum/1003.md) |
| 1023 | Currency Code | Code[10] | Specifies the currency that is used on the entry. | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 1024 | Currency Date | Date | Specifies the date that will be used to find the exchange rate for the currency in the Currency Date field. |  |
| 1025 | Currency Factor | Decimal | — | not editable |
| 1026 | Schedule Line | Boolean | Budget Line <small>caption</small> | not editable |
| 1027 | Contract Line | Boolean | Specifies whether this line is a billable line. | not editable |
| 1030 | Job Contract Entry No. | Integer | Specifies the entry number of the project planning line that the sales line is linked to. | not editable |
| 1035 | Invoiced Amount (LCY) | Decimal | Specifies, in local currency, the sales amount that was invoiced for this planning line. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | FlowField: sum("Job Planning Line Invoice"."Invoiced Amount (LCY)" where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."), "Job Planning Line No." = field("Line No."))); not editable |
| 1036 | Invoiced Cost Amount (LCY) | Decimal | Specifies, in the local currency, the cost amount that was invoiced for this planning line. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | FlowField: sum("Job Planning Line Invoice"."Invoiced Cost Amount (LCY)" where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."), "Job Planning Line No." = field("Line No."))); not editable |
| 1037 | VAT Unit Price | Decimal | — |  |
| 1038 | VAT Line Discount Amount | Decimal | — |  |
| 1039 | VAT Line Amount | Decimal | — |  |
| 1041 | VAT % | Decimal | — |  |
| 1042 | Description 2 | Text[50] | Specifies information in addition to the description. |  |
| 1043 | Job Ledger Entry No. | Integer | Project Ledger Entry No. <small>caption</small> | TableRelation [Table 169 "Job Ledger Entry"](../table/169.md) (Job Ledger Entry); not editable |
| 1048 | Status | Enum "Job Planning Line Status" | Specifies the status of a project order. | enum [Enum 1048 "Job Planning Line Status"](../enum/1048.md); not editable |
| 1050 | Ledger Entry Type | Enum "Job Ledger Entry Type" | Specifies the entry type of the project ledger entry associated with the planning line. | enum [Enum 1026 "Job Ledger Entry Type"](../enum/1026.md) |
| 1051 | Ledger Entry No. | Integer | Specifies the entry number of the project ledger entry associated with the project planning line. | 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") |
| 1052 | System-Created Entry | Boolean | Specifies that an entry has been created by Business Central and is related to a project ledger entry. The check box is selected automatically. |  |
| 1053 | Usage Link | Boolean | Specifies whether the Usage Link field applies to the project planning line. When this check box is selected, usage entries are linked to the project planning line. Selecting this check box creates a link to the project planning line from places where usage has been posted, such as the project journ... |  |
| 1060 | Remaining Qty. | Decimal | Specifies the remaining quantity of the resource, item, or G/L Account that remains to complete a project. The quantity is calculated as the difference between Quantity and Qty. Posted. | not editable |
| 1061 | Remaining Qty. (Base) | Decimal | Specifies the remaining quantity of the resource, item, or general ledger account that remains to complete a project, expressed in base units of measure. The quantity is calculated as the difference between Quantity and Qty. Posted. <small>via [Page 1032 "Available - Job Planning Lines"](../page/1032.md)</small> | not editable |
| 1062 | Remaining Total Cost | Decimal | Specifies the remaining total cost for the planning line. The total cost is in the project currency, which comes from the Currency Code field in the Project Card. | not editable |
| 1063 | Remaining Total Cost (LCY) | Decimal | Specifies the remaining total cost (LCY) for the planning line. The amount is in the local currency. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 1064 | Remaining Line Amount | Decimal | Specifies the amount that will be posted to the project ledger. | not editable |
| 1065 | Remaining Line Amount (LCY) | Decimal | Specifies the amount in the local currency that will be posted to the project ledger. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 1070 | Qty. Posted | Decimal | Specifies the quantity that has been posted to the project ledger, if the Usage Link check box has been selected. | not editable |
| 1071 | Qty. to Transfer to Journal | Decimal | Specifies the quantity you want to transfer to the project journal. Its default value is calculated as quantity minus the quantity that has already been posted, if the Apply Usage Link check box has been selected. |  |
| 1072 | Posted Total Cost | Decimal | Specifies the total cost that has been posted to the project ledger, if the Usage Link check box has been selected. | not editable |
| 1073 | Posted Total Cost (LCY) | Decimal | Specifies the total cost (LCY) that has been posted to the project ledger, if the Usage Link check box has been selected. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 1074 | Posted Line Amount | Decimal | Specifies the amount that has been posted to the project ledger. This field is only filled in if the Apply Usage Link check box selected on the project card. | not editable |
| 1075 | Posted Line Amount (LCY) | Decimal | Specifies the amount in the local currency that has been posted to the project ledger. This field is only filled in if the Apply Usage Link check box selected on the project card. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 1080 | Qty. Transferred to Invoice | Decimal | Specifies the quantity that has been transferred to a sales invoice or credit memo. | FlowField: sum("Job Planning Line Invoice"."Quantity Transferred" where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."), "Job Planning Line No." = field("Line No."))); not editable |
| 1081 | Qty. to Transfer to Invoice | Decimal | Specifies the quantity you want to transfer to the sales invoice or credit memo. The value in this field is calculated as Quantity - Qty. Transferred to Invoice. |  |
| 1090 | Qty. Invoiced | Decimal | Specifies the quantity that been posted through a sales invoice. | FlowField: sum("Job Planning Line Invoice"."Quantity Transferred" where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."), "Job Planning Line No." = field("Line No."), "Document Type" = filter("Posted Invoice" \| "Posted Credit Memo"))); not editable |
| 1091 | Qty. to Invoice | Decimal | Specifies the quantity that remains to be invoiced. It is calculated as Quantity - Qty. Invoiced. | not editable |
| 1100 | Reserved Quantity | Decimal | Specifies the quantity of the item that is reserved for the project planning line. | FlowField: - sum("Reservation Entry".Quantity where("Source Type" = const(1003), #pragma warning disable AL0603 "Source Subtype" = field(Status), #pragma warning restore "Source ID" = field("Job No."), "Source Ref. No." = field("Job Contract Entry No."), "Reservation Status" = const(Reservation))); not editable |
| 1101 | Reserved Qty. (Base) | Decimal | — | FlowField: - sum("Reservation Entry"."Quantity (Base)" where("Source Type" = const(1003), #pragma warning disable AL0603 "Source Subtype" = field(Status), #pragma warning restore "Source ID" = field("Job No."), "Source Ref. No." = field("Job Contract Entry No."), "Reservation Status" = const(Reservation))); not editable |
| 1102 | Reserve | Enum "Reserve Method" | Specifies whether or not a reservation can be made for items on the current line. The field is not applicable if the Type field is set to Resource, Cost, or G/L Account. | enum [Enum 100 "Reserve Method"](../enum/100.md) |
| 1103 | Planned | Boolean | — | not editable |
| 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 selected item will be put away or picked in warehouse and inventory processes. If you specify a bin code in the To-Project Bin Code field on the Location page, that bin will be suggested when you choose the location. | TableRelation [Table 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("Location Code"))) |
| 5404 | Qty. per Unit of Measure | Decimal | — | not editable |
| 5410 | Quantity (Base) | Decimal | Specifies the quantity expressed in the base units of measure. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> |  |
| 5790 | Requested Delivery Date | Date | — |  |
| 5791 | Promised Delivery Date | Date | — |  |
| 5794 | Planned Delivery Date | Date | Specifies the date that is planned to deliver the item connected to the project planning line. For a resource, the planned delivery date is the date that the resource performs services with respect to the project. |  |
| 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) |
| 7300 | Pick Qty. | Decimal | — | FlowField: sum("Warehouse Activity Line"."Qty. Outstanding" where("Activity Type" = filter(<> "Put-away"), "Source Type" = const(1003), "Source No." = field("Job No."), "Source Line No." = field("Job Contract Entry No."), "Source Subline No." = field("Line No."), "Unit of Measure Code" = field("Unit of Measure...; not editable |
| 7301 | Qty. Picked | Decimal | Specifies the quantity of the item you have picked for the project planning line. | not editable |
| 7302 | Qty. Picked (Base) | Decimal | Specifies the base quantity of the item you have picked for the project planning line. <small>via [Page 1007 "Job Planning Lines"](../page/1007.md)</small> | not editable |
| 7303 | Completely Picked | Boolean | — | not editable |
| 7304 | Pick Qty. (Base) | Decimal | — | FlowField: sum("Warehouse Activity Line"."Qty. Outstanding (Base)" where("Activity Type" = filter(<> "Put-away"), "Source Type" = const(1003), "Source No." = field("Job No."), "Source Line No." = field("Job Contract Entry No."), "Source Subline No." = field("Line No."), "Action Type" = filter(" " \| Place), "Or...; not editable |
| 7305 | Qty. on Journal | Decimal | — | FlowField: sum("Job Journal Line"."Quantity (Base)" where("Job No." = field("Job No."), "Job Task No." = field("Job Task No."), "Job Planning Line No." = field("Line No."), Type = field(Type), "No." = field("No."))); not editable |

## Keys

- Key1: Job No., Job Task No., Line No. (clustered)
- Key2: Job No., Job Task No., Schedule Line, Planning Date
- Key3: Job No., Job Task No., Contract Line, Planning Date
- Key4: Job No., Job Task No., Schedule Line, Currency Date
- Key5: Job No., Job Task No., Contract Line, Currency Date
- Key6: Job No., Schedule Line, Type, No., Planning Date
- Key7: Job No., Schedule Line, Type, Resource Group No., Planning Date
- Key8: Status, Schedule Line, Type, No., Planning Date
- Key9: Status, Schedule Line, Type, Resource Group No., Planning Date
- Key10: Job No., Contract Line
- Key11: Job Contract Entry No.
- Key12: Type, No., Job No., Job Task No., Usage Link, System-Created Entry
- Key13: Status, Type, No., Variant Code, Location Code, Planning Date
- Key14: Job No., Planning Date, Document No.

## Events published

- `OnAfterCalculateRetrievedCost(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; StockkeepingUnit: Record "Stockkeeping Unit"; Item: Record Item; var RetrievedCost: Decimal)` (integration)
- `OnAfterCopyFromItem(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; Item: Record Item)` (integration)
- `OnAfterCopyFromGLAccount(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; GLAccount: Record "G/L Account")` (integration)
- `OnAfterCopyFieldsFromJob(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; Job: Record Job)` (integration)
- `OnAfterCopyTrackingFromJobJnlLine(var JobPlanningLine: Record "Job Planning Line"; JobJnlLine: Record "Job Journal Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) JobPlanningLineCopyTrackingFromJobPlanningLine
- `OnAfterConvertToJobLineType(var JobPlanningLine: Record "Job Planning Line"; var JobLineType: Enum "Job Line Type")` (integration)
- `OnAfterConvertFromJobLineType(var JobPlanningLine: Record "Job Planning Line"; var JobLineType: Enum "Job Line Type"; var JobPlanningLineLineType: Enum "Job Planning Line Line Type")` (integration)
- `OnAfterClearTracking(var JobPlanningLine: Record "Job Planning Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) JobPlanningLineClearTracking
- `OnAfterCopyTrackingFromJobLedgEntry(var JobPlanningLine: Record "Job Planning Line"; JobLedgEntry: Record "Job Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) JobPlanningLineCopyTrackingFromJobLedgEntry
- `OnAfterDeleteAmounts(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterGetJob(var JobPlanningLine: Record "Job Planning Line"; var Job: Record Job)` (integration)
- `OnAfterGetSKU(JobPlanningLine: Record "Job Planning Line"; var Result: Boolean)` (integration)
- `OnAfterGetRemainingQty(JobPlanningLine: Record "Job Planning Line"; var RemainingQty: Decimal; var RemainingQtyBase: Decimal)` (integration)
- `OnAfterFilterLinesWithItemToPlan(var JobPlanningLine: Record "Job Planning Line"; var Item: Record Item)` (integration)
- `OnAfterFilterLinesForReservation(var JobPlaningLine: Record "Job Planning Line"; ReservationEntry: Record "Reservation Entry"; NewStatus: Option; AvailabilityFilter: Text; Positive: Boolean)` (integration)
- `OnAfterGetLineWithPrice(var LineWithPrice: Interface "Line With Price")` (integration)
- `OnAfterHandleCostFactor(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; Item: Record Item)` (integration)
- `OnAfterInitJobPlanningLine(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterInitFromJobPlanningLine(var ToJobPlanningLine: Record "Job Planning Line"; FromJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterResourceFindCost(var JobPlanningLine: Record "Job Planning Line"; var ResourceCost: Record "Resource Cost")` (integration)
- `OnAfterSetReservationFilters(var ReservEntry: Record "Reservation Entry"; JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterSetupNewLine(var JobPlanningLine: Record "Job Planning Line"; LastJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterUpdateAllAmounts(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterUpdateCurrencyFactor(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterUpdateTotalPrice(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterUpdateUnitPrice(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var AmountRoundingPrecision: Decimal; var AmountRoundingPrecisionFCY: Decimal)` (integration)
- `OnAfterUpdateAmountsAndDiscounts(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterValidateModification(var JobPlanningLine: Record "Job Planning Line"; FieldChanged: Boolean; FieldNo: Integer)` (integration)
- `OnBeforeCalcQuantityBase(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckQuantityPosted(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckRelatedJobPlanningLineInvoice(JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromResource(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFindPriceAndDiscount(CalledByFieldNo: Integer; var IsHandled: Boolean; var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnBeforeHandleCostFactor(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeInitJobPlanningLine(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; var IsHandled: Boolean)` (integration)
- `OnBeforeInitRoundingPrecisions(JobPlanningLine: Record "Job Planning Line"; var AmountRoundingPrecision: Decimal; var UnitAmountRoundingPrecision: Decimal; var AmountRoundingPrecisionFCY: Decimal; var UnitAmountRoundingPrecisionFCY: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeRecalculateAmounts(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; var AmountLCY: Decimal; var IsHandled: Boolean; var Amount: Decimal)` (integration)
- `OnBeforeUpdatePlannedDueDate(var JobPlanningLine: Record "Job Planning Line"; var Changed: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeOnInsert(var JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateAmountsAndDiscounts(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateDescription(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateModification(var JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean; xJobPlanningLine: Record "Job Planning Line"; FieldNo: Integer)` (integration)
- `OnBeforeValidatePlanningDate(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityBase(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateWorkTypeCode(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeRetrieveCostPrice(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var ShouldRetrieveCostPrice: Boolean; var IsHandled: Boolean; CalledByFieldNo: Integer)` (integration)
- `OnBeforeUpdateRemainingQuantity(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateRemainingQuantityFromUse(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; PostedQty: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateAllAmounts(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean; CurrFieldNo: Integer)` (integration)
- `OnBeforeUpdateUnitCost(var JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean; xJobPlanningLine: Record "Job Planning Line")` (integration)
- `OnBeforeUpdateReservation(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; CalledByFieldNo: Integer; var IsHandled: Boolean; CurrentFieldNo: Integer)` (integration)
- `OnBeforeValidateQtyToTransferToInvoice(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnControlUsageLinkOnAfterGetJob(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; CallingFieldNo: Integer; var IsHandling: Boolean)` (integration)
- `OnUpdateCurrencyFactorOnBeforeGetExchangeRate(JobPlanningLine: Record "Job Planning Line"; var CurrencyExchangeRate: Record "Currency Exchange Rate")` (integration)
- `OnUseOnBeforeModify(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; AmountRoundingPrecision: Decimal; UnitAmountRoundingPrecision: Decimal; AmountRoundingPrecisionFCY: Decimal; UnitAmountRoundingPrecisionFCY: Decimal)` (integration)
- `OnValidateNoOnAfterCopyFromAccount(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; var Job: Record Job)` (integration)
- `OnBeforeLinesWithItemToPlanExist(var Item: Record Item; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateUsageLink(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnDeleteOnAfterSetFilterOnJobUsageLink(JobPlanningLine: Record "Job Planning Line"; var JobUsageLink: Record "Job Usage Link"; var IsHandled: Boolean)` (integration)
- `OnBeforeOnRename(var JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnControlUsageLinkOnAfterSetFilterJobUsageLink(var JobPlanningLine: Record "Job Planning Line"; var JobUsageLink: Record "Job Usage Link"; Job: Record Job; CallingFieldNo: Integer; var IsHandling: Boolean)` (integration)
- `OnBeforeFindBin(var JobPlanningLine: Record "Job Planning Line"; var NewBinCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnAfterFindPriceAndDiscount(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; CalledByFieldNo: Integer)` (integration)
- `OnBeforeCaption(JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean; var Result: Text)` (integration)
- `OnCheckIfJobPlngLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"; var Result: Boolean)` (integration)
- `OnBeforeUpdateUnitPrice(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateRemainingCostsAndAmounts(var JobPlanningLine: Record "Job Planning Line"; PostingDate: Date; CurrencyFactor: Decimal; AmountRoundingPrecisionFCY: Decimal; AmountRoundingPrecision: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateTotalCost(var JobPlanningLine: Record "Job Planning Line"; AmountRoundingPrecisionFCY: Decimal; AmountRoundingPrecision: Decimal; var IsHandled: Boolean)` (integration)
- `OnAfterClearValues(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterControlUsageLink(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; CurrFieldNo: Integer)` (integration)
- `OnBeforeCopyFromGLAccount(var JobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean; Job: Record Job)` (integration)
- `OnBeforeSelectMultipleItems(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnAfterSelectMultipleItems(var JobPlanningLine: Record "Job Planning Line")` (integration)
- `OnBeforeAddItems(var JobPlanningLine: Record "Job Planning Line"; SelectionFilter: Text; var IsHandled: Boolean)` (integration)
- `OnAfterCopyFromResource(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; Resource: Record Resource)` (integration)
- `OnBeforeUpdateQtyToTransfer(var JobPlanningLine: Record "Job Planning Line"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantity(JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var SkipValidateQuantity: Boolean)` (integration)
- `OnBeforeFindOrCreateRecordByNo(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnGetType(JobPlanningLineType: Enum "Job Planning Line Type"; var Result: Integer)` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 1034 "Job Planning Line - Calendar"](../codeunit/1034.md) OnDeletePlanningLine, [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterJobPlanningLineDeleteRecall
- OnAfterInsertEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterJobPlanningLineInsertSetRecId
- OnAfterRenameEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterJobPlanningLineRenameUpdateRecId
- OnBeforeValidateEvent(Line Type): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnJobPlanningLineUpdateLineTypeRecallItemNotif
- OnBeforeValidateEvent(Quantity): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnJobPlanningLineUpdateQtyTo0RecallItemNotif
- OnBeforeValidateEvent(Type): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnJobPlanningLineUpdateTypeRecallItemNotif

## Procedures

- `OpenItemTrackingLines()` (internal)
- `IsInbound(): Boolean` (internal)
- `CheckItemAvailable(CalledByFieldNo: Integer)`
- `SetJob(NewJob: Record Job)`: Use this method to set the global Job variable. This is useful for passing unsaved job record changes.
- `CopyFieldsFromJob()`
- `RenameNo(LineType: Enum "Job Planning Line Type"; OldNo: Code[20]; NewNo: Code[20])`: Renames all Job Planning Line "No." values for the specified LineType and OldNo to NewNo.
- `GetJob()`
- `UpdateCurrencyFactor()`
- `InitRoundingPrecisions()`
- `Caption(): Text`
- `SetUpNewLine(LastJobPlanningLine: Record "Job Planning Line")`
- `InitJobPlanningLine()`
- `GetRemainingQty(var RemainingQty: Decimal; var RemainingQtyBase: Decimal)`
- `GetReservationQty(var QtyReserved: Decimal; var QtyReservedBase: Decimal; var QtyToReserve: Decimal; var QtyToReserveBase: Decimal): Decimal`
- `GetSourceCaption(): Text`
- `SetReservationEntry(var ReservEntry: Record "Reservation Entry")`
- `SetReservationFilters(var ReservEntry: Record "Reservation Entry")`
- `ReservEntryExist(): Boolean`
- `UpdateAllAmounts()`
- `AfterResourceFindCost(var ResourceCost: Record "Resource Cost")`
- `RetrieveCostPrice(CalledByFieldNo: Integer): Boolean` (protected)
- `FindPriceAndDiscount(CalledByFieldNo: Integer)`
- `ApplyPrice(PriceType: enum "Price Type"; CalledByFieldNo: Integer)`
- `GetLineWithPrice(var LineWithPrice: Interface "Line With Price")`
- `RecalculateAmounts(JobExchCalculation: Option "Fixed FCY","Fixed LCY"; xAmount: Decimal; var Amount: Decimal; var AmountLCY: Decimal)`
- `UpdateAmountsAndDiscounts()`
- `Use(PostedQty: Decimal; PostedTotalCost: Decimal; PostedLineAmount: Decimal; PostingDate: Date; CurrencyFactor: Decimal)`
- `UpdateQtyToTransfer()`
- `UpdateQtyToInvoice()`
- `UpdatePostedTotalCost(AdjustJobCost: Decimal; AdjustJobCostLCY: Decimal)`
- `ValidateModification(FieldChanged: Boolean; FieldNo: Integer)`
- `Overdue(): Boolean`
- `SetBypassQtyValidation(Bypass: Boolean)`
- `UpdateReservation(CalledByFieldNo: Integer)`
- `ShowReservation()`
- `ShowReservationEntries(Modal: Boolean)`
- `AutoReserve()`
- `ShowTracking()`
- `ShowOrderPromisingLine()`
- `FilterLinesWithItemToPlan(var Item: Record Item)`
- `FindLinesWithItemToPlan(var Item: Record Item): Boolean`
- `LinesWithItemToPlanExist(var Item2: Record Item): Boolean`
- `FilterLinesForReservation(ReservationEntry: Record "Reservation Entry"; NewStatus: Option; AvailabilityFilter: Text; Positive: Boolean)`
- `DrillDownJobInvoices()`
- `RowID1(): Text[250]`
- `RowID2(): Text[250]` (internal)
- `UpdatePlanned(): Boolean`
- `UpdatePlannedDueDate(): Boolean`
- `ClearValues()`
- `ClearTracking()`
- `InitFromJobPlanningLine(FromJobPlanningLine: Record "Job Planning Line"; NewQuantity: Decimal)`
- `GetNextJobLineNo(FromJobPlanningLine: Record "Job Planning Line"): Integer` (protected)
- `IsInventoriableItem(): Boolean`
- `IsNonInventoriableItem(): Boolean`
- `ConvertToJobLineType(): Enum "Job Line Type"`
- `ConvertFromJobLineType(JobLineType: Enum "Job Line Type"): Enum "Job Planning Line Line Type"`
- `CopyTrackingFromJobJnlLine(JobJnlLine: Record "Job Journal Line")`
- `CopyTrackingFromJobLedgEntry(JobLedgEntry: Record "Job Ledger Entry")`
- `CreateWarehouseRequest()` (internal)
- `TestStatusOpen()`
- `CheckIfJobPlngLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"): Boolean`
- `IsAsmToOrderAllowed(): Boolean`
- `QtyToAsmBaseOnATO(): Decimal`
- `ShowAsmToJobPlanningLines()`
- `CheckAsmToOrder(AsmHeader: Record "Assembly Header")`
- `AsmToOrderExists(var AsmHeader: Record "Assembly Header"): Boolean`
- `InitQtyToAsm()` (protected)
- `AssembledQuantity(var Qty: Decimal; var QtyBase: Decimal)`
- `IsAsmToOrderRequired(): Boolean`
- `SelectMultipleItems()`
- `GetATOBin(Location: Record Location; var BinCode: Code[20]): Boolean`
- `IsExtendedText(): Boolean`
- `SetSkipCheckForMultipleJobsOnSalesLine(Skip: Boolean)`
- `GetSkipCheckForMultipleJobsOnSalesLine(): Boolean`
- `SuspendDeletionCheck(Suspend: Boolean)`
- `SetPurchLineFilters(var PurchaseLine: Record "Purchase Line")`

Plus 50 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 1007 "Job Planning Lines"](../page/1007.md)
- lookup page [Page 1007 "Job Planning Lines"](../page/1007.md)
- Job Task No.: TableRelation [Table 1001 "Job Task"](../table/1001.md)
- Attached to Line No.: TableRelation [Table 1003 "Job Planning Line"](../table/1003.md)
- Invoiced Amount (LCY): CalcFormula [Table 1022 "Job Planning Line Invoice"](../table/1022.md)
- Invoiced Cost Amount (LCY): CalcFormula [Table 1022 "Job Planning Line Invoice"](../table/1022.md)
- Qty. Invoiced: CalcFormula [Table 1022 "Job Planning Line Invoice"](../table/1022.md)
- Qty. Transferred to Invoice: CalcFormula [Table 1022 "Job Planning Line Invoice"](../table/1022.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)
- Job Ledger Entry No.: TableRelation [Table 169 "Job Ledger Entry"](../table/169.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)
- Qty. on Journal: CalcFormula [Table 210 "Job Journal Line"](../table/210.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)
- BOM Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (conditional)
- Reserved Qty. (Base): CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Reserved Quantity: CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.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)
- Pick Qty.: CalcFormula [Table 5767 "Warehouse Activity Line"](../table/5767.md)
- Pick Qty. (Base): CalcFormula [Table 5767 "Warehouse Activity Line"](../table/5767.md)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- No.: TableRelation [Table 7 "Standard Text"](../table/7.md) (conditional)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)
- Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)

## Referenced by

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

- [Table 1001 "Job Task"](../table/1001.md): Contract (Total Cost), Contract (Total Price), End Date, Remaining (Total Cost), Remaining (Total Price), Schedule (Total Cost), Schedule (Total Price), Start Date
- [Table 167 "Job"](../table/167.md): Completely Picked, Next Invoice Date, Scheduled Res. Gr. Qty., Scheduled Res. Qty.
- [Table 1034 "Job Planning Line - Calendar"](../table/1034.md): Job No., Job Task No., Planning Line No.
- [Table 152 "Resource Group"](../table/152.md): Qty. on Order (Job), Qty. Quoted (Job)
- [Table 156 "Resource"](../table/156.md): Qty. on Order (Job), Qty. Quoted (Job)
- [Table 1003 "Job Planning Line"](../table/1003.md): Attached to Line No.
- [Table 1020 "Job Usage Link"](../table/1020.md): Line No.
- [Table 1022 "Job Planning Line Invoice"](../table/1022.md): Job Planning Line No.
- [Table 27 "Item"](../table/27.md): Qty. on Job Order
- [Table 5700 "Stockkeeping Unit"](../table/5700.md): Qty. on Job Order
- [Table 904 "Assemble-to-Order Link"](../table/904.md): Document No.

## Pages and codeunits on this table

- [Page 1007 "Job Planning Lines"](../page/1007.md) (source table)
- [Page 1015 "Job Planning Lines Part"](../page/1015.md) (source table)
- [Page 1032 "Available - Job Planning Lines"](../page/1032.md) (source table)
- [Page 1043 "Get Job Planning Lines"](../page/1043.md) (source table)
- [Codeunit 1019 "Job-Explode BOM"](../codeunit/1019.md) (codeunit runs on it)
- [Codeunit 1034 "Job Planning Line - Calendar"](../codeunit/1034.md) (codeunit runs on it)

## Extended by

- [Table extension 6460 "Serv. Job Planning Line"](../tableextension/6460.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 1032 "Job Planning Line-Reserve"](../codeunit/1032.md) (6 calls: `AutoReserve → ReservQuantity`, `CheckIfJobPlngLineMeetsReservedFromStockSetting → GetReservedQtyFromInventory`, `OnDelete → DeleteLine`, …)
- [Codeunit 1020 "JobJnlManagement"](../codeunit/1020.md) (2 calls: `InitFromJobPlanningLine → GetNextEntryNo`, `InitJobPlanningLine → GetNextEntryNo`)
- [Codeunit 311 "Item-Check Avail."](../codeunit/311.md) (2 calls: `CheckItemAvailable → JobPlanningLineCheck`, `CheckItemAvailable → RaiseUpdateInterruptedError`)
- [Codeunit 378 "Transfer Extended Text"](../codeunit/378.md) (2 calls: `AddItem → InsertJobExtText`, `AddItem → JobCheckIfAnyExtText`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `RowID1 → ComposeRowID`, `RowID2 → ComposeRowID`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (2 calls: `ApplyPrice → GetHandler`, `IsQuantityChangedForPrice → IsExtendedPriceCalculationEnabled`)
- [Codeunit 99000845 "Reservation Management"](../codeunit/99000845.md) (2 calls: `AutoReserve → AutoReserve`, `AutoReserve → SetReservSource`)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (1 call: `CalcBaseQty → CalcBaseQty`)
- [Codeunit 5998 "Job Warehouse Mgt."](../codeunit/5998.md) (1 call: `OnDelete → JobPlanningLineDelete`)
- [Codeunit 703 "Find Record Management"](../codeunit/703.md) (1 call: `FindOrCreateRecordByNo → FindNoFromTypedValue`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (1 call: `FindBin → GetDefaultBin`)
- [Codeunit 99000815 "Reservation-Check Date Confl."](../codeunit/99000815.md) (1 call: `UpdateReservation → JobPlanningLineCheck`)
- [Page 497 "Reservation Entries"](../page/497.md) (1 call: `ShowReservationEntries → (object)`)

## Recent changes

- 2026-07-17 [#8905 [Master] Different source reference on reservation entries created directly from Job Planning Line and via a warehouse pick.](../../changes/bcapps/8905.md) (main, BC30, fix)

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