LCDS 2.6 - load-on-demand
As many already noticed, LCDS 2.6 ( LCDS updater 1) has been finally released.
Relase notes can be found here.
Data Management has been improved by implementing load-on-demand. With a mix of load-on-demand and lazy-loading, your applications can benefit from a very nice boost of performance.
Imagine the two following destinations:
<properties>
<metadata>
<identity property="companyId"/>
<one-to-many property="employees" destination="cfemployee" lazy="true" load-on-demand="true"/>
</metadata>
</properties>
</destination>
<destination id="cfemployee">
<properties>
<metadata>
<identity property="employeeId"/>
</metadata>
</properties>
</destination>
Back in 2.5.1, when you invoked a fill on a company assembler, you would have to populate the employees property, if they were lazy-loaded, you would have to populate their IDs which,could be expensive in some fills.
In 2.6, you just need to populate the main Company object and once you request employees property a first ItemPendingError(client-side) will be thrown and a the get method (implemented in every Data Management Destination to retrieve a single Item) will be invoked for the selectedItem. In the get method (in your Company's Assembler) you will populate the company object and the employees property. Now if that association (one-to-many) is configured as a lazy property, you'll just have to provide the employees with an array of corresponding IDs. If you need to access one of those employees objects,flex will throw a second ItemPendingError(again client side) and that request will invoke the get method on the employees' Assembler. On the other hand,if your employees property is not lazy, then you'll have to fully create your objects on the get method of the company's assembler.

