Règle SetIntegrationRequest

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

icône de la règle

Présentation

La règle SetIntegrationRequest vous permet de créer un objet de requête pour une intégration que vous souhaitez exécuter. Dans la règle, vous devez configurer les détails du déclencheur d'API et les paramètres d'entrée requis pour exécuter l'intégration. Lorsque vous exécutez la règle SetIntegrationRequest, elle crée un objet de requête et l'enregistre dans une variable de flux. L'objet de la requête contient toutes les informations requises pour exécuter l'intégration. À ce stade, l'intégration n'est toujours pas exécutée. Pour exécuter l'intégration, vous devez appeler la règle IntegrationCallout ou définir un point de terminaison d'intégration (IntegrationEndpoint). La règle IntegrationCallout et IntegrationEndpoint requièrent tous deux l'objet de la requête pour exécuter l'intégration.

Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.

<SetIntegrationRequest>

Spécifie la règle SetIntegrationRequest.

Valeur par défaut ND
Obligatoire ? Obligatoire
Type Type complexe
Élément parent ND
Éléments enfants <ApiTrigger>
<DisplayName>
<IntegrationName>
<IntegrationRegion>
<Parameters>
<ProjectId>
<Request>
<ScheduleTime>

Le tableau suivant fournit une description détaillée des éléments enfants de l'élément <SetIntegrationRequest> :

Élément enfant Requis ? Description
<ApiTrigger> Requis Nom du déclencheur d'API à appeler dans l'intégration.
<DisplayName> Facultatif Nom personnalisé de la règle.
<IntegrationName> Facultatif Nom de l'intégration à exécuter.
<IntegrationRegion> Requis Nom de la région dans laquelle se trouve l'intégration.
<Parameters> Facultatif Paramètres d'entrée de l'intégration.
<ProjectId> Facultatif Nom du projet Google Cloud contenant l'intégration que vous souhaitez exécuter.
<Request> Facultatif Nom de la variable de flux pour enregistrer l'objet de la requête.
<ScheduleTime> Facultatif Heure à laquelle l'intégration doit être exécutée.

La règle SetIntegrationRequest utilise la syntaxe suivante :

Syntaxe

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SetIntegrationRequest continueOnError="[true|false]" enabled="[true|false]" name="Set-Integration-Request">
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  <ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
  <IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
  <IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
  <ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
  <ScheduleTime>PARAMETER_VALUE</ScheduleTime>
  <Parameters>
    <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter>
    <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
      <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value>
    </ParameterArray>
  </Parameters>
  <Request>FLOW_VARIABLE_NAME</Request>
</SetIntegrationRequest>

Exemple

L'exemple suivant montre la définition de la règle SetIntegrationRequest :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SetIntegrationRequest continueOnError="false" enabled="true" name="Set-Integration-Request">
  <DisplayName>Set Integration Request Policy</DisplayName>
  <ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
  <IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
  <IntegrationRegion ref="my_integration_ref">asia-east1</IntegrationRegion>
  <ApiTrigger ref="my_api_trigger_ref">API-Trigger-2</ApiTrigger>
  <ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
  <Parameters>
    <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter>
    <ParameterArray name="my_array_param" type="integer" ref="flow_var_2">
      <Value ref="flow_var_3">1</Value>
      <Value ref="flow_var_4">2</Value>
      <Value ref="flow_var_5">3</Value>
    </ParameterArray>
  </Parameters>
  <Request>my_request_var</Request>
</SetIntegrationRequest>

Cet élément possède les attributs suivants qui sont communs à toutes les règles :

Attribut Par défaut Obligatoire ? Description
name ND Obligatoire

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

continueOnError faux Facultatif Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir aussi :
enabled true Facultatif Définissez sur true pour appliquer la règle. Définissez sur false pour désactiver la règle. La règle ne sera pas appliquée même si elle reste associée à un flux.
async   faux Obsolète Cet attribut est obsolète.

Référence d'élément enfant

Cette section décrit les éléments enfants de <SetIntegrationRequest>.

<DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.

L'élément <DisplayName> est commun à toutes les règles.

Valeur par défaut ND
Obligatoire ? Facultatif. Si vous omettez <DisplayName>, la valeur de l'attribut name de la règle est utilisée.
Type Chaîne
Élément parent <PolicyElement>
Éléments enfants Aucune

L'élément <DisplayName> utilise la syntaxe suivante :

Syntaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemple

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

L'élément <DisplayName> ne comporte aucun attribut ni élément enfant.

<ProjectId>

Spécifie le nom du projet Google Cloud.

Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.project.id.

Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <ProjectId> utilise la syntaxe suivante :

Syntaxe

<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>

Exemple

L'exemple suivant configure la règle pour utiliser la variable de flux my_projectid_var afin de récupérer l'ID de projet. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez apigee_staging_1 comme ID de projet :

<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>

Le tableau suivant décrit les attributs de <ProjectId> :

Attribut Requis ? Type Description
ref Facultatif Chaîne Spécifie la variable de flux à partir de laquelle Apigee doit lire l'ID du projet Google Cloud. Vous pouvez définir l'élément <ProjectId> de l'une des manières suivantes :
  • <ProjectId>val</ProjectId> : utilisez val comme ID de projet.
  • <ProjectId ref="refval"/> : résout refval de manière dynamique pour déterminer l'ID du projet. Apigee signale une exception si l'ID du projet résolu n'est pas valide ou si refval n'est pas résolu.
  • <ProjectId ref="refval">val</ProjectId> : résout refval de manière dynamique pour déterminer l'ID du projet. Apigee signale une exception si l'ID du projet résolu n'est pas valide. Si refval n'est pas résolu, utilisez val comme ID de projet.

<IntegrationName>

Spécifie l'intégration à exécuter.

Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.name.

Le nom de l'intégration doit suivre les règles de dénomination suivantes :

  • Doit commencer et se terminer par une lettre ou un chiffre.
  • Ne peut pas comporter d'espaces.
  • Deux tirets ou traits de soulignement ne peuvent pas être consécutifs.
Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <IntegrationName> utilise la syntaxe suivante :

Syntaxe

<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>

Exemple

L'exemple suivant configure la règle pour utiliser la variable de flux my_integration_ref afin de récupérer le nom de l'intégration. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez integration_1 comme nom d'intégration :

<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>

Le tableau suivant décrit les attributs de <IntegrationName> :

Attribut Requis ? Type Description
ref Facultatif Chaîne Spécifie la variable de flux à partir de laquelle Apigee doit lire le nom de l'intégration. Vous pouvez définir l'élément <IntegrationName> de l'une des manières suivantes :
  • <IntegrationName>val</IntegrationName> : utilisez val comme nom d'intégration.
  • <IntegrationName ref="refval"/> : résout refval de manière dynamique pour déterminer le nom de l'intégration. Apigee signale une exception si le nom d'intégration résolu n'est pas valide ou si refval n'est pas résolu.
  • <IntegrationName ref="refval">val</IntegrationName> : résout refval de manière dynamique pour déterminer le nom de l'intégration. Apigee signale une exception si le nom d'intégration résolu n'est pas valide. Si refval n'est pas résolu, utilisez val comme nom d'intégration.

<IntegrationRegion>

Spécifie la région où l'intégration existe.

Lors de l'exécution, Apigee attribue la valeur de l'élément à la variable de flux integration.region, crée une URL cible basée sur la région et stocke l'URL dans la variable de flux integration.target.url.

L'URL cible basée sur la région est au format suivant : https://integration.region-integrations.googleapis.com

La région d'intégration doit être compatible avec l'intégration Apigee. Pour en savoir plus sur les régions compatibles avec l'intégration Apigee, consultez la section Régions où le service est disponible.

Valeur par défaut ND
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <IntegrationRegion> utilise la syntaxe suivante :

Syntaxe

<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>

Exemple

L'exemple suivant configure la règle pour utiliser la variable de flux my_integration_region_ref afin de récupérer la région d'intégration. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, asia-east1 est utilisé comme région de l'intégration.

