TRANSFERFIELDS Function (Record)
Copies all matching fields in one record to another record.
Record.TRANSFERFIELDS(FromRecord [, InitPrimaryKeyFields])
The record to which you want to copy the contents of the fields in FromRecord.
The record from which to copy.
If this parameter is true and the records are in the same table, both the timestamp and the Primary Key fields of the destination record will be changed.
If this parameter is true and the records are not in the same table, then the Primary Key fields of the destination record will be changed but the timestamp of the destination record will not be changed.
If this parameter is false, then neither the timestamp nor the Primary Key fields of the destination record are changed.
TRANSFERFIELDS copies fields based on the Field No. Property of the fields. For each field in Record (the destination), the contents of the field that has the same Field No. in FromRecord (the source) will be copied, if such a field exists.
The fields must have the same data type for the copying to succeed (text and code are convertible, other types are not.) There must be room for the actual length of the contents of the field to be copied in the field to which it is to be copied. If any one of these conditions are not fulfilled, a run-time error will occur.
This example shows how to use the TRANSFERFIELDS function together with a BLOB field. If you are copying a record that contains a BLOB field, then you must calculate the BLOB field before it can be copied with the rest of the record. This example requires that you create the following variables in the C/AL Globals window.
… IF GLAccountRec.Picture.HASVALUE THEN GLAccountRec.CALCFIELDS(Picture); GLAccountRec.TRANSFERFIELDS(FromRecord); GLAccountRec.INSERT(TRUE);