Мастер-Web:Дополнительный модуль Распределенный поиск — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
Строка 1: Строка 1:
<span style="color:red;font-size:120%">Статья находится на стадии разработки.</span><br>
+
<span style="color:red;font-size:120%">Статья находится на стадии разработки.</span><br />
  
 
==Введение==
 
==Введение==
Строка 10: Строка 10:
 
Если собственные предложения также должны загружаться через web-сервис, то такие же web-сервисы необходимо установить и на своем web-сервере.
 
Если собственные предложения также должны загружаться через web-сервис, то такие же web-сервисы необходимо установить и на своем web-сервере.
 
==Настройка==
 
==Настройка==
===Настройки в файле web.config===
+
===Добавление секций===
====Добавление секций====
 
 
Добавление секций в конфигурационный файл web.config производится только в случае, если локальные предложения туроператора подключаются через сервис.
 
Добавление секций в конфигурационный файл web.config производится только в случае, если локальные предложения туроператора подключаются через сервис.
 
*1. В секции <ConfigSections> добавить подсекцию:
 
*1. В секции <ConfigSections> добавить подсекцию:
Строка 33: Строка 32:
 
В данной секции необходимо указать адреса собственных сервисов загрузки фильтра, поискового сервиса, сервиса проверки наличия мест, сервиса бронирования.
 
В данной секции необходимо указать адреса собственных сервисов загрузки фильтра, поискового сервиса, сервиса проверки наличия мест, сервиса бронирования.
  
====Дополнительные настройки====
+
===Настройки файла distributedSearchSettings.xml===
Дополнительные настройки, задаваемые в секции <Megatec.Web.Services/> файла web.config основного приложения ПК "Мастер-Web".
+
Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=645
+
 
style='width:483.4pt;margin-left:-.5pt;border-collapse:collapse'>
+
Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.
<tr>
+
 
  <td width=46 valign=top style='width:34.25pt;border:solid black 1.0pt;
+
Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но должен быть уникальным в рамках документа.
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
 
  <p class=TitleTable style='layout-grid-mode:char'></p>
+
* <FilterBindingServiceUrl> - адрес сервиса загрузки поискового фильтра для данного источника
  </td>
+
* <SearchServiceUrl> - адрес поискового сервиса для данного источника
  <td width=138 valign=top style='width:103.65pt;border:solid black 1.0pt;
+
* <ReservationServiceUrl> - адрес сервиса бронирования для данного источника
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
* <ServiceProviderServiceUrl> -  
  <p class=TitleTable style='layout-grid-mode:char'>Описание</p>
+
* <CheckQuotesServiceUrl> - адрес сервиса проверки наличия мест
  </td>
+
* <ReplcamentSearchItems> - правила подстановки данных из поискового фильтра данного источника в локальный фильтр
  <td width=204 valign=top style='width:153.0pt;border:solid black 1.0pt;
+
* <FlightGroups> - группы тарифов на авиаперелеты
  border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
+
* <PartnerKey> - ключ партнера, являющегося владельцем приложения ПК Мастер-Web, в удаленном источнике
  <p class=TitleTable style='layout-grid-mode:char'>Значение</p>
+
* <InternalPartnerKey> - ключ партнера, являющегося поставщиком цен, в локальном источнике
  </td>
+
* <InternalServiceKey> - класс услуги в базе туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет использоваться для сохранения услуг из базы стороннего туроператора (все услуги по путевке, которая забронирована по туру стороннего туроператора, будут сохранены под этим классом услуги)
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
+
* <InternalCreator> - ключ пользователя из таблицы UserList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться создателем путевок, оформленных по турам стороннего туроператора
  padding:0cm 5.4pt 0cm 5.4pt'>
+
* <InternalFilialKey> - ключ филиала (PR_Filial=2) из таблицы tbl_Partners туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться филиалом для путевок, оформленных по турам стороннего туроператора
  <p class=TitleTable style='layout-grid-mode:char'>Настройка</p>
