public static void main(Args _args) { UserInfo ui; DirPersonUser dpu; DirPartyTable dpt; HcmWorker w; HcmPositionWorkerAssignment pwa; HcmPositionDetail pd; DimensionAttributeValueSet davs; DimensionAttributeValueSetItem davsi; DimensionAttributeValue dav; DimensionAttribute da; CustTable ct; FpUserCust uc; RecordInsertList ucList = new RecordInsertList(tableNum(FpUserCust)); ttsbegin; delete_from uc; ttscommit; ttsbegin; while select crosscompany RecId, DefaultDimension from ct group by ct.RecId, ct.DefaultDimension where ct.DefaultDimension != 0 { davs = DimensionAttributeValueSet::find(ct.DefaultDimension); while select davsi where davsi.DimensionAttributeValueSet == davs.RecId { dav = DimensionAttributeValue::find(davsi.DimensionAttributeValue); da = DimensionAttribute::find(dav.DimensionAttribute); if(da.Name == "Department") { int64 deptRecId = dav.EntityInstance; while select id from ui join dpu join dpt join w join pwa join Department from pd join davs group by ui.id where ui.id == dpu.User && dpt.RecId == dpu.PersonParty && w.Person == dpt.RecId && pwa.Worker == w.RecId && pd.Position == pwa.Position && pd.Department == deptRecId { uc.clear(); uc.UserId = ui.id; uc.CustRef = ct.RecId; ucList.add(uc); } } } } ucList.insertDatabase(); ttscommit; }