we can create 2 separate saved search and merge them as an array and can use it for accessing data using the .concat() method.
Given below is an example of map/reduce script in which two searches are created in the getInputData() and use them in other stages by merging them as a single array.
const getInputData = (inputContext) => {
try {
//search to get invoice overdue by 45 days.
let invoiceSearch45Days = search.create({
type: "invoice",
filters:
[
["type", "anyof", "CustInvc"],
"AND",
["status", "anyof", "CustInvc:A"],
"AND",
["mainline", "is", "T"],
"AND",
["formulanumeric: FLOOR( {today} - {trandate} )", "equalto", "45"],
"AND",
["custbody_jj_pen_email_sent_cdus_3627", "is", "F"]
],
columns:
[
search.createColumn({ name: "internalid", label: "Internal ID" }),
search.createColumn({ name: "entity", label: "Name" }),
search.createColumn({ name: "amountremaining", label: "Amount Remaining" }),
search.createColumn({ name: "trandate", label: "Date" }),
search.createColumn({
name: "email",
join: "customer",
label: "Email"
}),
search.createColumn({
name: "formulanumeric",
formula: "FLOOR( {today} - {trandate} )",
label: "Days Overdue"
}),
search.createColumn({ name: "custbody_jj_pen_email_sent_cdus_3627", label: "Penalty Email Sent" }),
search.createColumn({ name: "custbody_jj_pen_email_date_cdus_3627", label: "Penalty Email Sent Date" })
]
});
//search to find the invoice overdue by 30 days after applying 45 days penalty.
let invoiceSearch30Days = search.create({
type: "invoice",
filters:
[
["mainline", "is", "T"],
"AND",
["type", "anyof", "CustInvc"],
"AND",
["status", "anyof", "CustInvc:A"],
"AND",
["custbody_jj_pen_email_sent_cdus_3627", "is", "T"],
"AND",
["formulanumeric: FLOOR( {today}-{custbody_jj_pen_email_date_cdus_3627} )", "equalto", "30"]
],
columns:
[
search.createColumn({ name: "internalid", label: "Internal ID" }),
search.createColumn({ name: "entity", label: "Name" }),
search.createColumn({
name: "email",
join: "customer",
label: "Email"
}),
search.createColumn({ name: "amountremaining", label: "Amount Remaining" }),
search.createColumn({
name: "formulanumeric",
formula: "FLOOR( {today}-{custbody_jj_pen_email_date_cdus_3627} )",
label: "Days overdue after 45th day"
}),
search.createColumn({ name: "trandate", label: "Date" }),
search.createColumn({ name: "custbody_jj_pen_email_sent_cdus_3627", label: "Penalty Email Sent" }),
search.createColumn({ name: "custbody_jj_pen_email_date_cdus_3627", label: "Penalty Email Sent Date" })
]
});
let searchResult45Days = invoiceSearch45Days.run().getRange({ start: 0, end: 1000 });
let searchResult30Days = invoiceSearch30Days.run().getRange({ start: 0, end: 1000 });
let combinedResult = searchResult45Days.concat(searchResult30Days);
return combinedResult;
} catch (e) {
log.error({
title: 'Get Input Data Error',
details: e.toString()
})
}
}