+
* <InternalTourKey> - ключ тура из таблицы tbl_TurList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться в поле DG_TRKey у путевок, оформленных по турам стороннего туроператора
  </td>
+
* <DefaultCountryKey> -  
</tr>
+
* <DefaultCityKey> -  
<tr>
+
* <ReservationWaitStatus> -  
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
+
* <ReservationOKStatus> -  
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
+
* <AdditionalComissionFixed> - фиксированная наценка к общей стоимости тура от стороннего туроператора
  padding:0cm 5.4pt 0cm 5.4pt'>
+
* <AdditionalServiceComission> - фиксированная наценка к стоимости доп.услуг при бронировании туров от стороннего туроператора
  <p class=Tabletext style='layout-grid-mode:char'><span lang=EN-US>1</span></p>
+
* <FilialKey> -  
  </td>
+
* <EMail> - дополнительные e-mail адреса, на которые нужно отправлять письмо о новом бронировании через распределенный поиск; перечисляются через точку с запятой
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
+
* <DontSendBookingMail> - настройка, управляющая отправкой письма о новом бронировании агентству. Значения: true – не отправлять письмо агентству; false – отправлять письмо о новом бронировании агентству
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
+
 
  padding:0cm 5.4pt 0cm 5.4pt'>
+
Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <ReplcamentSubItem>, где
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
+
* Type - тип условия подстановки; возможные значения: departFrom, country, city
  расположение сервиса по загрузке поисковых фильтров.</p>
+
* LocalValue - ключ сущности в локальной базе (если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно)
  </td>
+
* RemoteValue - ключ сущности во внешнем источнике
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
+
* Name - название сущности (настройка используется при отсутствии сущности в локальном источнике)
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext>&nbsp;</p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;FilterBinding&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/filterbinding/FilterBindingService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>2</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение поискового сервиса.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;DoSearch&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/search/Search.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>3</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение сервиса бронирования.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;Reservation&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/reservation/ReservationService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>4</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая расположение
 
  сервиса формирования списка услуг.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;ServiceProvider&quot; enabled=&quot;true&quot;
 
  url=&quot;http: //Сайт/reservation/ServiceProvider.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=46 valign=top style='width:34.25pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>5</p>
 
  </td>
 
  <td width=138 valign=top style='width:103.65pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext style='layout-grid-mode:char'>Настройка, определяющая
 
  расположение сервиса проверки квот.</p>
 
  </td>
 
  <td width=204 valign=top style='width:153.0pt;border-top:none;border-left:
 
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=Tabletext><b>&nbsp;</b></p>
 
  </td>
 
  <td width=257 valign=top style='width:192.5pt;border:solid black 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>&lt;add
 
  name=&quot;CheckQuotes&quot; enabled=&quot;true&quot; url=&quot;http: //Сайт/checkquotes/CheckQuotesService.asmx&quot;/&gt;</span></p>
 
  </td>
 
</tr>
 
</table>
 
  
====Настройки файла distributedSearchSettings.xml====
+
Примеры:<br />
Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.
+
* Пример 1. Добавить предложения по Хорватии (в локальном источнике отсутствует, ключ во внешнем источнике - 123) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.<BR>
 
Для того, чтобы добавить нового партнера, у которого будут браться данные, нужно создать новую секцию <DistributedSearchSource Id="src">.
 
Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но уникальным в рамках документа.<br>
 
Чтобы настроить работу с внешним источником данных, в соответствующей секции DistributedSearchSource нужно задать следующие теги:
 
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
 
style='border-collapse:collapse;border:none'>
 
