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 um Feed de preços 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, o Feed de preços 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 um feed Price com os seguintes <objetos 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-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>
Para este exemplo, o número máximo de resultados que o Feed de preços deve conter é 18 (6 datas de entrada * 3 noites). O seu Feed de preços poderá conter menos se alguns itinerários com o intervalo de datas não tiverem sido 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, o seu Feed de preços 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 um feed Price com os seguintes <objetos Result> . 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.