Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Персона (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") - идентификатор пользователя-создателя, при создании новой персоны поле не передается, при редактировании надо передавать без изменений, число.

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

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

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

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


Для проведения данной операции необходимо пройти авторизацию, а также, если мы работаем от имени агента, получить контекст клиента
Для получения контекста клиента используется сервис PersonManagement.asmx
WSDL можно скачать с демо-сайта: https://demo.corteos.ru/XmlGate/V3/StaticData/Persons/PersonManagement.asmx
Для работы в продуктовой среде необходимо заменить demo.corteos.ru на свой домен (на котором работают пользователи вашей компании).
В API реализованы следующие методы для работы с персоной:

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

  2. SaveV2 - сохранение изменений в персоне или создание новой персоны;

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

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

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

Подробное описание указанных методов


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


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


Запрос / Ответ / Ответ с ошибкой



2. Сохранение изменений в персоне или создание новой персоны


Для сохранения изменений в персоне необходимо передать тот же объект, который мы выгрузили в методе PersonGetV2 в метод PersonSaveV2.


Запрос


В том случае, если мы создаем новую персону, элемент <cor:id_Person>223</cor:id_Person> не передаем. Если нам надо удалить персону, то в атрибуте deleted передаем значение true.


Пример успешного ответа:


Пример ответа с ошибкой:


3. Получение списка персон внутри группы компаний

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

Запрос Ответ


Мы передаем поля skip и take, в которых определяется zero-based диапазон выгрузки.


Ответ выглядит таким образом:


 В контейнере мы видим такие атрибуты:


TotalNumberOfElements="479" Skip="100" Take="2"


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

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

4. Получение персоны по коду


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

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


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



Запрос 


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

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


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


5. DeleteV2
Запрос Ответ

  • No labels