<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>

Le tableau suivant décrit les attributs de <IntegrationRegion> :

Attribut Requis ? Type Description
ref Facultatif String Spécifie la variable de flux à partir de laquelle Apigee doit lire la région de l'intégration. Vous pouvez définir l'élément <IntegrationRegion> de l'une des manières suivantes :
  • <IntegrationRegion>val</IntegrationRegion> : utilise val comme région d'intégration.
  • <IntegrationRegion ref="refval"/> : résout refval de manière dynamique pour déterminer la région de l'intégration. Apigee signale une exception si la région d'intégration résolue n'est pas valide ou si refval n'est pas résolu.
  • <IntegrationRegion ref="refval">val</IntegrationRegion> : résout refval de manière dynamique pour déterminer la région de l'intégration. Apigee signale une exception si la région d'intégration résolue n'est pas valide. Si refval ne fonctionne pas, utilisez val comme région d'intégration.

<ApiTrigger>

Spécifie le déclencheur d'API à exécuter.

Vous devez spécifier le nom du déclencheur API au format api_trigger/API_TRIGGER_NAME.

Apigee attribue la valeur que vous spécifiez pour cet élément à la variable de flux integration.api.trigger.

Si vous avez spécifié <IntegrationName>, seul le déclencheur d'API de cette intégration est exécuté. Toutefois, si vous n'avez pas spécifié <IntegrationName>, toutes les intégrations portant le déclencheur d'API spécifié sont exécutées.

Valeur par défaut ND
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <ApiTrigger> utilise la syntaxe suivante :

Syntaxe

<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>

Exemple

L'exemple suivant configure la règle pour utiliser la variable de flux my_api_trigger_ref afin de récupérer le nom du déclencheur d'API. Si la variable de flux ne parvient pas à être résolue au moment de l'exécution, utilisez api_trigger/API-Trigger-2 comme nom de déclencheur d'API :

<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>

Le tableau suivant décrit les attributs de <ApiTrigger> :

Attribut Requis ? Type Description
ref Facultatif Chaîne Spécifie la variable de flux à partir de laquelle Apigee doit lire le nom du déclencheur d'API. Vous pouvez définir l'élément <ApiTrigger> de l'une des manières suivantes :
  • <ApiTrigger>val</ApiTrigger> : utilisez val comme nom de déclencheur d'API.
  • <ApiTrigger ref="refval"/> : résout refval de manière dynamique pour déterminer le nom du déclencheur. Apigee signale une exception si le nom du déclencheur d'API résolu n'est pas valide ou si refval n'est pas résolu.
  • <ApiTrigger ref="refval">val</ApiTrigger> : résout refval de manière dynamique pour déterminer le nom du déclencheur. Apigee signale une exception si le nom du déclencheur d'API résolu n'est pas valide. Si refval n'est pas résolu, utilisez val comme nom de déclencheur.

<ScheduleTime>

Indique l'heure à laquelle l'intégration doit s'exécuter.

Si la heure est inférieure ou égale à l'heure actuelle, l'intégration s'exécute immédiatement. Vous devez spécifier l'heure au format yyyy-mm-ddThh:mm:ssZ, où Z est le fuseau horaire UTC. Par exemple, si vous spécifiez 2022-01-15T01:30:15Z, l'intégration est planifiée pour s'exécuter le 15-1-2022 à 1:30:15 UTC. Vous pouvez également spécifier le fuseau horaire à l'aide d'un décalage par rapport à l'heure UTC. Par exemple, si vous spécifiez 2022-01-15T01:30:15-08:00, l'intégration est planifiée pour s'exécuter le 15-1-2022 à 1:30:15 PST. Pour en savoir plus sur le format de l'heure, consultez la section Représentations de la date et de l'heure combinées.

Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <ScheduleTime> utilise la syntaxe suivante :

Syntaxe

<ScheduleTime>PARAMETER_VALUE</ScheduleTime>

Exemple

