Dépannage des erreurs d'exécution de la règle XML vers JSON

Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.

SourceUnavailable

Code d'erreur

steps.xml2json.SourceUnavailable

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available",
        "detail": {
            "errorcode": "steps.xmltojson.SourceUnavailable"
        }
    }
}

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
        "detail": {
            "errorcode": "steps.xml2json.SourceUnavailable"
        }
    }
}

Cause

Cette erreur se produit si la variable message ou la chaîne de chaîne spécifiée dans l'élément <Source> de la règle XML vers JSON comprend l'un des éléments suivants :

  • hors du champ d'application (non disponible dans le flux spécifique où la règle est exécutée), ou
  • impossible à résoudre (non définie),

Par exemple, cette erreur se produit si la règle XML vers JSON est censée être exécutée dans le flux de requête, alors que l'élément <Source> est défini sur la variable response, qui n'existe pas dans le flux de requête.

Diagnostic

  1. Identifiez la règle XML vers JSON où l'erreur s'est produite et le nom de la variable indisponible. Vous pouvez trouver ces deux éléments dans l'élément faultstring de la réponse d'erreur. Par exemple, dans le fichier faultstring suivant, le nom de la règle est Convert-XMLToJSON et celui de la variable est response :

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. Dans le flux XML vers JSON défaillant, vérifiez que le nom de la variable définie dans l'élément <Source> correspond au nom de la variable identifiée dans la chaîne d'erreur (étape 1 ci-dessus). Par exemple, la règle XML vers JSON suivante spécifie une variable nommée response dans l'élément <Source>, qui correspond à ce qui se trouve dans faultstring :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    
  3. Déterminez si la variable utilisée dans l'élément <Source> est définie et disponible dans le flux dans lequel la règle XML vers JSON est exécutée.

  4. Si la variable est :

    • hors du champ d'application (non disponible dans le flux spécifique où la règle est exécutée), ou
    • impossible à résoudre (non définie),

    alors il s'agit de la cause de l'erreur.

    Par exemple, supposons que la règle XML vers JSON présentée ci-dessus soit censée être exécutée dans le flux de requête. À présent, rappelez-vous que la variable response est utilisée dans l'élément <Source> de la règle XML vers JSON : La variable n'est disponible que dans le flux de réponse.

    Comme la variable de réponse n'existe pas dans le flux de requête, vous obtenez le code d'erreur suivant :

    steps.xml2json.SourceUnavailable
    

Solution

Assurez-vous que la variable définie dans l'élément <Source> de la règle XML vers JSON défaillante est définie et qu'elle existe dans le flux où la règle est exécutée.

Pour corriger la règle XML vers JSON présentée ci-dessus, vous pouvez modifier l'élément <Source> pour utiliser la variable request telle qu'elle existe dans le flux de requête :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
    <DisplayName>Convert-XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>request</Source>
</XMLToJSON>

ExecutionFailed

Code d'erreur

steps.xml2json.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Execution failed. reason: Premature end of document while parsing at line [line_number](possibly  around char [character_number])",
        "detail": {
            "errorcode": "steps.xml2json.ExecutionFailed"
        }
    }
}

Causes possibles

Les causes possibles de cette erreur sont les suivantes :

Cause Description
Charge utile d'entrée manquante La charge utile d'entrée (XML) est vide.
Entrée invalide ou incorrecte L'entrée (XML) transmise à la règle XML vers JSON est incorrecte ou invalide.

Cause : charge utile d'entrée manquante

Dans cette règle XML vers JSON, si le contenu (charge utile) de la variable spécifiée dans l'élément <Source> est vide, cette erreur se produit.

Par exemple, si l'élément <Source> de la règle XML vers JSON est défini en tant que variable request ou response et qu'il est censé contenir une charge utile XML, cette erreur se produit si la charge utile est vide.

