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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2022, 19:25   #3  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Если посмотреть на код триггера

X++:
AND ( UPDATE(KnownAs) OR UPDATE(Name) OR UPDATE(NV_ParentCompany) )
то понятно почему так получается.

X++:
IF (@spLogType = 3 AND ( UPDATE(KnownAs) OR UPDATE(Name) OR UPDATE(NV_ParentCompany) ) ) --Update 
    BEGIN 
        INSERT INTO SYSDATABASELOG (NEWDATA, LOGRECID, LOGTYPE, TABLE_, DESCRIPTION, USERNAME, CREATEDBY, CREATEDTRANSACTIONID, DATAAREAID, PARTITION, SEQUENCENUMBER)   
            SELECT '03::' +       + 'KnownAs' + ', ÿþ ' +  I.KNOWNAS + ' ÿþ ' + D.KNOWNAS + ' ÿþ ' 
      + 'Name' + ', ÿþ ' +  I.NAME + ' ÿþ ' + D.NAME + ' ÿþ ' 
      + 'NV_ParentCompany' + ', ÿþ ' +  CONVERT(nvarchar(max), I.NV_PARENTCOMPANY) + ' ÿþ ' + CONVERT(nvarchar(max), D.NV_PARENTCOMPANY) + ' ÿþ ' 
      + 'CreatedBy' + ', ÿþ ' +  I.CREATEDBY + ' ÿþ ' + D.CREATEDBY + ' ÿþ ' 
      + 'CreatedDateTime' + ', ÿþ ' +  CONVERT(nvarchar(max), I.CREATEDDATETIME) + ' ÿþ ' + CONVERT(nvarchar(max), D.CREATEDDATETIME) + ' ÿþ ' 
      + 'ModifiedBy' + ', ÿþ ' +  I.MODIFIEDBY + ' ÿþ ' + D.MODIFIEDBY + ' ÿþ ' 
      + 'ModifiedDateTime' + ', ÿþ ' +  CONVERT(nvarchar(max), I.MODIFIEDDATETIME) + ' ÿþ ' + CONVERT(nvarchar(max), D.MODIFIEDDATETIME) + ' ÿþ ' 
      + 'Partition' + ', ÿþ ' +  CONVERT(nvarchar(max), I.PARTITION) + ' ÿþ ' + CONVERT(nvarchar(max), D.PARTITION) + ' ÿþ ' 
      + 'RecId' + ', ÿþ ' +  CONVERT(nvarchar(max), I.RECID) + ' ÿþ ' + CONVERT(nvarchar(max), D.RECID) + ' ÿþ ' 
      + 'RecVersion' + ', ÿþ ' +  CONVERT(nvarchar(max), I.RECVERSION) + ' ÿþ ' + CONVERT(nvarchar(max), D.RECVERSION) + ' ÿþ ' 
     , 
    I.RECID, 2, 1268,I.PARTYNUMBER + ',' + I.NAME,@userId, @userId, 0, 'dat', I.PARTITION, @seqNo 
    FROM INSERTED I LEFT OUTER JOIN DELETED D ON I.RECID = D.RECID; 
 
 
    END;
Дописать сюда дополнительный case UPDATE([имя поля]) на каждое поле отдельно в теории должно бы сработаь, попробуйте открыть запрос в МС, только советую попробовать переписать триггер и предложить готовое решение.
Я в свое время словил в этом триггере ошибку, когда строка логирования обрезалась 1000-ю символами, предложил вариант с добавлением CONVERT(nvarchar(max) ..) - пофиксили оперативно.
За это сообщение автора поблагодарили: sukhanchik (8).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
patrickmouwen: D365 F&O/Commerce interfacing via Azure API Management: My Best Practices Blog bot DAX Blogs 0 10.03.2022 02:47
Sumit Potbhare: Retail Warehousing | Wrap up | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 28.04.2021 13:12
patrickmouwen: How to Unlock Many Hidden D365 Retail Features! Blog bot DAX Blogs 0 13.05.2020 22:13
patrickmouwen: D365 Retail APIs Part III: How to use the Retail APIs from Power Automate (Flow) and Logic App Blog bot DAX Blogs 0 28.01.2020 02:15
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:32.