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 d’enregistrement 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 (anciennement message de transaction) 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 de l’archivage et sur LastDate la date du dernier archivage. L’exemple suivant montre un message d’indicateur qui utilise une plage de dates pour spécifier six dates d’archivage 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 d’archivage. Vous pouvez spécifier un <objet Item> pour chaque plage de dates d’archivage 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 (anciennement Message de transaction) 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 d’enregistrement * 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 d’archivage étendues

L’indicateur de plage de dates d’enregistrement développé est similaire à l’indicateur de plage de dates d’enregistrement, 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 départ est comprise dans la plage de dates.

StaysIncludingRange <> identifie l’indicateur en tant qu’indicateur de plage de dates d’archivage développé. Pour spécifier la plage, définissez l’élément FirstDate sur la date de début de l’archivage et sur LastDate la date du dernier archivage. L’exemple suivant montre un message d’indicateur qui utilise une plage de dates pour spécifier six dates d’archivage 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 d’archivage 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 (anciennement Message de transaction) avec les objets Result> suivants<. Notez que la date d’archivage des premiers objets est antérieure à la FirstDate date de votre indicateur. Cela est dû au fait que la date d’extraction des itinéraires se situe 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.