Diagnostic

  1. Identifiez la règle XML vers JSON où l'erreur s'est produite. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans le fichier faultstring suivant, le nom de la règle est Convert-XMLToJSON :

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly  around char 0)"
    
  2. Examinez l'élément <Source> dans le fichier XML de la règle XML vers JSON et déterminez la variable spécifiée. Par exemple, la règle XML vers JSON suivante contient l'élément <Source> défini sur "requête" :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. Vérifiez si la variable spécifiée pour l'élément <Source> dans la règle XML vers JSON est vide. Si c'est le cas, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle XML vers JSON présenté ci-dessus, la charge utile de la requête (le corps de la requête) envoyée par le client était vide.

    Exemple :

    curl -v "http://your_host_alias/v1/testxmltojson" -H "Content-Type: application/xml"
    

    your_host_alias est un domaine public utilisé pour accéder à vos API, tel que configuré dans la propriété virtualhosts.hostAliases de votre fichier de remplacement. Consultez la section Spécifier des remplacements de configuration.

    La charge utile de la requête XML étant vide, vous obtenez le code d'erreur suivant :

    steps.xml2json.ExecutionFailed
    

    Cette erreur peut également se produire si l'élément <Source> est défini sur "réponse", alors que le serveur backend transmet une charge utile vide.

Solution

Vérifiez que l'entrée transmise à la règle XML vers JSON via l'élément <Source> correspond à une charge utile XML valide et non vide.

Pour résoudre le problème lié à l'exemple de règle XML vers JSON, transmettez une charge utile XML valide. Exemple :

  1. Créez un fichier nommé city.xml avec le contenu suivant :

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    </root>
    
  2. Effectuez l'appel d'API à l'aide d'une commande cURL comme suit :

    curl -v "http://your_host_alias/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
    

    your_host_alias est un domaine public utilisé pour accéder à vos API, tel que configuré dans la propriété virtualhosts.hostAliases de votre fichier de remplacement. Consultez la section Spécifier des remplacements de configuration.

Cause : entrée invalide ou incorrecte

Si la règle XML vers JSON analyse l'entrée invalide ou incorrecte, vous obtenez cette erreur.

Par exemple, si le fichier XML invalide suivant est fourni en entrée de la règle XML vers JSON,

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>

vous obtenez l'erreur suivante :

"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"

Diagnostic

  1. Identifiez la règle XML vers JSON où l'erreur s'est produite. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans le fichier faultstring suivant, le nom de la règle est Convert-XMLToJSON :

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
    
  2. Examinez l'élément <Source> spécifié dans le fichier XML de la règle XML vers JSON défaillante. Par exemple, l'élément <Source> de la règle XML vers JSON suivante est défini sur la variable request :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. Vérifiez si l'entrée spécifiée dans l'élément <Source> de la règle XML vers JSON est une charge utile XML valide. Si l'entrée est invalide ou incorrecte, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle XML vers JSON présenté ci-dessus, le ficher XML invalide suivant a été transmis à la règle Extract Variables via le fichier city.xml :

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    

    Voici un exemple d'appel d'API qui illustre comment la requête a été transmise :

    curl -v "http://your_host_alias/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
    

    your_host_alias est un domaine public utilisé pour accéder à vos API, tel que configuré dans la propriété virtualhosts.hostAliases de votre fichier de remplacement. Consultez la section Spécifier des remplacements de configuration.

    La charge utile XML transmise à l'API est invalide, car le XML n'a pas de balise de fin pour l'élément <root>. Vous recevez donc le code d'erreur suivant :

    steps.xml2json.ExecutionFailed
    

    Cette erreur peut également se produire si l'élément <Source> a été défini sur la réponse, mais que la charge utile de la réponse XML du serveur backend est invalide ou incorrecte.

Solution

Assurez-vous que l'entrée transmise à la règle XML vers JSON via l'élément <Source> est valide et correcte.

Pour résoudre le problème de l'exemple de règle XML vers JSON décrit ci-dessus, transmettez une requête de charge utile XML valide comme suit :

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>
</root>

OutputVariableIsNotAvailable

Code d'erreur

steps.xml2json.OutputVariableIsNotAvailable

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

Cause

Cette erreur se produit si la variable spécifiée dans l'élément <Source> de la règle XML vers JSON est de type chaîne et que l'élément <OutputVariable> n'est pas défini. L'élément <OutputVariable> est obligatoire lorsque la variable définie dans l'élément <Source> est de type string.

