Está a ver a documentação do Apigee e do Apigee Hybrid.
    Ver documentação do 
    Apigee Edge.
  
SourceMessageNotAvailable
Código de erro
steps.extractvariables.SourceMessageNotAvailable
Corpo da resposta de erro
{
  "fault": {
      "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]",
      "detail": {
          "errorcode": "steps.extractvariables.SourceMessageNotAvailable"
      }
  }
}
Causa
Este erro ocorre se a variável message especificada no elemento<Source> da política Extract Variables for:
- Fora do âmbito (não disponível no fluxo específico em que a política está a ser executada) ou
- não é possível resolver (não está definido)
Por exemplo, este erro ocorre se a política Extract Variables for executada no fluxo de pedidos, mas o elemento <Source> estiver definido para a variável response ou error, que não existe no fluxo de pedidos.
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro e o nome da variável que não está disponível. Pode encontrar ambos os itens no elemento - faultstringda resposta de erro. Por exemplo, na faultstring seguinte, o nome da política é- ExtractVariables-1e a variável é- response:- "faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"
- No XML da política de variáveis de extração com falha, verifique se o nome da variável definido no elemento corresponde ao nome da variável identificado na string de falha (passo n.º 1 acima). Por exemplo, a seguinte política Extract Variables especifica uma variável denominada - responseno elemento, que corresponde ao que está na string de falha:- <ExtractVariables name="ExtractVariables-1"> <Source>response</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
- Determinar se a variável usada no elemento - <Source>está definida e disponível no fluxo no qual a política Extract Variables está a ser executada.
- Se a variável for: - Fora do âmbito (não disponível no fluxo específico em que a política está a ser executada) ou
- não é possível resolver (não está definido)
 - Nesse caso, essa é a causa do erro. - Por exemplo, suponhamos que a política Extract Variables apresentada acima é executada no fluxo de pedido. Recorde que a variável - responseé usada no elemento- <Source>da política Extrair variáveis. A variável- responsesó está disponível no fluxo de respostas.- Uma vez que a variável - responsenão existe no fluxo de pedidos, recebe o código de erro:- steps.extractvariables.SourceMessageNotAvailable.
Resolução
Certifique-se de que a variável definida no elemento <Source> da política Extract Variables com falha está definida e existe no fluxo onde a política é executada.
Para corrigir a política Extract Variables de exemplo apresentada acima, pode modificar o elemento <Source> para usar a variável request tal como existe no fluxo de pedidos:
<ExtractVariables name="ExtractVariables-1">
    <Source>request</Source>
    <URIPath>
        <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
    </URIPath>
    <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
SetVariableFailed
Código de erro
steps.extractvariables.SetVariableFailed
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.SetVariableFailed"
        }
    }
}
Causa
Este erro ocorre se a política Extract Variables não conseguir definir o valor para uma variável. Geralmente, isto acontece se tentar atribuir valores a várias variáveis cujos nomes começam pelas mesmas palavras num formato aninhado separado por pontos.
Por exemplo, suponhamos que cria/atribui um valor a uma variável var.color.  Neste caso, color é atribuído como um nó de objeto. Se tentar atribuir um valor a outra variável var.color.next, a atribuição falha porque color já está alocada e não é permitido alocar outra variável à mesma.
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro e o nome da variável para a qual não foi possível definir o valor. Pode encontrar ambos os itens no elemento - faultstringda resposta de erro. Por exemplo, na seguinte string de falha, o nome da política é- ExtractColorse a variável é- var.color.next:- "faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"
- No XML da política Extract Variables com falha, verifique se o nome da variável corresponde ao nome da variável identificado na string de falha (passo n.º 1 acima). Por exemplo, a seguinte política tenta atribuir um valor de um parâmetro de consulta de pedido a uma variável denominada - var.color.next(o valor que aparece na string de falha):- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractColors"> <DisplayName>ExtractColors</DisplayName> <Source>request</Source> <QueryParam name="color"> <Pattern ignoreCase="true">{color}</Pattern> </QueryParam> <QueryParam name="nextcolor"> <Pattern ignoreCase="true">{color.next}</Pattern> </QueryParam> <VariablePrefix>var</VariablePrefix> </ExtractVariables>
- Examine todos os nomes de variáveis usados na política Extract Variables com falha. Se tiver atribuído um valor a outra variável cujo nome comece pelo mesmo nome que o nome da variável identificado na string de falha (passo n.º 1 acima), essa é a causa do erro. - No exemplo da política Extract Variables apresentado acima, repare que: - O valor do parâmetro de consulta denominado coloré primeiro atribuído a uma variávelvar.color(Nota:varé o prefixo de todas as variáveis, conforme definido no elemento<VariablePrefix>)
- Na atribuição seguinte, o valor do parâmetro de consulta nextcoloré atribuído a outra variávelvar.color.next.
- Uma vez que o var.colorjá está atribuído, a política Extract Variables não pode atribuir outra variável aninhadavar.color.next. Assim, recebe o código de erro:steps.extractvariables.SetVariableFailed
 
