Данная статья относится к Microsoft Dynamics NAV для всех языков.
Симптомы
В Microsoft Dynamics NAV при использовании для создания заказа на покупку или когда вручную создать заказ на покупку, заявки прямой поставки и специальные заказы не рассматривает определенные сведения о связанный заказ продажи. Таким образом, описание, описание 2 и адрес доставки из заказа на продажу заголовок и строки не следуют через фиксированные приобрели заказа.
Эта проблема возникает в следующих продуктах:
-
Microsoft Dynamics NAV 2009 Пакет обновления 1 (SP1)
-
Microsoft Dynamics NAV 2009 R2
Решение
Сведения об исправлении
Исправление от корпорации Майкрософт доступно. Однако оно предназначено только для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление может проходить дополнительное тестирование. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления для Microsoft Dynamics NAV 2009 или следующей версии Microsoft Dynamics NAV, содержащего это исправление.
Примечание. В особых случаях оплата, предусмотренная в службу поддержки может быть отменена Если специалист службы технической поддержки Microsoft Dynamics и связанных продуктов определит, что решения проблемы является специально выпущенное. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Сведения об установке
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без явных или подразумеваемых гарантий. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения дополнительных функциональных возможностей или создания процедур для определенных требований.
Примечание. Перед установкой данного исправления убедитесь, что все пользователи Microsoft Navision вошли выход из системы. Это включает в себя пользователей клиентских служб приложений Microsoft Navision (NAS). Должен быть только клиент пользователя, который вошел в систему, при реализации данного исправления.
Чтобы реализовать это исправление, необходимо иметь лицензию разработчика.
Рекомендуется, чтобы учетной записи пользователя в окне Логины Windows или в окне Логины базы данных был присвоен идентификатор роли «SUPER» Если учетная запись пользователя не может быть назначена роль «SUPER» идентификатор, необходимо убедиться, что учетная запись пользователя имеет следующие разрешения.
-
Изменение разрешений для объекта, подлежащий изменению.
-
Разрешение Execute для объекта идентификатор объекта системы 5210 и 9015 идентификатор объекта системного объекта.
Примечание. Необходимо иметь права к хранилищам данных, если необходимо выполнить восстановление данных.
Изменения кода
Примечание. Всегда тестовый код исправления в контролируемой среде, прежде чем применить исправления на производственных компьютерах.
Чтобы устранить эту проблему, выполните следующие действия:
Примечание. Пожалуйста, прочитайте при обращении к функции (333), поскольку они отличаются для Северной Америки версия W1. Здесь они с тегами для начала и остановки каждой версии.
-
Измените код в таблице Покупка Заголовок (38) следующим образом:
-
Добавьте следующие глобальные текстовой константы:
Text051@1091: TextConst ' ENU = %1 поле заказа на покупку %2 должно быть так же, как на продажу заказ на %3. "; -
Добавьте следующие глобальные переменные:
-
Имя: NameAddressDetails; Тип данных: Текст [512];
-
Имя: NameAddressDetails2; Тип данных: Текст [512];
-
-
Добавьте следующую функцию:
CheckAndAddShipToAdd@46 (SalesHeader@1000: запись 36; ShowError@1001: Boolean): Boolean;
VAR PurchLine2@1002: Запись 39;
Добавьте следующий код для функции:IF ShowError THEN BEGIN PurchLine2.RESET;
PurchLine2.SETRANGE("Document Type","Document Type"::Order);
PurchLine2.SETRANGE("Document No.","No.");
IF NOT PurchLine2.ISEMPTY THEN BEGIN
IF "Ship-to Name" <>SalesHeader."Ship-to Name" THEN
ERROR(Text051,FIELDCAPTION("Ship-to Name"),"No.",SalesHeader."No.");
IF "Ship-to Name 2" <>SalesHeader."Ship-to Name 2" THEN
ERROR(Text051,FIELDCAPTION("Ship-to Name 2"),"No.",SalesHeader."No.");
IF ("Ship-to Address" <>SalesHeader."Ship-to Address") THEN
ERROR(Text051,FIELDCAPTION("Ship-to Address"),"No.",SalesHeader."No.");
IF ("Ship-to Address 2" <> SalesHeader."Ship-to Address 2") THEN
ERROR(Text051,FIELDCAPTION("Ship-to Address 2"),"No.",SalesHeader."No.");
IF ("Ship-to Post Code" <>SalesHeader."Ship-to Post Code") THEN
ERROR(Text051,FIELDCAPTION("Ship-to Post Code"),"No.",SalesHeader."No.");
IF ("Ship-to City" <>SalesHeader."Ship-to City") THEN
ERROR(Text051,FIELDCAPTION("Ship-to City"),"No.",SalesHeader."No.");
IF ("Ship-to Contact" <>SalesHeader."Ship-to Contact") THEN
ERROR(Text051,FIELDCAPTION("Ship-to Contact"),"No.",SalesHeader."No.");
END ELSE BEGIN
// no purchase line exists
"Ship-to Name" := SalesHeader."Ship-to Name";
"Ship-to Name 2" := SalesHeader."Ship-to Name 2";
"Ship-to Address" := SalesHeader."Ship-to Address";
"Ship-to Address 2" := SalesHeader."Ship-to Address 2";
"Ship-to Post Code" := SalesHeader."Ship-to Post Code";
"Ship-to City" := SalesHeader."Ship-to City";
"Ship-to Contact" := SalesHeader."Ship-to Contact";
END;
END ELSE BEGIN
NameAddressDetails :=
SalesHeader."Ship-to Name" + SalesHeader."Ship-to Name 2" +
SalesHeader."Ship-to Address" + SalesHeader."Ship-to Address 2" +
SalesHeader."Ship-to Post Code" + SalesHeader."Ship-to City" +
SalesHeader."Ship-to Contact";
IF NameAddressDetails2 = '' THEN
NameAddressDetails2 := NameAddressDetails;
EXIT(NameAddressDetails2 = NameAddressDetails);
END; -
Добавьте следующую функцию:
DropShptSplOrderExists@48 (SalesHeader@1000: запись 36): Boolean;
VAR SalesLine2@1001: Запись 37;
Добавьте следующий код для функции:// returns TRUE if sales is either Drop Shipment of Special OrderSalesLine2.RESET;
SalesLine2.SETRANGE("Document Type",SalesLine2."Document Type"::Order);
SalesLine2.SETRANGE("Document No.",SalesHeader."No.");
SalesLine2.SETRANGE("Drop Shipment",TRUE);
IF NOT SalesLine2.ISEMPTY THEN
EXIT(TRUE);
SalesLine2.SETRANGE("Drop Shipment");
SalesLine2.SETRANGE("Special Order",TRUE);
EXIT(NOT SalesLine2.ISEMPTY);
-
-
Измените код в функцию InsertReqWkshLine в отчете Получить заказы продажи (698) следующим образом:
Существующий код... Quantity,
ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));
"Sales Order No." := SalesLine."Document No.";
"Sales Order Line No." := SalesLine."Line No.";
"Sell-to Customer No." := SalesLine."Sell-to Customer No.";
SalesHeader.GET(1,SalesLine."Document No.");
IF SpecOrder <>1 THEN
"Ship-to Code" := SalesHeader."Ship-to Code";
"Item Category Code" := SalesLine."Item Category Code";
Nonstock := SalesLine.Nonstock;
...Код для замены
... Quantity,
ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));
"Sales Order No." := SalesLine."Document No.";
"Sales Order Line No." := SalesLine."Line No.";
"Sell-to Customer No." := SalesLine."Sell-to Customer No.";
// Add the following lines.
Description := SalesLine.Description;
"Description 2" := SalesLine."Description 2";
// End of the added lines.
SalesHeader.GET(1,SalesLine."Document No.");
IF SpecOrder <>1 THEN
"Ship-to Code" := SalesHeader."Ship-to Code";
"Item Category Code" := SalesLine."Item Category Code";
Nonstock := SalesLine.Nonstock;
... -
Измените код в функцию кода в Покупка-получить Drop Отгрузка функции (76), как показано ниже:
Существующий код... IF RECORDLEVELLOCKING THEN
LOCKTABLE;
SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");
PurchLine.LOCKTABLE;
IF NOT RECORDLEVELLOCKING THEN
LOCKTABLE(TRUE,TRUE); // Only version check
SalesLine.LOCKTABLE;
...
PurchLine."Document Type" := PurchLine."Document Type"::Order;
PurchLine."Document No." := "No.";
PurchLine."Line No." := NextLineNo;
CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
PurchLine.Description := SalesLine.Description;
PurchLine."Sales Order No." := SalesLine."Document No.";
PurchLine."Sales Order Line No." := SalesLine."Line No.";
PurchLine."Drop Shipment" := TRUE;
EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');
PurchLine.VALIDATE("Inbound Whse. Handling Time");
...Код для замены
... IF RECORDLEVELLOCKING THEN
LOCKTABLE;
SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");
// Add the following lines.
IF DropShptSplOrderExists(SalesHeader) THEN
CheckAndAddShipToAdd(SalesHeader,TRUE);
// End of the added lines.
PurchLine.LOCKTABLE;
IF NOT RECORDLEVELLOCKING THEN
LOCKTABLE(TRUE,TRUE); // Only version check
SalesLine.LOCKTABLE;
...
PurchLine."Document Type" := PurchLine."Document Type"::Order;
PurchLine."Document No." := "No.";
PurchLine."Line No." := NextLineNo;
CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
PurchLine.Description := SalesLine.Description;
// Add the following line.
PurchLine."Description 2" := SalesLine."Description 2";
// End of the added line.
PurchLine."Sales Order No." := SalesLine."Document No.";
PurchLine."Sales Order Line No." := SalesLine."Line No.";
PurchLine."Drop Shipment" := TRUE;
EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');
PurchLine.VALIDATE("Inbound Whse. Handling Time");
... -
Измените код в функцию GetDescriptionAndRcptName в функции ReqJnlManagement (330) следующим образом:
Существующий код... ReqLine.Type::"G/L Account":
IF GLAcc.GET(ReqLine."No.") THEN
Description := GLAcc.Name
ELSE
Description := '';
// Delete the following lines.
ReqLine.Type::Item:
IF Item.GET(ReqLine."No.") THEN
Description := Item.Description
ELSE
Description := '';
// End of the deleted lines.
END;
END;
IF ReqLine."Vendor No." = '' THEN
BuyFromVendorName := ''
...Код для замены
... ReqLine.Type::"G/L Account":
IF GLAcc.GET(ReqLine."No.") THEN
Description := GLAcc.Name
ELSE
Description := '';
END;
END;
IF ReqLine."Vendor No." = '' THEN
BuyFromVendorName := ''
... -
Примечание Программный блок (333) имеет другой код в северо-американской версии vs версии по всему миру. Используйте правильный раздел для вашей установки.
Для НАЧАЛА Северной Америки версия функции (333), измените код в Заявка Журнал-сделать заказы на следующим образом:-
Добавьте следующие глобальной переменной:
-
Имя: DropShptSpecialOrderExists;
-
Тип данных: Логическое значение;
-
-
Добавьте следующие локальные переменные в функции InsertPurchOrderLine.
-
Имя: SalesHeader; Тип данных: Запись (36);
-
Имя: DropShptSplOrderDiffAddress; Тип данных: Логическое значение;
-
Имя: CreateNewRecord; Тип данных: Логическое значение;
-
-
Измените код в функцию InsertPurchOrderLineследующим образом:
Существующий код...// Delete the following lines.
WITH ReqLine2 DO BEGIN
IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
EXIT;
IF NOT PurchasingCode.GET("Purchasing Code") THEN
PurchasingCode."Special Order" := FALSE;
IF (PurchasingCode."Special Order" AND
(PurchSetup."Combine Special Orders Default" =
PurchSetup."Combine Special Orders Default"::"Always Combine") AND
((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Location Code" <> "Location Code") OR
(PurchOrderHeader."Currency Code" <>"Currency Code") OR
(PrevPurchCode <>"Purchasing Code"))) OR
(NOT PurchasingCode."Special Order" AND
((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Location Code" <>"Location Code") OR
(PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR
(PrevShipToCode <>"Ship-to Code") OR
(PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
(PurchOrderHeader."Currency Code" <> "Currency Code") OR
(PrevPurchCode <>"Purchasing Code")))
THEN BEGIN
InsertHeader(ReqLine2);
LineCount := 0;
NextLineNo := 0;
PrevPurchCode := "Purchasing Code";
PrevShipToCode := "Ship-to Code";
END;
IF (PurchasingCode."Special Order") AND
(PurchSetup."Combine Special Orders Default" =
PurchSetup."Combine Special Orders Default"::"Never Combine") AND
((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Location Code" <> "Location Code") OR
(PurchOrderHeader."Currency Code" <>"Currency Code") OR
(PrevPurchCode <> "Purchasing Code")) THEN BEGIN
InsertHeader(ReqLine2);
END;
// End of the deleted lines.
LineCount := LineCount + 1;
IF NOT PlanningResiliency THEN
Window.UPDATE(4,LineCount);
...Код для замены
...// Add the following lines.
WITH ReqLine2 DO BEGIN
IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
EXIT;
DropShptSpecialOrderExists := FALSE;
IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
IF DropShptSpecialOrderExists THEN
DropShptSplOrderDiffAddress :=
NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
END;
IF NOT PurchasingCode.GET("Purchasing Code") THEN
PurchasingCode."Special Order" := FALSE;
CreateNewRecord :=
(PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Location Code" <> "Location Code") OR
(PurchOrderHeader."Currency Code" <> "Currency Code") OR
(PrevPurchCode <>"Purchasing Code") OR
DropShptSplOrderDiffAddress;
IF PurchasingCode."Special Order" AND CreateNewRecord THEN BEGIN
InsertHeader(ReqLine2);
IF PurchSetup."Combine Special Orders Default" =
PurchSetup."Combine Special Orders Default"::"Always Combine"
THEN BEGIN
LineCount := 0;
NextLineNo := 0;
PrevPurchCode := "Purchasing Code";
PrevShipToCode := "Ship-to Code";
END;
END;
IF NOT PurchasingCode."Special Order" AND
(CreateNewRecord OR
(PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR
(PrevShipToCode <>"Ship-to Code") OR
(PurchOrderHeader."Order Address Code" <>"Order Address Code"))
THEN BEGIN
InsertHeader(ReqLine2);
LineCount := 0;
NextLineNo := 0;
PrevPurchCode := "Purchasing Code";
PrevShipToCode := "Ship-to Code";
END;
// End of the added lines.
LineCount := LineCount + 1;
IF NOT PlanningResiliency THEN
Window.UPDATE(4,LineCount);
... -
Измените код в функцию InsertHeader следующим образом:
Добавьте следующие локальной переменной:-
Имя: SalesHeader;
-
Тип данных: Запись (36);
Существующий код
... WITH ReqLine2 DO BEGIN
OrderCounter := OrderCounter + 1;
IF NOT PlanningResiliency THEN
Window.UPDATE(3,OrderCounter);
PurchSetup.GET;
PurchSetup.TESTFIELD("Order Nos.");
// Delete the following line.
CLEAR(PurchOrderHeader);
// End of the deleted line.
PurchOrderHeader.INIT;
PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;
PurchOrderHeader."No." := '';
...
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
END ELSE BEGIN
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
PurchOrderHeader.SetShipToForSpecOrder;
END;
PurchOrderHeader.MODIFY;
COMMIT;
IF RECORDLEVELLOCKING THEN
LOCKTABLE;
PurchOrderHeader.MARK(TRUE);
END;
...Код для замены
...WITH ReqLine2 DO BEGIN
OrderCounter := OrderCounter + 1;
IF NOT PlanningResiliency THEN
Window.UPDATE(3,OrderCounter);
PurchSetup.GET;
PurchSetup.TESTFIELD("Order Nos.");
PurchOrderHeader.INIT;
PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;
PurchOrderHeader."No." := '';
...
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
END ELSE BEGIN
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
PurchOrderHeader.SetShipToForSpecOrder;
END;
// Add the following lines.
IF DropShptSpecialOrderExists THEN BEGIN
SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.");
PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
END;
// End of the added lines.
PurchOrderHeader.MODIFY;
COMMIT;
IF RECORDLEVELLOCKING THEN
LOCKTABLE;
PurchOrderHeader.MARK(TRUE);
END;
... -
Для НАЧАЛА W1 версии функции (333), измените код в Заявка Журнал-создать заказ следующим образом:
-
Добавьте следующие глобальной переменной:
-
Имя: DropShptSpecialOrderExists;
-
Тип данных: Логическое значение;
-
-
Добавьте следующие локальные переменные в функции InsertPurchOrderLine.
-
Имя: SalesHeader; Тип данных: Запись (36);
-
Имя: DropShptSplOrderDiffAddress; Тип данных: Логическое значение;
-
-
Измените код в функцию InsertPurchOrderLineследующим образом:
Существующий код... WITH ReqLine2 DO BEGIN
IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
EXIT;
IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR
(PrevShipToCode <> "Ship-to Code") OR
(PurchOrderHeader."Order Address Code" <>"Order Address Code") OR
(PurchOrderHeader."Currency Code" <>"Currency Code") OR
// Delete the following line.
(PrevPurchCode <>"Purchasing Code")
// End of the deleted line.
THEN BEGIN
InsertHeader(ReqLine2);
LineCount := 0;
NextLineNo := 0;
PrevPurchCode := "Purchasing Code";
PrevShipToCode := "Ship-to Code";
END;
...Код для замены
... WITH ReqLine2 DO BEGIN
IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
EXIT;
// Add the following lines.
DropShptSpecialOrderExists := FALSE;
IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
IF DropShptSpecialOrderExists THEN
DropShptSplOrderDiffAddress :=
NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
END;
// End of the added lines.
IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
(PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR
(PrevShipToCode <> "Ship-to Code") OR
(PurchOrderHeader."Order Address Code" <>"Order Address Code") OR
(PurchOrderHeader."Currency Code" <>"Currency Code") OR
// Add the following lines.
(PrevPurchCode <> "Purchasing Code") OR
(DropShptSplOrderDiffAddress)
// End of the added lines.
THEN BEGIN
InsertHeader(ReqLine2);
LineCount := 0;
NextLineNo := 0;
PrevPurchCode := "Purchasing Code";
PrevShipToCode := "Ship-to Code";
END;
... -
Измените код в функцию InsertHeader следующим образом:
Добавьте следующие локальной переменной:-
Имя: SalesHeader;
-
Тип данных: Запись (36);
Существующий код
... END ELSE BEGIN
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
PurchOrderHeader.SetShipToForSpecOrder;
END;
PurchOrderHeader.MODIFY;
COMMIT;
IF RECORDLEVELLOCKING THEN
LOCKTABLE;
PurchOrderHeader.MARK(TRUE);
END;
...Код для замены
... END ELSE BEGIN
PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
PurchOrderHeader.SetShipToForSpecOrder;
END;
// Add the following lines.
IF DropShptSpecialOrderExists THEN BEGIN
IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
END;
// End of the added lines.
PurchOrderHeader.MODIFY;
COMMIT;
IF RECORDLEVELLOCKING THEN
LOCKTABLE;
PurchOrderHeader.MARK(TRUE);
END;
... -
-
-
Измените код в функцию EnterPurchaseItemCrossRef в функции Интеграции Dist. (5702) следующим образом:
Существующий код... IF Found THEN BEGIN
"Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
"Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
"Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
// Delete the following lines.
IF ItemCrossReference.Description <>'' THEN BEGIN
Description := ItemCrossReference.Description;
"Description 2" := '';
END;
END ELSE BEGIN
"Cross-Reference No." := '';
"Cross-Reference Type" := "Cross-Reference Type"::" ";
"Cross-Reference Type No." := '';
IF "Variant Code" <>'' THEN BEGIN
ItemVariant.GET("No.","Variant Code");
Description := ItemVariant.Description;
"Description 2" := ItemVariant."Description 2";
END ELSE BEGIN
Item.GET("No.");
Description := Item.Description;
"Description 2" := Item."Description 2";
END;
// End of the deleted lines.
GetItemTranslation;
END;
END;
...Код для замены
... IF Found THEN BEGIN
"Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
"Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
"Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";
// Add the following lines.
"Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";
END ELSE BEGIN
"Cross-Reference No." := '';
"Cross-Reference Type" := "Cross-Reference Type"::" ";
"Cross-Reference Type No." := '';
// End of the added lines.
GetItemTranslation;
END;
END;
... -
Измените код в функцию GetSpecialOrders в функции Интеграции Dist. (5702) следующим образом:
Существующий код... IF RECORDLEVELLOCKING THEN
LOCKTABLE;
SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");
// Delete the following line.
PurchHeader.SetShipToForSpecOrder;
// End of the deleted line.
PurchLine.LOCKTABLE;
IF NOT RECORDLEVELLOCKING THEN
LOCKTABLE(TRUE,TRUE); // Only version check
SalesLine.LOCKTABLE;
...Код для замены
... IF RECORDLEVELLOCKING THEN
LOCKTABLE;
SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");
// Add the following lines.
IF DropShptSplOrderExists(SalesHeader) THEN
CheckAndAddShipToAdd(SalesHeader,TRUE);
// End of the added lines.
PurchLine.LOCKTABLE;
IF NOT RECORDLEVELLOCKING THEN
LOCKTABLE(TRUE,TRUE); // Only version check
SalesLine.LOCKTABLE;
... -
Измените код в функцию TransfldsFromSalesToPurchLine в функции Копировать документ центр (6620) следующим образом:
Существующий код... "Expected Receipt Date" := FromSalesLine."Shipment Date";
"Bin Code" := FromSalesLine."Bin Code";
VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");
VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");
VALIDATE("Direct Unit Cost");
END;
...Код для замены
... "Expected Receipt Date" := FromSalesLine."Shipment Date";
"Bin Code" := FromSalesLine."Bin Code";
VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");
VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");
VALIDATE("Direct Unit Cost");
// Add the following lines.
Description := FromSalesLine.Description;
"Description 2" := FromSalesLine."Description 2";
// End of the added lines.
END;
...
Предварительные условия
Необходимы следующие продукты для установки данного исправления.
-
Microsoft Dynamics NAV 2009 Пакет обновления 1 (SP1)
-
Microsoft Dynamics NAV 2009 R2
Сведения об удалении
Установленное обновление удалить нельзя.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Ссылки
VSTF DynamicsNAV SE: 238210
Примечание. Это статья «БЫСТРАЯ ПУБЛИКАЦИЯ», созданная непосредственно из технической поддержки корпорации Майкрософт. Сведения, содержащиеся в настоящем документе, предоставляются "как есть" в ответ на возникающие проблемы. В результате скорости предоставления материалов они могут включать опечаток и быть изменены в любое время без предварительного уведомления. Другие вопросы, связанные с Условиями использования см.