As per the Technical reference
@SLN (costMbr, salvageMbrConst, lifeMbrConst [, rangeList])
Where are you using the XRANGE?. You might have to specify the range of years in the [rangeList]. Can you post your code so that that will give us an idea
I've never gotten SLN to work across years, but I have successfully "rolled my own" depreciation calc. I don't have the code in front of me, but here are the general steps:
1) Use the @MOVSUMX (using the TRAILSUM) option to accumulate the rolling sum of your CapEx. (by asset category) You're going to want to use XRANGE so the @MOVSUMX crosses years.
2) Take that rolling sum and divide it by the depreciable life of the particular asset category you are calculating.
Something important that you will need to test for . . . do you have any asset categories with a depreciable life that is shorter than your planning horizon? In other words, do you have new assets that will fully depreciate within your planning timeframe?
See if you can get the calculation working with Excel formulas in Smart View, as this will make translating it to a business rule more straignt forward.
Hope this helps,