Frage

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.

War es hilfreich?

Lösung

Yes, there is way to avoid this.

Steps - 1)Don't set endLevel =2 and set endLevel =0

2)The DataExtent also takes an array of extentLevels , so please set that with 1st element with value as 0(zero) and 2nd element as value 2.

Sample SOAP XML

<dex xmlns="">
 <startLevel>0</startLevel>
  <endLevel>0</endLevel>
   <extentLevels>
      <elements>0</elements>
      <elements>2</elements>
    </extentLevels>             
</dex>

Sample code -

dataExtent.setStartLevel(0);
dataExtent.setEndLevel(0);
Integer[] array = {0,2};
ArrayOfint levelArray = new ArrayOfint();
levelArray.setElements(array);
dataExtent.setExtentLevels(levelArray);

You can also check the getItemSummaryForItem1 documentation at Youdlee's developer portal

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top