この記事は、イタリア語 (it) 言語ロケールの Microsoft Dynamics NAV に適用されます。
現象
イタリア語バージョンの Microsoft Dynamics NAV で請求書を閉じるために [アプリケーションごとの確認] チェック ボックスを選択せずに顧客請求書の決済レポートを実行すると、請求書を使用して請求書が適用されます。 ただし、アプリケーションエントリでは、請求書転記日ではなく作業日が使用されます。
注: レポートを実行せずに請求書を適用するか、[アプリケーションごとの確認] チェックボックスが選択されているレポートを実行すると、請求書の転記日が正しく使用されます。
この問題は、次の製品で発生します。
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) のイタリア語バージョン
- Microsoft Dynamics NAV 2009 のイタリア語バージョン
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) のイタリア語バージョン
解決策
修正プログラムの情報
サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題を修正することのみを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 したがって、この問題の影響を大きく受けない場合は、次の Microsoft Dynamics NAV 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 アクセス許可。
メモ データ修復を実行する必要がない限り、データ ストアに対する権限は必要ありません。
コードの変更
メモ 運用環境のコンピューターに修正プログラムを適用する前に、制御された環境でコード修正を常にテストします。
この問題を解決するには、次のように、CustEntry-Apply Posted Entries codeunit (226) の OnRun トリガーのコードを変更します。
既存のコード
WITH Rec DO BEGIN
IF STRPOS("Applies-to ID",'CHSNZCNF') = 0 THEN
BEGIN
IF NOT CONFIRM(Text1130000,FALSE,"Document Type","Document No.") THEN
EXIT;
IF STRPOS("Applies-to ID",'CHCNCNF') = 0 THEN
PostApplication.SetValues("Document No.","Posting Date")
ELSE
PostApplication.SetValues("Document No.",WORKDATE);
IF NOT PaymentToleracenMgt.PmtTolCust(Rec) THEN
EXIT;
GET("Entry No.");
//Delete the following lines.
ApplicationDate := 0D;
EntriesToApply.SETCURRENTKEY("Customer No.","Applies-to ID");
EntriesToApply.SETRANGE("Customer No.","Customer No.");
EntriesToApply.SETRANGE("Applies-to ID","Applies-to ID");
EntriesToApply.FIND('-');
REPEAT
IF EntriesToApply."Posting Date" > ApplicationDate THEN
ApplicationDate := EntriesToApply."Posting Date";
UNTIL EntriesToApply.NEXT = 0;
//End of the lines.
PostApplication.SetValues("Document No.",ApplicationDate);
PostApplication.LOOKUPMODE(TRUE);
IF ACTION::LookupOK = PostApplication.RUNMODAL THEN BEGIN
GenJnlLine.INIT;
PostApplication.GetValues(GenJnlLine."Document No.",GenJnlLine."Posting Date");
IF GenJnlLine."Posting Date" < ApplicationDate THEN
ERROR(
Text003,
GenJnlLine.FIELDCAPTION("Posting Date"),FIELDCAPTION("Posting Date"),TABLECAPTION);
END ELSE
EXIT;
END ELSE BEGIN
GenJnlLine.INIT;
//Delete the following line.
GenJnlLine."Posting Date" := WORKDATE;
GenJnlLine."Document No." := "Document No.";
END;
Window.OPEN(Text001);
...
置換コード
WITH Rec DO BEGIN
//Add the following lines.
ApplicationDate := 0D;
EntriesToApply.SETCURRENTKEY("Customer No.","Applies-to ID");
EntriesToApply.SETRANGE("Customer No.","Customer No.");
EntriesToApply.SETRANGE("Applies-to ID","Applies-to ID");
IF EntriesToApply.FINDSET THEN
REPEAT
IF EntriesToApply."Posting Date" > ApplicationDate THEN
ApplicationDate := EntriesToApply."Posting Date";
UNTIL EntriesToApply.NEXT = 0;
//End of the lines.
IF STRPOS("Applies-to ID",'CHSNZCNF') = 0 THEN
BEGIN
IF NOT CONFIRM(Text1130000,FALSE,"Document Type","Document No.") THEN
EXIT;
IF STRPOS("Applies-to ID",'CHCNCNF') = 0 THEN
PostApplication.SetValues("Document No.","Posting Date")
ELSE
PostApplication.SetValues("Document No.",WORKDATE);
IF NOT PaymentToleracenMgt.PmtTolCust(Rec) THEN
EXIT;
GET("Entry No.");
PostApplication.SetValues("Document No.",ApplicationDate);
PostApplication.LOOKUPMODE(TRUE);
IF ACTION::LookupOK = PostApplication.RUNMODAL THEN BEGIN
GenJnlLine.INIT;
PostApplication.GetValues(GenJnlLine."Document No.",GenJnlLine."Posting Date");
IF GenJnlLine."Posting Date" < ApplicationDate THEN
ERROR(
Text003,
GenJnlLine.FIELDCAPTION("Posting Date"),FIELDCAPTION("Posting Date"),TABLECAPTION);
END ELSE
EXIT;
END ELSE BEGIN
GenJnlLine.INIT;
//Add the following line.
GenJnlLine."Posting Date" := ApplicationDate;
GenJnlLine."Document No." := "Document No.";
END;
Window.OPEN(Text001);
...
前提条件
この修正プログラムを適用するには、次のいずれかの製品がインストールされている必要があります。
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) のイタリア語バージョン
- Microsoft Dynamics NAV 2009 のイタリア語バージョン
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) のイタリア語バージョン
アンインストール情報
この修正プログラムを削除することはできません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
注: この資料は、"迅速な公開" を目的としてマイクロソフト サポート組織により直接作成されたものです。 ここに含まれる情報は、新しい問題に対応するため、そのままの状態で提供されます。 情報を迅速に公開するため、この資料には誤植などが含まれる可能性があり、また、予告なく改訂される場合があります。 その他の注意事項については、使用条件を参照してください。