Mẫu: CPR - Navision mã khắc khuôn mẫu

LỖI #: 188428 (bảo trì nội dung)

Bài viết này áp dụng cho Microsoft Dynamics NAV cho tất cả các nước và tất cả ngôn ngữ.

Triệu chứng

Khi bạn nâng cấp cơ sở dữ liệu Microsoft Dynamics NAV 2009 Microsoft Dynamics 2013, dữ liệu lịch sử trong bảng tài liệu kích thước lưu trữ không được nâng cấp.

Giải pháp

Thông tin về cập nhật nóng

Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó chỉ được dùng để khắc phục sự cố được mô tả trong bài viết này. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này. Hotfix này có thể được kiểm tra thêm. Vì vậy, nếu bạn không bị ảnh hưởng bởi sự cố này, chúng tôi khuyến nghị bạn đợi cho gói dịch vụ tiếp theo của Microsoft Dynamics NAV 2009 hoặc phiên bản Microsoft Dynamics NAV tiếp theo có chứa hotfix này.

Lưu ý Trong trường hợp đặc biệt, chi phí thường phát sinh để hỗ trợ cuộc gọi có thể được hủy bỏ nếu chuyên viên hỗ trợ kỹ thuật cho Microsoft Dynamics và sản phẩm liên quan xác định rằng một Cập Nhật cụ thể sẽ giải quyết vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các vấn đề không phù hợp với bản Cập Nhật cụ thể trong câu hỏi và câu hỏi hỗ trợ bổ sung.

Nếu hotfix này không được đăng tải công cộng (nghĩa là một URL công cộng cho hotfix này không được cung cấp trong bài viết này), phân phối cần có chỉ dẫn kỹ thuật, thành viên đội đồng ý hoặc phê duyệt quản lý và thông tin sau áp dụng:

  • Để nhận hotfix này, khách hàng phải đang gặp lỗi được đề cập trong phần "Triệu chứng".

  • Bạn phải theo dõi khách hàng bạn gửi đến và cung cấp các gói dịch vụ tiếp theo khi có sẵn (nếu gói dịch vụ được phát hành).

Hotfix này dự kiến không được bao gồm trong một gói dịch vụ Microsoft Dynamics NAV.



Thông tin cài đặt

Microsoft cung cấp mô hình lập trình để minh hoạ, không bảo hành hoặc rõ ràng hay ngụ ý. Điều này bao gồm, nhưng không giới hạn ở các bảo đảm cho một mục đích cụ thể hoặc sự. Bài viết này giả định rằng bạn đã quen với ngôn ngữ lập trình đang được giải thích và các công cụ được sử dụng để tạo và quy trình gỡ lỗi. Các kỹ sư hỗ trợ Microsoft có thể giúp giải thích các chức năng của một quy trình cụ thể, nhưng chúng sẽ không sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình nhằm đáp ứng các yêu cầu cụ thể của bạn.

Lưu ý Trước khi cài đặt hotfix này, xác minh rằng tất cả Microsoft Navision khách người dùng đăng xuất hệ thống. Điều này bao gồm Microsoft Navision ứng dụng dịch vụ (NAS) khách người dùng. Bạn nên khách hàng chỉ người được đăng nhập khi bạn áp dụng hotfix này.

Để áp dụng hotfix này, bạn phải có giấy phép nhà phát triển.

Chúng tôi khuyên bạn nên tài khoản người dùng trong cửa sổ thông tin đăng nhập Windows hoặc trong cửa sổ thông tin đăng nhập cơ sở dữ liệu được gán vai trò "Siêu" của bạn. Nếu tài khoản người dùng không thể gán vai trò "SUPER" ID, bạn phải xác minh rằng tài khoản người dùng có các quyền sau đây:

  • Thay đổi quyền cho các đối tượng mà bạn sẽ thay đổi.

  • Quyền thực thi các đối tượng hệ thống đối tượng ID 5210 và các đối tượng hệ thống đối tượng ID 9015 .



Lưu ý Bạn không cần phải có quyền để lưu trữ dữ liệu nếu bạn phải tiến hành sửa chữa dữ liệu.

Thay đổi mã

Lưu ý Luôn kiểm tra mã khắc phục trong một môi trường được kiểm soát trước khi bạn áp dụng bản vá để sản xuất máy tính của bạn.

