ギリシャ語バージョンの Microsoft Dynamics NAV で品目料金を含む購買クレジット メモを転記すると、値エントリでコスト金額 (実績) の値が正しく生成されません

適用先
Microsoft Dynamics NAV 5.0 Service Pack 1 Dynamics NAV 2009 Service Pack 1

この記事は、ギリシャ語 (gr) 言語ロケールの Microsoft Dynamics NAV に適用されます。

現象

ギリシャ語バージョンの Microsoft Dynamics NAV で品目料金を含む購入クレジット メモを作成することを想定しています。 購買クレジットメモを転記した後、登録された値エントリの [Cost Amount (Actual)] フィールドの値が正しくありません。 Cost Amount (Actual) の値には、負の符号ではなく正の符号が正しくありません。 さらに、品目に対して "在庫原価を G/L に転記" レポートを実行すると、品目原価 (与信) の登録値入力で G/L に転記された原価 が正しくゼロになります。
この問題は、次の製品で発生します。

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) のギリシャ語バージョン
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) のギリシャ語バージョン

原因

この問題は、Microsoft Dynamics NAV のギリシャ語バージョンで UpdateValuationFields 関数によって [Cost Amount (Actual)] フィールドが正しく更新されないために発生します。

解決策

修正プログラムの情報

サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題を修正することのみを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 したがって、この問題の影響を大きく受けない場合は、次の Microsoft Dynamics NAV 2009 Service Pack またはこの修正プログラムを含む次の Microsoft Dynamics NAV バージョンを待つことをおすすめします。

注 特別なケースでは、Microsoft Dynamics および関連製品のテクニカル サポート プロフェッショナルが特定の更新プログラムによって問題が解決されると判断した場合、通常はサポート呼び出しに対して発生する料金が取り消されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

            
          

インストール情報

Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 マイクロソフト サポート窓口では、特定のプロシージャの機能説明に関するご質問に対して支援いたしますが、本例を特定の目的を満たすために機能を追加したり、プロシージャを構築することは行いません。

注 この修正プログラムをインストールする前に、すべての Microsoft Navision クライアント ユーザーがシステムからログオフされていることを確認します。 これには、Microsoft Navision Application Services (NAS) クライアント ユーザーが含まれます。 この修正プログラムを実装するときにログオンする唯一のクライアント ユーザーである必要があります。

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

[Windows ログイン] ウィンドウまたは [データベース ログイン] ウィンドウのユーザー アカウントに "SUPER" ロール ID を割り当てることをお勧めします。 ユーザー アカウントに "SUPER" ロール ID を割り当てることができない場合は、ユーザー アカウントに次のアクセス許可があることを確認する必要があります。

  • 変更するオブジェクトの [変更] アクセス許可。
  • システム オブジェクト ID 5210 オブジェクトとシステム オブジェクト ID 9015 オブジェクトの Execute アクセス許可。

                
メモ データ修復を実行する必要がない限り、データ ストアに対する権限は必要ありません。

