У меня есть требование;где мне нужно загрузить список платежей, которые были обновлены между указанным диапазоном даты / времени.И для каждого счета;Мне нужно получить список internal
идентификатора (он же идентификатор счета), к которому был применен платеж (поскольку платеж может быть применен к одному или нескольким счетам).
Я пыталсячтобы добиться этого с помощью поискового запроса, подобного следующему:
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
, кажется, что он возвращает только одно значение, к первому счету, к которому был применен этот платеж.Как я могу получить все идентификаторы счетов, к которым был применен платеж?
Я попытался осмотреть объект 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(...)
для получения массива значений элементов / полей через объединение?