L'exemple suivant planifie l'intégration à exécuter à 2022-01-15T01:30:15Z :

<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>

<Parameters>

Spécifie les paramètres d'entrée requis pour exécuter l'intégration.

Vous pouvez spécifier des paramètres individuels ou des tableaux de paramètres.

  • Pour spécifier un paramètre individuel, utilisez l'élément <Parameter>.
  • Pour spécifier un tableau de paramètres, utilisez l'élément <ParameterArray>.
Valeur par défaut ND
Requis ? Facultatif
Type Type complexe
Élément parent <SetIntegrationRequest>
Éléments enfants <Parameter>
<ParameterArray>

Le tableau suivant décrit les attributs de <Parameters> :

Attribut Requis ? Type Description
substitutionVariableChar Facultatif Caractère Permet de définir des délimiteurs personnalisés pour transmettre des valeurs de variable de flux sous forme d'argument de modèle dans l'élément enfant <Parameter>.

L'élément <Parameters> utilise la syntaxe suivante :

Syntaxe

<Parameters substitutionVariableChar="SUBSTITUTION_CHAR">
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME" >PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE ref="FLOW_VARIABLE_NAME"">
    <Value>PARAMETER_VALUE</Value>
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
  </ParameterArray>
</Parameters>

Exemple

L'exemple suivant initialise le paramètre my_str_param et le tableau de paramètres my_array_param :

<Parameters substitutionVariableChar="#">
  <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter>
  <Parameter name="strVar" type="string">#flowvar1#</Parameter>
  <ParameterArray name="my_array_param" type="integer" ref="flow_var_2">
    <Value>1</Value>
    <Value ref="flow_var_3"/>
    <Value ref="flow_var_4">3</Value>
  </ParameterArray>
</Parameters>

Apigee traite les éléments vides <Parameter> et <ParameterArray> comme des valeurs null. Par exemple, les déclarations telles que <Parameter></Parameter> et <ParameterArray></ParameterArray> sont traitées comme des valeurs null.

<Parameter>

Spécifie un paramètre d'entrée.

Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <Parameters>
Éléments enfants None

Vous pouvez spécifier la valeur du paramètre comme suit :

  • <Parameter name="my_param" type="string">val</Parameter> : Utilise val comme valeur de paramètre. Si val n'est pas valide, Apigee signale une exception.
  • <Parameter name="my_param" type="string" ref="refval"/> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide ou si la valeur refval est non résolue.
  • <Parameter name="my_param" type="string" ref="refval">val</Parameter>: résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide. Si refval n'est pas résolu, Apigee utilise val comme valeur de paramètre.
  • <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter> : utilise $#FLOW_VARIABLE_NAME#$ pour transmettre à l'objet Parameter des valeurs de variable de flux sous forme d'argument de modèle. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide.
  • <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter> : où SUBSTITUTION_CHAR désigne la valeur spécifiée pour l'attribut substitutionVariableChar de l'élément parent <Parameters>. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide.

L'élément <Parameter> utilise la syntaxe suivante :

Syntaxe
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR">
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME"/>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter>
  <Parameter name="PARAMETER_NAME" type="json">$#FLOW_VARIABLE_NAME#$</Parameter>
  <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter>
</Parameters>
Exemple 1

L'exemple suivant déclare le paramètre my_str_param sous forme de chaîne et définit la valeur sur someText.

<Parameters>
  <Parameter name="my_str_param" type="string">someText</Parameter>
</Parameters>
Exemple 2

L'exemple suivant déclare le paramètre my_double_param en tant que double et attribue la valeur de la variable de flux flow_var au paramètre.

<Parameters>
  <Parameter name="my_double_param" type="double" ref="flow_var"/>
</Parameters>
Exemple 3

L'exemple suivant définit la valeur sur le paramètre entier my_int_param_1.

<Parameters>
  <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter>
</Parameters>

