この記事は、すべての国とすべての言語ロケールの Microsoft Dynamics NAV に適用されます。
現象
Microsoft Dynamics NAV 2009 の [要求ワークシート ] ダイアログ ボックスに注文計画明細行をコピーすると、[ 予約エントリ] ダイアログ ボックス (T337) に関連レコードが作成されません。
この問題は、次の製品で発生します。
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
解決策
修正プログラムの情報
サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題を修正することのみを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 したがって、この問題の影響を大きく受けない場合は、次の Microsoft Dynamics NAV 2009 Service Pack またはこの修正プログラムを含む次の Microsoft Dynamics NAV バージョンを待つことをおすすめします。
注 特別なケースでは、Microsoft Dynamics および関連製品のテクニカル サポート プロフェッショナルが特定の更新プログラムによって問題が解決されると判断した場合、通常はサポート呼び出しに対して発生する料金が取り消されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。
インストール情報
Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能の説明を支援できます。 ただし、これらの例を変更して、特定の要件を満たすために追加の機能を提供したりプロシージャを構築したりすることはできません。
注 この修正プログラムをインストールする前に、すべての Microsoft Dynamics NAV クライアント ユーザーがシステムからログオフされていることを確認します。 これには、Microsoft Dynamics NAV Application Server (NAS) サービスが含まれます。 この修正プログラムを実装するときにログオンする唯一のクライアント ユーザーである必要があります。
この修正プログラムを実装するには、開発者ライセンスが必要です。
[Windows ログイン] ウィンドウまたは [データベース ログイン] ウィンドウのユーザー アカウントに "SUPER" ロール ID を割り当てることをお勧めします。 ユーザー アカウントに "SUPER" ロール ID を割り当てることができない場合は、ユーザー アカウントに次のアクセス許可があることを確認する必要があります。
変更するオブジェクトの [変更] アクセス許可。
システム オブジェクト ID 5210 オブジェクトとシステム オブジェクト ID 9015 の実行アクセス許可
オブジェクト。
メモ データ修復を実行する必要がない限り、データ ストアに対する権限は必要ありません。
コードの変更
メモ 運用環境のコンピューターに修正プログラムを適用する前に、制御された環境でコード修正を常にテストします。
この問題を解決するには、次の手順を実行します。
実行アクション codeunit (99000813) の CarryOutToReqWksh 関数のコードを次のように変更します。
既存のコード... ReserveReqLine.TransferReqLineToReqLine(ReqLine,ReqLine2,0,TRUE); ...置換コード
... ReserveReqLine.TransferReqLineToReqLine(ReqLine,ReqLine2,0,TRUE); // Add the following lines. IF ReqLine.Reserve THEN ReserveBindingOrderToReqline(ReqLine2,ReqLine); // End of the added lines. ...次のように、実行アクション Codeunit (99000813) に新しい関数を追加します。
PROCEDURE ReserveBindingOrderToReqline@26(VAR DemandReqLine@1001 : Record 246;VAR SupplyReqLine@1002 : Record 246); VAR ProdOrderComp@1003 : Record 5407; SalesLine@1004 : Record 37; ReservEntry@1005 : Record 337; ReserveProdOrderComp@1006 : Codeunit 99000838; ReserveSalesLine@1007 : Codeunit 99000832; ReservMgt@1008 : Codeunit 99000845; ReservQty@1009 : Decimal; BEGIN CLEAR(ReservMgt); ReservMgt.SetReqLine(SupplyReqLine); CASE SupplyReqLine."Demand Type" OF DATABASE::"Prod. Order Component": BEGIN ProdOrderComp.GET( SupplyReqLine."Demand Subtype", SupplyReqLine."Demand Order No.", SupplyReqLine."Demand Line No.", SupplyReqLine."Demand Ref. No."); ReservEntry."Source Type" := DATABASE::"Prod. Order Component"; ReserveProdOrderComp.SetBinding(ReservEntry.Binding::"Order-to-Order"); ReserveProdOrderComp.CreateReservationSetFrom( DATABASE::"Requisition Line", 0, DemandReqLine."Worksheet Template Name", DemandReqLine."Journal Batch Name", 0,DemandReqLine."Line No.", DemandReqLine."Variant Code", DemandReqLine."Location Code",'','', DemandReqLine."Qty. per Unit of Measure"); ReserveProdOrderComp.CreateReservation( ProdOrderComp, DemandReqLine.Description, DemandReqLine."Due Date", SupplyReqLine."Demand Quantity (Base)", '',''); ProdOrderComp.MODIFY; END; DATABASE::"Sales Line": BEGIN SalesLine.GET( SupplyReqLine."Demand Subtype", SupplyReqLine."Demand Order No.", SupplyReqLine."Demand Line No."); ReservEntry."Source Type" := DATABASE::"Sales Line"; ReserveSalesLine.SetBinding(ReservEntry.Binding::"Order-to-Order"); ReserveSalesLine.CreateReservationSetFrom( DATABASE::"Requisition Line", 0, DemandReqLine."Worksheet Template Name", DemandReqLine."Journal Batch Name", 0, DemandReqLine."Line No.", DemandReqLine."Variant Code", DemandReqLine."Location Code",'','', DemandReqLine."Qty. per Unit of Measure"); ReserveSalesLine.CreateReservation( SalesLine, DemandReqLine.Description, DemandReqLine."Due Date", SupplyReqLine."Demand Quantity (Base)", '',''); IF SalesLine.Reserve = SalesLine.Reserve::Never THEN SalesLine.Reserve := SalesLine.Reserve::Optional; SalesLine.MODIFY; END; END; END;
前提条件
この修正プログラムを適用するには、次のいずれかの製品がインストールされている必要があります。
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1
アンインストール情報
この修正プログラムを削除することはできません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
注: この資料は、"迅速な公開" を目的としてマイクロソフト サポート組織により直接作成されたものです。 ここに含まれる情報は、新しい問題に対応するため、そのままの状態で提供されます。 情報を迅速に公開するため、この資料には誤植などが含まれる可能性があり、また、予告なく改訂される場合があります。 その他の注意事項については、使用条件を参照してください。