0

每天晚上,我们需要为我们的用户提取 Yodlee 数据库中的所有数据(持股和交易)并将其存储在我们自己的数据库中。据我所知,似乎没有有效的方法来做到这一点。Yodlee TransactionView 和 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 会返回所有事务,这是非常低效的。

有没有办法做我想做的事,有效地为一个项目提取交易和持有?根据文档,我似乎找不到方法。提前致谢。

4

1 回答 1

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文档

于 2014-04-10T06:44:13.033 回答