Hi everyone,
I'm trying to enable searching by multiple fields in a lookup in Dynamics 365 Finance and Operations, but I can't get it to work as expected.
Currently, the lookup only searches by the YuklemeYeriKoduStr
field, but I also want it to search by the YuklemeYeriAdi
field. I’ve tried using resolveAmbiguousReference
and setting both fields, but the lookup still only filters by the first one.
Here is the relevant part of my code for the data field:
[DataField]
class YuklemeYeriKoduStr
{
/// <summary>
///
/// </summary>
/// <param name = "_formControl"></param>
/// <returns></returns>
public str resolveAmbiguousReference(FormControl _formControl)
{
return FormControlAmbiguousReferenceResolver::resolveAmbiguousReferenceForControl (
_formControl,
true,
AbsoluteFieldBinding::construct(fieldStr(YuklemeYeri, YuklemeYeriKoduStr),tableStr(YuklemeYeri)),
AbsoluteFieldBinding::construct(fieldStr(YuklemeYeri, YuklemeYeriAdi),tableStr(YuklemeYeri)));
}
/// <summary>
///
/// </summary>
/// <param name = "_formControl"></param>
/// <param name = "_filterStr"></param>
public void lookup(FormControl _formControl, str _filterStr)
{
new InventLookup(_formControl, new Query(), formStr(YuklemeYeriLookup)).run();
}
}
[Form]
public class YuklemeYeriLookup extends FormRun
{
public void run()
{
FormStringControl lookupHostControl = SysTableLookup::getCallerStringControl(this.args());
boolean isFiltered = SysTableLookup::filterLookupPreRun(lookupHostControl, YuklemeYeri_YuklemeYeriKoduStr, YuklemeYeri_ds);
super();
SysTableLookup::filterLookupPostRun(
isFiltered,
lookupHostControl.text(),
YuklemeYeri_YuklemeYeriKoduStr,
YuklemeYeri_ds,
new FormControlAmbiguousReferenceResolver(lookupHostControl),
YuklemeYeri_YuklemeYeriAdi );
}
}
public void run()
{
FormStringControl formStringControl = SysTableLookup::getCallerControl(element.args()) as FormStringControl;
boolean filterLookup;
canClose = true;
if (formStringControl)
{
filterLookup = SysTableLookup::filterLookupPreRun(formStringControl, assetTable_AssetId, assetTable_ds);
super();
SysTableLookup::filterLookupPostRunEx(
filterLookup,
formStringControl.text(),
assetTable_AssetId,
assetTable_ds,
AssetDataInteractorFactory::useExistingOrCreateResolver(formStringControl),
assetTable_Name);
}
else
{
super();
}
}
Alireza Eshaghzadeh
799
Super User 2025 Season 2
Mohamed Amine Mahmoudi
757
Super User 2025 Season 2
Abhilash Warrier
751
Super User 2025 Season 2