Diagnostic

  1. Identifiez la règle JSON vers XML où l'erreur s'est produite. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans le fichier faultstring suivant, le nom de la règle est Convert-XMLToJSON :

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. Dans le message d'échec de la règle XML vers JSON, validez si <OutputVariable> est manquant.

    Voici un exemple de règle XML vers JSON qui ne contient pas l'élément <OutputVariable>.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
  3. Déterminez le type de variable spécifié dans l'élément <Source> :

    1. Recherchez le code dans le groupe de proxys d'API, où la variable a été définie en premier.
    2. Une fois que vous avez identifié la règle où la variable est définie et renseignée en premier, vous devez déterminer le type de cette variable comme suit :
      1. Vérifiez la valeur de l'attribut "type" (le cas échéant).
      2. En l'absence d'attribut "type", la variable est considérée comme une chaîne.
    3. Si la variable est de type string, il s'agit de la cause de l'erreur. Pour en savoir plus sur les variables courantes et leurs types, consultez la documentation de référence sur les variables.

    Par exemple, examinez la variable "TrackingNumber" de la règle XML vers JSON ci-dessus. Celle-ci est de type "chaîne". Prenons l'exemple d'une règle Assign Messages permettant de définir la valeur d'une variable appelée TrackingNumber :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    Notez que le type de variable défini via <AssignVariable> est "chaîne". Ainsi, la variable TrackingNumber est de type "chaîne".

    À présent, rappelez-vous que la variable TrackingNumber est utilisée dans l'élément <Source> de la règle XML vers JSON :

    <Source>TrackingNumber</Source>
    

    Étant donné que TrackingNumber est de type "chaîne" et que la valeur <OutputVariable> est manquante dans la règle, vous recevez le code d'erreur suivant :

    steps.xml2json.OutputVariableIsNotAvailable
    

Solution

Si la variable spécifiée dans l'élément <Source> de la règle XML vers JSON est de type "chaîne", assurez-vous que l'élément <OutputVariable> est obligatoire dans ce cas.

Pour corriger la règle XML vers JSON décrite ci-dessus, incluez l'élément <OutputVariable> comme indiqué ci-dessous.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
    <DisplayName>Convert-XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>TrackingNumber</Source>
</XMLToJSON>

InCompatibleTypes

Code d'erreur

steps.xml2json.InCompatibleTypes

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

Cause

Cette erreur se produit si le type de la variable définie dans l'élément <Source> et dans l'élément <OutputVariable> n'est pas le même. Il est obligatoire que les types des variables contenues dans l'élément <Source> et dans l'élément <OutputVariable> correspondent.

The valid types are message and string.

Diagnostic

  1. Identifiez la règle JSON vers XML où l'erreur s'est produite. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans le fichier faultstring suivant, le nom de la règle est XMLToJSON_CheckType :

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. Dans la règle XML vers JSON défaillante, notez les valeurs spécifiées dans <OutputVariable>.

    Voici un exemple de règle XML vers JSON comportant un élément <OutputVariable> manquant

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>request</OutputVariable>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
  3. Déterminez le type de variable spécifié dans les éléments <Source> et <OutputVariable> :

    1. Recherchez le code dans le groupe de proxys d'API, où chacune de ces variables a été définie en premier.
    2. Une fois que vous avez identifié la règle où la variable est définie et renseignée en premier, vous devez déterminer le type de cette variable comme suit :
      1. Vérifiez la valeur de l'attribut "type" (le cas échéant).
      2. En l'absence d'attribut "type", la variable est considérée comme une chaîne.
    3. Si le type de la variable spécifiée dans <Source> est string, alors que le type de <OutputVariable> est "message" ou inversement, il s'agit de la cause de l'erreur. Pour en savoir plus sur les variables courantes et leurs types, consultez la documentation de référence sur les variables.

    Prenons l'exemple d'une règle Assign Message utilisée pour définir la valeur d'une variable appelée TrackingNumber, comme indiqué ci-dessous :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    Notez que le type de variable défini via <AssignVariable> est "chaîne". Ainsi, la variable TrackingNumber est de type "chaîne".

    À présent, rappelez-vous que la variable TrackingNumber est utilisée dans l'élément <Source> de la règle XML vers JSON :

    <Source>TrackingNumber</Source>
    

    De même, rappelez-vous que la variable request est utilisée dans l'élément <OutputVariable> de la règle XML vers JSON :

    <OutputVariable>request</OutputVariable>
    

    Étant donné que TrackingNumber est de type string alors que la variable response est de type message, ces types sont incompatibles. Vous obtenez donc le code d'erreur suivant :

    steps.xml2json.InCompatibleTypes
    

    L'erreur ci-dessus peut également se produire si la variable de l'élément <Source> est de type message, alors que la variable de l'élément <OutputVariable> est de type chaîne.

