Заметил одну особенность нововведения в AX2012 (validTimeState):
если в запросе указать эту функцию к главное таблице, все пройдет "гладко". Однако, если тоже самое проделать для подчененной таблицы из Join, компилятор сгенирирует ошибку:
X++:
LogisticsPostalAddressView address;
DirPartyLocation location;
DirPartyTable party;
utcDateTime fromDateTime = DateTimeUtil::anyToDateTime(dateNull());
utcDateTime toDateTime = DateTimeUtil::utcNow();
;
//1. no compilation error
select firstOnly validTimeState(fromDateTime, toDateTime)
* from location
join party
where party.Name like "*plumbum*"
&& party.RecId == location.Party
join address
where address.countryRegionId == "UA";
//2. compilation error
select firstOnly party
where party.Name like "*plumbum*"
join validTimeState(dateNull(), systemDateGet()) // the error is here
* from location
where location.Party == party.RecId
join address
where address.countryRegionId == "UA";
интересно, это недоработка или умышленное ограничение, связанное с планом построения запроса...