每晚我们都需要为我们的用户提取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会返回所有事务,这非常低效。
反正有没有做我想做的事情,有效地提取物品的交易和持股?根据文档,我似乎无法找到方法。提前谢谢。
答案 0 :(得分:1)
是的,有办法避免这种情况。
步骤 - 1)不要设置endLevel = 2并设置endLevel = 02)DataExtent还采用了一个extentLevels数组,所以请设置第一个元素,其值为0(零),第二个元素为值2.
<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文档