I want to challenge you today to find an error in the following update job. Do not pay attention on the functional part. I agree, the job can be rewritten, but let's assume it must be done this way.
static void crossCompanyUpdate(Args _args)
CustTable custTable;
CustGroup custGroup;
PaymTermId oldPaymTermId = 'Net10', newPaymTermId = 'Net11';


// find all companies with oldPaymTermId
while select crossCompany custGroup
group by custGroup.dataAreaId
where custGroup.PaymTermId == oldPaymTermId
// disable update method

// set newPaymTermId
update_recordSet crossCompany custTable
setting PaymTermId = newPaymTermId
where custTable.PaymTermId == oldPaymTermId;

Post your ideas into comments. I will open comments and post my solution in one week. Have fun :-)