Copy Field values between different records
By Chris Malek | Tue, Oct 12, 2010
I often use record and rowset objects as in memory storage for complex PeopleCode programs. I will use record objects as function and method parameters which gives me some flexibility for future parameters additions without breaking all the calling code.
I often run across scenarios where I need to copy field values from one record to another. However, the delivered functionality only works between two like named records. So if you have two record objects based on the same record you could do something like this.
&Record1.copyfieldsTo(&record2);
However, if &record1 and &record2 are not base on the same record type this is not supported. It is very easy to write a function that will copy like name fields between records that are not based on the same underlying record object.
Here is the code. The parameter names should be obvious.
Function copyLikeFieldNames (&FromRec As Record, &ToRec As Record)
local integer &i, &j;
For &1 = 1 To &FromRec.fieldcount
&FromFld = &FromRec.getfield(&1);
For &j = 1 To &ToRec.fieldcount
If &ToRec.getfield(&j).NAME = &FromFld.name Then
&ToRec.getfield(&j).value = &FromFld.value;
Break;
End-If;
End-For;
End-For;
End-Function;
Article Categories
Chris Malek
Chris Malek is a PeopleTools® Technical Consultant with two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.
About Chris Work with ChrisPeopleSoft Simple Web Services (SWS)
Traditional PeopleSoft web services cost $3,600–$13,000 each to develop. SWS deploys production REST APIs in under 5 minutes through configuration alone.
- No PeopleCode or Integration Broker expertise required
- Works across Campus Solutions, HCM, and Financials
- Built-in pagination, caching, and nested data structures
- Trusted by institutions across higher education and government
Integration Broker - The Missing Manual
I am in the process of writing a book called "Integration Broker - The Missing Manual" that you can read online.