Dans cet exemple, si la résolution de la variable de flux flow_var_1 aboutit, my_int_param_1 est défini sur la valeur de la variable de flux. Toutefois, si la résolution de flow_var_1 échoue, my_int_param_1 est défini sur 96.

Exemple 4

L'exemple suivant définit des valeurs pour les paramètres JSON my_json_param_1 et my_json_param_2.

<Parameters>
  <Parameter name="my_json_param_1" type="json" ref="flow_var_1">{name:"Apple", color:"Red"}</Parameter>
  <Parameter name="my_json_param_2" type="json">{name:"Banana", color:"Yellow"}</Parameter>
</Parameters>

Dans cet exemple, si la résolution de la variable de flux flow_var_1 aboutit, my_json_param_1 est défini sur la valeur de la variable de flux flow_var_1. Toutefois, si la résolution de flow_var_1 échoue, my_json_param_1 est défini sur {name:"Apple", color:"Red"}. Le paramètre my_json_param_2 est défini sur {name:"Banana", color:"Yellow"}, car aucun attribut ref n'est spécifié.

Exemple 5

L'exemple suivant définit la valeur du paramètre JSON template_json_param à l'aide de la valeur de variable de flux transmise dans un modèle par défaut.

  <Parameters>
    <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter>
</Parameters>
  

Dans cet exemple, si la résolution de la variable de flux flow_var_1 aboutit, template_json_param est défini sur la valeur de la variable de flux flow_var_1. Toutefois, si la résolution de flow_var_1 échoue, Apigee génère une exception.

Exemple 6

L'exemple suivant définit la valeur du paramètre JSON template_json_param à l'aide de l'attribut substitutionVariableChar.

<Parameters substitutionVariableChar="#">
    <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter>
</Parameters>
  

Dans cet exemple, si la résolution de la variable de flux flow_var_1 aboutit, template_json_param est défini sur la valeur de la variable de flux flow_var_1. Toutefois, si la résolution de flow_var_1 échoue, Apigee génère une exception.

Le tableau suivant décrit les attributs de <Parameter> :

Attribut Requis ? Type Description
name Obligatoire Chaîne Nom du paramètre.
type Requis Chaîne Type de données du paramètre. Les types acceptés sont integer, string, boolean, double et json.
ref Facultatif String Spécifie la variable de flux à partir de laquelle Apigee doit lire la valeur du paramètre. Apigee utilise les critères suivants pour définir la valeur du paramètre :
  • Si la variable de flux est résolue au moment de l'exécution et qu'elle est valide, Apigee utilise la valeur de la variable de flux.
  • Si la variable de flux est résolue au moment de l'exécution, mais qu'elle n'est pas valide, Apigee signale une exception.
  • Si la variable de flux n'est pas résolue au moment de l'exécution, Apigee utilise la valeur de l'élément <Parameter>. Si la valeur de l'élément n'est pas valide, Apigee signale une erreur.

<ParameterArray>

Spécifie un tableau de paramètres d'entrée.

Valeur par défaut ND
Requis ? Facultatif
Type Type complexe
Élément parent <Parameters>
Éléments enfants <Value>

L'élément <Parameters> peut contenir plusieurs éléments <ParameterArray>. Pour un tableau de paramètres, vous pouvez définir la valeur des éléments du tableau en spécifiant la valeur réelle ou en spécifiant une variable de flux dans l'attribut ref. Si vous spécifiez une variable de flux, les éléments du tableau sont définis sur la valeur de la variable de flux. Les exemples de cette section décrivent les différentes manières de configurer l'élément <ParameterArray>.

L'élément <ParameterArray> utilise la syntaxe suivante :

Syntaxe
<Parameters>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME">
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
    <Value>PARAMETER_VALUE</Value>
  </ParameterArray>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"/>
  <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE">
    <Value ref="FLOW_VARIABLE_NAME"/>
    <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
    <Value>PARAMETER_VALUE</Value>
  </ParameterArray>
<Parameters/>
Exemple 1

L'exemple suivant déclare my_array_param en tant que tableau d'entiers et définit la valeur des éléments du tableau sur 1, 2 et 3 :

