使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

本文适用于 Microsoft Dynamics 导航对于所有语言的区域设置。

症状

在 Microsoft Dynamics 导航,当申请工作表用于创建采购订单或手动创建采购订单,直达运货和特殊订单不考虑相关的销售订单上定义的信息。因此,说明说明 2 和从销售订单头和行的送货地址不遵循通过限定购买订单。
下列产品中发生此问题︰

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

解决方案

修补程序信息

受支持的修补程序现已从 Microsoft 推出。然而,它仅用于纠正本文中描述的问题。它仅应用于正经历此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待下一个 Microsoft Dynamics 导航 2009 服务包 或包含此修复程序的下一步的 Microsoft Dynamics 导航版本。

注意: 在特殊情况下,可免收的支持电话,可免收如果技术支持专业人员对 Microsoft Dynamics 和相关的产品的费用确定某个特定的更新能够解决您的问题。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。



安装信息

Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于适销性或特定用途适用性的暗示担保。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。

注意:安装此修复程序之前,请验证所有 Microsoft Navision 客户端用户都注销系统。这包括 Microsoft Navision 应用程序服务 (NAS) 客户端的用户。要实现此修补程序时,在登录的唯一客户端用户。

若要实现此修补程序,必须使用开发人员许可证。

我们建议在 Windows 登录窗口或数据库登录窗口中的用户帐户将分配该"超级"角色 id。如果不能将用户帐户分配成"超级"角色 ID,则必须验证用户帐户具有下列权限:

  • 您将更改该对象的修改权限。

  • 为系统对象 ID ™ 5210对象和系统对象 ID 9015对象的 Execute 权限。



注意:您不需要具有对数据存储区的权限,除非您需要执行数据修复。

代码更改

注意:始终测试代码修复在受控环境中应用之前与您的生产计算机的修补程序。
若要解决此问题,请执行以下步骤:
注意:请阅读当您访问 codeunit (333),因为它为北美版 W1 不同。这里,两者都是使用标签来开始和停止每个版本。

  1. 更改采购订单头表 (38) 中的代码,如下所示︰

    1. 添加下列全球文字常量︰
      Text051@1091: TextConst ENU = %1 采购订单 %2 上的域必须与销售订单 %3 相同。;

    2. 添加下面的全局变量︰

      • 名称︰ NameAddressDetails;数据类型︰ 文本 [512];

      • 名称︰ NameAddressDetails2;数据类型︰ 文本 [512];

    3. 添加以下函数︰
      CheckAndAddShipToAdd@46 (SalesHeader@1000︰ 记录 36;ShowError@1001︰ 布尔值): 布尔型;

      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;

    4. 添加以下函数︰
      DropShptSplOrderExists@48 (SalesHeader@1000︰ 记录 36): 布尔型;

      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);

  2. 更改中获取销售订单报表 (698) 的InsertReqWkshLine函数中的代码,如下所示︰
    现有代码

    ...    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;
    ...
  3. 更改代码函数中的代码采购。-获取删除 Shpt. codeunit (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");
    ...
  4. 更改ReqJnlManagement codeunit (330) 中的GetDescriptionAndRcptName函数中的代码,如下所示︰
    现有代码

    ...       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 := ''
    ...
  5. 注意:Codeunit (333) 在全球范围内与北美版本具有不同的代码。为您的安装中使用正确的节中。

    对于开始北美版本 codeunit (333),来更改中的代码申请 Wksh。-使订单,如下所示︰

    1. 添加下面的全局变量︰

      • 名称︰ DropShptSpecialOrderExists;

      • 数据类型︰ 布尔型;

    2. InsertPurchOrderLine函数中添加以下本地变量︰

      • 名称︰ SalesHeader;数据类型︰ 记录 (36);

      • 名称︰ DropShptSplOrderDiffAddress;数据类型︰ 布尔型;

      • 名称︰ CreateNewRecord;数据类型︰ 布尔型;

    3. 更改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);
      ...
    4. 更改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 版本 codeunit (333),来更改中的代码申请 Wksh。-使订单,如下所示︰

    1. 添加下面的全局变量︰

      • 名称︰ DropShptSpecialOrderExists;

      • 数据类型︰ 布尔型;

    2. InsertPurchOrderLine函数中添加以下本地变量︰

      • 名称︰ SalesHeader;数据类型︰ 记录 (36);

      • 名称︰ DropShptSplOrderDiffAddress;数据类型︰ 布尔型;

    3. 更改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;
      ...
    4. 更改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;
      ...
  6. 更改Dist.集成codeunit (5702) 中的EnterPurchaseItemCrossRef函数中的代码,如下所示︰
    现有代码

    ...   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;
    ...
  7. 更改Dist.集成codeunit (5702) 中的GetSpecialOrders函数中的代码,如下所示︰
    现有代码

    ...    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;
    ...
  8. 更改复制文档管理codeunit (6620) 中的TransfldsFromSalesToPurchLine函数中的代码,如下所示︰
    现有代码

    ...  "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 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2



删除信息

您不能删除此修补程序。

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

参考资料

VSTF DynamicsNAV SE: 238210

注意:这是直接从创建 Microsoft 支持部门内的"快速发布"的文章。此处包含的信息是作为为了响应新出现的问题而提供的。由于以使其可用的速度,而材料可能包含印刷错误,恕不另行通知,随时可能进行修订。其他考虑因素,请参阅使用条款

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×