コードの変更

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

  1. Item Jnl.-Post Line codeunit (22) の InitValueEntry 関数のコードを次のように変更します。
    既存のコード

    ...
    IF "Partial Revaluation" THEN
    ValueEntry."Partial Revaluation" := TRUE;
    
    // Delete the following lines.
    IF (ItemLedgEntry.Quantity > 0) OR
     (ItemLedgEntry."Invoiced Quantity" > 0) OR
     (("Value Entry Type" = "Value Entry Type"::"Direct Cost") AND ("Item Charge No." = '')) OR
     ("Entry Type" = "Entry Type"::Output) OR
     Adjustment
    THEN
    // End of the lines.
    
    ValueEntry.Inventoriable := TRUE;
    ...
    

    置換コード

    ...
    IF "Partial Revaluation" THEN
    ValueEntry."Partial Revaluation" := TRUE;
    
    // Add the following lines.
    IF (ItemLedgEntry.Quantity > 0) OR
    (ItemLedgEntry."Invoiced Quantity" > 0) OR
    (("Value Entry Type" = "Value Entry Type"::"Direct Cost") AND ("Item Charge No." = '')) OR
    ("Entry Type" = "Entry Type"::Output) OR
    Adjustment OR
    (("Document Type" IN ["Document Type"::"Purchase Return Shipment","Document Type"::"Purchase Credit Memo"]) AND
    ("Item Charge No." <> '') AND
    ("Entry Type" = "Entry Type"::Purchase))
    THEN
    // End of the lines.
    
    ValueEntry.Inventoriable := TRUE;
    ...
    
  2. Item Jnl.-Post Line codeunit (22) の UpdateValuationFields 関数のコードを次のように変更します。
    既存のコード

    ...
    IF (ValueEntry."Expected Cost" = FALSE) AND (ValueEntry."Item Charge No." <> '') AND
    (ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Purchase) THEN BEGIN
    
    // Delete the following lines.
    IF ValueEntry."Cost Amount (Actual)" = 0 THEN
     ValueEntry."Cost Amount (Actual)" := -ValueEntry."Purchase Amount (Actual)";
    // End of the lines.
    
    END;
    ...
    

    置換コード

    ...
    IF (ValueEntry."Expected Cost" = FALSE) AND (ValueEntry."Item Charge No." <> '') AND
    (ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Purchase) THEN BEGIN
    
    // Add the following lines.
    IF ValueEntry."Cost Amount (Actual)" = 0 THEN
    IF ValueEntry."Document Type" = ValueEntry."Document Type"::"Purchase Credit Memo" THEN
    ValueEntry."Cost Amount (Actual)" := ValueEntry."Purchase Amount (Actual)"
    ELSE
    ValueEntry."Cost Amount (Actual)" := -ValueEntry."Purchase Amount (Actual)";
    // End of the lines.
    
    END;
    ...
    
  3. Purch.-Post codeunit (90) の PostItemJnlLine 関数のコードを次のように変更します。
    既存のコード

    ...
    IF QtyToBeInvoiced <> 0 THEN BEGIN
    ItemJnlLine."Invoice No." := GenJnlLineDocNo;
    ItemJnlLine."External Document No." := GenJnlLineExtDocNo;
    
    // Delete the following lines.
    IF ItemJnlLine."Document No." = '' THEN BEGIN
     IF "Document Type" = "Document Type"::"Credit Memo" THEN
     ItemJnlLine."Document Type" := ItemJnlLine."Document Type"::"Purchase Credit Memo"
     ELSE
     ItemJnlLine."Document Type" := ItemJnlLine."Document Type"::"Purchase Invoice";
     ItemJnlLine."Document No." := GenJnlLineDocNo;
    END;
    // End of the lines.
    
    ItemJnlLine."Posting No. Series" := PurchHeader."Posting No. Series";
    END;
    END;
    ... 
    

    置換コード

    ...
    IF QtyToBeInvoiced <> 0 THEN BEGIN
    ItemJnlLine."Invoice No." := GenJnlLineDocNo;
    ItemJnlLine."External Document No." := GenJnlLineExtDocNo;
    
    // Add the following lines.
    IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN
    ItemJnlLine."Document Type" := ItemJnlLine."Document Type"::"Purchase Credit Memo"
    ELSE
    ItemJnlLine."Document Type" := ItemJnlLine."Document Type"::"Purchase Invoice";
    IF ItemJnlLine."Document No." = '' THEN
    ItemJnlLine."Document No." := GenJnlLineDocNo;
    // End of the lines.
    
    ItemJnlLine."Posting No. Series" := PurchHeader."Posting No. Series";
    END;
    END;
    ... 
    

前提条件

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

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) のギリシャ語バージョン
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) のギリシャ語バージョン

再起動の必要性

この修正プログラムを適用し、必要なデータ修復を実行したら、各 Microsoft Dynamics NAV クライアントを再起動する必要があります。
Microsoft Windows を再起動する必要はありません。

アンインストール情報

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

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

注: この資料は、"迅速な公開" を目的としてマイクロソフト サポート組織により直接作成されたものです。 ここに含まれる情報は、新しい問題に対応するため、そのままの状態で提供されます。 情報を迅速に公開するため、この資料には誤植などが含まれる可能性があり、また、予告なく改訂される場合があります。 その他の注意事項については、使用条件を参照してください。