Partilhar via


Criar uma mensagem de Sugestão

Se se inscrever no Pull com pedidos de sugestão, a Microsoft envia uma mensagem com o seguinte formulário para o ponto final que especificar, pedindo-lhe para identificar quaisquer alterações de itinerário desde o último pedido Pull. Decide a frequência dos pedidos no momento em que integra.

<?xml version="1.0" encoding="UTF-8"?>
<HintRequest id="123-abc" timestamp="2017-10-21T08:45:09Z">
  <LastFetchTime>2017-10-21T08:30:16Z</LastFetchTime>
</HintRequest>

O LastFetchTime elemento identifica a data e hora UTC da última resposta bem-sucedida que enviou à Microsoft que identificou alterações de itinerário. Se não tiver havido alterações desde essa altura, a resposta deverá conter um corpo vazio. Se ocorreram alterações, o corpo contém uma mensagem de Sugestão , que identifica itinerários que foram alterados. Pode identificar os itinerários com um dos seguintes métodos:

Itinerários exatos

A sua mensagem de sugestão pode identificar os itinerários individuais com a data de entrada e a duração da estadia. O exemplo seguinte mostra uma mensagem de sugestão que especifica um único itinerário para um único hotel.

<Hint>
  <Item>
    <Property>789</Property>
    <Stay>
      <CheckInDate>2017-10-20</CheckInDate>
      <LengthOfStay>2</LengthOfStay>
    </Stay>
  </Item>
</Hint>

Cada <Item> representa um itinerário individual. Pode especificar objetos <de Item> para cada itinerário que pretende atualizar e cada itinerário pode especificar uma ou mais propriedades.

Quando a Microsoft recebe a sugestão acima, envia-lhe a seguinte mensagem de Consulta :

<Query>
  <Checkin>2017-10-20</Checkin>
  <Nights>2</Nights>
  <PropertyList>
    <Property>789</Property>
  </PropertyList>
</Query>

Quando receber a mensagem Consulta, a sua resposta deverá conter uma Mensagem de transação com o seguinte <Resultado>.

  <Result>
    <Property>789</Property>
    <Checkin>2017-10-20</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>

Se a sugestão acima especificar duas propriedades, a mensagem de transação conterá dois <elementos de Resultado> (um para cada propriedade).

Intervalos de datas de entrada

A sua mensagem de sugestão pode identificar uma série de itinerários. Para especificar o intervalo, defina o FirstDate elemento como a data de entrada inicial e a LastDate data da última entrada. O exemplo seguinte mostra uma mensagem de sugestão que utiliza um intervalo de datas para especificar seis datas de entrada para uma única propriedade.

<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>123</Property>
    <FirstDate>2017-10-20</FirstDate>
    <LastDate>2017-10-25</LastDate>
  </Item>
</Hint>

Cada <Item> representa um único intervalo de datas de entrada. Pode especificar um <objeto Item> para cada intervalo de datas de entrada que identifique os itinerários que pretende atualizar e cada um deles pode especificar uma ou mais propriedades.

Quando a Microsoft recebe a sugestão acima, envia-lhe a seguinte mensagem de Consulta .

<Query>
  <FirstDate>2017-10-20</FirstDate>
  <LastDate>2017-10-25</LastDate>
  <Nights>3</Nights>
  <PropertyList>
    <Property>123</Property>
  </PropertyList>
</Query>

Quando receber a mensagem Consulta, a sua resposta deverá conter uma Mensagem de transação com os seguintes <objetos de Resultado> .

  <Result>
    <Property>789</Property>
    <Checkin>2017-10-20</Checkin>
    <Nights>1</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-20</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-20</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>

  . . .
  
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>1</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>

Neste exemplo, o número máximo de resultados que a mensagem de transação deve conter é 18 (6 datas de entrada * 3 noites). A sua mensagem de transação poderá conter menos se alguns itinerários com o intervalo de datas não forem alterados.

Intervalos de datas de entrada expandidos

A sugestão de intervalo de datas de entrada expandida é semelhante à sugestão de intervalo de datas de entrada, mas pede que inclua todos os itinerários que interseccionam os itinerários no intervalo de datas. Assim, a sua mensagem de transação deve incluir qualquer itinerário cuja data de saída se insere no intervalo de datas.

O <StaysIncludingRange> identifica a sugestão como uma sugestão de intervalo de datas de entrada expandida. Para especificar o intervalo, defina o FirstDate elemento como a data de entrada inicial e a LastDate data da última entrada. O exemplo seguinte mostra uma mensagem de sugestão que utiliza um intervalo de datas para especificar seis datas de entrada para uma única propriedade.

<?xml version="1.0" encoding="UTF-8"?>
<Hint>
  <Item>
    <Property>123</Property>
    <StaysIncludingRange>
      <FirstDate>2017-10-20</FirstDate>
      <LastDate>2017-10-25</LastDate>
    </StaysIncludingRange>
  </Item>
</Hint>

Cada <Item> representa um único intervalo de itinerários. Pode especificar um <objeto Item> para cada intervalo de datas de entrada que identifique os itinerários que pretende atualizar e cada um deles pode especificar uma ou mais propriedades.

Quando a Microsoft recebe a sugestão acima, envia-lhe a seguinte mensagem de Consulta . A MaxLengthOfStay definição na sua mensagem QueryControl determina o valor de <AffectedNights> (este exemplo pressupõe que está definido como 3).

<Query>
  <FirstDate>2017-10-20</FirstDate>
  <LastDate>2017-10-25</LastDate>
  <AffectedNights>3</AffectedNights>
  <PropertyList>
    <Property>123</Property>
  </PropertyList>
</Query>

Quando receber a mensagem Consulta, a sua resposta deverá conter uma Mensagem de transação com os seguintes <objetos de Resultado> . Tenha em atenção que a data de entrada dos primeiros vários objetos se enquadra antes da FirstDate data na sua sugestão. Isto deve-se ao facto de a data de saída dos itinerários estar dentro do intervalo de datas da sugestão.

  <Result>
    <Property>789</Property>
    <Checkin>2017-10-17</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-18</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-18</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-19</Checkin>
    <Nights>1</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-19</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-19</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-20</Checkin>
    <Nights>1</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>

  . . .
  
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>1</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>2</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>
  <Result>
    <Property>789</Property>
    <Checkin>2017-10-25</Checkin>
    <Nights>3</Nights>
    <!-- Pricing and other elements that changed -->
  </Result>

Consultas de criação de batches

Dependendo do número de propriedades e itinerários que precisa de atualizar, a Microsoft envia-lhe várias consultas mais pequenas em vez de uma grande consulta. Por exemplo, se precisar de atualizar itinerários para 1000 propriedades, a Microsoft poderá enviar-lhe 100 mensagens de consulta com 10 propriedades cada.