...
Code Block | ||
---|---|---|
| ||
<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:CustomOption> <sso:Key>personalDays</sso:Key> <sso:Value>2020-12-14,2020-12-15</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:PersonToCreate LastName="Админских" FirstName="Максим" MiddleName="Валерьевич" LastNameLatin="Adminskih" FirstNameLatin="Maksim" MiddleNameLatin="Valerievich" Gender="true" DateBirth="2000-01-02"> <sso:INN>987987987</sso:INN> <sso:KPP>779901001</sso:KPP> <sso:CountryAlpha2>RU</sso:CountryAlpha2> </sso:PersonToCreate> <sso:id_Role>1</sso:id_Role> </sso:AccountDetails> </sso:request> </sso:Set> </soapenv:Body> </soapenv:Envelope> |
Разберем структуру запроса более детально:
OuterId - идентификатор заявки в SAP, по нему система понимает, что делать - обновить существующую командировку(если с таким номером уже был переход ранее) или создать новую
CustomRoute - участки маршрута, целостность которых мы контролируем
RoutePart - элемент маршрута, один участок
Origin - string, обязательный элемент, название или цифровой идентификатор города из справочника городов
Destination - string, обязательный элемент, название или цифровой идентификатор города из справочника городов
DateDepart - datetime, обязательный элемент, дата отправления пассажира в пункт назначения
DateReturn - datetime, не обязательный элемент, нужен для участков вида туда и обратно
DepartureAdvanceShiftDays - int, обязательный, на сколько дней назад можно сдвинуть вылет в пункт назначения
DeparturePostShiftDays - int, обязательный, на сколько дней вперед можно сдвинуть вылет в пункт назначения
ReturnAdvanceShiftDays - int, обязательный, на сколько дней назад можно сдвинуть возвращение в пункт отправления, для маршрута в одну сторону передаем 0
ReturnPostShiftDays - int, обязательный, на сколько дней вперед можно сдвинуть возвращение в пункт отправления, для маршрута в одну сторону передаем 0
BookingSequence - int, обязательный, в том случае, если нам нужно бронировать услуги друг за другом(например, сперва один участок, а потом другой), то тут передаем последовательность этой процедуры бронирования. Если нас это не волнует, а мы работаем в стандартном режиме: сперва транспорт, потом гостиницы, потом сервисы, то всегда передаем 1
Persons - список пассажиров командировки, подробности о структуре данных можно почитать на SSO портале.
AccountDetails - информация о пользователе для создания аккаунта на лету или входа в систему. Если пассажир также является пользователем, его все равно надо передать в секции Persons, т.е. дублируем данные для унификации.