2017-01-03 5 views
1

각 창고에 대한 품목 대량 판매 가격을 업데이트해야합니다. 가격 활성화 버튼은 InventItemPrice 양식 (경로 : PIM> 출시 제품> 관리 비용> 품목 가격)에 있습니다.대량 품목의 가격을 활성화하십시오. Dynamics AX 2012 R2

각웨어 하우스의 대량 제품 가격을 업데이트하기 위해 Activate Price 버튼과 동일한 코드를 사용하는 프로세스가 있습니다.

활성화 버튼은 한 번에 하나씩 (각 창고가있는 각 제품) 이동하여 활성화됩니다.

이렇게하면 대량의 제품 가격을 업데이트하는 데 많은 시간이 걸립니다.

대량 제품의 가격을 활성화하는 다른 방법이 있습니까?

나는 InventTrans에서 여러 기록이 활성화 과정에서 다음 Item에 대해이있는 경우, InventStdCostAdjust::adjustCostFinancialTrans 방법이 어떤을하고 inventTrans의 레코드로 여러 번 루프 쿼리를 가지고,이 과정에서 한 가지 더 관찰 일부 항목의 레코드가 1000 개이므로 각 항목마다 table의 응답이 느려지거나 처리 속도가 느려집니다.

이렇게 결론을 내리려면 대량 제품 (70000 개) (5 개 하우스)의 가격을 활성화하기위한 최선의 방법에 대한 도움말이 필요하거나 도움이 필요합니다.

+0

'Activate Price'는'MenuItemButton'이며,'InventItemPriceActivationJob'을 호출하면 코드에서이 클래스를 사용합니까? 코드를 공유 할 수 있습니까? –

+0

예. 내 코드는 각웨어 하우스를 반복하면서 InventItemPriceActivationJob 클래스의 activateOneInventItemPriceSim 메소드에 InventItemPriceSim을 전달합니다. 나는 단지 표준과 마찬가지로 그 수업을 부르고있다. 하지만 그 6 개 사이트/창고가있는 70000 개 이상의 레코드가 있습니다. 그래서 항목이 올 때마다 첫 번째 창고를지나 위의 방법으로 전달합니다. 마찬가지로 모든 항목에 대한 일을 .... 내가 중간에 그 방법으로 디버깅하는 경우 InventStdCostAdjust :: adjustCostFinancial가는 쿼리 및 루핑은 시간이 많이 걸립니다. – Raj

+0

발명 사이트 테이블에서 select siteId를 가져 오는 중 { inventItemPriceSim = msftxxxxxRevaluate.createSimulatedItemPrice (inventDim); if (inventItemPriceSim.RecId! = 0) { inventItemPriceActivationJob = InventItemPriceActivationJob :: construct(); if (inventItemPriceActivationJob! = null) { inventItemPriceActivationJob.activateOneInventItemPriceSim (inventItemPriceSim); } } } – Raj

답변

0

SShaheen이 제안했듯이웨어 하우스를 매개 변수로 허용하는 쿼리로 배치 작업을 작성했습니다. 나는 동시에 6 개의 일괄 처리 작업을 실행하려고 시도했지만, 항목에 대한 교착 상태를 말하는 오류가 발생합니다. 이것은 모든 사람이 6 개의 창고에 대해 동일한 항목을 선택하기 때문에 발생합니다.

First Ware 하우스로 배치 작업을 실행하고 몇 분 기다렸다가 두 번째 작업과 마찬가지로 3,4,5,6 작업을 시작했습니다. 이것은 일했다. 이로 인해 6에 걸리는 시간을 줄이는 데 도움이되었습니다. (총 시간)/6. 나는 약 80000 개의 레코드를 가지고 있으므로이 시간을 줄이기 위해 노력하고 있습니다. 더 나은 해결책을 찾으면 계속 게시됩니다.