<tr>
 
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;FilterBindingServiceUrl&gt;</span></p>
 
  </td>
 
  <td width=424 valign=top style='width:317.7pt;border:solid windowtext 1.0pt;
 
  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- адрес сервиса загрузки поискового фильтра для данного
 
  источника</p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;SearchServiceUrl&gt;</span></p>
 
  </td>
 
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
 
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- адрес поискового сервиса для данного источника</p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;FlightGroups&gt;</span></p>
 
  </td>
 
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
 
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- перечисление ключей классов перелетов разделенных на
 
  группы знаком «|»; порядок групп должен соответствовать порядку указанному в
 
  секции <span style='font-size:10.0pt;font-family:"Courier New"'>MasterWeb</span>/<span
 
  style='font-size:10.0pt;font-family:"Courier New"'> dynamicCharterClasses</span>
 
  файла <span lang=EN-US>web</span>.<span lang=EN-US>config</span>; если какая
 
  либо группа из файла <span lang=EN-US>web</span>.<span lang=EN-US>config</span>
 
  несвойственна данному источнику, то в ней указывается ключ ”-1”      </p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=214 valign=top style='width:160.85pt;border:solid windowtext 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>&lt;ReplcamentSearchItems</span></p>
 
  </td>
 
  <td width=424 valign=top style='width:317.7pt;border-top:none;border-left:
 
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- правила подстановки данных из поискового фильтра данного
 
  источника в локальный фильтр </p>
 
  </td>
 
</tr>
 
</table>
 
Для того, чтобы получать предложения по какой либо стране из внешнего источника данных, необходимо добавить новый набор элементов <ReplcamentSubItem>, который задает правило подстановки данных из поискового фильтра данного источника в локальный фильтр, где:
 
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
 
style='border-collapse:collapse;border:none'>
 
<tr>
 
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Type</span></p>
 
  </td>
 
  <td width=517 valign=top style='width:388.1pt;border:solid windowtext 1.0pt;
 
  border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- тип условия подстановки; возможные значения: <span
 
  style='font-size:10.0pt;font-family:"Courier New"'>departFrom</span>, <span
 
  style='font-size:10.0pt;font-family:"Courier New"'>country</span>, <span
 
  style='font-size:10.0pt;font-family:"Courier New"'>city</span></p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>LocalValue</span></p>
 
  </td>
 
  <td width=517 valign=top style='width:388.1pt;border-top:none;border-left:
 
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- ключ сущности в локальной базе</p>
 
  </td>
 
</tr>
 
<tr>
 
  <td width=121 valign=top style='width:90.45pt;border:solid windowtext 1.0pt;
 
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>RemoteValue</span></p>
 
  </td>
 
  <td width=517 valign=top style='width:388.1pt;border-top:none;border-left:
 
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
 
  padding:0cm 5.4pt 0cm 5.4pt'>
 
  <p class=MsoNormal>- ключ сущности во внешнем источнике</p>
 
  </td>
 
</tr>
 
</table>
 
Пример:<BR>
 
*1. Добавить предложения по Хорватии (в локальном источнике отсутствует, ключ во внешнем источнике - 123) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
 
 
  <ReplcamentSearchItem>
 
  <ReplcamentSearchItem>
<SubItems>
+
  <SubItems>
<ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
+
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
<ReplcamentSubItem Type="country" LocalValue="0" RemoteValue="123" Name="Хорватия" />
+
  <ReplcamentSubItem Type="country" LocalValue="0" RemoteValue="123" Name="Хорватия" />
</SubItems>
+
  </SubItems>
 
  </ReplcamentSearchItem>
 
  </ReplcamentSearchItem>
*2. Добавить предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
+
* Пример 2. Добавить предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
 
  <ReplcamentSearchItem>
 
  <ReplcamentSearchItem>
<SubItems>
+
  <SubItems>
<ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
+
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
<ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
+
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
</SubItems>
+
  </SubItems>
 
  </ReplcamentSearchItem>
 
  </ReplcamentSearchItem>
*3. Включить в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) город Салоники (в локальном источнике отсутствует ; ключ во внешнем источнике - 615)
+
* Пример 3. Включить в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) город Салоники (в локальном источнике отсутствует ; ключ во внешнем источнике - 615)
 
  <ReplcamentSearchItem>
 
  <ReplcamentSearchItem>
<SubItems>
+
  <SubItems>
<ReplcamentSubItem Type="departFrom" LocalValue="648" RemoteValue="266" />
+
  <ReplcamentSubItem Type="departFrom" LocalValue="648" RemoteValue="266" />
<ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
+
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
<ReplcamentSubItem Type="city" LocalValue="0" RemoteValue="615" Name="Салоники" />
+
  <ReplcamentSubItem Type="city" RemoteValue="615" Name="Салоники" />
</SubItems>
+
  </SubItems>
 
  </ReplcamentSearchItem>
 
  </ReplcamentSearchItem>
====Ограничение вариантов, доступных из внешнего источника====
+
===Настройка полей данных о туристах===
Чтобы ограничить предложения из внешнего источника данных, например, по типу тура или по городу, необходимо в базе данных стороннего туроператора создать соответствующее представление (view) для пользователя, который указан в настройках соединения конфигурационного файла web.config сервиса по загрузке поисковых фильтров и поискового сервиса.
+
Настройка отображения полей данных о туристах производится в файле descriptions.xml. Данный файл содержит следующие настройки:
 +
 
 +
1. Настройка отображения поля «Главный турист»:
 +
<column code="ismain" header="&lt;img src=&quot;../images/mw_main_tourist.gif&quot; border=&quot;0&quot; alt=&quot;Главный турист&quot; /&gt;" visible="True" required="True" translit="False" letterCase="0" edit="False" />
 +
2. Настройка отображения поля «Пол туриста»:
 +
<column code="sex" header="Пол&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" visible="True" required="False" translit="False" letterCase="0" edit="True" />
 +
3. Настройка отображения поля «Имя рус.»:
 +
<column code="firstnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
4. Настройка отображения поля «Отчество рус.»:
 +
<column code="patronymicrus" header="Отчество" visible="False" required="False" translit="False" letterCase="3" edit="False" />
 +
5. Настройка отображения поля «Фамилия рус.»:
 +
<column code="lastnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
6. Настройка отображения поля «Имя лат.»:
 +
<column code="firstname" header="Имя&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />
 +
7. Настройка отображения поля «Отчество лат.»:
 +
<column code="patronymic" header="" visible="False" required="False" translit="False" letterCase="2" edit="False" />
 +
8. Настройка отображения поля «Фамилия лат.»:
 +
<column code="lastname" header="Фамилия&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />
 +
9. Настройка отображения поля «Дата рождения»:
 +
<column code="birthdate" header="Дата рождения&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;br /&gt;(dd.MM.yyyy)" visible="True" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup" />
 +
10. Настройка отображения поля «Номер общегражданского паспорта»:
 +
<column code="passportrus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
11. Настройка отображения поля «Дата выдачи общегражданского паспорта»:
 +
<column code="passportdaterus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
12. Настройка отображения поля «Общегражданский паспорт: кем выдан»:
 +
<column code="passportbywhomrus" header="Паспорт: кем выдан" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
13. Настройка отображения поля «Номер загранпаспорта»:
 +
<column code="passport" header="Паспорт" visible="True" required="true" translit="False" letterCase="2" edit="True" validationgroup="TouristsGroup" />
 +
14. Настройка отображения поля «Дата выдачи загранпаспорта»:
 +
<column code="passportdate" header="Загран-паспорт: дата выдачи" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
15. Настройка отображения поля «Срок действия загранпаспорта»:
 +
<column code="passportdateend" header="Действителен до&lt;br /&gt;(dd.MM.yyyy)" visible="true" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup"/>
 +
16. Настройка отображения поля «Гражданство»:
 +
<column code="citizenship" header="Гражданство" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
17. Настройка отображения поля «Загранпаспорт: кем выдан»:
 +
<column code="passportbywhom" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />
 +
18. Настройка отображения поля «Удаление записи»:
 +
<column code="delete" header="" visible="true" required="False" edit="True" />
 +
 
 +
Настройки отображения полей данных о туристах содержат параметры:
 +
#Code= - зашитая в коде константа, которую нельзя изменять.
 +
#Header= - заголовок поля
 +
#Visible= - видимость поля; значения: True – видимый, Flse – невидимый
 +
#Required= - обязательность заполнения поля; значения: True – обязательное, False – необязательное
 +