- O valor do parâmetro de consulta denominado 
Resolução
Certifique-se de que não tem vários nomes de variáveis cujos nomes comecem pelas mesmas palavras aninhadas no formato separado por pontos.
Para corrigir a política Extract Variables apresentada acima, pode modificar o nome da variável var.color.next para usar o nome da variável var.nextcolor.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractColors">
    <DisplayName>ExtractColors</DisplayName>
    <Source>request</Source>
    <QueryParam name="color">
        <Pattern ignoreCase="true">{color}</Pattern>
    </QueryParam>
    <QueryParam name="nextcolor">
        <Pattern ignoreCase="true">{nextcolor}</Pattern>
    </QueryParam>
    <VariablePrefix>var</VariablePrefix>
</ExtractVariables>
Mais informações
Para mais detalhes, consulte esta publicação da comunidade.
InvalidJSONPath
Código de erro
steps.extractvariables.InvalidJSONPath
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "Invalid JSON path [path_name] in policy [policy_name].",
        "detail": {
            "errorcode": "steps.extractvariables.InvalidJSONPath"
        }
    }
}
Causa
Este erro ocorre se for usado um caminho JSON inválido no elemento <JSONPath> da política Extract Variables. Por exemplo, se um payload JSON não tiver o objeto Name, mas especificar Name como o caminho na política Extract Variables, ocorre este erro.
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro e o caminho JSON inválido. Pode encontrar ambos os itens no elemento - faultstringda resposta de erro. Por exemplo, na seguinte string de falha, o nome da política é- ExtractJSONVariablese o caminho JSON inválido é- $.Name:- "faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."
- No XML da política Extract Variables com falha, verifique se o caminho JSON definido no elemento - <JSONPath>corresponde ao caminho identificado na string de falha (passo n.º 1 acima). Por exemplo, a seguinte política Extract Variables especifica o caminho JSON- $.Name, que corresponde ao que está na string de falha:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>response</Source> <JSONPayload> <Variable name="name" type="string"> <JSONPath>$.Name</JSONPath> </Variable> </JSONPayload> <VariablePrefix>employee</VariablePrefix> </ExtractVariables>
- Examine o elemento - <Source>e determine de que payload JSON está a tentar extrair a variável. Por exemplo, se o elemento- <Source>estiver definido como- request, a política está a extrair o payload JSON do objeto de pedido. Se estiver definido como- response, é o objeto de resposta.- No exemplo da política Extract Variables apresentado acima, o elemento - <Source>está definido como- response, pelo que as variáveis estão a ser extraídas da carga útil JSON da resposta.- <Source>response</Source>
- Examine o payload JSON adequado (determinado no passo n.º 3) e valide se tem o objeto especificado no elemento - <JSONPath>. Se o payload JSON não tiver esse objeto, essa é a causa do erro.- Por exemplo, considere que está a tentar extrair variáveis do seguinte payload de resposta JSON: - { "firstName":"John", "lastName":"Doe", "city":"San Jose", "state":"CA" }- Uma vez que o payload da resposta JSON não tem o objeto - Name, a política Extract Variables falha com o erro que recebe o código de erro:- steps.extractvariables.InvalidJSONPath.
Resolução
Certifique-se de que apenas os objetos que fazem parte do payload JSON do qual as variáveis estão a ser extraídas são especificados no elemento <JSONPath> da política Extract Variables.
Para corrigir a política Extract Variables de exemplo apresentada acima, pode modificar o elemento <JSONPath> para especificar um dos objetos disponíveis no payload de resposta JSON de exemplo (por exemplo, os objetos firstName e lastName são válidos):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables">
    <Source>response</Source>
    <JSONPayload>
        <Variable name="name" type="string">
           <JSONPath>$.firstName</JSONPath>
        </Variable>
    </JSONPayload>
    <VariablePrefix>employee</VariablePrefix>
