Персона (RW_Person)

Персона (RW_Person) - это объект реального мира (человек).

Объект характеризуется следующими полями:

  • LastName (пример: "Иванов") - фамилия персоны на русском языке, передается в системы бронирования (при условии, что они понимают кириллицу, например, "РЖД" или "Сирена-2000") при использовании документа типа "паспорт РФ" для поездок по России (обязательно для заполнения, тип строка);

  • FirstName (пример: "Иван")  - имя персоны на русском языке, передается в системы бронирования при использовании документа типа "паспорт РФ" для поездок по России (обязательно для заполнения, тип - строка);

  • SurName (пример: "Иванович")  - отчество персоны на русском языке, передается в системы бронирования при использовании документа типа "паспорт РФ" для поездок по России (не обязательно для заполнения, тип - строка);

  • LastNameLatin (пример: "Ivanov")  - фамилия персоны на английском языке, указывается так же, как в загранпаспорте.
    Передается в системы бронирования при использовании документов, в которых фамилия написана латиницей (например, загранпаспорт или паспорт другой страны).Также используется во всех иностранных системах бронирования, которые не поддерживают русский язык (например, Амадеус) (не обязательно для заполнения, тип - строка);

  • FirstNameLatin (пример: "Ivan")  - имя персоны на английском языке, указывается так же, как в загранпаспорте.
    Передается в системы бронирования при использовании документов, в которых фамилия написана латиницей (например, загранпаспорт или паспорт другой страны. Также используется во всех иностранных системах бронирования, которые не поддерживают русский язык (например, Амадеус) (не обязательно для заполнения, тип - строка);

  • SurNameLatin (пример: "Ivanovich")  - отчество персоны на английском языке, указывается так же, как в загранпаспорте.
    Передается в системы бронирования при использовании документов, в которых фамилия написана латиницей (например, загранпаспорт или паспорт другой страны) при перелетах по России. Также используется во всех иностранных системах бронирования, которые не поддерживают русский язык (например, Амадеус) (не обязательно для заполнения, тип - строка);

  • id_Country (например, "245" - это Российская Федерация) - идентификатор страны, гражданство которой имеет персона.
    Можно получить при помощи обращения к методу получения списка стран (обязательно для заполнения, тип - число);

  • Gender - пол, мужской (true) или женский (false).
    Передается в системы бронирования авиабилетов для определения обращения к пассажиру (MR, MRS), обязательное для заполнения булево поле;

  • id_Group (например, "123") - идентификатор группы, в которую будет добавлена персона (обязательно для заполнения, тип - число);

  • DateCreate (например, "2019-06-13T19:28:10.0280635+03:00") - дата создания персоны.
    Данное поле при редактировании персоны можно не передавать, дата и время;

  • DateChanged (например, "2019-06-13T19:28:10.0280635+03:00")  - дата последнего изменения персоны.
    Данное поле при редактировании персоны можно не передавать, дата и время;

  • id_Person (например, "123") - первичный ключ персоны.
    В том случае, если мы создаем новую персону, то значение не передаем, если редактируем существующую - передаем идентификатор;

  • id_Organization (например, "123") - ссылка на организацию из списка организаций.
    Хотя поле и описано как "необязательное" (для совместимости с v2 системы Кортеос), его необходимо заполнить числом - идентификатором организации;

  • DateBirth (например, "2019-06-13T19:28:10.0280635+03:00") - дата рождения персоны.
    Хотя поле и описано как "необязательное" (для совместимости с v2 системы Кортеос), его необходимо заполнить корректной прошедшей датой, дата и время.

  • id_ClientCreator (например, "123") - идентификатор пользователя-создателя, при создании новой персоны поле не передается, при редактировании надо передавать без изменений, число.

На интерфейсе список персон доступен в разделе "Настройки" пользователям, которым разрешено редактировать персон:

Список персон выглядит таким образом:

image-20240507-161519-20240801-081712.png

 

При нажатии на персону можно увидеть блок, соответствующей структуре из API:

image-20240507-161804-20240801-081730.png

 

Соответственно, действие, аналогичное редактированию персоны из API, можно произвести на интерфейсе в разделе персональных данных.

Перед использованием метода необходимо пройти аутентификацию и получить валидный токен, а также, если мы работаем от имени агента, получить контекст клиента.

Для получения контекста персоны используется сервис PersonManagement.asmx

WSDL можно скачать с демо-сайта: https://stage1.corteos.ru/XmlGate/V3/StaticData/Persons/PersonManagement.asmx?wsdl

Для работы в продуктовой среде необходимо заменить “stage1.corteos.ru на свой домен (на котором работают пользователи вашей компании).


В API реализованы следующие методы для работы с персоной:

  1. GetV2 - получение персоны по первичному ключу (RW_Person.id_Person);

  2. SaveV2 - создание новой персоны или редактирование существующей;

  3. ListV2 - получение списка персон группы компаний;

  4. CheckV2 - дополнительный сервисный метод, выгрузка персоны по структурному или структурному меняемому коду.

  5. DeleteV2 - удаление персоны по первичному ключу.

Подробное описание методов с примерами:

  1. Получение персоны по первичному ключу (GetV2)

Для проведения выгрузки данных, необходимо передать первичный ключ персоны (id_Person).

Запрос / Ответ

  1. Создание новой персоны или редактирование существующей (SaveV2)

Для сохранения изменений в уже созданной персоне необходимо передать первичный ключ персоны (id_Person). В том случае, если мы создаем новую персону, первичный ключ не передаем.

Если нам надо удалить персоны, то в атрибуте deleted передаем значение true.

Запрос на создание / Запрос на изменение / Ответ

  1. Получение списка персон группы компаний (ListV2)

Для получения списка персон внутри группы компаний используется метод ListV2. Так как список персон может быть очень большим, то он выгружается порционно. Рекомендуется выгружать не более 100 элементов в одном запросе.

Запрос Ответ
Мы передаем поля skip и take, в которых определяется zero-based диапазон выгрузки.
В ответе мы видим такие атрибуты: TotalNumberOfElements="479" Skip="100" Take="2":

  • TotalNumberOfElements - сколько всего персон в БД в рамках этой группы компаний;

  • Skip и Take - определяют диапазон выгрузки.

  1. Получение персоны по коду (CheckV2)

Метод CheckV2 проверяет, есть ли в БД персона с определенным кодом и, если персона есть, то выгружает её.

Важно, чтобы этот код был уникальным - например, это может быть табельный номер, чтобы однозначно определять персону. Если же код не уникален (например, должность), то в этом случае будет выгружен только первый элемент, который особого смысла не имеет.

В поле codeValue следует передать значение кода, которое можно взять в редакторе персоны:

Запрос 

В том случае, если персона с таким кодом есть в БД, то мы получаем такой ответ:

Ответ
Из него мы можем получить идентификатор персоны в БД (поле id_Person).

Если же персоны с таким кодом в БД нет, то элемент ResponseDetails будет равен null.

  1. Удаление персоны по первичному ключу (DeleteV2)

Для удаления персоны по первичному ключу (id_Person) используется метод DeleteV2.
Запрос Ответ