Table 1003 "Job Planning Line"
Base Application · Microsoft.Projects.Project.Planning
- 101fields
- 205procedures
- 79events
- 4Learn pages
- 25fields reference it
- 10event subscribers
- 13objects it calls
Across versions
- BC23present
- BC2421 procedures added, 5 fields changed
- BC255 procedures added, 1 fields changed
- BC261 procedures added, 1 procedures changed
- BC276 fields changed, 2 events added
- BC2882 fields changed, 1 procedures changed
- BC29-30unchanged
Neighbourhood 64 connected objects and pages
Base Application · Microsoft.Projects.Project.Planning · captioned “Project Planning Line” · BC23-30 · source at ea08af5e · facts from BC29
Learn documents this table through its pages: Page 1007 “Job Planning Lines” (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. Δ BC28 | Integer | Specifies the planning line’s entry number. | not editable |
| 2 | Job No. Δ BC24 Δ BC28 | Code[20] | Specifies the number of the related project. | TableRelation Table 167 “Job”; NotBlank |
| 3 | Planning Date Δ BC28 | 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. Δ BC28 | Code[20] | Specifies a document number for the planning line. | |
| 5 | Type Δ BC28 | Enum “Job Planning Line Type” | Specifies the type of account to which the planning line relates. | enum Enum 1023 “Job Planning Line Type” |
| 7 | No. Δ BC25 Δ BC27 Δ BC28 | 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 156 “Resource”, Table 27 “Item” (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 Δ BC28 | 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 Δ BC28 | 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) Δ BC28 | Decimal | Specifies the cost, in the local currency, of one unit of the selected item or resource. via Page 1007 “Job Planning Lines” | |
| 12 | Unit Cost (LCY) Δ BC28 | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. via Page 1007 “Job Planning Lines” | not editable |
| 13 | Total Cost (LCY) Δ BC28 | Decimal | Specifies the total cost for the planning line. The amount is in the local currency. via Page 1007 “Job Planning Lines” | not editable |
| 14 | Unit Price (LCY) Δ BC28 | 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. via Page 1007 “Job Planning Lines” | not editable |
| 15 | Total Price (LCY) Δ BC28 | Decimal | Specifies the total price on the planning line. The total price is in the local currency. via Page 1007 “Job Planning Lines” | not editable |
| 16 | Resource Group No. | Code[20] | — | TableRelation Table 152 “Resource Group” (Resource Group); not editable |
| 17 | Unit of Measure Code Δ BC28 | 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 205 “Resource Unit of Measure”, Table 5404 “Item Unit of Measure” (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 Δ BC28 | Decimal | — | not editable |
| 19 | Qty. Rounding Precision (Base) Δ BC28 | Decimal | — | not editable |
| 20 | Location Code Δ BC28 | Code[10] | Specifies a location code for an item. | TableRelation Table 14 “Location” (Location where(“Use As In-Transit” = const(false))) |
| 29 | Last Date Modified | Date | — | not editable |
| 30 | User ID Δ BC28 | 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 Δ BC28 | Code[10] | Specifies which work type the resource applies to. Prices are updated based on this entry. | TableRelation Table 200 “Work Type” (Work Type) |
| 33 | Customer Price Group | Code[10] | — | TableRelation Table 6 “Customer Price Group” (Customer Price Group) |
| 79 | Country/Region Code | Code[10] | — | TableRelation Table 9 “Country/Region” (Country/Region); not editable |
| 80 | Gen. Bus. Posting Group Δ BC28 | 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” (Gen. Business Posting Group); not editable |
| 81 | Gen. Prod. Posting Group Δ BC28 | 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” (Gen. Product Posting Group); not editable |
| 83 | Document Date | Date | — | |
| 84 | Planning Due Date | Date | — | |
| 900 | Qty. to Assemble + BC24 Δ BC28 | Decimal | Specifies how many units of the project planning line quantity that you want to supply by assembly. | |
| 901 | Qty. to Assemble (Base) + BC24 Δ BC28 | Decimal | — | |
| 902 | Assemble to Order + BC24 | Boolean | — | not editable |
| 903 | BOM Item No. + BC24 | Code[20] | — | TableRelation Table 27 “Item” |
| 904 | Attached to Line No. + BC24 | Integer | — | TableRelation Table 1003 “Job Planning Line” (“Job Planning Line”.“Line No.” where(“Job No.” = field(“Job No.”), “Job Task No.” = field(“Job Task No.”))); not editable |
| 1000 | Job Task No. Δ BC24 Δ BC28 | Code[20] | Specifies the number of the related project task. | TableRelation Table 1001 “Job Task” (“Job Task”.“Job Task No.” where(“Job No.” = field(“Job No.”))); NotBlank |
| 1001 | Line Amount (LCY) Δ BC28 | Decimal | Specifies the amount in the local currency that will be posted to the project ledger. via Page 1007 “Job Planning Lines” | not editable |
| 1002 | Unit Cost Δ BC28 | Decimal | Specifies the cost of one unit of the item or resource on the line. | |
| 1003 | Total Cost Δ BC28 | 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 Δ BC28 | 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 Δ BC28 | Decimal | Specifies the total price in the project currency on the planning line. | not editable |
| 1006 | Line Amount Δ BC28 | Decimal | Specifies the amount that will be posted to the project ledger. | |
| 1007 | Line Discount Amount Δ BC28 | Decimal | Specifies the discount amount that is granted for the item on the line. | |
| 1008 | Line Discount Amount (LCY) Δ BC28 | Decimal | — | not editable |
| 1015 | Cost Factor Δ BC28 | Decimal | — | not editable |
| 1019 | Serial No. Δ BC28 | 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. Δ BC28 | 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 % Δ BC28 | Decimal | Specifies the discount percentage that is granted for the item on the line. | |
| 1022 | Line Type Δ BC28 | Enum “Job Planning Line Line Type” | Specifies the type of planning line. | enum Enum 1003 “Job Planning Line Line Type” |
| 1023 | Currency Code Δ BC28 | Code[10] | Specifies the currency that is used on the entry. | TableRelation Table 4 “Currency”; not editable |
| 1024 | Currency Date Δ BC28 | Date | Specifies the date that will be used to find the exchange rate for the currency in the Currency Date field. | |
| 1025 | Currency Factor Δ BC28 | Decimal | — | not editable |
| 1026 | Schedule Line | Boolean | Budget Line caption | not editable |
| 1027 | Contract Line Δ BC28 | Boolean | Specifies whether this line is a billable line. | not editable |
| 1030 | Job Contract Entry No. Δ BC24 Δ BC28 | Integer | Specifies the entry number of the project planning line that the sales line is linked to. | not editable |
| 1035 | Invoiced Amount (LCY) Δ BC27 Δ BC28 | Decimal | Specifies, in local currency, the sales amount that was invoiced for this planning line. via Page 1007 “Job Planning Lines” | 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) Δ BC27 Δ BC28 | Decimal | Specifies, in the local currency, the cost amount that was invoiced for this planning line. via Page 1007 “Job Planning Lines” | 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 Δ BC27 | Decimal | — | |
| 1038 | VAT Line Discount Amount Δ BC27 | Decimal | — | |
| 1039 | VAT Line Amount Δ BC27 | Decimal | — | |
| 1041 | VAT % Δ BC28 | Decimal | — | |
| 1042 | Description 2 Δ BC28 | Text[50] | Specifies information in addition to the description. | |
| 1043 | Job Ledger Entry No. Δ BC24 | Integer | Project Ledger Entry No. caption | TableRelation Table 169 “Job Ledger Entry” (Job Ledger Entry); not editable |
| 1048 | Status Δ BC28 | Enum “Job Planning Line Status” | Specifies the status of a project order. | enum Enum 1048 “Job Planning Line Status”; not editable |
| 1050 | Ledger Entry Type Δ BC28 | 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” |
| 1051 | Ledger Entry No. Δ BC28 | Integer | Specifies the entry number of the project ledger entry associated with the project planning line. | TableRelation Table 17 “G/L Entry”, Table 203 “Res. Ledger Entry”, Table 32 “Item Ledger Entry” (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 Δ BC28 | 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 Δ BC28 | 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. Δ BC28 | 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) Δ BC28 | 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. via Page 1032 “Available - Job Planning Lines” | not editable |
| 1062 | Remaining Total Cost Δ BC28 | 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) Δ BC28 | Decimal | Specifies the remaining total cost (LCY) for the planning line. The amount is in the local currency. via Page 1007 “Job Planning Lines” | not editable |
| 1064 | Remaining Line Amount Δ BC28 | Decimal | Specifies the amount that will be posted to the project ledger. | not editable |
| 1065 | Remaining Line Amount (LCY) Δ BC28 | Decimal | Specifies the amount in the local currency that will be posted to the project ledger. via Page 1007 “Job Planning Lines” | not editable |
| 1070 | Qty. Posted Δ BC28 | 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 Δ BC28 | 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 Δ BC28 | 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) Δ BC28 | Decimal | Specifies the total cost (LCY) that has been posted to the project ledger, if the Usage Link check box has been selected. via Page 1007 “Job Planning Lines” | not editable |
| 1074 | Posted Line Amount Δ BC28 | 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) Δ BC28 | 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. via Page 1007 “Job Planning Lines” | not editable |
| 1080 | Qty. Transferred to Invoice Δ BC28 | 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 Δ BC28 | 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 Δ BC28 | 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 Δ BC28 | Decimal | Specifies the quantity that remains to be invoiced. It is calculated as Quantity - Qty. Invoiced. | not editable |
| 1100 | Reserved Quantity Δ BC28 | 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) Δ BC28 | 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 Δ BC28 | 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” |
| 1103 | Planned | Boolean | — | not editable |
| 5402 | Variant Code Δ BC24 Δ BC28 | Code[10] | Specifies the variant of the item on the line. | TableRelation Table 5401 “Item Variant” (if (Type = const(Item)) “Item Variant”.Code where(“Item No.” = field(“No.”), Blocked = const(false))) |
| 5403 | Bin Code Δ BC28 | 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” (Bin.Code where(“Location Code” = field(“Location Code”))) |
| 5404 | Qty. per Unit of Measure Δ BC28 | Decimal | — | not editable |
| 5410 | Quantity (Base) Δ BC28 | Decimal | Specifies the quantity expressed in the base units of measure. via Page 1007 “Job Planning Lines” | |
| 5790 | Requested Delivery Date | Date | — | |
| 5791 | Promised Delivery Date | Date | — | |
| 5794 | Planned Delivery Date Δ BC28 | 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 Δ BC28 | 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” |
| 7001 | Cost Calculation Method Δ BC28 | 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” |
| 7300 | Pick Qty. Δ BC28 | 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 Δ BC28 | Decimal | Specifies the quantity of the item you have picked for the project planning line. | not editable |
| 7302 | Qty. Picked (Base) Δ BC28 | Decimal | Specifies the base quantity of the item you have picked for the project planning line. via Page 1007 “Job Planning Lines” | not editable |
| 7303 | Completely Picked | Boolean | — | not editable |
| 7304 | Pick Qty. (Base) Δ BC28 | 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 Δ BC28 | 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” 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” JobPlanningLineClearTracking
OnAfterCopyTrackingFromJobLedgEntry(var JobPlanningLine: Record "Job Planning Line"; JobLedgEntry: Record "Job Ledger Entry")(integration)- subscribers: Codeunit 6516 “Package Management” 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")Δ BC28 (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)+ BC25 − BC25 (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)Δ BC24 (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")+ BC24 (integration)OnAfterSelectMultipleItems(var JobPlanningLine: Record "Job Planning Line")+ BC24 (integration)OnBeforeAddItems(var JobPlanningLine: Record "Job Planning Line"; SelectionFilter: Text; var IsHandled: Boolean)+ BC24 (integration)OnAfterCopyFromResource(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; Resource: Record Resource)+ BC24 (integration)OnBeforeUpdateQtyToTransfer(var JobPlanningLine: Record "Job Planning Line"; CurrFieldNo: Integer; var IsHandled: Boolean)+ BC24 (integration)OnBeforeValidateQuantity(JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; var SkipValidateQuantity: Boolean)+ BC26 (integration)OnBeforeFindOrCreateRecordByNo(var JobPlanningLine: Record "Job Planning Line"; xJobPlanningLine: Record "Job Planning Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)+ BC27 (integration)OnGetType(JobPlanningLineType: Enum "Job Planning Line Type"; var Result: Integer)+ BC27 (integration)
Trigger event subscribers
- OnAfterDeleteEvent: Codeunit 1034 “Job Planning Line - Calendar” OnDeletePlanningLine, Codeunit 1508 “Notification Lifecycle Handler” OnAfterJobPlanningLineDeleteRecall
- OnAfterInsertEvent: Codeunit 1508 “Notification Lifecycle Handler” OnAfterJobPlanningLineInsertSetRecId
- OnAfterRenameEvent: Codeunit 1508 “Notification Lifecycle Handler” OnAfterJobPlanningLineRenameUpdateRecId
- OnBeforeValidateEvent(Line Type): Codeunit 1508 “Notification Lifecycle Handler” OnJobPlanningLineUpdateLineTypeRecallItemNotif
- OnBeforeValidateEvent(Quantity): Codeunit 1508 “Notification Lifecycle Handler” OnJobPlanningLineUpdateQtyTo0RecallItemNotif
- OnBeforeValidateEvent(Type): Codeunit 1508 “Notification Lifecycle Handler” OnJobPlanningLineUpdateTypeRecallItemNotif
Procedures
OpenItemTrackingLines()(internal)IsInbound(): Boolean(internal)CheckItemAvailable(CalledByFieldNo: Integer)SetJob(NewJob: Record Job)+ BC25: Use this method to set the global Job variable. This is useful for passing unsaved job record changes.CopyFieldsFromJob()Δ BC25RenameNo(LineType: Enum "Job Planning Line Type"; OldNo: Code[20]; NewNo: Code[20])+ BC26: Renames all Job Planning Line “No.” values for the specified LineType and OldNo to NewNo.GetJob()Δ BC24UpdateCurrencyFactor()InitRoundingPrecisions()Caption(): TextSetUpNewLine(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): DecimalGetSourceCaption(): TextSetReservationEntry(var ReservEntry: Record "Reservation Entry")SetReservationFilters(var ReservEntry: Record "Reservation Entry")ReservEntryExist(): BooleanUpdateAllAmounts()AfterResourceFindCost(var ResourceCost: Record "Resource Cost")Δ BC28RetrieveCostPrice(CalledByFieldNo: Integer): BooleanΔ BC24 (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)Δ BC26UpdateAmountsAndDiscounts()Use(PostedQty: Decimal; PostedTotalCost: Decimal; PostedLineAmount: Decimal; PostingDate: Date; CurrencyFactor: Decimal)UpdateQtyToTransfer()UpdateQtyToInvoice()UpdatePostedTotalCost(AdjustJobCost: Decimal; AdjustJobCostLCY: Decimal)ValidateModification(FieldChanged: Boolean; FieldNo: Integer)Overdue(): BooleanSetBypassQtyValidation(Bypass: Boolean)UpdateReservation(CalledByFieldNo: Integer)ShowReservation()ShowReservationEntries(Modal: Boolean)AutoReserve()ShowTracking()ShowOrderPromisingLine()FilterLinesWithItemToPlan(var Item: Record Item)FindLinesWithItemToPlan(var Item: Record Item): BooleanLinesWithItemToPlanExist(var Item2: Record Item): BooleanFilterLinesForReservation(ReservationEntry: Record "Reservation Entry"; NewStatus: Option; AvailabilityFilter: Text; Positive: Boolean)DrillDownJobInvoices()RowID1(): Text[250]RowID2(): Text[250](internal)UpdatePlanned(): BooleanUpdatePlannedDueDate(): BooleanClearValues()ClearTracking()InitFromJobPlanningLine(FromJobPlanningLine: Record "Job Planning Line"; NewQuantity: Decimal)GetNextJobLineNo(FromJobPlanningLine: Record "Job Planning Line"): Integer(protected)IsInventoriableItem(): BooleanIsNonInventoriableItem(): BooleanConvertToJobLineType(): 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"): BooleanIsAsmToOrderAllowed(): Boolean+ BC24QtyToAsmBaseOnATO(): Decimal+ BC24ShowAsmToJobPlanningLines()+ BC24CheckAsmToOrder(AsmHeader: Record "Assembly Header")+ BC24AsmToOrderExists(var AsmHeader: Record "Assembly Header"): Boolean+ BC24InitQtyToAsm()+ BC24 (protected)AssembledQuantity(var Qty: Decimal; var QtyBase: Decimal)+ BC24IsAsmToOrderRequired(): Boolean+ BC24SelectMultipleItems()+ BC24GetATOBin(Location: Record Location; var BinCode: Code[20]): Boolean+ BC24IsExtendedText(): Boolean+ BC24SetSkipCheckForMultipleJobsOnSalesLine(Skip: Boolean)+ BC24GetSkipCheckForMultipleJobsOnSalesLine(): Boolean+ BC24SuspendDeletionCheck(Suspend: Boolean)+ BC24SetPurchLineFilters(var PurchaseLine: Record "Purchase Line")+ BC25
Plus 50 local procedures.
Triggers
OnDelete, OnInsert, OnModify, OnRename
Relations
- drill-down page Page 1007 “Job Planning Lines”
- lookup page Page 1007 “Job Planning Lines”
- Job Task No.: TableRelation Table 1001 “Job Task”
- Attached to Line No.: TableRelation Table 1003 “Job Planning Line”
- Invoiced Amount (LCY): CalcFormula Table 1022 “Job Planning Line Invoice”
- Invoiced Cost Amount (LCY): CalcFormula Table 1022 “Job Planning Line Invoice”
- Qty. Invoiced: CalcFormula Table 1022 “Job Planning Line Invoice”
- Qty. Transferred to Invoice: CalcFormula Table 1022 “Job Planning Line Invoice”
- Location Code: TableRelation Table 14 “Location”
- No.: TableRelation Table 15 “G/L Account” (conditional)
- Resource Group No.: TableRelation Table 152 “Resource Group”
- No.: TableRelation Table 156 “Resource” (conditional)
- Job No.: TableRelation Table 167 “Job”
- Job Ledger Entry No.: TableRelation Table 169 “Job Ledger Entry”
- Ledger Entry No.: TableRelation Table 17 “G/L Entry” (conditional)
- Work Type Code: TableRelation Table 200 “Work Type”
- Ledger Entry No.: TableRelation Table 203 “Res. Ledger Entry” (conditional)
- Unit of Measure Code: TableRelation Table 204 “Unit of Measure” (conditional)
- Unit of Measure Code: TableRelation Table 205 “Resource Unit of Measure” (conditional)
- Qty. on Journal: CalcFormula Table 210 “Job Journal Line”
- Gen. Bus. Posting Group: TableRelation Table 250 “Gen. Business Posting Group”
- Gen. Prod. Posting Group: TableRelation Table 251 “Gen. Product Posting Group”
- BOM Item No.: TableRelation Table 27 “Item”
- No.: TableRelation Table 27 “Item” (conditional)
- Ledger Entry No.: TableRelation Table 32 “Item Ledger Entry” (conditional)
- Reserved Qty. (Base): CalcFormula Table 337 “Reservation Entry”
- Reserved Quantity: CalcFormula Table 337 “Reservation Entry”
- Currency Code: TableRelation Table 4 “Currency”
- Variant Code: TableRelation Table 5401 “Item Variant”
- Unit of Measure Code: TableRelation Table 5404 “Item Unit of Measure” (conditional)
- Pick Qty.: CalcFormula Table 5767 “Warehouse Activity Line”
- Pick Qty. (Base): CalcFormula Table 5767 “Warehouse Activity Line”
- Customer Price Group: TableRelation Table 6 “Customer Price Group”
- No.: TableRelation Table 7 “Standard Text” (conditional)
- Bin Code: TableRelation Table 7354 “Bin”
- Country/Region Code: TableRelation Table 9 “Country/Region”
Referenced by
25 fields in 11 objects relate to this table (TableRelation or CalcFormula).
- Table 1001 “Job Task”: 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”: Completely Picked, Next Invoice Date, Scheduled Res. Gr. Qty., Scheduled Res. Qty.
- Table 1034 “Job Planning Line - Calendar”: Job No., Job Task No., Planning Line No.
- Table 152 “Resource Group”: Qty. on Order (Job), Qty. Quoted (Job)
- Table 156 “Resource”: Qty. on Order (Job), Qty. Quoted (Job)
- Table 1003 “Job Planning Line”: Attached to Line No.
- Table 1020 “Job Usage Link”: Line No.
- Table 1022 “Job Planning Line Invoice”: Job Planning Line No.
- Table 27 “Item”: Qty. on Job Order
- Table 5700 “Stockkeeping Unit”: Qty. on Job Order
- Table 904 “Assemble-to-Order Link”: Document No.
Pages and codeunits on this table
- Page 1007 “Job Planning Lines” (source table)
- Page 1015 “Job Planning Lines Part” (source table)
- Page 1032 “Available - Job Planning Lines” (source table)
- Page 1043 “Get Job Planning Lines” (source table)
- Codeunit 1019 “Job-Explode BOM” (codeunit runs on it)
- Codeunit 1034 “Job Planning Line - Calendar” (codeunit runs on it)
Extended by
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” (6 calls:
AutoReserve → ReservQuantity,CheckIfJobPlngLineMeetsReservedFromStockSetting → GetReservedQtyFromInventory,OnDelete → DeleteLine, …) - Codeunit 1020 “JobJnlManagement” (2 calls:
InitFromJobPlanningLine → GetNextEntryNo,InitJobPlanningLine → GetNextEntryNo) - Codeunit 311 “Item-Check Avail.” (2 calls:
CheckItemAvailable → JobPlanningLineCheck,CheckItemAvailable → RaiseUpdateInterruptedError) - Codeunit 378 “Transfer Extended Text” (2 calls:
AddItem → InsertJobExtText,AddItem → JobCheckIfAnyExtText) - Codeunit 6500 “Item Tracking Management” (2 calls:
RowID1 → ComposeRowID,RowID2 → ComposeRowID) - Codeunit 7001 “Price Calculation Mgt.” (2 calls:
ApplyPrice → GetHandler,IsQuantityChangedForPrice → IsExtendedPriceCalculationEnabled) - Codeunit 99000845 “Reservation Management” (2 calls:
AutoReserve → AutoReserve,AutoReserve → SetReservSource) - Codeunit 5402 “Unit of Measure Management” (1 call:
CalcBaseQty → CalcBaseQty) - Codeunit 5998 “Job Warehouse Mgt.” (1 call:
OnDelete → JobPlanningLineDelete) - Codeunit 703 “Find Record Management” (1 call:
FindOrCreateRecordByNo → FindNoFromTypedValue) - Codeunit 7302 “WMS Management” (1 call:
FindBin → GetDefaultBin) - Codeunit 99000815 “Reservation-Check Date Confl.” (1 call:
UpdateReservation → JobPlanningLineCheck) - Page 497 “Reservation Entries” (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. (main, BC30, fix)
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.