各倉庫の商品の大部分の価格を更新する必要があります。価格の有効化ボタンはInventItemPrice
フォーム(パス:PIM>リリース済み製品>管理費>商品価格)にあります。バルク品目の価格を有効にします。 Dynamics AX 2012 R2
私は、各倉庫のバルク製品の価格を更新することActivate Price
ボタンの同じコードを使用していますプロセスを持っています。
アクティブボタンは、一度に1つずつ(各倉庫ごとに)移動し、有効になります。
このようにすれば、大量の商品の価格を更新するのに多くの時間がかかります。
バルク製品の価格を有効にするにはこれ以外の方法がありますか?
私は複数のレコードが、この活性化の過程で、その後Item
ためInventTrans
に存在する場合、InventStdCostAdjust::adjustCostFinancialTrans
方法がこれを作っているinventTrans
内のレコードのように何度もループし、クエリを持って、このプロセスではもう一つのことを観察しましたいくつかのアイテムには1000個のレコードがあるので、処理がハングアップする/遅くなるtable
各アイテムに
だからこれを締結するために、私は(5warehouses)(約70000)いくつかの助けを必要とするか、バルク製品の価格を有効にするために最善のアプローチについていくつかのヒントが必要になります。
'Activate Price'は' MenuItemButton'で、 'InventItemPriceActivationJob'を呼び出すと、あなたのコードはこのクラスを使用しますか?あなたのコードを共有できますか? –
はい。私のコードは、各ウェアハウスをループし、InventItemPriceActivationJobクラスのactivateOneInventItemPriceSimメソッドにInventItemPriceSimを渡すだけです。私はちょうど標準のように、そのクラスを呼び出しています。しかし、私はそれらの6つのサイト/倉庫で70000以上のレコードを持っています。だからアイテムが来るときはいつも最初の倉庫があり、上記のメソッドに渡すと言った。同様に、すべての項目に対して行うことです...私はそのメソッドにデバッグする場合、その中でInventStdCostAdjust :: adjustCostFinancialに行きます。ここでは、クエリとループ処理に多くの時間がかかります。 – Raj
一方inventsiteテーブルからの選択のsiteId {inventItemPriceSim = msftxxxxxRevaluate.createSimulatedItemPrice(inventDim)。 IF(inventItemPriceSim.RecId!= 0){ inventItemPriceActivationJob = InventItemPriceActivationJob ::コンストラクト()。 IF(inventItemPriceActivationJob = NULL!) {inventItemPriceActivationJob.activateOneInventItemPriceSim(inventItemPriceSim)。 } } } – Raj