从Yodlee有效地检索项目的交易和控股

时间:2014-04-10 00:18:14

标签: yodlee

每晚我们都需要为我们的用户提取Yodlee数据库中的所有数据(馆藏和交易)并将其存储在我们自己的数据库中。从我收集到的内容似乎没有有效的方法来做到这一点。 Yodlee TransactionView and ItemId的选项2表示我应该调用getItemSummaryForItem1来检索Item的ItemSummary,然后运行TransactionSearch来检索事务。如果您只想要交易,这很有意义。在这种情况下,我将运行以下getItemSummaryForItem1调用:

// 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]

这很好用并且运行得非常快,但在我的场景中我也想要持有。要检索馆藏,我需要将DataExtent的endLevel从0更改为2.但是当我这样做时,调用会花费相当长的时间,并且ItemSummary会返回所有事务,这非常低效。

反正有没有做我想做的事情,有效地提取物品的交易和持股?根据文档,我似乎无法找到方法。提前谢谢。

1 个答案:

答案 0 :(得分:1)

是的,有办法避免这种情况。

步骤 - 1)不要设置endLevel = 2并设置endLevel = 0

2)DataExtent还采用了一个extentLevels数组,所以请设置第一个元素,其值为0(零),第二个元素为值2.

SOAP XML样本

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

示例代码 -

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

您还可以查看Youdlee开发人员门户网站上的getItemSummaryForItem1文档