setCopy(i, record)
This method of the record
object sets field values in a copy of the current record in the main data set. (See also: record.)
Note: This method cannot be used in post-processor scripts, because it operates on the current record before it is written to the database.
i
The index of the record copy (0-based; the original record has an index of 0).
record
The mandatory record
parameter is a JavaScript object that contains one or more fields specified in the data model at the root level.
The record
parameter may contain a subset of the fields in the Data Model. Only the fields included in the record
parameter are updated in the database, while the contents of all other fields remain unchanged.
The call fails if the parameter is omitted or empty, if any of the fields specified in the record
doesn't exist in the Data Model, or if a value cannot be converted to the data type that is expected in a field.
Note: In order to change values in the record copies, the fields to modify must either have a default value or have an extraction task earlier in the process that actually assigns a value to them.
About data types
Where possible, values are automatically converted into the data type of the respective data field.
Note: Dates must be passed as a Date object to allow them to be extracted into a Date field. See Date in the Mozilla help files.
Passing an improper data type triggers an error. For instance the following objects are all invalid:
{ myBoolean : "true" }
- The myBoolean field is boolean and expects a boolean, not a string
{ myDate : "2021-03-29" }
- The myDate field is a date and expects a Date object: myDate: new Date(2021,2,29)
, not a string
{ myPageCount : 2.5 }
- The myPageCount field is an integer and expects a number without any decimals
{ myPrice : "19.99" }
- The myPrice field is a currency and expects a number value, not a string
Example
record.copies = 3;var oneRec = {CopyFor:'',Note:''};
for(var i=0;i<record.copies;i++){
switch (i) {
case 0:
oneRec.CopyFor = "Customer";
oneRec.Note = "Payment due in 30 days";
break;
case 1:
oneRec.CopyFor = "Administration";
oneRec.Note = "Due date set to 30 days";
break;
case 2:
oneRec.CopyFor = "Archive";
}
record.setCopy(i, oneRec);
}