Để khắc phục sự cố này, hãy làm theo các bước sau:

  1. Thay đổi mã trong hàm GetTableKeyFieldArray nâng cấp kích thước mục - SQL codeunit (104049) như sau:
    Mã hiện tại

    ...KeyRef := RecRef.KEYINDEX(1);
    IF KeyRef.FIELDCOUNT >= ARRAYLEN(KeyArr) THEN // reserve the last index as 'stop code'
    ERROR(Text013,SQLMgt.GetTableNameSQL(TableID));

    // Delete the following lines.
    FOR i := 1 TO KeyRef.FIELDCOUNT DO BEGIN
    FieldRef := KeyRef.FIELDINDEX(i);
    KeyArr[i,1] := SQLMgt.StringConvert(FieldRef.NAME);
    KeyArr[i,2] := FORMAT(FieldRef.TYPE);
    END;
    // End of the deleted lines.

    RecRef.CLOSE;
    END;
    ...

    Thay thế mã

    ...KeyRef := RecRef.KEYINDEX(1);
    IF KeyRef.FIELDCOUNT >= ARRAYLEN(KeyArr) THEN // reserve the last index as 'stop code'
    ERROR(Text013,SQLMgt.GetTableNameSQL(TableID));

    // Add the following lines.
    IF TableID = DATABASE::"Document Dimension Archive" THEN
    GetDocDimArchiveTableKeyFieldArray(KeyRef,FieldRef,KeyArr)
    ELSE
    FOR i := 1 TO KeyRef.FIELDCOUNT DO BEGIN
    FieldRef := KeyRef.FIELDINDEX(i);
    KeyArr[i,1] := SQLMgt.StringConvert(FieldRef.NAME);
    KeyArr[i,2] := FORMAT(FieldRef.TYPE);
    END;
    // End of the added lines.

    RecRef.CLOSE;
    END;
    ...
  2. Thay đổi mã trong hàm GetDocDimArchiveTableKeyFieldArray nâng cấp kích thước mục - SQL codeunit (104049) như sau:
    Mã hiện tại

    ...RecRef.CLOSE;
    END;

    LOCAL PROCEDURE AreDimKeyAndParentKeyCompatible@1(OffSet@1000 : Integer) : Boolean;
    VAR
    i@1002 : Integer;
    ...

    Thay thế mã

    ...RecRef.CLOSE;
    END;

    // Add the following lines.
    LOCAL PROCEDURE GetDocDimArchiveTableKeyFieldArray@19(VAR KeyRef@1001 : KeyRef;VAR FieldRef@1000 : FieldRef;VAR KeyArr@1002 : ARRAY [16,2] OF Text[80]);
    VAR
    i@1004 : Integer;
    j@1003 : Integer;
    BEGIN
    FOR i := 1 TO KeyRef.FIELDCOUNT DO BEGIN
    FieldRef := KeyRef.FIELDINDEX(i);
    CASE TRUE OF
    i = 4: j := 6;
    i = 5: j := 4;
    i = 6: j := 5;
    ELSE
    j := i;
    END;
    KeyArr[j,1] := SQLMgt.StringConvert(FieldRef.NAME);
    KeyArr[j,2] := FORMAT(FieldRef.TYPE);
    END
    END;
    // End of the added lines.

    LOCAL PROCEDURE AreDimKeyAndParentKeyCompatible@1(OffSet@1000 : Integer) : Boolean;
    VAR
    i@1002 : Integer;
    ...




Điều kiện tiên quyết

Bạn phải có Microsoft Dynamics NAV 2013 cài đặt để áp dụng hotfix này.

Thông tin về việc loại bỏ

Bạn không thể xoá hotfix này.

Tham khảo

VSTF DynamicsNAVSE: 347950

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Lưu ý Đây là một bài viết "XUẤT BẢN NHANH" được tạo trực tiếp từ trung tâm hỗ trợ của Microsoft. Thông tin này được cung cấp-trả lời cho các vấn đề mới xuất hiện. Vì nhanh chóng có sẵn, các tài liệu có thể bao gồm lỗi và có thể được sửa đổi bất kỳ lúc nào mà không cần thông báo. Xem Điều khoản sử dụng để xem xét khác.

Tác giả: johane
Người viết: v-6
Biên tập kỹ thuật: johane
Biên tập viên:

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×