This topic provides code examples to show changed patterns in dimension code modification and migration for five different scenarios. It compares the code examples in earlier versions to the code examples in Business Central.
Key changes are listed as follows:
Journal line dimension tables are removed.
A dimension set ID is created in the Dimension Set ID field.
Earlier Versions
ResJnlLine."Qty. per Unit of Measure" :=
SalesLine."Qty. per Unit of Measure";
TempJnlLineDim.DELETEALL;
TempDocDim.RESET;
TempDocDim.SETRANGE(
"Table ID",DATABASE::"Sales Line");
TempDocDim.SETRANGE(
"Line No.",SalesLine."Line No.");
DimMgt.CopyDocDimToJnlLineDim(
TempDocDim,TempJnlLineDim);
ResJnlPostLine.RunWithCheck(
ResJnlLine,TempJnlLineDim);
Business Central
ResJnlLine."Qty. per Unit of Measure" :=
SalesLine."Qty. per Unit of Measure";
ResJnlLine."Dimension Set ID" :=
SalesLine." Dimension Set ID ";
ResJnlPostLine.Run(ResJnlLine);
When you post a document in Business Central , you no longer have to copy the document dimensions.
Earlier Versions
DimMgt.MoveOneDocDimToPostedDocDim(
TempDocDim,DATABASE::"Sales Line",
"Document Type",
"No.",
SalesShptLine."Line No.",
DATABASE::"Sales Shipment Line",
SalesShptHeader."No.");
Business Central
SalesShptLine."Dimension Set ID”
:= SalesLine."Dimension Set ID”
You can edit dimensions from a document. For example, you can edit a sales order line.
Earlier Versions
Table 37, function ShowDimensions:
TESTFIELD("Document No.");
TESTFIELD("Line No.");
DocDim.SETRANGE("Table ID",DATABASE::"Sales Line");
DocDim.SETRANGE("Document Type","Document Type");
DocDim.SETRANGE("Document No.","Document No.");
DocDim.SETRANGE("Line No.","Line No.");
DocDimensions.SETTABLEVIEW(DocDim);
DocDimensions.RUNMODAL;
Business Central
Table 37, function ShowDimensions:
"Dimension ID" :=
DimSetEntry.EditDimensionSet(
"Dimension ID");
You can show dimensions from posted entries, such as sales shipment lines.
Earlier Versions
Table 111, function ShowDimensions:
TESTFIELD("No.");
TESTFIELD("Line No.");
PostedDocDim.SETRANGE(
"Table ID",DATABASE::"Sales Shipment Line");
PostedDocDim.SETRANGE(
"Document No.","Document No.");
PostedDocDim.SETRANGE("Line No.","Line No.");
PostedDocDimensions.SETTABLEVIEW(PostedDocDim);
PostedDocDimensions.RUNMODAL;
Business Central
Table 111, function ShowDimensions:
DimSetEntry.ShowDimensionSet(
"Dimension ID");
You can get default dimensions for a document, such as a sales order line.
Earlier Versions
Table 37, function CreateDim()
SourceCodeSetup.GET;
TableID[1] := Type1;
No[1] := No1;
TableID[2] := Type2;
No[2] := No2;
TableID[3] := Type3;
No[3] := No3;
"Shortcut Dimension 1 Code" := '';
"Shortcut Dimension 2 Code" := '';
DimMgt.GetPreviousDocDefaultDim(
DATABASE::"Sales Header","Document Type",
"Document No.",0,
DATABASE::Customer,
"Shortcut Dimension 1 Code",
"Shortcut Dimension 2 Code");
DimMgt.GetDefaultDim(
TableID,No,SourceCodeSetup.Sales,
"Shortcut Dimension 1 Code",
"Shortcut Dimension 2 Code");
IF "Line No." <> 0 THEN
DimMgt.UpdateDocDefaultDim(
DATABASE::"Sales Line","Document Type",
"Document No.","Line No.",
"Shortcut Dimension 1 Code",
"Shortcut Dimension 2 Code");
Business Central
Table 37, function CreateDim()
SourceCodeSetup.GET;
TableID[1] := Type1;
No[1] := No1;
TableID[2] := Type2;
No[2] := No2;
TableID[3] := Type3;
No[3] := No3;
"Shortcut Dimension 1 Code" := '';
"Shortcut Dimension 2 Code" := '';
GetSalesHeader;
"Dimension ID" :=
DimMgt.GetDefaultDimID(
TableID,No,SourceCodeSetup.Sales,
"Shortcut Dimension 1 Code",
"Shortcut Dimension 2 Code",
SalesHeader."Dimension ID",
DATABASE::"Sales Header");
Design Details: Dimension Set Entries
Design Details: Table Structure
Design Details: Codeunit 408 Dimension Management
© 2019 Microsoft. All rights reserved.