1. Надо включить ChangeLog для таблицы 18 для всех полей, или по крайней мере для всех полей, которые user может изменить в карточке клиента.
(Administration > Application Setup > General > Change Log)
2. В кодеюните 423 Change Log Management прописываете программный код:
если таблица=18 то:
2.1 берёте customer'a (можно взять Customer."No." из RecRef.RECORDID) и смотрите его Respons.Center
2.2 берёте USER'а и смотрите его Respons.Center
2.3 если Respons.Center user'a отличается от Respons.Center customer'a то проверяете, какое поле было изменено
==> например в функции InsertLogEntry() (в том же CU 423 Change Log Management ) передаётся параметер FldRef,
======> Если FldRef.NUMBER <> номер поля Information и FldRef.NUMBER <> номер поля Note то выдаём требуемый ERROR().
Весь фокус в том, что ChangeLog-функционал реагирует/срабатывает только на изменения, вносимые user'ом руками и на изменения из программного кода не реагирует,
( типа customer.MODIFY(TRUE); что вам как раз и нужно.
|