This code is to create lookup on dimension field like Business unit,department,division etc.You can add this code in your class ,form etc.There could be little bit change in coding on form for lookup.
// FormStringControl control = dialog.formRun().controlCallingMethod();
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(DimensionAttributeValue), control);
Query query1 = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
DimensionAttribute dimAttr;
;
dimAttr = DimensionAttribute::findByName("Department");
query1.addDataSource(tablenum(DimensionAttributeValue)).addRange(fieldNum(DimensionAttributeValue,DimensionAttribute)).value(queryValue(dimAttr.RecId));
sysTableLookup.addLookupMethod(tableMethodStr(DimensionAttributeValue, getname));
sysTableLookup.addLookupMethod(tableMethodStr(DimensionAttributeValue, getValue));
//this code is to add the ranges for filtering
sysTableLookup.parmQuery(query1);
sysTableLookup.performFormLookup();