Every night we need to pull all of the data (holdings and transactions) in the Yodlee database for our users and store it in our own database. From what I gather there seems to be no efficient way to do this. Option 2 of Yodlee TransactionView and ItemId indicates that I should call getItemSummaryForItem1 to retrieve the ItemSummary for an Item and then subsequently run a TransactionSearch to retrieve the transactions. This makes a lot of sense if you are ONLY wanting transactions. In which case I would run the following an getItemSummaryForItem1 call:
// Create Data Extent
DataExtent dataExtent = new DataExtent();
dataExtent.startLevel = 0;
dataExtent.startLevelSpecified = true;
dataExtent.endLevel = 0;
dataExtent.endLevelSpecified = true;
// Get ItemSummary
var ItemSummary = new DataService().getItemSummaryForItem1(_userContext, itemId, true, dataExtent);
[Then the TransactionSearch would follow]
This works great and runs really quickly, but in my scenario I want holdings as well. To retrieve holdings I need to change the endLevel of the DataExtent from a 0 to a 2. However when I do that the call takes an amazingly significant amount longer AND the ItemSummary comes back with all of the transactions, which is EXTREMELY inefficient.
Is there anyway to do what I want, pull transactions and holdings for an Item, efficiently? Based on the documentation I can't seem to find a way. Thanks in advance.