Solution

Assurez-vous que le type de la variable définie dans l'élément <Source> et dans l'élément <OutputVariable> est le même. Il est obligatoire que les types des variables contenues dans l'élément <Source> et dans l'élément <OutputVariable> correspondent.

Pour corriger la règle XML vers JSON mentionnée ci-dessus, vous pouvez déclarer une autre variable TrackingNumber_output de type string à l'aide de la règle Assign Message et utiliser cette variable dans l'élément <OutputVariable> de la règle XML vers JSON.

Modification de la règle Assign Message :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
    <DisplayName>Assign_TrackingNumber</DisplayName>
    <Properties/>
    <AssignVariable>
        <Name>TrackingNumber</Name>
        <Value><![CDATA[<Code>560098</Code>]]></Value>
        <Ref/>
    </AssignVariable>
    <AssignVariable>
        <Name>TrackingNumber_output</Name>
        <Ref/>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Règle XML vers JSON modifiée :

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
      <DisplayName>XMLToJSON_CheckType</DisplayName>
      <Properties/>
      <Format>google</Format>
      <OutputVariable>TrackingNumber_output</OutputVariable>
      <Source>TrackingNumber</Source>
  </XMLToJSON>

InvalidSourceType

Code d'erreur

steps.xml2json.InvalidSourceType

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

Cause

Cette erreur se produit si le type de la variable utilisé pour définir l'élément <Source> est invalide. Les types de variables valides sont message et string.

Diagnostic

  1. Identifiez le type de source invalide utilisé dans la règle XML vers JSON. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le type invalide est "entier".

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. Examinez toutes les règles XML vers JSON dans le proxy d'API spécifique où l'échec s'est produit. Dans la règle XML vers JSON défaillante, notez le nom de la variable spécifiée dans <Source>.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>BookCode</Source>
    </XMLToJSON>
    
  3. Déterminez le type de variable spécifié dans l'élément <Source> :

    1. Recherchez le code dans le groupe de proxys de l'API où cette variable a été définie en premier.
    2. Une fois que vous avez identifié la règle où la variable est définie et renseignée en premier, vous devez déterminer le type de cette variable comme suit :
      1. Vérifiez la valeur de l'attribut "type" (le cas échéant).
      2. En l'absence d'attribut "type", la variable est considérée comme une chaîne.
    3. Si le type de la variable spécifiée dans <Source> n'est ni message, ni string, il s'agit de la cause de l'erreur. Pour en savoir plus sur les variables courantes et leurs types, consultez la documentation de référence sur les variables.

    À titre d'exemple, considérons une règle ExtractVariables utilisée pour extraire la valeur d'une charge utile XML et qui attribue à la variable BookCode la valeur integer, comme indiqué ci-dessous :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract_BookCode">
        <DisplayName>Extract_BookCode</DisplayName>
        <Properties/>
        <Source>request</Source>
        <XMLPayload stopPayloadProcessing="false">
            <Variable name="BookCode" type="integer">
                <XPath>/root/BookCode</XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    À présent, rappelez-vous que la variable BookCode est utilisée dans l'élément <Source> de la règle XML vers JSON :

    <Source>BookCode</Source>
    

    Comme le type de cette variable est Integer, qui n'est pas un type <Source> valide, le proxy d'API échoue et renvoie l'erreur :

    steps.xml2json.InvalidSourceType
    

Solution

Assurez-vous que le type de la variable utilisée pour spécifier l'élément <Source> est valide. Les types valides <Source> sont message et string.

Pour éviter l'erreur ci-dessus avec une règle XML vers JSON, utilisez la variable request de type message ou toute autre chaîne correspondant à une charge utile XML valide.