この資料は、すべての言語ロケールには、Microsoft Dynamics NAV に適用されます。
現象
Microsoft Dynamics NAV 2009 サービス パック 1 (SP1) または Microsoft Dynamics NAV 2009 の R2 の低レベルのコードの計算の機能を実行すると、パフォーマンスの低下が発生します。この問題は、多く生産部品表の表 (Bom) を使用する場合に発生します。
解決策
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。
注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
インストール情報
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。
注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。
この修正プログラムを実装するには、開発者用のライセンスが必要です。
ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。
注:
データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、 FindTopLevel関数 codeunit (99000853) 内のコードを次のように変更します。
2 つのローカル変数を追加します。
-
名: ProdBOMHeader2。データ型: レコードを示します。サブタイプ: 99000771
-
名: CountofRecords。データ型: 整数
既存のコード 1
... ProdBOMLine.SETCURRENTKEY(Type,"No.");
// Delete the following line.
IF Item.FINDSET THEN
// End of the deleted the line.
REPEAT
Window.UPDATE(2,Item."No.");
// Delete the following line.
Window.UPDATE(3,ROUND(NoofItems / Item.COUNT * 10000,1));
// End of the deleted the line.
ProdBOMLine.SETRANGE("No.",Item."No.");
...
置換用コード 1
... ProdBOMLine.SETCURRENTKEY(Type,"No.");
// Add the following lines.
CountOfRecords := Item.COUNT;
IF Item.FIND('-') THEN
// End of the added lines.
REPEAT
Window.UPDATE(2,Item."No.");
// Add the following line.
Window.UPDATE(3,ROUND(NoofItems / CountOfRecords * 10000,1));
// End of the added line.
ProdBOMLine.SETRANGE("No.",Item."No.");
...
既存のコード 2
... IF ProdBOMHeader.GET(ProdBOMLine."Production BOM No.") THEN
// Delete the following line.
IF ProdBOMHeader.Status <> ProdBOMHeader.Status::Certified THEN
// End of the deleted the line.
IF ProdBOMHeader.GET(Item."Production BOM No.") THEN
CalcLevelsForBOM(ProdBOMHeader);
...
置換用コード 2
... IF ProdBOMHeader.GET(ProdBOMLine."Production BOM No.") THEN
// Add the following line.
IF ProdBOMHeader.Status IN [ProdBOMHeader.Status::New,ProdBOMHeader.Status::"Under Development"] THEN
// End of the added line.
IF ProdBOMHeader.GET(Item."Production BOM No.") THEN
CalcLevelsForBOM(ProdBOMHeader);
...
既存のコード 3
... ProdBOMHeader.RESET;
ProdBOMHeader.SETRANGE("Low-Level Code",0);
IF ProdBOMHeader.FINDSET(TRUE) THEN
REPEAT
Window.UPDATE(2,ProdBOMHeader."No.");
Window.UPDATE(3,ROUND(NoofItems / ProdBOMHeader.COUNT * 10000,1));
CalcLevelsForBOM(ProdBOMHeader);
NoofItems := NoofItems + 1;
...
置換用コード 3
... ProdBOMHeader.RESET;
ProdBOMHeader.SETCURRENTKEY(Status);
ProdBOMHeader.SETRANGE(Status,ProdBOMHeader.Status::Certified);
ProdBOMHeader.SETRANGE("Low-Level Code",0);
CountOfRecords := ProdBOMHeader.COUNT;
IF ProdBOMHeader.FIND('-') THEN
REPEAT
Window.UPDATE(2,ProdBOMHeader."No.");
Window.UPDATE(3,ROUND(NoofItems / CountOfRecords * 10000,1));
ProdBOMHeader2 := ProdBOMHeader;
CalcLevelsForBOM(ProdBOMHeader2);
NoofItems := NoofItems + 1;
...
必要条件
Microsoft Dynamics NAV 2009 サービス パック 1 (SP1) が必要か、この修正プログラムを適用する Microsoft Dynamics NAV 2009 の R2 がインストールされています。
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
関連情報
VSTF DynamicsNAV SE: 251328
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。