Tables missing Dimension Set IDs after 2013 R2 Upgrade

BenBeasley
Member Posts: 6
In the hope of saving someone the couple of hours it took me to work this out:
There is a standard NAV bug in Codeunit 104049 - Upgrade Dimension Entry - SQL which causes Transfer Lines and Transfer Headers to be excluded when allocating Dimension Set IDs from converted Document Dimensions into Dimension Set Entries.
Dimension Set Entries may not be created from Transfer Header/Transfer Line entries, either. This problem does not affect posted Transfer tables.
To correct the issue replace the following line of code in the UpdateParentTable function in Codeunit 104049 - Upgrade Dimension Entry:
//IF (ParentTableID2 IN [DATABASE::"Standard Sales Line",DATABASE::"Standard Purchase Line"]) THEN
IF (ParentTableID2 IN [DATABASE::"Standard Sales Line",DATABASE::"Standard Purchase Line",
DATABASE::"Transfer Header",DATABASE::"Transfer line"]) THEN
Specifically, the problem appears to be caused by the lack of a 'Document Type' key on the Transfer Header/Transfer Line table. The Standard Sales Line and Standard Purchase Line also miss this field. The code responsible for managing the dimension set entries constructs an array of fields based on the primary key of source dimension table, and the Document Dimension table primary key includes the 'Document Type' field. If you don't explicitly add the transfer tables to the above if statement, the code will not find those records as it examines every record in the database for the key values of the document dimension table, effectively bypassing them and not allocating dimension set IDs to them.
There is a standard NAV bug in Codeunit 104049 - Upgrade Dimension Entry - SQL which causes Transfer Lines and Transfer Headers to be excluded when allocating Dimension Set IDs from converted Document Dimensions into Dimension Set Entries.
Dimension Set Entries may not be created from Transfer Header/Transfer Line entries, either. This problem does not affect posted Transfer tables.
To correct the issue replace the following line of code in the UpdateParentTable function in Codeunit 104049 - Upgrade Dimension Entry:
//IF (ParentTableID2 IN [DATABASE::"Standard Sales Line",DATABASE::"Standard Purchase Line"]) THEN
IF (ParentTableID2 IN [DATABASE::"Standard Sales Line",DATABASE::"Standard Purchase Line",
DATABASE::"Transfer Header",DATABASE::"Transfer line"]) THEN
Specifically, the problem appears to be caused by the lack of a 'Document Type' key on the Transfer Header/Transfer Line table. The Standard Sales Line and Standard Purchase Line also miss this field. The code responsible for managing the dimension set entries constructs an array of fields based on the primary key of source dimension table, and the Document Dimension table primary key includes the 'Document Type' field. If you don't explicitly add the transfer tables to the above if statement, the code will not find those records as it examines every record in the database for the key values of the document dimension table, effectively bypassing them and not allocating dimension set IDs to them.
0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions