Пример работы коллбэка (редактирование отчества персоны)
С целью тестирования воспользуемся сервисом listener.corteos.ru и заполним настройки следующим образом:
Следует обратить внимание на заполнение тела сообщения – в нем мы передаем xml-представление объекта до и после изменения:
HTML/XML
<Change>
<Before>@Before</Before>
<After>@After</After>
</Change>
Внутри элемента Before будет содержаться старое состояние объекта, а внутри After – новое.
Важно, что если объект не был изменен, но пользователь нажал "Сохранить", данное сообщение все равно будет отправлено.
Проверка работы коллбэка
Для этого зайдем под клиентом в редактор персон и пользователей:
Далее выберем в списке любую персону и откроем её детали:
В открывшемся окне нажимаем кнопку "Изменить" в разделе "Персональные данные":
В открывшемся окне меняем отчество персоны на "Ивановна" и нажимаем кнопку "Сохранить":
Далее мы открываем страницу http://listener.corteos.ru, и видим запрос:
В поле PayLoad будет xml, который содержит старое (Before) и новое (After) состояние персональных данных.
Если сравнить содержание элементов Before и After, мы увидим, что у нас произошло изменение поля SurName (Отчество) с "Федоровична" на "Ивановна" и SurNameLatin* (Отчество на латинице) с "Fedorovichna" на "Ivanovna":
*) SurNameLatin изменилось из-за автоматической транслитерации имен в редакторе.
HTML/XML
<Change>
<Before>
<Person>
<id_Person>216</id_Person>
<LastName>Соколинина</LastName>
<FirstName>Мариночка</FirstName>
<SurName>Федоровична</SurName>
<Comment />
<id_Organization>63</id_Organization>
<LastNameLatin>Sokolinina</LastNameLatin>
<FirstNameLatin>Marina</FirstNameLatin>
<SurNameLatin>Fedorovichna</SurNameLatin>
<BirthDate>1990-01-01T12:00:00</BirthDate>
<id_Country>245</id_Country>
<Gender>F</Gender>
<id_Group>63</id_Group>
<id_ClientCreator />
<IsClient>true</IsClient>
<id_Client>113</id_Client>
<id_Role>3</id_Role>
<alpha2>RU</alpha2>
</Person>
</Before>
<After>
<Person>
<id_Person>216</id_Person>
<LastName>Соколинина</LastName>
<FirstName>Мариночка</FirstName>
<SurName>Ивановна</SurName>
<Comment />
<id_Organization>63</id_Organization>
<LastNameLatin>Sokolinina</LastNameLatin>
<FirstNameLatin>Marina</FirstNameLatin>
<SurNameLatin>Ivanovna</SurNameLatin>
<BirthDate>1990-01-01T12:00:00</BirthDate>
<id_Country>245</id_Country>
<Gender>F</Gender>
<id_Group>63</id_Group>
<id_ClientCreator />
<IsClient>true</IsClient>
<id_Client>113</id_Client>
<id_Role>3</id_Role>
<alpha2>RU</alpha2>
</Person>
</After>
</Change>
Поля объекта более подробно:
id_Person – число, необязательное, – первичный ключ, уникальный идентификатор персоны.
При создании новой персоны в Before тут будет null;LastName – строка, обязательное, – фамилия персоны на русском языке;
FirstName – строка, обязательное, – имя персоны на русском языке;
SurName – строка, необязательное, – отчество персоны на русском языке;
Comment – строка, обязательное, – комментарий, в настоящее время не используется;
id_Organization – число, обязательное, – организация, в которой работает персона;
LastNameLatin – строка, обязательное, – фамилия персоны на английском языке для передачи в иностранные системы бронирования;
FirstNameLatin – строка, обязательное – имя персоны на английском языке для передачи в иностранные системы бронирования;
SurNameLatin – строка, необязательное – отчество персоны на английском языке для передачи в иностранные системы бронирования при перелете по РФ;
BirthDate – дата и время, обязательное – дата рождения персоны;
id_Country – число, обязательное - страна места рождения персоны;
Gender – строка, обязательное – пол (M и F – male или female);
id_Group – число, обязательное – ссылка на группу компаний, в которой находится организация, в которой работает персона (можно увидеть в редакторе договора);
id_ClientCreator – число, не обязательное – если у персоны был создатель, то тут передается его id_Client;
IsClient – булевый флаг, обязательное, – является ли данная персона пользователем, битовый признак;
id_Client - число, необязательное – уникальный идентификатор пользователя, заполнен только если IsClient == true;
id_Role – число, необязательное – ссылка на роль пользователя.
Важно отметить, что в справочнике указаны только 3 встроенные пользовательские роли. В том случае, если клиент использует настраиваемые роли, то их идентификаторы можно увидеть в списке ролей;alpha2 – гражданство персоны.