NAV 2013 Upgrade: Dimension Value ID Error

NokioNokio Member Posts: 52
edited 2013-10-23 in NAV Three Tier
Hi together,
I currently try to upgrade a database from NAV 2009 R2 to NAV 2013. Now I'm on step 2. While upgrading the "Document Dimension Archive" table I get the Error

"Dimension Value ID must have a value in Dimension Set Entry: Dimension Set ID=0, Dimension Code=PROJECT. It cannto be zero or empty."

But this table does not contain dimensions with an empty value.
Did anyone also received this type of error and could solve the problem?

Regards
Nokio

Comments

  • davmac1davmac1 Member Posts: 1,279
    global dimensions are stored in 2 places - the transaction record and the appropriate dimension table. Sometimes through incorrect updates, these can get out of sync, which will then cause NAV 2013 upgrade errors.
    Look for and fix any out of sync entries.
  • NokioNokio Member Posts: 52
    Hi davmac1,
    what exactly do you mean with sync entries? How should they get fixed?
    Thank you.

    Regards
    Nokio
  • GWulgGWulg Member Posts: 1
    Hi,

    I got the same error message and it was caused by two issues (same error):
    • In first case there was no "Dimension-Set ID" set in "Dimension Value" table (ID 349).
      I incremented it without filters starting by one.
    • In the second case there was a dimension value in a ledger entry table which was no longer existent in the "Dimension Value" table (ID 349). To find out which value I debugged the error. It will stop in Table 349. If you jump back to functions earlier you will find the following:
      .
      .
      .
            i := 0;
            IF TempDim.FINDSET THEN
              REPEAT
                i := i + 1;
                IF NOT SystemDataRow.IsNull(i) THEN BEGIN
                  TempDimSetEntry."Dimension Code" := TempDim.Code;
                  TempDimSetEntry."Dimension Value Code" := FORMAT(SystemDataRow.Item(i));
                  IF TempDimSetEntry."Dimension Value Code" <> '' THEN
                    TempDimSetEntry.INSERT(TRUE);
                END;
              UNTIL TempDim.NEXT = 0;
      .
      .
      .
      
      Create a record in "Dimension Value" table by using following values (use the hover in the debugger):
      • "Dimension Value"."Dimension Code" := TempDimSetEntry."Dimension Code";
      • "Dimension Value".Code := TempDimSetEntry."Dimension Value Code";

    Regards
    GWulg
  • davmac1davmac1 Member Posts: 1,279
    Sometimes a developer will "fix" one of the global dimensions either in the dimension table(s) or the ledger / posted document tables, but not both.
    This results in ledger / posted document table not having the same value stored in the dimension tables. This causes the upgrade procedure to fail because of the inconsistency.
  • Philippe_CharrierePhilippe_Charriere Member Posts: 1
    Hi all, this post is a little bit old... but I have the same problem today and I've solved it. Maybe this can help someone : The problem was in the Dimension Value table. The field "Code" in this table on one record contain a CRLF that broke the process. The CRLF is not visible. But I've export all the table from SQL and copy/paste it in Excel. So I can see the problem on on line : the line was splited in 2 lines. I've update the field value in the record in SQL side and the migration process was ok. I think there is many reason for the same error. This one was mine.
Sign In or Register to comment.