<Parameters>
  <ParameterArray name="my_array_param" type="integer">
    <Value>1</Value>
    <Value>2</Value>
    <Value>3</Value>
  </ParameterArray>
<Parameters/>
Exemple 2

L'exemple suivant déclare my_array_param en tant que tableau double où :

  • Le premier élément est défini sur la valeur de la variable de flux flow_var_1.
  • Le deuxième élément est défini sur 3.0.
<Parameters>
  <ParameterArray name="my_array_param" type="double">
    <Value ref="flow_var_1"/>
    <Value>3.0</Value>
  </ParameterArray>
<Parameters/>
Exemple 3

L'exemple suivant déclare my_array_param en tant que tableau booléen et le définit sur la valeur de la variable de flux flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="boolean" ref="flow_var_1">
    <Value>true</Value>
    <Value>false</Value>
    <Value>false</Value>
  </ParameterArray>
<Parameters/>

Dans cet exemple, si la résolution de flow_var_1 aboutit, my_array_param est défini sur les valeurs du tableau flow_var_1. Toutefois, si flow_var_1 ne peut pas être résolu, le tableau my_array_param est défini sur les valeurs des éléments Value.

Exemple 4

L'exemple suivant déclare my_array_param en tant que tableau JSON et le définit sur la valeur de la variable de flux flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/>
<Parameters/>

Dans cet exemple, si la résolution de flow_var_1 aboutit, my_array_param est défini sur les valeurs du tableau flow_var_1. Toutefois, si flow_var_1 ne parvient pas à être résolu, Apigee signale une exception.

Exemple 5

L'exemple suivant déclare my_array_param en tant que tableau de chaînes et le définit sur les valeurs de la variable de flux flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="string" ref="flow_var_1">
    <Value ref="flow_var_2"/>
    <Value>test_string</Value>
  </ParameterArray>
<Parameters/>

Dans cet exemple, si la résolution de flow_var_1 aboutit, my_array_param est défini sur les valeurs du tableau flow_var_1. Seulement si la résolution de flow_var_1 échoue, my_array_param est défini sur les valeurs spécifiées dans les éléments <Value>.

Le tableau suivant décrit les attributs de <ParameterArray> :

Attribut Requis ? Type Description
name Obligatoire Chaîne Nom du tableau de paramètres.
type Requis Chaîne Type de données du tableau de paramètres. Les types acceptés sont integer, string, boolean et double.
ref Facultatif String Spécifie la variable de flux à partir de laquelle Apigee doit lire les valeurs du tableau. Apigee utilise les critères suivants pour définir la valeur du paramètre :
  • Si la variable de flux est résolue au moment de l'exécution et qu'elle est valide, Apigee utilise la valeur de la variable de flux.
  • Si la variable de flux est résolue au moment de l'exécution, mais qu'elle n'est pas valide, Apigee signale une exception.
  • Si la variable de flux n'est pas résolue au moment de l'exécution, Apigee utilise les valeurs spécifiées dans les éléments <Value>.
<Value>

Spécifie la valeur d'un élément de tableau.

Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <ParameterArray>
Éléments enfants None

Chaque élément du tableau doit être un élément <Value> distinct. Vous pouvez spécifier la valeur comme suit :

  • <Value>val</Value> : utilise val comme valeur de l'élément. Si val n'est pas valide, Apigee signale une exception.
  • <Value ref="refval"/> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide ou si la valeur refval est non résolue.
  • <Value ref="refval">val</Value> : résout la variable de flux refval au moment de l'exécution et utilise sa valeur. Apigee signale une exception si la valeur refval résolue n'est pas valide. Si refval n'est pas résolu, Apigee utilise val comme valeur de l'élément.
  • <Value>val1 $#flowval#$</Value> : utilise $#FLOW_VARIABLE_NAME#$ pour transmettre à l'objet Value les valeurs des variables de flux sous forme d'argument de modèle. Apigee résout la variable de flux flowval au moment de l'exécution et utilise sa valeur. Une exception est signalée si la valeur flowval résolue n'est pas valide.