#Translit= - транслитерация; значения: True – транслитерировать, False – не транслитерировать
 +
#letterCase= - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
 +
#Edit= - редактирование поля; значения: True – редактируемое, False – нередактируемое
 +
===Настройки в web.config приложения ПК Мастер-Web===
 +
Дополнительные настройки, задаваемые в секции <appSettings/> файла web.config, находящемся в папке с приложением ПК Мастер-Web
  
 +
1. Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора. Где
 +
<add name="DSRedirectToResultPage" enabled="true" url="true"/>
 +
При значении:
 +
*true – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx);
 +
*false или отсутствие настройки – переход осуществляется на страницу ReservationResultPage.aspx
 
==Работа в системе==
 
==Работа в системе==
 
===Схема распределенного поиска===
 
===Схема распределенного поиска===
<BR>
+
<br />
[[Файл:818.PNG]]<BR>
+
[[Файл:818.PNG]]<br />
 
[[Category:Мастер-Web_Дополнительные_модули]]
 
[[Category:Мастер-Web_Дополнительные_модули]]

Версия 17:58, 5 декабря 2012

Статья находится на стадии разработки.

Введение

Модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК Мастер-Web.

Установка

Для установки «Распределенного поиска» нужно распаковать архив надстройки mw-distributedsearch-2007.2.XX.XXXX.zip в корень каталога, где установлено приложение ПК Мастер-Web.

Для развертывания распределенного поиска необходимо на web-сервере каждого туроператора, цены которого необходимо отображать в собственном приложении, установить Сервис по загрузке поисковых фильтров (FilterBinding), Поисковый сервис (SearchService), Сервис проверки наличия мест (CheckQuotes) и Сервис бронирования (Reservation). Описание процесса установки сервисов приведено в руководстве пользователя соответствующего сервиса.

Если собственные предложения также должны загружаться через web-сервис, то такие же web-сервисы необходимо установить и на своем web-сервере.

Настройка

Добавление секций

Добавление секций в конфигурационный файл web.config производится только в случае, если локальные предложения туроператора подключаются через сервис.

  • 1. В секции <ConfigSections> добавить подсекцию:
<sectionGroup name="Megatec.Web.Services">
<section name="servicesAccessibility" 
type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/>
</sectionGroup>
  • 2. На одном уровне с секцией <ConfigSections> добавить секцию:
<Megatec.Web.Services>
 <servicesAccessibility Enabled="true">
   <Services>
   <add name="FilterBinding" enabled="true" url="http://somesite/ws-filter-binding/FilterBindingService.asmx"/>
   <add name="DoSearch" enabled="true" url="http://somesite/ws-search/Search.asmx"/>
   <add name="Reservation" enabled="true" url="http://somesite/ws-reservation/ReservationService.asmx"/>
   <add name="ServiceProvider" enabled="true" url="http://somesite/ws-reservation/ServiceProvider.asmx"/>
   <add name="CheckQuotes" enabled="true" url="http://somesite/ws-checkquotes/CheckQuotesService.asmx"/>
   </Services>
 </servicesAccessibility>
</Megatec.Web.Services>

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

Настройки файла distributedSearchSettings.xml

Файл distributedSearchSettings.xml содержит информацию о внешних источниках данных.

Элемент <Enabled>true</Enabled> элемента <DistributedSearchSettings> указывает на необходимость проведения поиска во внешних источниках данных.

