AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2017, 12:05   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Отчет по истории изменения поля в журнале базы данных
Привет всем!
Есть ли у кого пример кода, как собрать, к примеру, всех клиентов, у которых изменялось определенное поле. Надо вытащить автора модификации, дату модификации, старое и новое значение поля.
Версия Аксапты - любая (кроме АХ 7)
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 01.11.2017 в 12:08.
Старый 01.11.2017, 14:00   #2  
DenisS is offline
DenisS
Участник
 
65 / 24 (1) +++
Регистрация: 01.09.2003
На здоровье:
X++:
static void tks_repPickingRoute_changeDocPackage_log(Args _args)
{
    FromDate            fromDate    = 01\01\2015;
    ToDate              toDate      = 31\12\2018;

    FromDateTime        fromDateTime    = DateTimeUtil::newDateTime(fromDate  , str2time('0:00'));
    ToDateTime          toDateTime      = DateTimeUtil::newDateTime(toDate    , str2time('23:59:59'));

//    UserId              userId      = "rugry";
    SysDataBaseLog      dbLog;

    List                list;
    ListEnumerator      li;
    container           c;

    FieldId             fieldId;
    AnyType             oldValue;
    AnyType             newValue;
    WMSPickingRoute     pickingRoute;
    ;

    info(strfmt("%1#%2#%3#%4#%5#%6#%7",
        "Заказ",
        "Отгрузочная накладная",
        "Автор",
        "Изменено на",
        "Изменено с",
        "Автор модификации",
        "Дата модификации"));

    while select dbLog
        order by createdDateTime
        where dbLog.table       == tablenum(WMSPickingRoute)
           && dbLog.LogType     == DatabaseLogType::Update
//           && dbLog.createdBy   == userId
           && (dbLog.createdDateTime >= fromDateTime)
           && (dbLog.createdDateTime <= toDateTime)
    join pickingRoute
        where pickingRoute.RecId  == dbLog.LogRecId
    {
        list    = dbLog.getDataAslist();
        li      = list.getEnumerator();
        while (li.moveNext())
        {
            c   = li.current();

            fieldId = fieldExt2Id(conpeek(c,1));
            if (fieldId == fieldnum(WMSPickingRoute, WMDDocPackageId))
            {
                [fieldId, newValue, oldValue] = c;
                if (newValue != oldValue)
                {
                    info(strfmt("%1#%2#%3#%4#%5#%6#%7",
                        pickingRoute.transRefId,
                        pickingRoute.pickingRouteID,
                        UserInfoHelp::userName(pickingRoute.CreatedBy),
                        newValue,
                        oldValue,
                        UserInfoHelp::userName(dbLog.CreatedBy),
                        DateTimeUtil::date(DateTimeUtil::applyTimeZoneOffset(dbLog.createdDateTime, DateTimeUtil::getUserPreferredTimeZone()))));
                }
            }
        }
    }
}
За это сообщение автора поблагодарили: S.Kuskov (2), Ace of Database (5), Lemming (5).
Теги
sysdatabaselog

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
xRecord.isFieldSet() - что это? как сейчас правильно проверять наличие поля в базе данных? mazzy DAX: Программирование 17 11.01.2017 20:09
Журнал базы данных ax_vsn DAX: Администрирование 3 19.05.2014 16:50
Изменения Свойств поля из кода, при создание отчета АртемМелихов DAX: Программирование 2 04.02.2014 20:34
Прогноз роста базы данных и выбор топологии системы sergeypp DAX: Администрирование 8 12.12.2006 11:26
Уменьшение базы данных Axapta Writer DAX: Администрирование 13 15.09.2003 16:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:25.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.