L'élément <Value> utilise la syntaxe suivante :

Syntaxe
<ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME">
  <Value>PARAMETER_VALUE</Value>
  <Value ref="FLOW_VARIABLE_NAME"/>
  <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value>
</ParameterArray>
Exemple 1

L'exemple suivant déclare my_array_param en tant que tableau de paramètres entiers avec les valeurs 1, 2 et 3 :

<ParameterArray name="my_array_param" type="integer">
  <Value>1</Value>
  <Value>2</Value>
  <Value>3</Value>
</ParameterArray>
Exemple 2

L'exemple suivant déclare my_array_param en tant que tableau de paramètres de chaîne avec les valeurs des variables de flux flow_var_1 et flow_var_2 :

<ParameterArray name="my_array_param" type="string">
  <Value ref="flow_var_1"/>
  <Value ref="flow_var_2"/>
</ParameterArray>
Exemple 3

L'exemple suivant déclare my_array_param en tant que tableau de paramètres de chaîne :

<ParameterArray name="my_array_param" type="string">
   <Value ref="flow_var_1">string_1</Value>
   <Value ref="flow_var_2">string_2</Value>
</ParameterArray>

Dans cet exemple, si la résolution de la variable de flux aboutit, la valeur d'élément du tableau est définie sur la valeur de la variable de flux flow_var_1. Toutefois, si la résolution de flow_var_1 échoue, la valeur d'élément du tableau est définie sur string_1.

Exemple 4

L'exemple suivant définit la valeur du paramètre de tableau de chaînes template_strArray_param à l'aide de la valeur de variable de flux transmise dans un modèle.

  <Parameters>
    <ParameterArray name="template_strArray_param" type="string">
    <Value>apple $#flow_var_1#$</Value>
    </ParameterArray>
  </Parameters>
  

Dans cet exemple, si la résolution de la variable de flux aboutit, la valeur d'élément du tableau est définie sur la valeur de la variable de flux flow_var_1. Toutefois, si la résolution de flow_var_1 échoue, Apigee génère une exception.

Le tableau suivant décrit les attributs de <Value> :

Attribut Requis ? Type Description
ref Facultatif String Spécifie la variable de flux à partir de laquelle Apigee doit lire la valeur du paramètre. Apigee utilise les critères suivants pour définir la valeur du paramètre :
  • Si la variable de flux est résolue au moment de l'exécution et qu'elle est valide, Apigee utilise la valeur de la variable de flux.
  • Si la variable de flux est résolue au moment de l'exécution, mais qu'elle n'est pas valide, Apigee signale une exception.
  • Si la variable de flux n'est pas résolue au moment de l'exécution, Apigee utilise la valeur de l'élément <Value>. Si la valeur de l'élément n'est pas valide, Apigee signale une erreur.

<Request>

Spécifie le nom de la variable de flux pour enregistrer la requête.

Une fois la règle exécutée, elle crée un objet de message de requête et l'enregistre dans la variable FLOW_VARIABLE_NAME que vous pouvez interroger pour lire la requête.

Si vous ne spécifiez pas de nom de variable de flux, la règle enregistre la requête dans le message de requête, en remplaçant le message de requête existant, le cas échéant.

Valeur par défaut requête
Obligatoire ? Facultatif
Type Chaîne
Élément parent <SetIntegrationRequest>
Éléments enfants Aucune

L'élément <Request> utilise la syntaxe suivante :

Syntaxe

<Request>FLOW_VARIABLE_NAME</Request>

Exemple

L'exemple suivant enregistre l'objet de la requête dans la variable de flux my_request_var :

<Request>my_request_var</Request>

Codes d'erreur

Cette section décrit les codes d'erreur, les messages d'erreur et les variables d'erreur définies par Apigee lorsque cette règle déclenche une erreur. Ces informations sont essentielles si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs peuvent se produire lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.setintegrationrequest.EmptyParameterArray 500

