Постановка задачи
При переходе через SSO необходимо передавать следующие данные:
информацию о пользователе системы для создания пользователя на лету
информацию о пассажирах и кодах
информацию о структуре поездки: участки маршрута и даты + разрешенные основные(авиа, ж/д и отели) и дополнительные услуги
Система должна позволять обновлять информацию о маршруте при передаче данных из внешней системы для работы с командировкой-черновиком
Предварительные настройки
Настройки базовой системы
Для корректного сопоставления персон, нам необходимо создать справочник структурных кодов, привязанный ко всем организациям внутри группы клиента, который будет содержать уникальный идентификатор внешней системы, на основании которого будет проводиться обновление данных пассажира.
Активация и настройка модов
В данной задаче моды достаточно просто активировать, настройку производить нет необходимости сверх базовых настроек SSO-портала.
Необходимо активировать моды:
Интеграция с SSO - для обеспечения возможности перехода из SAP и передачи параметров заявки
Детальный маршрут для SSO - для передачи и контроля целостности участков маршрута
Бизнес-логика Норникель - специальный формат передачи участков в соответствии с требованиями интегратора
Web Services
В данной задаче используется стандартный веб-сервис SSO: http://test.sso.corteos.ru/Documentation/GeneralWebService
Сценарий использования
При переходе при помощи SSO, мы инициализируем запрос при помощи следующих данных:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sso="https://sso.corteos.ru/"> <soapenv:Header/> <soapenv:Body> <sso:Set> <sso:request> <sso:OuterId>2000000171</sso:OuterId> <sso:CustomRoute> <sso:RoutePart> <sso:DateDepart>2020-12-14</sso:DateDepart> <sso:Origin>Москва</sso:Origin> <sso:Destination>Санкт-Петербург</sso:Destination> <sso:DepartureAdvanceShiftDays>1</sso:DepartureAdvanceShiftDays> <sso:DeparturePostShiftDays>1</sso:DeparturePostShiftDays> <sso:ReturnAdvanceShiftDays>0</sso:ReturnAdvanceShiftDays> <sso:ReturnPostShiftDays>0</sso:ReturnPostShiftDays> <sso:BookingSequence>1</sso:BookingSequence> </sso:RoutePart> <sso:RoutePart> <sso:DateDepart>2020-12-16</sso:DateDepart> <sso:Origin>Самара</sso:Origin> <sso:Destination>Санкт-Петербург</sso:Destination> <sso:DepartureAdvanceShiftDays>1</sso:DepartureAdvanceShiftDays> <sso:DeparturePostShiftDays>1</sso:DeparturePostShiftDays> <sso:ReturnAdvanceShiftDays>0</sso:ReturnAdvanceShiftDays> <sso:ReturnPostShiftDays>0</sso:ReturnPostShiftDays> <sso:BookingSequence>1</sso:BookingSequence> </sso:RoutePart> </sso:CustomRoute> <sso:CustomOptions> <sso:CustomOption> <sso:Key>routeControl</sso:Key> <sso:Value>true</sso:Value> </sso:CustomOption> <sso:CustomOption> <sso:Key>automaticServices</sso:Key> <sso:Value>transport,hotel</sso:Value> </sso:CustomOption> <sso:CustomOption> <sso:Key>allowedExtraServices</sso:Key> <sso:Value>transfer</sso:Value> </sso:CustomOption> <sso:CustomOption> <sso:Key>updateMode</sso:Key> <sso:Value>update</sso:Value> </sso:CustomOption> </sso:CustomOptions> <sso:Persons> <!--Zero or more repetitions:--> <sso:Person LastName="Максимов" FirstName="Максим" MiddleName="Максимович" LastNameLatin="Maximov" FirstNameLatin="Maxim" MiddleNameLatin="Maximovich" Gender="true" DateBirth="2000-02-01"> <!--Optional:--> <sso:INN>987987987</sso:INN> <!--Optional:--> <sso:KPP>779901001</sso:KPP> <!--Optional:--> <sso:CountryAlpha2>RU</sso:CountryAlpha2> <!--Optional:--> <sso:Documents> <!--Zero or more repetitions:--> <sso:Document CountryCode="RU" DocumentNumber="4505111222" DocumentType="NationalPassport" DateValid="2030-10-10"/> </sso:Documents> <!--Optional:--> <sso:Contacts> <!--Zero or more repetitions:--> <sso:Contact ContactType="MobilePhone" Value="+79162223311"/> </sso:Contacts> <!--Optional:--> <sso:PersonalCodes> <!--Zero or more repetitions:--> <sso:Code DictionaryName="Идентификатор в SAP" CodeValue="1234" IsPrimaryKey="true"/> </sso:PersonalCodes> </sso:Person> </sso:Persons> <sso:AccountDetails id_Group="XX" GroupSecurityKey="test" Email="user@somedomain.ru"> </sso:AccountDetails> </sso:request> </sso:Set> </soapenv:Body> </soapenv:Envelope>