07.05.2008, 13:34 | #1 |
Участник
|
AX2009 и AX4.0 совместимый код. Как?
Есть такой запрос, как сделать так чтобы он работал как на 4ке так и на 5ке?
С 5кой все ок, а в 4ке ругается на тип utcdatetime, далее на класс DateTimeUtil. Как заставить компилятор игнорировать неизвестные типы? X++: UtilIdElements utilIdElements; TimeOfDay modifyTime; TransDate modifyDate; #if.ax5 utcdatetime datetime; #endif ; modifyTime = timenow(); modifyDate = systemdateget(); #if.ax5 datetime = DateTimeUtil::newDateTime(modifyDate, modifyTime); #endif while select name, id, recordType from utilIdElements where #if.ax5 ((utilIdElements.createdDateTime > datetime) || (utilIdElements.modifiedDateTime > datetime)) #endif #ifnot.ax5 (( utilIdElements.createdDate == modifyDate && utilIdElements.createdTime > modifyTime) || ( utilIdElements.modifiedDate == modifyDate && utilIdElements.modifiedTime > modifyTime)) #endif { ... }
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
07.05.2008, 14:52 | #2 |
Участник
|
Похоже, где-то в четверке прописано #define.ax5. Попробуйте эту строку закомментировать.
|
|
|
За это сообщение автора поблагодарили: Alex_KD (1). |
07.05.2008, 15:07 | #3 |
Участник
|
Угу.
Неправильно прописал, надо так: X++: #AOT #if.ReferencesPath #define.Ax4 #endif #if.WorkflowCategoriesPath #define.Ax5 #endif Выходит, что если не срабатывает #define компилятор не смотрит внутрь. Комментировать не выход - должно работать везде без изменения кода.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
07.05.2008, 18:18 | #4 |
Участник
|
А если вместо зашитых запросов использовать Query/QueryRun, то можно будет обойтись даже без директив условной компилляции...
|
|
07.05.2008, 18:26 | #5 |
Участник
|
Цитата:
на createdDateTime или createdDate + createdTime?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
08.05.2008, 00:22 | #6 |
Участник
|
Можно было бы проверять наличие полей createdDateTime/modifiedDateTime, к примеру, с помощью fieldname2id() - если идентификаторы полей с такими названиями ненулевые, стало быть, они существуют, и код выполняется на 5-ке. Впрочем, тогда код потеряет изрядную долю наглядности...
|
|
08.05.2008, 01:10 | #7 |
Участник
|
Согласен, можно.
У меня получение Editor e; в 5ке сделано тоже через X++: #if.ax5
....
#endif
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
Теги |
ax2009, ax4.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|