Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
<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, т.е. дублируем данные для унификации.