"Bạn không có quyền bắt đầu bảng lương tích hợp công cụ codeunit" thông báo lỗi khi bạn nhập tệp OCR thanh toán từ một Nhật ký nhận tiền mặt bằng cách sử dụng một giấy phép khách hàng trong phiên bản Microsoft Dynamics NAV 2009 Na Uy


Bài viết này áp dụng cho Microsoft Dynamics NAV cho ngôn ngữ tiếng Na Uy (không).

Triệu chứng


Giả sử rằng bạn sử dụng một giấy phép khách hàng trong phiên bản tiếng Na Uy Microsoft Dynamics NAV 2009 Service Pack 1 (SP1). Khi bạn nhập tệp OCR thanh toán từ một Nhật ký nhận tiền mặt, bạn nhận được thông báo lỗi sau:
Bạn không có quyền để khởi động công cụ tích hợp lương codeunit.
Sự cố này xảy ra trong các sản phẩm sau:
  • Phiên bản Microsoft Dynamics NAV 2009 R2 Na Uy
  • Phiên bản tiếng Na Uy Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Nguyên nhân


Sự cố này xảy ra vì giấy phép khách hàng không có quyền đối với bảng lương tích hợp công cụ codeunit (15000200). Tuy nhiên, bạn không phải sử dụng công cụ tích hợp lương codeunit (15000200) khi bạn nhập tệp OCR thanh toán.

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ó là chỉ nhằm 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. Do đó, nếu bạn không bị ảnh hưởng bởi vấn đề 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 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ể bị 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 sự cố. 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.


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 trương mục 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 thuộc tính trong thanh toán OCR - BBS báo cáo (15000064) như sau:
    Mã hiện tại
    ...RegisterJournal.TESTFIELD(RegisterJournal."No. Series");
    // Create work file
    IF NOT ISSERVICETIER THEN

    // Delete the following line.
    WorkFileName := PayrollTools.CreateWorkfile(FileName);

    TxtFile.TEXTMODE := TRUE;
    TxtFile.OPEN(WorkFileName);
    ...
    Thay thế mã
    ...RegisterJournal.TESTFIELD(RegisterJournal."No. Series");
    // Create work file
    IF NOT ISSERVICETIER THEN

    // Add the following line.
    WorkFileName := CreateWorkfile(FileName);

    TxtFile.TEXTMODE := TRUE;
    TxtFile.OPEN(WorkFileName);
    ...
  2. Thêm một biến toàn cầu mới trong thanh toán OCR - BBS báo cáo (15000064), và sau đó xác định biến như sau:
    • Tên: Text10633
    • TextConst: ' ENU = Filename "'
  3. Thêm một biến toàn cầu mới trong thanh toán OCR - BBS báo cáo (15000064), và sau đó xác định biến như sau:
    • Tên: Text10634
    • TextConst:' ENU = "" "sẽ kết thúc với TMP."'
  4. Thay đổi mã trong hàm NewFilename thanh toán OCR - BBS báo cáo (15000064) như sau:
    Mã hiện tại
    ...PROCEDURE NewFilename@1080009();
    BEGIN

    // Delete the following lines.
    IF NOT ISSERVICETIER THEN
    PayrollTools.NewFilename(FileName)
    ELSE IF FileObject.FileExists(FileName) THEN BEGIN
    // End of the lines.

    IF (COPYSTR(FileName, STRLEN(FileName) - 1, 1) = '~') OR
    (COPYSTR(FileName, STRLEN(FileName) - 2, 1) = '~')
    THEN
    ...
    Thay thế mã
    PROCEDURE NewFilename@1080009();BEGIN

    // Add the following line.
    IF FileObject.FileExists(FileName) THEN BEGIN

    IF (COPYSTR(FileName, STRLEN(FileName) - 1, 1) = '~') OR
    (COPYSTR(FileName, STRLEN(FileName) - 2, 1) = '~')
    THEN
  5. Thay đổi mã trong tài liệu trong thanh toán OCR - BBS báo cáo (15000064) như sau:
    Mã hiện tại
    END;END;

    BEGIN
    END.
    }
    Thay thế mã
    END;END;

    // Add the following lines.
    PROCEDURE CreateWorkfile@1080015(fileName@1080000 : Text[250]) : Text[250];
    VAR
    file@1080001 : Text[250];
    dummy@1080002 : Boolean;
    BEGIN
    // Creates a workfile. I.e. copies the current file to a new, editable file
    // Example: File Payment.TXT is renamed to Payment.TMP.
    // RETURNS: The name of the workfile.

    file := COPYSTR(fileName, 1, STRLEN(fileName) - 3) + 'tmp';
    IF file = fileName THEN // Error: The original file already has a workfile name.
    ERROR(Text10633 + fileName + Text10634);

    dummy := ERASE(file); // Delete previous workfile (if any). Ignore the error message.
    COPY(fileName, file);
    EXIT(file);
    END;
    // End of the lines.

    BEGIN
    END.
    }
  6. Thay đổi mã trong thuộc tính trong thanh toán OCR - báo cáo dữ liệu thoại (15000065) như sau:
    Mã hiện tại
    ...RegisterJournal.TESTFIELD(RegisterJournal."No. Series");

    IF NOT ISSERVICETIER THEN

    // Delete the following line.
    WorkFileName := PayrollTools.CreateWorkfile(FileName);

    TxtFile.TEXTMODE := TRUE;
    TxtFile.OPEN(WorkFileName);
    ...
    Thay thế mã
    ...RegisterJournal.TESTFIELD(RegisterJournal."No. Series");

    IF NOT ISSERVICETIER THEN

    // Add the following line.
    WorkFileName := CreateWorkfile(FileName);

    TxtFile.TEXTMODE := TRUE;
    TxtFile.OPEN(WorkFileName);
    ...
  7. Thêm một biến toàn cầu mới trong thanh toán OCR - báo cáo dữ liệu thoại (15000065), và sau đó xác định biến như sau:
    • Tên: Text10632
    • TextConst: ' ENU = Filename "'
  8. Thêm một biến mới trên toàn cầu thanh toán OCR - báo cáo dữ liệu thoại (15000065), và sau đó xác định biến như sau:
    • Tên: Text10633
    • TextConst: ' ENU = "" "sẽ kết thúc với TMP."'
  9. Thay đổi mã trong hàm CreateFilename thanh toán OCR - báo cáo dữ liệu thoại (15000065) như sau:
    Mã hiện tại
    ...PROCEDURE CreateFilename@1080021();
    BEGIN

    // Delete the following lines.
    IF NOT ISSERVICETIER THEN
    PayrollTools.NewFilename(FileName)
    ELSE IF FileObject.FileExists(FileName) THEN BEGIN
    // End of the lines.

    IF (COPYSTR(FileName, STRLEN(FileName) - 1, 1) = '~') OR
    (COPYSTR(FileName, STRLEN(FileName) - 2, 1) = '~')
    THEN
    ...
    Thay thế mã
    ...PROCEDURE CreateFilename@1080021();
    BEGIN

    // Add the following line.
    IF FileObject.FileExists(FileName) THEN BEGIN

    IF (COPYSTR(FileName, STRLEN(FileName) - 1, 1) = '~') OR
    (COPYSTR(FileName, STRLEN(FileName) - 2, 1) = '~')
    THEN
    ...
  10. Thay đổi mã trong tài liệu trong thanh toán OCR - báo cáo dữ liệu thoại (15000065) như sau:
    Mã hiện tại
    ...END;
    END;

    BEGIN
    END.
    }
    ...
    Thay thế mã
    ...END;
    END;

    // Add the following lines.
    PROCEDURE CreateWorkfile@1080022(fileName@1080000 : Text[250]) : Text[250];
    VAR
    file@1080001 : Text[250];
    dummy@1080002 : Boolean;
    BEGIN
    // Creates a workfile. I.e. copies the current file to a new, editable file
    // Example: File Payment.TXT is renamed to Payment.TMP.
    // RETURNS: The name of the workfile.

    file := COPYSTR(fileName, 1, STRLEN(fileName) - 3) + 'tmp';
    IF file = fileName THEN // Error: The original file already has a workfile name.
    ERROR(Text10632 + fileName + Text10633);

    dummy := ERASE(file); // Delete previous workfile (if any). Ignore the error message.
    COPY(fileName, file);
    EXIT(file);
    END;
    // End of the lines.

    BEGIN
    END.
    }
    ...

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

Bạn phải có một trong các sản phẩm được cài đặt để áp dụng hotfix này:
  • Phiên bản Microsoft Dynamics NAV 2009 R2 Na Uy
  • Phiên bản tiếng Na Uy Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

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

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

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.