finally I found a way to do it...
By creating a class that extends the form and by override the original lookup method like this
[ExtensionOf(formStr(EntAssetObjectLoanSend))]
final class EntAssetObjectLoanSend_Form_MyModel_Extension
{
void init()
{
next init();
LoanObject.registerOverrideMethod(methodStr(FormDataObject, lookup),
formMethodStr(EntAssetObjectLoanSend, myLoanObjectLookup));
}
public void myLoanObjectLookup(FormControl _callingControl)
{
SysReferenceTableLookup sysTableLookup =
SysReferenceTableLookup::newParameters(tableNum(EntAssetObjectTable), _callingControl);
Query q = new Query();
QueryBuildDataSource qbdsObjectTable =
q.addDataSource(tableNum(EntAssetObjectTable));
qbdsObjectTable.addRange(fieldNum(EntAssetObjectTable,
ObjectType)).value(SysQuery::value(objectTable.ObjectType));
qbdsObjectTable.addRange(fieldNum(EntAssetObjectTable,
ObjectLifecycleState)).value(SysQuery::value(objectTable.ObjectType().ObjectLifecycleModel().InStor
ageLifecycleState));
qbdsObjectTable.addRange(fieldNum(EntAssetObjectTable,
MyModelMyField)).value(SysQuery::value(NoYes::Yes));
sysTableLookup.parmQuery(q);
sysTableLookup.addLookupfield(fieldNum(EntAssetObjectTable, ObjectID));
sysTableLookup.addLookupfield(fieldNum(EntAssetObjectTable, Name));
sysTableLookup.parmQuery(q);
sysTableLookup.performFormLookup();
}
}