"Відстеження елементів, визначене для елемента [Елемент Ні.] в елемент журналу рядка облікових записів більше кількості введено "повідомлення про помилку, під час спроби опублікувати частковий результат для виробництва замовлення в Microsoft Dynamics NAV 2009

Застосовується до
Dynamics NAV 2009

Ця стаття стосується Microsoft Dynamics NAV для всіх країн і всіх мов.

Ознаки

Припустімо, що встановити значення Попередньо встановлена кількість виводунуль для всіх операцій у діалоговому вікні Настроювання виробництва в Microsoft Dynamics NAV. Ви визначаєте відстеження елементів для замовлення на виробництво. У цій ситуації під час спроби опублікувати частковий результат для виробництва замовлення, з'являється таке повідомлення про помилку:

Примітка.

Відстеження елементів, визначене для елемента No. У рядку журналу елементів кількість, яку ви ввели. Слід змінити відстеження наявних елементів і повторно ввести нову кількість.

Під час спроби виправити елемент відстеження для виробництва замовлення, з'являється таке повідомлення про помилку:

Примітка.

Не вдалося зберегти виправлення, оскільки визначено надлишкову кількість. Усе одно закрити форму?

Ця проблема виникає в таких продуктах:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 із пакетом оновлень 1 (SP1)

      

Спосіб усунення проблеми

Відомості про виправлення

Від корпорації Майкрософт доступне виправлення, що підтримується. Однак вона призначена лише для виправлення проблеми, описаної в цій статті. Застосуйте її лише до систем, у яких виникла ця проблема. Це виправлення може отримати додаткове тестування. Таким чином, якщо ви не серйозно постраждали від цієї проблеми, радимо дочекатися наступного пакета оновлень Microsoft Dynamics NAV або наступної версії Microsoft Dynamics NAV, яка містить це виправлення.

Примітка У особливих випадках стягнення плати, які зазвичай понесені для викликів підтримки, може бути скасовано, якщо спеціаліст служби технічної підтримки Microsoft Dynamics і пов'язані продукти визначать, що конкретне оновлення вирішить вашу проблему. Звичайні витрати на підтримку застосовуватимуться до додаткових запитань і питань підтримки, які не відповідають вимогам для конкретного оновлення, про яке йде мова.

Відомості про інсталяцію

Корпорація Майкрософт надає приклади програмування лише для ілюстрації без жодних гарантій, явних або неявних. Це стосується зокрема неявних гарантій щодо придатності до продажу чи придатності для певної мети. У цій статті припускається, що ви знайомі з мовою програмування, яка демонструється, і з інструментами, які використовуються для створення і налагодження процедур. Спеціалісти служби підтримки Microsoft можуть пояснити вам функціональні можливості певної процедури. Однак вони не змінюватимуть ці приклади, щоб надавати додаткові функції або конструювати процедури відповідно до ваших конкретних вимог.

Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що всі користувачі клієнта Microsoft Dynamics NAV, вийти із системи. Це стосується служб Microsoft Dynamics NAV Application Server (NAS). Ви повинні бути єдиним клієнтом користувача, який ввійшов, коли ви впроваджуєте це виправлення.

Щоб реалізувати це виправлення, потрібно мати ліцензію розробника.

Радимо призначити обліковому запису користувача у вікні "Вхід у Windows" або у вікні "Вхід до бази даних" ідентифікатор ролі "SUPER". Якщо обліковому запису користувача не вдалося призначити ідентифікатор ролі SUPER, переконайтеся, що обліковий запис має такі дозволи:

  • Дозвіл на змінення об'єкта, який буде змінюватися.

  • Дозвіл execute для об'єкта System Object ID 5210 і system Object ID 9015

    Об'єкт.

Примітка. Ви не повинні мати права на зберігання даних, якщо не потрібно відновлювати дані.

Зміни коду

Примітка. Завжди перевіряйте виправлення коду в контрольованому середовищі, перш ніж застосовувати виправлення до робочих комп'ютерів.

