|
21.02.2012, 11:38 | #1 |
Участник
|
Изменить modifiedDate
Доброго дня!
Подскажите, как можно изменить modifiedDate? X++: priceDiscTable.overwriteSystemfields(true); modifiedDate = str2date('05.10.2011',123); priceDiscTable.(fieldnum(PriceDiscTable, modifiedDate)) = modifiedDate; priceDiscTable.doUpdate(); |
|
21.02.2012, 11:55 | #2 |
северный Будда
|
А зачем вам нужно менять modifiedDate?
__________________
С уважением, Вячеслав |
|
21.02.2012, 12:03 | #3 |
Ищущий знания...
|
Цитата:
Сообщение от stgor
Доброго дня!
Подскажите, как можно изменить modifiedDate? X++: priceDiscTable.overwriteSystemfields(true); modifiedDate = str2date('05.10.2011',123); priceDiscTable.(fieldnum(PriceDiscTable, modifiedDate)) = modifiedDate; priceDiscTable.doUpdate(); X++: new OverwriteSystemfieldsPermission().assert(); priceDiscTable.overwriteSystemfields(true); modifiedDate = str2date('05.10.2011',123); priceDiscTable.(fieldnum(PriceDiscTable, modifiedDate)) = modifiedDate; priceDiscTable.doUpdate(); CodeAccessPermission::revertAssert(); З.Ы. поиск рулит
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
21.02.2012, 23:25 | #4 |
Участник
|
2 lev
Меняют ModifiedDate - наврядли это 2009-я. 2 stgor Надо поменять значение какого-либо несистемного поля, иначе Аксапта считает, что ничего не изменилось и не обновляет запись
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: lev (3). |
22.02.2012, 09:38 | #5 |
Ищущий знания...
|
точно, в 2009 уже ModifiedDateTime...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
22.02.2012, 11:31 | #6 |
Участник
|
Проблема в том, что Axapta выполняет обновление данных только в том случае, если было изменено хотя бы одно из НЕ системных полей. В противном случае команда UPDATE на сервер просто не уходит, поскольку Axapta считает, что ничего не было изменено. Незачем лишний раз посылать на сервер "пустую" команду.
Другими словами, Вам надо добавить изменение какого-либо еще НЕ системного поля. Любого. X++: // Чтобы подействовало изменение системных полей необходимо изменить НЕ системное поле priceDiscTable.Amount += 0.01; priceDiscTable.doUpdate(); priceDiscTable.overwriteSystemfields(true); modifiedDate = str2date('05.10.2011',123); priceDiscTable.(fieldnum(PriceDiscTable, modifiedDate)) = modifiedDate; // Возвращаем значение НЕ системного поля в исходное значение priceDiscTable.Amount -= 0.01; priceDiscTable.doUpdate(); PS: Не заметил ответ AndyD. Он это уже написал
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
22.02.2012, 13:00 | #7 |
Участник
|
Не знаю, как в 3.0 (лень проверять ), а в 2009-й ядро никакими штатными средствами не позволяет менять createdDateTime/modifiedDateTime на обновлении записи - только на создании. Иначе, к примеру, такая фишка как аудиторский след (ГК/Запросы/Аудиторский след) потеряет смысл.
|
|
25.05.2012, 13:22 | #8 |
Участник
|
Цитата:
Логика думаю понятна - поля created* могут формироваться только при вставке, modified* - вставке\обновлении.
__________________
Sergey Nefedov |
|
25.05.2012, 13:40 | #9 |
Участник
|
Цитата:
PHP код:
|
|
25.05.2012, 13:58 | #10 |
Участник
|
Цитата:
X++: static void checkSystemFieldOverWrite(Args _args) { CustTable custTable; ; ttsbegin; custTable = CustTable::find('4000', true); new OverwriteSystemfieldsPermission().assert(); custTable.overwriteSystemfields(true); custTable.(fieldNum(CustTable, modifiedDateTime)) = DateTimeUtil::newDateTime(20\05\2012, 0); custTable.(fieldNum(CustTable, createdDateTime)) = DateTimeUtil::newDateTime(20\05\2012, 0); custTable.City = 'check'; custTable.update(); CodeAccessPermission::revertAssert(); ttscommit; info("done"); }
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
25.05.2012, 15:08 | #11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: SRF (1). |
22.02.2012, 13:29 | #12 |
Участник
|
Это не панацея, кому нужно - тот и прямым SQL запросом данные подкорректировать сможет.
|
|
29.05.2012, 09:17 | #13 |
Участник
|
А можно нужную дату и время поставить на сервере и сделать update записи.
|
|
29.05.2012, 09:30 | #14 |
Участник
|
|
|
|
|