</ExtractVariables>
ExecutionFailed
Código de erro
steps.extractvariables.ExecutionFailed
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "Failed to execute the ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.ExecutionFailed"
        }
    }
}
Causas possíveis
As possíveis causas deste erro são:
| Causa | Descrição | 
| Payload de entrada em falta | O payload de entrada (JSON, XML) está vazio. | 
| Entrada inválida ou com formato incorreto | A entrada (JSON, XML, etc.) transmitida à política é inválida ou tem um formato incorreto. | 
Causa: payload de entrada em falta
Este erro ocorre se a política Extract Variables (Extrair variáveis) se destinar a extrair as variáveis de um payload JSON ou XML, mas o conteúdo (payload) da variável especificada no elemento <Source> estiver vazio.
Por exemplo, se o elemento <Source> na política Extract Variables estiver definido como request ou response e se destinarem a conter uma carga útil JSON ou XML, mas a carga útil estiver vazia, ocorre o erro.
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro. Pode encontrar estas informações no elemento faultstring da resposta de erro. Por exemplo, na faultstring seguinte, o nome da política é - ExtractJSONVariables:- "faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"
- Examine o elemento - <Source>no XML de variáveis de extração com falhas e determine o tipo de entrada a partir do qual as variáveis estão a ser extraídas. Por exemplo, a seguinte política Extract Variables tem o elemento- <Source>definido como- responsee está a extrair as variáveis do payload XML:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractXMLVariables" async="false" continueOnError="false" enabled="true"> <XMLPayload> <Namespaces/> <Variable name="City" type="string"> <XPath>/city</XPath> </Variable> </XMLPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
- Verifica se a entrada que está a ser analisada pela política Extract Variables está vazia. Se a entrada estiver vazia, essa é a causa do erro. - No exemplo da política Extract Variables apresentado acima, a carga útil da resposta (ou seja, o corpo da resposta) enviada pelo servidor de back-end estava vazia. - Uma vez que a carga útil da resposta XML está vazia, recebe o código de erro: - steps.extractvariables.ExecutionFailed- Este erro também pode ocorrer se o elemento - <Source>estiver definido como- request, mas não for transmitido nenhum payload no pedido de proxy da API. Por exemplo:- curl -v "http://$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/xml"- Em que - $EXTERNAL_IPé o endereço IP do balanceador de carga externo. Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo Personalize o encaminhamento de acesso.- A política Extract Variables só realiza a extração de XML quando o cabeçalho - Content-Typeda mensagem é- application/xml,- text/xmlou- application/*+xml. Tem de transmitir o cabeçalho Content-Type como- application/xml,- text/xmlou- application/*+xmlse quiser que a política Extract Variables analise uma carga útil de pedido XML.
Resolução
Certifique-se de que a entrada transmitida à política Extract Variables é válida e não está vazia.
Para corrigir o problema com a política Extract Variables de exemplo apresentada acima, transmita uma carga útil XML válida. Por exemplo:
- Crie um ficheiro denominado - city.xmlcom o seguinte conteúdo:- <city>Bengaluru</city> <area>Sanjaynagar</area>
- Faça a chamada da API através de um comando cURL da seguinte forma: - curl -v "http://$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml- Em que - $EXTERNAL_IPé o endereço IP do balanceador de carga externo. Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo Personalize o encaminhamento de acesso.
Causa: entrada inválida ou com formato incorreto
Se a política Extrair variáveis analisar uma entrada inválida ou com formato incorreto, recebe este erro.
Por exemplo, se o seguinte JSON inválido for fornecido como entrada para a política Extract Variables, recebe este erro.
[
    "args": ["name" : "amar" ]
]
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro. Pode encontrar estas informações no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o nome da política é- ExtractJSONVariables:- "faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"
- Examine o elemento - <Source>no XML de variáveis de extração com falhas e determine o tipo de entrada a partir do qual as variáveis estão a ser extraídas. Por exemplo, a seguinte política Extract Variables tem o elemento- <Source>definido como- requeste está a extrair as variáveis do payload JSON:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> </ExtractVariables>
- Verifique se a entrada que está a ser analisada pela política Extract Variables é válida. Se a entrada for inválida ou tiver um formato incorreto, essa é a causa do erro. - No exemplo da política Extract Variables apresentado acima, o seguinte JSON inválido foi transmitido à política Extract Variables - [ "args": ["name" : "amar" ] ]- Segue-se o exemplo de chamada da API que mostra como o pedido foi transmitido: - curl -v "http://<$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'- Em que - $EXTERNAL_IPé o endereço IP do balanceador de carga externo. Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo Personalize o encaminhamento de acesso.- O payload JSON transmitido à API é inválido, pois contém uma matriz com parênteses retos ( - [ ]). Por isso, recebe o código de erro:- steps.extractvariables.ExecutionFailed- Este erro também pode ocorrer se o elemento - <Source>tiver sido definido como- response, mas a carga útil da resposta JSON for inválida ou tiver um formato incorreto.
Resolução
Certifique-se de que a entrada transmitida à política Extract Variables é válida e não tem um formato incorreto.
Para corrigir o problema com a política Extract Variables de exemplo abordada acima, transmita um pedido de payload JSON válido da seguinte forma:
{
   "args":{
      "name":"amar"
   }
}
UnableToCast
Código de erro
steps.extractvariables.UnableToCast
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "Unable to cast value [value] as [type].",
        "detail": {
            "errorcode": "steps.extractvariables.UnableToCast"
        }
    }
}
Causa
Este erro ocorre se a política Extract Variables não conseguir converter o valor extraído numa variável. Normalmente, isto acontece se tentar definir o valor de um tipo de dados para uma variável de outro tipo de dados.
Por exemplo, se a política de extração de variáveis tentar definir um valor que foi extraído de uma variável de string para uma variável de número inteiro, é apresentado este erro.
Diagnóstico
- Identifique o tipo de dados da variável para a qual a política Extract Variables está a tentar fazer a conversão e falha. Pode encontrar estas informações no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o tipo de objeto é- BOOLEAN:- "faultstring":"Unable to cast value 36.231 as BOOLEAN."
- Identifique a política Extract Variables onde está a tentar definir o valor para uma variável do tipo determinado no passo n.º 1. - Por exemplo, a seguinte política Extract Variables extrai o valor de um - $.latitudeJSONPath para uma variável do tipo- boolean, que corresponde ao que está na string de falha:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="latitude" type="boolean"> <JSONPath>$.latitude</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
- Examine o tipo de dados do valor que está a ser extraído. Os dados podem estar no formato de cabeçalhos, caminhos de URI, payloads JSON/XML, parâmetros de formulário e parâmetros de consulta. 
- Verifique se o tipo de dados determinado no passo n.º 3 e o tipo de dados da variável à qual os dados estão a ser atribuídos (determinado no passo n.º 2) são iguais. 
- Se o tipo de dados das variáveis de origem e de destino não for o mesmo, essa é a causa do erro. - No exemplo da política Extract Variables apresentado acima, considere que a carga útil do pedido JSON é a seguinte: - { "latitude":36.2312 }- O tipo de dados do valor que está a ser extraído de - <JSONPath>,- '$.latitude', é um número inteiro, que está a ser atribuído a uma variável do tipo de dados booleano.- Uma vez que o tipo de dados do valor extraído e o tipo de dados da variável à qual o valor está a ser atribuído não são os mesmos, recebe o código de erro: - steps.extractvariables.UnableToCast.
Resolução
Certifique-se de que o tipo de dados do valor extraído e da variável à qual o conteúdo está a ser atribuído são do mesmo tipo.
Para corrigir o exemplo da política de variáveis de extração, tem de modificar o tipo da variável para Número inteiro:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="latitude" type="integer">
            <JSONPath>$.latitude</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response</Source>
</ExtractVariables>
JsonPathParsingFailure
Código de erro
steps.extractvariables.JsonPathParsingFailure
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for for flow variables [variable_name]",
        "detail": {
            "errorcode": "steps.extractvariables.JsonPathParsingFailure"
        }
    }
}
Causa
Este erro ocorre quando a política Extract Variables não consegue analisar um caminho JSON e extrair dados da variável de fluxo especificada no elemento <Source>. Normalmente, isto acontece se a variável de fluxo especificada no elemento <Source> não existir no fluxo atual.
Por exemplo, este erro ocorre se a política Extract Variables for executada no fluxo de resposta e esperar analisar um caminho JSON, mas o elemento <Source> especificar a variável de fluxo request.content, que não existe no fluxo de resposta.
Diagnóstico
- Identifique a política Extract Variables onde ocorreu o erro e o nome da variável de fluxo para a qual não foi possível extrair dados. Pode encontrar ambos os itens no elemento faultstring da resposta de erro. Por exemplo, na faultstring seguinte, o nome da política é - ExtractVariables-1e a variável é- request.content:- "faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for for flow variables request.content"
- No XML da política Extract Variables com falha, verifique se o nome da variável definido no elemento - <Source>corresponde ao nome da variável identificado na string de falha (passo n.º 1 acima). Por exemplo, a seguinte política Extract Variables especifica uma variável denominada- request.content, que corresponde ao que está em faultstring:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request.content</Source> </ExtractVariables>
- Valide se a variável de fluxo usada no elemento - <Source>está definida e disponível no fluxo no qual a política Extract Variables está a ser executada.
- Se a variável for: - Fora do âmbito (não disponível no fluxo específico em que a política está a ser executada) ou
- não é possível resolver (não está definido)
 - Nesse caso, essa é a causa do erro. - Por exemplo, suponhamos que a política ExtractVariables apresentada acima deve ser executada no fluxo de resposta. Recorde que a variável de fluxo - request.contenté usada no elemento- <Source>da política Extrair variáveis. A variável de fluxo- request.contentsó está disponível no fluxo de pedidos.- Uma vez que a variável - responsenão existe no fluxo de pedidos, recebe o código de erro:- steps.extractvariables.JsonPathParsingFailure.
Resolução
Certifique-se de que a variável de fluxo usada no elemento <Source> da política Extract Variables está disponível no fluxo no qual a política Extract Variables é executada.
Por exemplo, suponha que existe uma variável denominada response.content no fluxo de resposta e que, na verdade, contém o JSON que quer extrair. Para corrigir a política Extract
Variables apresentada acima, pode modificar o elemento <Source> da seguinte forma:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="Name" type="string">
            <JSONPath>$.args.name</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response.content</Source>
</ExtractVariables>