我有一个要求;我需要加载在指定日期/时间范围之间更新的付款清单。对于每张发票;我需要获取已应用付款的internal
ID(又称发票ID)的列表(因为付款可以应用到一张或多张发票)。
我试图通过这样的搜索查询来实现这一点:
var paymentSearch = search.create({
type: search.Type.CUSTOMER_PAYMENT,
filters: [
['lastmodifieddate', 'within', from_datetime, to_datetime],
'and',
['appliedToTransaction.tranid', search.Operator.ISNOTEMPTY, '@NONE']
],
columns: [
'entity',
'tranid',
search.createColumn({
name: 'internalid',
join: 'appliedToTransaction'
})
]
});
for (var i = 0; i < paymentsPagedData.pageRanges.length; i++) {
var currentPage = paymentsPagedData.fetch(i);
currentPage.data.forEach(function(result) {
// TEST
var appliedToInvoiceIds = result.getValue({ name: 'internalid', join: 'appliedToTransaction' });
}
}
当我检查appliedToInvoiceIds
时,它似乎只返回一个值,这是已应用此付款的第一张发票。如何获取付款已应用的所有发票ID?
我尝试检查result
对象(在forEach
循环内)以查看内部内容,这就是我看到的内容:
{
"recordType": "customerpayment",
"id": "25911",
"values": {
"entity": [
{
"value": "761",
"text": "COMPANY NAME INC"
}
],
"tranid": "722",
"appliedToTransaction.internalid": [
{
"value": "2676",
"text": "2676"
},
{
"value": "2658",
"text": "2658"
}
]
}
}
您可以在付款的结果对象上看到;它有appliedToTransaction.internalid
,它是一个数组,其中有两个项目。我该如何找回这些?
是否有result.getValue(...)
的替代版本可用于通过联接检索项目/字段值的数组?
答案 0 :(得分:2)
您需要在forEach末尾返回true。否则,它只会返回一个结果。