С целью тестирования воспользуемся сервисом 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 – гражданство персоны.