メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

この資料では、すべての国と言語ロケールのすべての Microsoft Dynamics NAV に該当します。

現象

売上と売掛金勘定設定] ダイアログ ボックスの [Microsoft Dynamics NAV. の正確なコストの取消の設定を有効にすることを想定しています。この状況で、部分的な営業に返された場合、ドキュメントのコピー機能を実行すると、次のエラー メッセージが表示されます。

転記済の伝票の明細行の全数量が既に手動で適用されるため、販売出荷Shipment_NoLine_Noの行番号はコピーされません。

この問題は、次の製品で発生します。

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 サービス パック 1

解決策

修正プログラムの情報

サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。

注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。


インストール情報

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能について説明することができます。ただし、お客様固有の要件を満たすために、追加機能の提供またはプロシージャの作成のために、これらの例に変更を加えたりはしません。

注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。

この修正プログラムを実装するには、開発者用のライセンスが必要です。

ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。

  • 変更するオブジェクトの変更のアクセス許可。

  • システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。



注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。

コードの変更

注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。

  1. コピー文書管理 codeunit (6620) で次のグローバル変数を削除します。

    Text030@1025 : TextConst 'ENU=%1 %2, line no. %3 is not copied because the full quantity on the posted document line is already manually applied.';Text031@1038 : TextConst 'ENU=Return document line contains only the original document line quantity, that is not already manually applied.';
    SomeAreFixed@1045 : Boolean;
    CopyDimensions@1050 : Boolean;

  2. コピー文書管理 codeunit (6620) では、次のグローバル変数を追加します。

    Text030@1025 : TextConst 'ENU=One or more return document lines were not copied. This is because quantities on the posted document line are already fully or partially applied and therefore the Exact Cost Reversing Link could not be created.';Text031@1038 : TextConst 'ENU=Return document line contains only the original document line quantity, that is not already manually applied.';
    SomeAreFixed@1045 : Boolean;
    CopyDimensions@1050 : Boolean;
    WarningDone@1051 : Boolean;
    LinesApplied@1052 : Boolean;

  3. コピー文書管理 codeunit (6620) 内のSplitPstdSalesLinesPerILE関数内のコードを次のように変更します。
    既存のコード 1

    ...            IF "Shipped Qty. Not Returned" = 0 THEN

    // Delete the following lines.
    ERROR(Text030,"Document Type","Document No.","Document Line No.");
    FromSalesLineBuf := FromSalesLine;
    IF -"Shipped Qty. Not Returned" < ABS(FromSalesLine."Quantity (Base)") THEN BEGIN
    IF FromSalesLine."Quantity (Base)" > 0 THEN
    FromSalesLineBuf."Quantity (Base)" := -"Shipped Qty. Not Returned"
    ELSE
    FromSalesLineBuf."Quantity (Base)" := "Shipped Qty. Not Returned";
    IF FromSalesLineBuf."Qty. per Unit of Measure" = 0 THEN
    FromSalesLineBuf.Quantity := FromSalesLineBuf."Quantity (Base)"
    ELSE
    FromSalesLineBuf.Quantity :=
    ROUND(FromSalesLineBuf."Quantity (Base)" / FromSalesLineBuf."Qty. per Unit of Measure",0.00001);
    END;
    FromSalesLine."Quantity (Base)" := FromSalesLine."Quantity (Base)" - FromSalesLineBuf."Quantity (Base)";
    FromSalesLine.Quantity := FromSalesLine.Quantity - FromSalesLineBuf.Quantity;
    FromSalesLineBuf."Appl.-from Item Entry" := "Entry No.";
    FromSalesLineBuf."Line No." := NextLineNo;
    NextLineNo := NextLineNo + 1;
    FromSalesLineBuf."Document No." := "Document No.";
    IF GetSalesDocType(ItemLedgEntry) IN
    [FromSalesLineBuf."Document Type"::Order,FromSalesLineBuf."Document Type"::"Return Order"]
    THEN
    FromSalesLineBuf."Shipment Line No." := 1;

    IF NOT FromShptOrRcpt THEN
    UpdateRevSalesLineAmount(
    FromSalesLineBuf,OrgQtyBase,
    FromSalesHeader."Prices Including VAT",ToSalesHeader."Prices Including VAT");

    FromSalesLineBuf.INSERT;
    // End of the lines.

    UNTIL (NEXT = 0) OR (FromSalesLine."Quantity (Base)" = 0);
    ...

    置換用コード 1

    ...            IF "Shipped Qty. Not Returned" = 0 THEN

    // Add the following lines.
    LinesApplied := TRUE;
    IF "Shipped Qty. Not Returned" < 0 THEN BEGIN
    FromSalesLineBuf := FromSalesLine;

    IF -"Shipped Qty. Not Returned" < ABS(FromSalesLine."Quantity (Base)") THEN BEGIN
    IF FromSalesLine."Quantity (Base)" > 0 THEN
    FromSalesLineBuf."Quantity (Base)" := -"Shipped Qty. Not Returned"
    ELSE
    FromSalesLineBuf."Quantity (Base)" := "Shipped Qty. Not Returned";
    IF FromSalesLineBuf."Qty. per Unit of Measure" = 0 THEN
    FromSalesLineBuf.Quantity := FromSalesLineBuf."Quantity (Base)"
    ELSE
    FromSalesLineBuf.Quantity :=
    ROUND(FromSalesLineBuf."Quantity (Base)" / FromSalesLineBuf."Qty. per Unit of Measure",0.00001);
    END;
    FromSalesLine."Quantity (Base)" := FromSalesLine."Quantity (Base)" - FromSalesLineBuf."Quantity (Base)";
    FromSalesLine.Quantity := FromSalesLine.Quantity - FromSalesLineBuf.Quantity;
    FromSalesLineBuf."Appl.-from Item Entry" := "Entry No.";
    FromSalesLineBuf."Line No." := NextLineNo;
    NextLineNo := NextLineNo + 1;
    FromSalesLineBuf."Document No." := "Document No.";
    IF GetSalesDocType(ItemLedgEntry) IN
    [FromSalesLineBuf."Document Type"::Order,FromSalesLineBuf."Document Type"::"Return Order"]
    THEN
    FromSalesLineBuf."Shipment Line No." := 1;

    IF NOT FromShptOrRcpt THEN
    UpdateRevSalesLineAmount(
    FromSalesLineBuf,OrgQtyBase,
    FromSalesHeader."Prices Including VAT",ToSalesHeader."Prices Including VAT");

    FromSalesLineBuf.INSERT;
    END;
    // End of the lines.

    UNTIL (NEXT = 0) OR (FromSalesLine."Quantity (Base)" = 0);
    ...

    既存のコード 2

    ...            MissingExCostRevLink := TRUE;
    END;
    ...

    置換用コード 2

    ...            MissingExCostRevLink := TRUE;

    // Add the following line.
    CheckUnappliedLines(LinesApplied,MissingExCostRevLink);

    END;
    ...

  4. コピー文書管理 codeunit (6620) 内のSplitPstdPurchLinesPerILE関数内のコードを次のように変更します。
    既存のコード 1

    ...        ApplyRec@1011 : Record 339;

    // Delete the following line.
    AllAreFixed@1012 : Boolean;

    BEGIN
    ...

    置換用コード 1

    ...        ApplyRec@1011 : Record 339;
    BEGIN
    ...

    既存のコード 2

    ...          REPEAT

    // Delete the following lines.
    IF "Remaining Quantity" = 0 THEN BEGIN
    AllAreFixed := TRUE;
    ApplyRec.AppliedOutbndEntryExists("Entry No.",FALSE);
    IF ApplyRec.FINDFIRST THEN
    REPEAT
    AllAreFixed := AllAreFixed AND ApplyRec.Fixed;
    UNTIL ApplyRec.NEXT = 0;
    IF AllAreFixed THEN
    ERROR(Text030,"Document Type","Document No.","Document Line No.");
    END;
    // End of the lines.

    IF NOT ApplyFully THEN BEGIN
    ...

    置換用コード 2

    ...          REPEAT
    IF NOT ApplyFully THEN BEGIN
    ...

    既存のコード 3

    ...        END;
    ...

    置換用コード 3

    ...        END;

    // Add the following line.
    CheckUnappliedLines(SkippedLine,MissingExCostRevLink);

    ...

  5. コピー文書管理 codeunit (6620) 内のCheckUnappliedLines関数内のコードを次のように変更します。
    既存のコード

    ...      BEGIN
    ...

    置換用コード

    ...
    // Add the following lines.
    LOCAL PROCEDURE CheckUnappliedLines@86(SkippedLine@1000 : Boolean;VAR MissingExCostRevLink@1001 : Boolean);
    BEGIN
    IF SkippedLine AND MissingExCostRevLink THEN BEGIN
    IF NOT WarningDone THEN
    MESSAGE(Text030);
    MissingExCostRevLink := FALSE;
    WarningDone := TRUE;
    END;
    END;

    // End of the lines.

    BEGIN
    ...

必要条件

この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 サービス パック 1

アンインストール情報

この修正プログラムを削除することはできません。

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×