vDb := "names.nsf"; vSvr := @Subset(@DbName;1); vLkpKey := FIELD_WITH_NAME_OR_GROUP; vSetField := "MULTIVAL_FIELD_TO_SET_NAMES"; vFieldforError := "TXTFIELDNAME"; vMax := 500; vExp := ""; vCount := 0; vTmp :=""; vRes := ""; _reset := @SetField(vSetField;""); _reset := @SetField(vFieldforError;""); vListGet := @DbLookup("":"NoCache";vSvr: vDb; "($VIMGroups)"; vLkpKey; "Members";[FailSilent]); vList := @If(@Elements(vListGet)<1;@Return(@SetField(vFieldforError;"Selected name is not a group!"));@Trim(@Unique(vListGet))); @DoWhile( vCount := vCount+1; vThis := vList[1]; vNest := @DbLookup("Notes":"NoCache";vSvr:vDb;"($VIMGroups)"; vThis ; "Members";[FailSilent]); @If( vNest=""; vRes := vRes:vThis; @Elements(vNest)>=1; vList := @Trim(@Unique(vList:vNest)); vRes := @Trim(vRes:vNest) ); vExp := @Trim(@Unique(vExp:vThis)); vList := @Trim(@ReplaceSubstring(vList;vExp;"")); vCheck := @If(vCount>vMax;@Return(@SetField(vFieldforError;"Lookup returns over 500 hits! Operation aborded."));@Success); vThis != "" & @Elements(vList)>=1 & vCount<=vMax ); vRes := @Sort(@Name([Abbreviate];vRes)); @SetField(vSetField;vRes)