Requirement
We need to consider customer that are top level parent in saved search .
Solution
Following code snippet provides the saved search code to consider the parent level customer.
var customerSearchObj = search.create({
type: "customer",
filters:
[
[["toplevelparent.internalid","anyof",customerIdFromSearch],"OR",["internalid","anyof",customerIdFromSearch]],
"AND",
["transaction.type","anyof","CustInvc","CustCred"],
"AND",
["transaction.status","anyof","CustCred:A","CustInvc:A"],
"AND",
["transaction.mainline","is","T"],
],
columns:
[
search.createColumn({name: "altname", label: "Name"}),
search.createColumn({
name: "tranid",
join: "transaction",
label: "Document Number"
}),
search.createColumn({
name: "trandate",
join: "transaction",
label: "Date"
}),
search.createColumn({
name: "subsidiary",
join: "transaction",
label: "Subsidiary"
}),
search.createColumn({
name: "duedate",
join: "transaction",
label: "Due Date/Receive By"
}),
search.createColumn({
name: "daysoverdue",
join: "transaction",
sort: search.Sort.DESC,
label: "Days Overdue"
}),
search.createColumn({
name: "amount",
join: "transaction",
label: "Amount"
}),
search.createColumn({
name: "amountremaining",
join: "transaction",
label: "Amount Remaining"
}),
search.createColumn({
name: "internalid",
join: "transaction",
label: "Internal ID"
}),
search.createColumn({
name: "type",
join: "transaction",
label: "Type"
})
]
});
var highestOverdueSearchResult = customerSearchObj.run().getRange({
start: 0,
end: 1000
});
return highestOverdueSearchResult;
}