この資料は、すべての言語ロケールには、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 のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。
注:
データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
注: お読みください codeunit (333) にアクセスするときの北米バージョン W1 が異なるためです。両方ともここに開始および停止の各バージョンにタグを付ける。
-
購買注文ヘッダーテーブル (38) 内のコードを次のように変更します。
-
次のグローバル文字列定数を追加します。
Text051@1091: TextConst ' ENU = %1 %2 の発注書のフィールドは、販売注文の % の 3 と同じである必要があります ';。 -
次のグローバル変数を追加します。
-
名: NameAddressDetails。データ型: テキスト [512]。
-
名: NameAddressDetails2。データ型: テキスト [512]。
-
-
次の関数を追加します。
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; -
次の関数を追加します。
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);
-
-
販売注文を取得するレポート (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;
... -
関数内のコードを変更、購買。-ドロップ 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");
... -
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 := ''
... -
注: Codeunit (333) では、世界中のバージョンの vs 北米バージョンの別のコードがあります。インストールの適切なセクションを使用します。
北米バージョンの開始の codeunit (333) の内のコードを変更する、求人 Wksh。-注文の確認次のように。-
次のグローバル変数を追加します。
-
名: 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 の開始バージョン codeunit (333) の内のコードを変更する、求人 Wksh。-注文の確認次のように。
-
次のグローバル変数を追加します。
-
名: 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;
... -
-
-
版統合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;
... -
版統合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;
... -
コピー文書管理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 サービス パック 1 (SP1)
-
Microsoft Dynamics NAV 2009 R2
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
関連情報
VSTF DynamicsNAV SE: 238210
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。