Partager via


Créer un message d’indicateur

Si vous vous inscrivez à des demandes de tirage avec des conseils, Microsoft envoie un message avec le formulaire suivant au point de terminaison que vous spécifiez, vous demandant d’identifier les modifications apportées à l’itinéraire depuis la dernière demande de tirage. Vous décidez de la fréquence des demandes au moment de l’intégration.

<?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>

L’élément LastFetchTime identifie la date et l’heure UTC de la dernière réponse réussie que vous avez envoyée à Microsoft qui a identifié les modifications d’itinéraire. Si aucune modification n’a été apportée depuis ce temps, votre réponse doit contenir un corps vide. S’il y a eu des modifications, le corps contient un message d’indicateur , qui identifie les itinéraires qui ont changé. Vous pouvez identifier les itinéraires à l’aide de l’une des méthodes suivantes :

Itinéraires exacts

Votre message d’indication peut identifier les itinéraires individuels à l’aide de la date de case activée et de la durée du séjour. L’exemple suivant montre un message d’indicateur qui spécifie un itinéraire unique pour un seul hôtel.

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

Chaque <Élément> représente un itinéraire individuel. Vous pouvez spécifier un <objet Item> pour chaque itinéraire que vous souhaitez mettre à jour, et chaque itinéraire peut spécifier une ou plusieurs propriétés.

Lorsque Microsoft reçoit l’indicateur ci-dessus, il vous envoie le message de requête suivant :

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

Lorsque vous recevez le message de requête, votre réponse doit contenir un flux De prix avec le résultat> suivant<.

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

Si l’indicateur ci-dessus spécifie deux propriétés, le flux Price contient deux <éléments Result> (un pour chaque propriété).

Plages de dates d’archivage

Votre message d’indicateur peut identifier une gamme d’itinéraires. Pour spécifier la plage, définissez l’élément FirstDate sur la date de début case activée et sur LastDate la date du dernier case activée. L’exemple suivant montre un message d’indicateur qui utilise une plage de dates pour spécifier six dates case activée pour une seule propriété.

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

Chaque <élément> représente une plage unique de dates de case activée. Vous pouvez spécifier un <objet Item> pour chaque plage de dates case activée qui identifie les itinéraires que vous souhaitez mettre à jour, et chacun peut spécifier une ou plusieurs propriétés.

Lorsque Microsoft reçoit l’indicateur ci-dessus, il vous envoie le message de requête suivant.

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

Lorsque vous recevez le message de requête, votre réponse doit contenir un flux Price avec les objets Result> suivants<.

  <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>

Pour cet exemple, le nombre maximal de résultats que le flux de prix doit contenir est de 18 (6 dates case activée * 3 nuits). Votre flux De prix peut en contenir moins si certains itinéraires avec la plage de dates n’ont pas changé.

Plages de dates de case activée étendues

L’indicateur de plage de dates de case activée développé est similaire à l’indicateur de plage de dates case activée, sauf qu’il vous demande d’inclure tous les itinéraires qui croisent les itinéraires dans la plage de dates. Par conséquent, votre flux De prix doit inclure tout itinéraire dont la date de case activée se situe dans la plage de dates.

La propriété <StaysIncludingRange> identifie l’indicateur en tant qu’indicateur de plage de dates de case activée développée. Pour spécifier la plage, définissez l’élément FirstDate sur la date de début case activée et sur LastDate la date du dernier case activée. L’exemple suivant montre un message d’indicateur qui utilise une plage de dates pour spécifier six dates case activée pour une seule propriété.

<?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>

Chaque <élément> représente une seule plage d’itinéraires. Vous pouvez spécifier un <objet Item> pour chaque plage de dates case activée qui identifie les itinéraires que vous souhaitez mettre à jour, et chacun peut spécifier une ou plusieurs propriétés.

Lorsque Microsoft reçoit l’indicateur ci-dessus, il vous envoie le message de requête suivant. Le MaxLengthOfStay paramètre dans votre message QueryControl détermine la valeur de <AffectedNights> (cet exemple suppose qu’elle est définie sur 3).

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

Lorsque vous recevez le message de requête, votre réponse doit contenir un flux Price avec les objets Result> suivants<. Notez que la date de case activée des premiers objets est antérieure à la FirstDate date de votre indicateur. Cela est dû au fait que les itinéraires case activée date de sortie se situent dans la plage de dates de l’indicateur.

  <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>

Requêtes de traitement par lots

En fonction du nombre de propriétés et d’itinéraires que vous devez mettre à jour, Microsoft vous envoie plusieurs requêtes plus petites au lieu d’une requête volumineuse. Par exemple, si vous devez mettre à jour les itinéraires pour 1 000 propriétés, Microsoft peut vous envoyer 100 messages de requête avec 10 propriétés chacune.