Каждый из элементов <DistributedSearchSource Id="src"> элемента <SearchSources> представляет собой описание источника данных. Атрибут id может быть произвольным, но должен быть уникальным в рамках документа.

  • <FilterBindingServiceUrl> - адрес сервиса загрузки поискового фильтра для данного источника
  • <SearchServiceUrl> - адрес поискового сервиса для данного источника
  • <ReservationServiceUrl> - адрес сервиса бронирования для данного источника
  • <ServiceProviderServiceUrl> -
  • <CheckQuotesServiceUrl> - адрес сервиса проверки наличия мест
  • <ReplcamentSearchItems> - правила подстановки данных из поискового фильтра данного источника в локальный фильтр
  • <FlightGroups> - группы тарифов на авиаперелеты
  • <PartnerKey> - ключ партнера, являющегося владельцем приложения ПК Мастер-Web, в удаленном источнике
  • <InternalPartnerKey> - ключ партнера, являющегося поставщиком цен, в локальном источнике
  • <InternalServiceKey> - класс услуги в базе туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет использоваться для сохранения услуг из базы стороннего туроператора (все услуги по путевке, которая забронирована по туру стороннего туроператора, будут сохранены под этим классом услуги)
  • <InternalCreator> - ключ пользователя из таблицы UserList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться создателем путевок, оформленных по турам стороннего туроператора
  • <InternalFilialKey> - ключ филиала (PR_Filial=2) из таблицы tbl_Partners туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться филиалом для путевок, оформленных по турам стороннего туроператора
  • <InternalTourKey> - ключ тура из таблицы tbl_TurList туроператора, являющегося владельцем приложения ПК Мастер-Web, который будет прописываться в поле DG_TRKey у путевок, оформленных по турам стороннего туроператора
  • <DefaultCountryKey> -
  • <DefaultCityKey> -
  • <ReservationWaitStatus> -
  • <ReservationOKStatus> -
  • <AdditionalComissionFixed> - фиксированная наценка к общей стоимости тура от стороннего туроператора
  • <AdditionalServiceComission> - фиксированная наценка к стоимости доп.услуг при бронировании туров от стороннего туроператора
  • <FilialKey> -
  • <EMail> - дополнительные e-mail адреса, на которые нужно отправлять письмо о новом бронировании через распределенный поиск; перечисляются через точку с запятой
  • <DontSendBookingMail> - настройка, управляющая отправкой письма о новом бронировании агентству. Значения: true – не отправлять письмо агентству; false – отправлять письмо о новом бронировании агентству

Правило подстановки данных из поискового фильтра данного источника в локальный фильтр задается при помощи набора элементов <ReplcamentSubItem>, где

  • Type - тип условия подстановки; возможные значения: departFrom, country, city
  • LocalValue - ключ сущности в локальной базе (если в локальном источнике отсутствует такой ключ, то LocalValue указывать не нужно)
  • RemoteValue - ключ сущности во внешнем источнике
  • Name - название сущности (настройка используется при отсутствии сущности в локальном источнике)

Примеры:

  • Пример 1. Добавить предложения по Хорватии (в локальном источнике отсутствует, ключ во внешнем источнике - 123) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
  <ReplcamentSubItem Type="country" LocalValue="0" RemoteValue="123" Name="Хорватия" />
 </SubItems>
</ReplcamentSearchItem>
  • Пример 2. Добавить предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Москвы (ключ 30 в локальном источнике и 1 во внешнем источнике)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="30" RemoteValue="1" />
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
 </SubItems>
</ReplcamentSearchItem>
  • Пример 3. Включить в предложения по Греции (ключ 520 в локальном источнике и 29 во внешнем источнике) при вылете из Екатеринбурга (ключ 648 в локальном источнике и 266 во внешнем источнике) город Салоники (в локальном источнике отсутствует ; ключ во внешнем источнике - 615)
<ReplcamentSearchItem>
 <SubItems>
  <ReplcamentSubItem Type="departFrom" LocalValue="648" RemoteValue="266" />
  <ReplcamentSubItem Type="country" LocalValue="520" RemoteValue="29" Name="Греция" />
  <ReplcamentSubItem Type="city" RemoteValue="615" Name="Салоники" />
 </SubItems>
</ReplcamentSearchItem>

Настройка полей данных о туристах

Настройка отображения полей данных о туристах производится в файле descriptions.xml. Данный файл содержит следующие настройки:

1. Настройка отображения поля «Главный турист»:

<column code="ismain" header="<img src="../images/mw_main_tourist.gif" border="0" alt="Главный турист" />" visible="True" required="True" translit="False" letterCase="0" edit="False" />

2. Настройка отображения поля «Пол туриста»:

