Ця стаття відноситься до Microsoft Dynamics NAV для всіх мови.
Причини
Замовлення на планування функції обчислення, неправильні варіанти з "Шт замовити" під час використання в середовищі, переконайтеся в порядку, в Microsoft Dynamics NAV. Ця проблема виникає, якщо ви використовуєте багаторівневий специфікація матеріалів (Специфікації).
Ця проблема виникає в таких продуктів:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 пакет оновлень 1 (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 пакет оновлень 1 (SP1)
Причина
Система використовує, рекурсивний функція, яка завжди змінюється на кількість знайдених елементів, які (у Специфікації створює "дерево", де деякі елементи, може виникнути одна або кілька разів). Однак це є неправильні результати, тому, що якого віку оновленого елемента має бути видалено або оновлено.
Вирішення
Відомості про виправлення
Корпорація Майкрософт випустила підтримуване виправлення доступна. Однак, застосовувати лише для вирішення проблеми, описаної в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми. Те, що це виправлення може потребувати додаткового тестування. Таким чином, якщо ви не завдає значної, рекомендовано почекати до виходу чергового пакета оновлень Microsoft Dynamics NAV, 2009 або наступної версії Microsoft Dynamics NAV, що містить це виправлення.
Примітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки професійного для Microsoft Dynamics і пов'язані продукти визначає телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.
Відомості про інсталяцію
Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації, без гарантій – прямих або інших. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури, але вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.
Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що усі користувачі Microsoft Navision-клієнт відключився системи. Пакет оновлень містить служб Microsoft Navision застосунків (NAS) клієнта користувачів. Ви повинні тільки клієнт користувача, який увійшов до системи, під час виконання цього виправлення.
Щоб застосувати це виправлення, потрібно мати ліцензію для розробників.
Корпорація Майкрософт рекомендує, що обліковий запис користувача Windows, вхід вікна або у вікні бази даних вхід призначити "Супер" роль ID. Якщо обліковий запис користувача не призначено роль ID "Супер", необхідно переконатися, що обліковий запис користувача, має такі дозволи:
-
Змінити дозвіл об'єкт, який буде змінити.
-
Права для виконання системи об'єкт з Ідентифікатором 5210 об'єкт а також системи об'єкт з Ідентифікатором 9015 об'єкта.
Примітка. Маєте відповідних прав у сховища даних, якщо не потрібно виконати дані відновлення не потрібно.
Зміни коду
Примітка. Завжди тест код вирішення в середовищі контрольовані перед інсталяцією розглянутого виправлення виробництва комп'ютерів.
Щоб вирішити цю проблему, виконайте такі дії.
-
Створити функцію локального UpdateRelatedComponent codeunit, (99000809):
...LOCAL PROCEDURE UpdateRelatedComponent@15(ParentReqLine@1000 : Record 246);
WITH PlanningComponent DO BEGIN
SETCURRENTKEY("Worksheet Template Name","Worksheet Batch Name","Worksheet Line No.","Item No.");
SETRANGE("Worksheet Line No.",ParentReqLine."Line No.");
SETFILTER("Item No.",'<>%1','');
SETFILTER("Expected Quantity",'<>0');
SETFILTER("Planning Level Code",'<>0');
IF FIND('-') THEN
REPEAT
IF LineHasBeenCreated(ChildReqLine,PlanningComponent) THEN BEGIN
UpdateRelatedComponent(ChildReqLine);
IF ChildReqLine.Quantity <> "Expected Quantity" THEN BEGIN
// qty has to be updated, there is a new need of component
ChildReqLine.BlockDynamicTracking(Blocked);
ChildReqLine.VALIDATE(Quantity,ChildReqLine.Quantity - "Expected Quantity");
ChildReqLine.MODIFY;
// updating qty of component for parent
VALIDATE("Quantity per","Quantity per");
MODIFY;
END ELSE
// line will be recreated
ChildReqLine.DELETE(TRUE);
END;
UNTIL NEXT = 0;
END;
...
Функції, додайте такі параметри:-
Ім'я: PlanningComponent; Тип: Запис, (99000829)
-
Ім'я: ChildReqLine; Тип: Запис, (246)
-
-
Створити функцію локального LineHasBeenCreated codeunit, (99000829):
...LOCAL PROCEDURE LineHasBeenCreated@18(VAR ChildReqLine@1000 : Record 246;PlanningComponent@1001 : Record 99000829) : Boolean;
WITH ChildReqLine DO BEGIN
SETCURRENTKEY("Worksheet Template Name","Journal Batch Name",Type,"No.");
SETRANGE("Worksheet Template Name",PlanningComponent."Worksheet Template Name");
SETRANGE("Journal Batch Name",PlanningComponent."Worksheet Batch Name");
SETRANGE(Type,Type::Item);
SETRANGE("No.",PlanningComponent."Item No.");
SETRANGE("Variant Code",PlanningComponent."Variant Code");
SETRANGE("Ref. Order Type","Ref. Order Type"::"Prod. Order");
SETRANGE("Ref. Order Status",PlanningComponent."Ref. Order Status");
SETRANGE("Ref. Order No.",PlanningComponent."Ref. Order No.");
SETFILTER("Planning Level",'>%1',0);
EXIT(FINDFIRST);
END;
... -
Змінити код функції InsertPlanningLine codeunit, (99000809) наступним чином:
Наявний код... IF ReqLine2."Planning Level" < ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level";
ReqLine2.MODIFY;
...Заміна код
... IF ReqLine2."Planning Level" <ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level";
// the ReqLine2 can have children which has to be delete or updated
// Add the following line.
UpdateRelatedComponent(ReqLine2);
ReqLine2.MODIFY;
...
Попередні вимоги
Ви повинні мати одну з таких продуктів, щоб застосувати це виправлення:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 пакет оновлень 1 (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 пакет оновлень 1 (SP1)
Відомості про видалення
Це виправлення не можна видалити.
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Примітка. Це "Швидка публікація" статті, надана службою підтримки корпорації Майкрософт. Відомості в цій статті надано без змін у відповідь на повідомлення про проблеми. З огляду на швидкість публікації матеріали можуть містити орфографічні помилки. Їх може бути змінено в будь-який час без повідомлення. Щоб отримати додаткові відомості, див. Умови використання.