Hi Vkunchakuri,
I was having the same issue in AX 2012 R3 CU13 for a customer having 60K+ products and millions of records in EcoResProduct.
After investigating in a Contoso environment, it appear the kernel is adding some strange stuff in WHERE clause. Imagine a scenario where you are filtering the ListPage with letter D and then choose to edit product D0111. SQL will look like this :
WHERE (((T1.PARTITION=5637144576) AND (T1.DATAAREAID=N'usmf'))
AND ((T1.ITEMID LIKE N'%D%' ESCAPE '\' )
AND (((((((((T1.ITEMID=N'D0111') AND (T7.DISPLAYPRODUCTNUMBER=N'D0111')) AND (T7.RECID=22565440158)) AND (T18.PRODUCT=22565440158)) AND (T18.LANGUAGEID>=N'en-us'))
OR ((((T1.ITEMID=N'D0111') AND (T7.DISPLAYPRODUCTNUMBER=N'D0111')) AND (T7.RECID=22565440158)) AND (T18.PRODUCT>22565440158)))
OR (((T1.ITEMID=N'D0111') AND (T7.DISPLAYPRODUCTNUMBER=N'D0111')) AND (T7.RECID>22565440158)))
OR ((T1.ITEMID=N'D0111') AND (T7.DISPLAYPRODUCTNUMBER>N'D0111'))) OR (T1.ITEMID>N'D0111'))))
AND ((T7.PARTITION=5637144576) AND (T1.PRODUCT=T7.RECID))
AND (((T8.PARTITION=5637144576) AND (T8.DATAAREAID=N'usmf')) AND ((T8.MODULETYPE=1) AND (T8.ITEMID=T1.ITEMID)))
AND (((T9.PARTITION=5637144576) AND (T9.DATAAREAID=N'usmf')) AND ((T9.MODULETYPE=0) AND (T9.ITEMID=T1.ITEMID)))
AND (((T10.PARTITION=5637144576) AND (T10.DATAAREAID=N'usmf')) AND ((T10.MODULETYPE=2) AND (T10.ITEMID=T1.ITEMID)))
AND (((T11.PARTITION=5637144576) AND (T11.DATAAREAID=N'usmf')) AND ((T11.INVENTDIMID=N'AllBlank') AND (T1.ITEMID=T11.ITEMID)))
I tried to call clearDynalinks and clearLinks over EcoResProduct data source without any effect. I then tried to set property JoinMode = Delayed. Still no luck. I even tried to remove all EcoRes* tables from data source section (and also removed all my usage date). No matter what I try, I still see [CROSS JOIN ECORESPRODUCT T7] in the SQL statement. This is very strange. I’m suspecting the kernel to have some sort of internal hardcoding for the query used by EcoResProductDetailsExtended when standard box to filter is being used (instead of filtering using CTRL-G).
Here is a work-around :
Edit method AOT\Forms\EcoResProductDetailsExtended\Data Sources\InventTable\Methods\init
At the end of the method, there is a block of code used to add a range using refInventTable.ItemId. Comment out the IF statement above the block to make sure the range will always be added.
Hope this helps.