Noel B
12/05/2023, 4:37 PM/**
* @NApiVersion 2.x
* @NScriptType MapReduceScript
*/
define(['N/record', 'N/search', 'N/runtime'],
/**
* @param{record} record
* @param{search} search
*/
(record, search, runtime) => {
const getInputData = (inputContext) => {
return [
{'freq':'Monthly','name':'Monthly - 1 Year - No Arrears 12/1 *DO NOT EDIT*','re':1,'nr':12},
{'freq':'Monthly','name':'Monthly - 1 Year - No Arrears 11/1 *DO NOT EDIT*','re':1,'nr':11}
];
}
const reduce = (reduceContext) => {
let inp = reduceContext.values[0];
let freq = inp.freq;
let n = inp.name;
let nr = <http://inp.nr|inp.nr>;
let re = <http://inp.re|inp.re>;
var sched = record.create({
type: record.Type.BILLING_SCHEDULE,
isDynamic: true,
defaultValues: { 'schedtype': SCHEDULE_TYPE }
});
sched.setValue({ fieldId: 'applytosubtotal', value: 'F' });
sched.setValue({ fieldId: 'frequency', value: freq });
sched.setValue({ fieldId: 'inarrears', value: 'F' });
sched.setValue({ fieldId: 'initialamount', value: 0 });
sched.setValue({ fieldId: 'inuse', value: 'T' });
sched.setValue({ fieldId: 'isinactive', value: 'F' });
sched.setValue({ fieldId: 'ispublic', value: 'T' });
sched.setValue({ fieldId: 'name', value: n });
sched.setValue({ fieldId: 'numberremaining', value: nr });
sched.setValue({ fieldId: 'repeatevery', value: re });
sched.setValue({ fieldId: 'scheduletype', value: 'STD' });
sched.save({ ignoreMandatoryFields: false });
}
return {getInputData, reduce}
}
);
ehcanadian
12/05/2023, 4:45 PM@NApiVersion
to 2.1
Noel B
12/05/2023, 4:45 PMNElliott
12/05/2023, 4:55 PMNoel B
12/05/2023, 4:55 PMNoel B
12/05/2023, 4:59 PMNElliott
12/05/2023, 5:02 PMNElliott
12/05/2023, 5:03 PMehcanadian
12/05/2023, 5:04 PMSCHEDULE_TYPE
isn't definederictgrubaugh
12/05/2023, 6:49 PMmichoel
12/07/2023, 10:15 PMreduceContext.values
is a string[], you need to JSON.parse it.Noel B
12/07/2023, 10:16 PM/**
* @NApiVersion 2.1
* @NScriptType MapReduceScript
*/
define(['N/record', 'N/search', 'N/runtime'],
/**
* @param{record} record
* @param{search} search
*/
(record, search, runtime) => {
const getInputData = (inputContext) => {
log.debug('getInputData');
const x = [
{'freq':'Monthly','name':'Monthly - 1 Year - No Arrears 12/1 *DO NOT EDIT*','re':1,'nr':12},
{'freq':'Monthly','name':'Monthly - 1 Year - No Arrears 11/1 *DO NOT EDIT*','re':1,'nr':11}
];
return x;
}
const reduce = (reduceContext) => {
log.debug('reduce', reduceContext);
try{
let inp = reduceContext.values[0];
let freq = inp.freq;
let n = inp.name;
let nr = <http://inp.nr|inp.nr>;
let re = <http://inp.re|inp.re>;
log.debug(inp);
log.debug(freq);
log.debug(n);
log.debug(nr);
log.debug(re);
var sched = record.create({
type: record.Type.BILLING_SCHEDULE,
isDynamic: true,
defaultValues: { }
});
sched.setValue({ fieldId: 'applytosubtotal', value: 'F' });
sched.setValue({ fieldId: 'frequency', value: freq });
sched.setValue({ fieldId: 'inarrears', value: 'F' });
sched.setValue({ fieldId: 'initialamount', value: 0 });
sched.setValue({ fieldId: 'inuse', value: 'T' });
sched.setValue({ fieldId: 'isinactive', value: 'F' });
sched.setValue({ fieldId: 'ispublic', value: 'T' });
sched.setValue({ fieldId: 'name', value: n });
sched.setValue({ fieldId: 'numberremaining', value: nr });
sched.setValue({ fieldId: 'repeatevery', value: re });
sched.setValue({ fieldId: 'scheduletype', value: 'STD' });
sched.save({ ignoreMandatoryFields: false });
}
catch(e){
log.error(e);
}
}
return {getInputData, reduce}
}
);