Щоб вирішити цю проблему, виконайте такі дії:

  1. Змініть код у коді керування резервуванням (99000845):
    Наявний код

    ...
    CODE
    ...
    PROCEDURE DeleteReservEntries2@31(DeleteAll@1000 : Boolean;DownToQuantity@1001 : Decimal;VAR ReservEntry@1002 : Record 337);
    ...
    IF QtyToRelease <> 0 THEN BEGIN
    IF ItemTrackingHandling = ItemTrackingHandling::None THEN
    IF DeleteAll THEN
    ERROR(Text010,ReservEntry."Item No.",ReservEntry.TextCaption)
    ELSE
    
    // Delete the following line.
    ERROR(Text008,ReservEntry."Item No.",ReservEntry.TextCaption);
    // End of the deleted line.
    
    ...THEN
    CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse);
    END;
    BEGIN
    END.
    ...
    

    Код заміни

    ...
    CODE
    ...
    PROCEDURE DeleteReservEntries2@31(DeleteAll@1000 : Boolean;DownToQuantity@1001 : Decimal;VAR ReservEntry@1002 : Record 337);
    ...
    IF QtyToRelease <> 0 THEN BEGIN
    IF ItemTrackingHandling = ItemTrackingHandling::None THEN
    IF DeleteAll THEN
    ERROR(Text010,ReservEntry."Item No.",ReservEntry.TextCaption)
    ELSE
    
    // Add the following lines.
    IF NOT ProdJnlLineEntry(ReservEntry) THEN
    ERROR(Text008,ReservEntry."Item No.",ReservEntry.TextCaption);
    // End of the added lines.
    
    ...
    THEN
    CalcReservedQtyOnPick(TotalAvailQty,QtyAllocInWhse);
    END;
    BEGIN
    
    // Add the following lines.
    WITH ReservationEntry DO
    EXIT(("Source Type" = DATABASE::"Item Journal Line") AND ("Source Subtype" = 6));
    END;
    BEGIN
    // End of the added lines.
    
    END.
    ...
    
  2. Змініть код у формі "Лінії відстеження елементів" (6510):
    Наявний код 1

    ...
    Text018@1057 : TextConst 'ENU=Saving item tracking line changes';
    ForBinCode@1043 : Code[20];
    Text019@1013 : TextConst 'ENU=There are availability warnings on one or more lines.\Close the form anyway?';
    Text020@1002 : TextConst 'ENU=Placeholder';
    IsPick@1042 : Boolean;
    PROCEDURE SetFormRunMode@19(Mode@1000 : ',Reclass,Combined Ship/Rcpt,Drop Shipment');
    ...
    

    Код заміни 1

    ...
    Text018@1057 : TextConst 'ENU=Saving item tracking line changes';
    ForBinCode@1043 : Code[20];
    Text019@1013 : TextConst 'ENU=There are availability warnings on one or more lines.\Close the form anyway?';
    Text020@1002 : TextConst 'ENU=Placeholder';
    IsPick@1042 : Boolean;
    
    // Add the following line.
    ProdOrderLineHandling@2002 : Boolean;
    // End of the added line.
    
    PROCEDURE SetFormRunMode@19(Mode@1000 : ',Reclass,Combined Ship/Rcpt,Drop Shipment');
    ...
    

    Наявний код 2

    ...
    THEN
    CurrentEntryStatus := CurrentEntryStatus::Surplus
    ELSE
    CurrentEntryStatus := CurrentEntryStatus::Prospect;
    
    // Delete the following lines.
    IF (TrackingSpecification."Source Type" IN
    [DATABASE::"Item Ledger Entry",
    DATABASE::"Item Journal Line",
    DATABASE::"Job Journal Line",
    DATABASE::"BOM Journal Line",
    DATABASE::"Requisition Line"]) OR
    ((TrackingSpecification."Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND
    (TrackingSpecification."Source Subtype" IN [0,2,3]))
    THEN
    SetControls(Controls::Handle,FALSE)
    ELSE
    SetControls(Controls::Handle,TRUE);
    // End of the deleted lines.
    
    SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass);
    ...
    

    Код заміни 2

    ...
    THEN
    CurrentEntryStatus := CurrentEntryStatus::Surplus
    ELSE
    CurrentEntryStatus := CurrentEntryStatus::Prospect;
    
    // Add the following lines.
    // Set controls for Qty To Handle:
    SetControls(Controls::Handle,GetHandleSource(TrackingSpecification));
    // Set controls for Qty To Invoice:
    SetControls(Controls::Invoice,GetInvoiceSource(TrackingSpecification));
    // End of the added lines.
    
    SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass);
    ...
    

    Наявний код 3

    ...
    SetControls(Controls::Handle,TRUE);
    
    // Delete the following lines.
    IF (TrackingSpecification."Source Type" IN
    [DATABASE::"Item Ledger Entry",
    DATABASE::"Item Journal Line",
    DATABASE::"Job Journal Line",
    DATABASE::"BOM Journal Line",
    DATABASE::"Requisition Line",
    DATABASE::"Transfer Line",
    DATABASE::"Prod. Order Line",
    DATABASE::"Prod. Order Component"]) OR
    ((TrackingSpecification."Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND
    (TrackingSpecification."Source Subtype" IN [0,2,3,4]))
    THEN
    SetControls(Controls::Invoice,FALSE)
    ELSE
    SetControls(Controls::Invoice,TRUE);
    // End of the deleted lines.
    
    SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass);
    ...
    

    Код заміни 3

    ...
    SetControls(Controls::Handle,TRUE);
    SetControls(Controls::Reclass,FormRunMode = FormRunMode::Reclass);
    ...
    

    Наявний код 4

    ...
    BEGIN
    UndefinedQtyArray[1] := SourceQuantityArray[1] - TotalItemTrackingLine."Quantity (Base)";
    UndefinedQtyArray[2] := SourceQuantityArray[2] - TotalItemTrackingLine."Qty. to Handle (Base)";
    UndefinedQtyArray[3] := SourceQuantityArray[3] - TotalItemTrackingLine."Qty. to Invoice (Base)";
    
    // Delete the following lines.
    IF ABS(SourceQuantityArray[1]) < ABS(TotalItemTrackingLine."Quantity (Base)") THEN BEGIN
    ColorOfQuantityArray[1] := 255;
    QtyIsValid := FALSE;
    END ELSE BEGIN
    // End of the deleted lines.
    
    ColorOfQuantityArray[1] := 0;
    
    // Delete the following lines.
    QtyIsValid := TRUE;
    END;
    // End of the deleted lines.
    
    IF ABS(SourceQuantityArray[2]) < ABS(TotalItemTrackingLine."Qty. to Handle (Base)") THEN
    ...
    

    Код заміни 4

    ...
    BEGIN
    UndefinedQtyArray[1] := SourceQuantityArray[1] - TotalItemTrackingLine."Quantity (Base)";
    UndefinedQtyArray[2] := SourceQuantityArray[2] - TotalItemTrackingLine."Qty. to Handle (Base)";
    UndefinedQtyArray[3] := SourceQuantityArray[3] - TotalItemTrackingLine."Qty. to Invoice (Base)";
    
    // Add the following lines.
    QtyIsValid :=
    ProdOrderLineHandling OR (ABS(SourceQuantityArray[1]) >= ABS(TotalItemTrackingLine."Quantity (Base)"));
    
    IF ABS(SourceQuantityArray[1]) < ABS(TotalItemTrackingLine."Quantity (Base)") THEN
    ColorOfQuantityArray[1] := 255
    ELSE
    // End of the added lines.
    
    ColorOfQuantityArray[1] := 0;
    IF ABS(SourceQuantityArray[2]) < ABS(TotalItemTrackingLine."Qty. to Handle (Base)") THEN
    ...
    

    Наявний код 5

    ...
    CurrForm."Appl.-from Item Entry".VISIBLE(FALSE);
    END;
    BEGIN
    {
    In order to provide F6 invoked lookup from availability bitmap columns, a menu button has been hidden behind control 1.
    ...
    

    Код заміни 5

    ...
    CurrForm."Appl.-from Item Entry".VISIBLE(FALSE);
    END;
    
    // Add the following lines.
    PROCEDURE GetHandleSource@63(TrackingSpecification@2004 : Record 336) : Boolean;
    VAR
    QtyToHandleColumnIsHidden@2005 : Boolean;
    // End of the added lines.
    
    BEGIN
    
    // Add the following lines.
    WITH TrackingSpecification DO BEGIN
    IF ("Source Type" = DATABASE::"Item Journal Line") AND ("Source Subtype" = 6) THEN BEGIN // 6 => Prod.order line
    ProdOrderLineHandling := TRUE;
    EXIT(TRUE); // Display Handle column for prod. orders
    END;
    QtyToHandleColumnIsHidden :=
    ("Source Type" IN
    [DATABASE::"Item Ledger Entry",
    DATABASE::"Item Journal Line",
    DATABASE::"Job Journal Line",
    DATABASE::"Requisition Line"]) OR
    (("Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND
    ("Source Subtype" IN [0,2,3]));
    END;
    EXIT(NOT QtyToHandleColumnIsHidden);
    END;
    
    PROCEDURE GetInvoiceSource@73(TrackingSpecification@2007 : Record 336) : Boolean;
    VAR
    QtyToInvoiceColumnIsHidden@2009 : Boolean;
    BEGIN
    WITH TrackingSpecification DO BEGIN
    QtyToInvoiceColumnIsHidden :=
    ("Source Type" IN
    [DATABASE::"Item Ledger Entry",
    DATABASE::"Item Journal Line",
    DATABASE::"Job Journal Line",
    DATABASE::"Requisition Line",
    DATABASE::"Transfer Line",
    DATABASE::"Prod. Order Line",
    DATABASE::"Prod. Order Component"]) OR
    (("Source Type" IN [DATABASE::"Sales Line",DATABASE::"Purchase Line",DATABASE::"Service Line"]) AND
    ("Source Subtype" IN [0,2,3,4]))
    END;
    EXIT(NOT QtyToInvoiceColumnIsHidden);
    END;
    
    BEGIN
    // End of the added lines.
    
    {
    In order to provide F6 invoked lookup from availability bitmap columns, a menu button has been hidden behind control 1.
    ...
    

          

Попередні вимоги

Щоб застосувати це виправлення, потрібно мати один із таких продуктів:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 із пакетом оновлень 1

Відомості про видалення

Не можна видалити це виправлення.

Стан

Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".

Примітка. Це стаття "FAST PUBLISH", створена безпосередньо з організації підтримки Корпорації Майкрософт. Інформація, що міститься в цьому документі, надається як у відповідь на нові проблеми. В результаті швидкості її використання матеріали можуть включати друкарські помилки і можуть бути переглянуті в будь-який час без попередження. Інші зауваження див. в розділі Умови використання .