<column code="sex" header="Пол<font color="red">*</font>" visible="True" required="False" translit="False" letterCase="0" edit="True" />

3. Настройка отображения поля «Имя рус.»:

<column code="firstnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

4. Настройка отображения поля «Отчество рус.»:

<column code="patronymicrus" header="Отчество" visible="False" required="False" translit="False" letterCase="3" edit="False" />

5. Настройка отображения поля «Фамилия рус.»:

<column code="lastnamerus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

6. Настройка отображения поля «Имя лат.»:

<column code="firstname" header="Имя<font color="red">*</font>" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />

7. Настройка отображения поля «Отчество лат.»:

<column code="patronymic" header="" visible="False" required="False" translit="False" letterCase="2" edit="False" />

8. Настройка отображения поля «Фамилия лат.»:

<column code="lastname" header="Фамилия<font color="red">*</font>" visible="True" required="True" translit="True" letterCase="2" edit="True" validationgroup="TouristsGroup" />

9. Настройка отображения поля «Дата рождения»:

<column code="birthdate" header="Дата рождения<font color="red">*</font><br />(dd.MM.yyyy)" visible="True" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup" />

10. Настройка отображения поля «Номер общегражданского паспорта»:

<column code="passportrus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

11. Настройка отображения поля «Дата выдачи общегражданского паспорта»:

<column code="passportdaterus" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

12. Настройка отображения поля «Общегражданский паспорт: кем выдан»:

<column code="passportbywhomrus" header="Паспорт: кем выдан" visible="False" required="False" translit="False" letterCase="0" edit="False" />

13. Настройка отображения поля «Номер загранпаспорта»:

<column code="passport" header="Паспорт" visible="True" required="true" translit="False" letterCase="2" edit="True" validationgroup="TouristsGroup" />

14. Настройка отображения поля «Дата выдачи загранпаспорта»:

<column code="passportdate" header="Загран-паспорт: дата выдачи" visible="False" required="False" translit="False" letterCase="0" edit="False" />

15. Настройка отображения поля «Срок действия загранпаспорта»:

<column code="passportdateend" header="Действителен до<br />(dd.MM.yyyy)" visible="true" required="true" translit="False" letterCase="0" edit="True" validationgroup="TouristsGroup"/>

16. Настройка отображения поля «Гражданство»:

<column code="citizenship" header="Гражданство" visible="False" required="False" translit="False" letterCase="0" edit="False" />

17. Настройка отображения поля «Загранпаспорт: кем выдан»:

<column code="passportbywhom" header="" visible="False" required="False" translit="False" letterCase="0" edit="False" />

18. Настройка отображения поля «Удаление записи»:

<column code="delete" header="" visible="true" required="False" edit="True" />

Настройки отображения полей данных о туристах содержат параметры:

  1. Code= - зашитая в коде константа, которую нельзя изменять.
  2. Header= - заголовок поля
  3. Visible= - видимость поля; значения: True – видимый, Flse – невидимый
  4. Required= - обязательность заполнения поля; значения: True – обязательное, False – необязательное
  5. Translit= - транслитерация; значения: True – транслитерировать, False – не транслитерировать
  6. letterCase= - регистр символов в поле; значения: 1 – первая буква заглавная, 2 – все буквы большие, 3 – все буквы маленькие
  7. Edit= - редактирование поля; значения: True – редактируемое, False – нередактируемое

Настройки в web.config приложения ПК Мастер-Web

Дополнительные настройки, задаваемые в секции <appSettings/> файла web.config, находящемся в папке с приложением ПК Мастер-Web

1. Настройка, определяющая страницу, на которую будет попадать пользователь после бронирования тура от стороннего туроператора. Где

<add name="DSRedirectToResultPage" enabled="true" url="true"/>

При значении:

  • true – переход осуществляется на страницу «Информация о заказе» (OrderInfo.aspx);
  • false или отсутствие настройки – переход осуществляется на страницу ReservationResultPage.aspx

Работа в системе

Схема распределенного поиска


818.PNG