Cette erreur se produit lorsque l'élément <ParameterArray> possède les attributs name et type, mais pas l'attribut ref ou l'élément <Value>.

steps.setintegrationrequest.EmptyParameterArrayValue 500

Cette erreur se produit lorsque l'élément <Value> est vide et que l'attribut ref n'est pas défini.

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut ref d'un élément ne parvient pas à être résolue en une valeur valide.

  • Pour les éléments ProjectId, IntegrationName ou ApiTrigger, cette erreur se produit si la variable de flux renvoie une valeur nulle, une chaîne vide ou un type de données non valide.

    La valeur valide pour ces éléments est la suivante :

    • ProjectId : consultez les règles de dénomination de Project ID dans la section Avant de commencer.
    • IntegrationName : consultez les règles de dénomination de l'élément IntegrationName.
    • ApiTrigger : le nom doit commencer par api_trigger/.
  • Pour l'élément ParameterArray, cette erreur se produit si la variable de flux est associée à une chaîne vide.
steps.setintegrationrequest.MismatchedTypeAndResolvedRef 500

Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut ref de l'élément <Parameter> est résolue, mais que le type de données de la valeur de la variable de flux ne correspond pas au type de données spécifié dans l'attribut type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut ref de l'élément <ParameterArray> est résolue mais que le type de données de la valeur de la variable de flux ne correspond pas au type de données spécifié dans type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

Cette erreur se produit lorsque la variable de flux spécifiée dans l'attribut ref de <Value> est résolue mais que le type de données de la valeur de la variable de flux ne correspond pas au type de données spécifié dans l'attribut type de son élément parent (<ParameterArray>).

steps.setintegrationrequest.RequestVariableNotMessageType 500 Cette erreur se produit lorsque la variable de flux spécifiée par l'élément Request n'est pas de type message.
steps.setintegrationrequest.RequestVariableNotRequestMessageType 500 Cette erreur se produit lorsque la variable de flux spécifiée par l'élément Request n'est pas de type Message de requête.
steps.setintegrationrequest.UnresolvedVariable 500

Cette erreur se produit lorsqu'Apigee ne peut pas résoudre les variables de flux spécifiées dans les éléments <Parameter>, <ParameterArray> ou <Value>.

Variables de panne

Chaque fois qu'une règle comporte des erreurs d'exécution, Apigee génère des messages d'erreur. Vous pouvez afficher ces messages d'erreur dans la réponse d'erreur. Souvent, les messages d'erreur générés par le système peuvent ne pas être pertinents dans le contexte de votre produit. Vous pouvez personnaliser les messages d'erreur en fonction du type d'erreur pour rendre les messages plus significatifs.

Pour personnaliser les messages d'erreur, vous pouvez utiliser des règles d'erreur ou la règle RaiseFault. Pour en savoir plus sur les différences entre les règles d'erreur et la règle RaiseFault, consultez la section Règles d'erreur et règle RaiseFault. Vous devez vérifier les conditions à l'aide de l'élément Condition dans les règles d'erreur et dans la règle RaiseFault. Apigee fournit des variables d'erreur propres à chaque règle et les valeurs des variables d'erreur sont définies lorsqu'une règle déclenche des erreurs d'exécution. En utilisant ces variables, vous pouvez vérifier des conditions d'erreur spécifiques et prendre les mesures appropriées. Pour en savoir plus sur la vérification des conditions d'erreur, consultez la page Conditions de création.

Le tableau suivant décrit les variables d'erreur spécifiques à cette règle.

Variables Où : Exemple
fault.name L'élément fault.name peut correspondre à n'importe quelle erreur affichée dans le tableau Erreurs d'exécution. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "UnresolvedVariable"
SetIntegrationRequest.POLICY_NAME.failed POLICY_NAME est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. SetIntegrationRequest.set-integration-request-1.failed = true
Pour en savoir plus sur les erreurs de règles, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Articles associés

Pour en savoir plus sur la fonctionnalité d'intégration d'Apigee, consultez la page Qu'est-ce qu'Apigee Integration ?