Capable-to-Promise 関数は、週末の最も早い出荷を予期せず計算します (アウトバウンド・ウィズの場合)。 処理時間が Microsoft Dynamics NAV に追加される

適用先
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

この記事は、すべての言語ロケールの Microsoft Dynamics NAV に適用されます。

現象

        
Microsoft Dynamics NAV で次のシナリオを検討します。

  • 受注保証機能 (対応対 Promise) を使用する販売注文があります。
  • お客様には、稼働週のCalendarセットアップ (月曜日から金曜日) があります。
  • "アウトバウンド Whse。 [処理時間] 設定は、場所カードで指定します。

このシナリオでは、"送信 Whse" の出荷日が原因で、Capable-to-Promise 関数を使用して最も早い出荷日を計算します。 処理時間" の設定は、週末に推奨されます。 これは、Calendarセットアップが考慮されないため、正しくありません。
この問題は、次の製品で発生します。

  • Microsoft Dynamics NAV 2009 R2
  • 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 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 オブジェクトの Execute アクセス許可。

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

コードの変更

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

  1. codeunit (99000886) の ValidateCapableToPromise 関数のコードを次のように変更します。
    関数に次のパラメーターを追加します。

    • VAR: はい
    • 名前: DueDateOfReqLine
    • DataType: 日付

    次のローカル変数を追加します。

    • 名前: Ok
    • DataType: ブール値

    既存のコード

    ...
       END;
    // Delete the following line.
    EXIT(CheckDerivedDemandCTP(ReqLine,PeriodType)); 
    // End of the deleted line.
    ...
    

    置換コード

    ...
      END;
    // Add the following lines.
    Ok := CheckDerivedDemandCTP(ReqLine,PeriodType); 
    IF Ok THEN 
      DueDateOfReqLine := ReqLine."Due Date"; 
    EXIT(Ok); 
    // End of the added lines.
    ...
    
  2. codeunit (99000886) の CalcCapableToPromise 関数のコードを次のように変更します。
    次のローカル変数を追加します。

    • 名前: DueDateOfReqLine
    • DataType: 日付

    既存のコード 1

    ...
      IF NOT
       ValidateCapableToPromise(
        ItemNo,VariantCode,LocationCode,CalculationStartDate,
    // Delete the following line.
        NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType) 
    // End of the deleted line. 
    ...
    

    置換コード 1

    ...
       IF NOT
       ValidateCapableToPromise(
        ItemNo,VariantCode,LocationCode,CalculationStartDate,
    
    // Add the following line.
        NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType,DueDateOfReqLine)
    ...
    

    既存のコード 2

    ...
        RemoveReqLines("Order Promising ID","Source Line No.",OrderPromisingLineToSave,FALSE);
    
    // Delete the following lines.
       IsValid :=         ValidateCapableToPromise(ItemNo,VariantCode,LocationCode,CalculationStartDate, 
         NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType); 
    // End of the deleted lines.   
    ...
    

    置換コード 2

    ...
          RemoveReqLines("Order Promising ID","Source Line No.",OrderPromisingLineToSave,FALSE);
    
    // Add the following lines.
       IsValid := 
        ValidateCapableToPromise(ItemNo,VariantCode,LocationCode,CalculationStartDate, 
         NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType,DueDateOfReqLine); 
    ...
    

    既存のコード 3

    ...
          ValidateCapableToPromise(ItemNo,VariantCode,LocationCode,CapableToPromiseDate,
    
    // Delete the following line.
        NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType); 
    // End of the deleted line.
    
      END;
      CalculationDialog.CLOSE;
    ...
    

    置換コード 3

    ...
         ValidateCapableToPromise(ItemNo,VariantCode,LocationCode,CapableToPromiseDate,
    
    // Add the following line.
        NeededQty,UnitOfMeasure,"Order Promising ID",PeriodType,DueDateOfReqLine); 
    // End of the added line.
    
       END;
       CalculationDialog.CLOSE; 
    ...
    

    既存のコード 4

    ...
       CapableToPromiseDate := CalculationStartDate;
     LastValidLine := GetNextOrderPromisingLineNo; 
    ...
    

    置換コード 4

    ...
        CapableToPromiseDate := CalculationStartDate
    
    // Add the following lines.
    IF CapableToPromiseDate <> DueDateOfReqLine THEN 
      CapableToPromiseDate := DueDateOfReqLine; 
    // End of the added lines.
    
    LastValidLine := GetNextOrderPromisingLineNo; 
    ...
    
  3. codeunit (99000886) の CheckCompsCapableToPromise 関数のコードを次のように変更します。
    次のローカル変数を追加します。

    • 名前: DueDateOfReqLine
    • DataType: 日付

    既存のコード

    ...
          ValidateCapableToPromise(
        "Item No.","Variant Code","Location Code","Due Date",
    
    // Delete the following line.
        "Expected Quantity","Unit of Measure Code",OrderPromisingID,PeriodType) 
    ...
    

    置換コード

    ...
       ValidateCapableToPromise(
        "Item No.","Variant Code","Location Code","Due Date",
    
    // Add the following line.
        "Expected Quantity","Unit of Measure Code",OrderPromisingID,PeriodType,DueDateOfReqLine) 
    ...
    
  4. codeunit (99000886) の CheckTransferShptCTP 関数のコードを次のように変更します。
    次のローカル変数を追加します。

    • 名前: DueDateOfReqLine
    • DataType: 日付

    既存のコード

    ...
          ValidateCapableToPromise(
        "No.","Variant Code","Transfer-from Code","Transfer Shipment Date",
    
    // Delete the following line.
         Quantity,"Unit of Measure Code",OrderPromisingID,PeriodType) 
    ...
    

    置換コード

    ...
        ValidateCapableToPromise(
      "No.","Variant Code","Transfer-from Code","Transfer Shipment Date",
    
    // Add the following line.
       Quantity,"Unit of Measure Code",OrderPromisingID,PeriodType,DueDateOfReqLine)  
    ...
    

          

前提条件

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

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1(SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1(SP1)

                
              

アンインストール情報

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

状態

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

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