Değişkenleri Ayıklama çalışma zamanı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

SourceMessageNotAvailable

Hata kodu

steps.extractvariables.SourceMessageNotAvailable

Hata yanıtı gövdesi

{
  "fault": {
      "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]",
      "detail": {
          "errorcode": "steps.extractvariables.SourceMessageNotAvailable"
      }
  }
}

Neden

Bu hata, Değişkenleri Ayıklama politikasının <Source> öğesinde belirtilen message değişkeni şu durumlarda oluşur:

  • kapsam dışı (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
  • çözümlenemiyor (tanımlanmamış)

Örneğin, Değişkenleri Ayıkla politikası istek akışında yürütülürse ancak <Source> öğesi istek akışında bulunmayan response veya error değişkenine ayarlanırsa bu hata oluşur.

Teşhis

  1. Hatayı içeren Değişkenleri Çıkarma politikasını ve kullanılamayan değişkenin adını belirleyin. Bu öğelerin ikisini de hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde politika adı ExtractVariables-1, değişken ise response'dir:

    "faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"

  2. Başarısız olan Değişkenleri Çıkarma politikası XML'sinde, öğede ayarlanan değişken adının hata dizesinde tanımlanan değişken adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki Değişkenleri Çıkar politikası, öğede response adlı bir değişken belirtir. Bu değişken, hata dizesindekiyle eşleşir:

    <ExtractVariables name="ExtractVariables-1">
        <Source>response</Source>
        <URIPath>
            <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
        </URIPath>
        <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. <Source> öğesinde kullanılan değişkenin, Değişkenleri Çıkar politikasının yürütüldüğü akışta tanımlanıp tanımlanmadığını ve kullanılabilir olup olmadığını belirleyin.

  4. Değişken şu durumlarda:

    • kapsam dışı (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
    • çözümlenemiyor (tanımlanmamış)

    Bu durumda hatanın nedeni budur.

    Örneğin, yukarıda gösterilen Değişkenleri Çıkar politikası istek akışında yürütülüyor olsun. response değişkeninin, Değişkenleri Çıkar politikasının <Source> öğesinde kullanıldığını hatırlayın. response değişkeni yalnızca yanıt akışında kullanılabilir.

    response değişkeni istek akışında mevcut olmadığından steps.extractvariables.SourceMessageNotAvailable hata kodunu alırsınız.

Çözünürlük

Başarısız olan Değişkenleri Çıkar politikasının <Source> öğesinde ayarlanan değişkenin, politikanın yürütüldüğü akışta tanımlandığından ve mevcut olduğundan emin olun.

Yukarıda gösterilen örnek Değişkenleri Çıkarma politikasını düzeltmek için <Source> öğesini, istek akışında bulunduğu şekliyle request değişkenini kullanacak şekilde değiştirebilirsiniz:

<ExtractVariables name="ExtractVariables-1">
    <Source>request</Source>
    <URIPath>
        <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
    </URIPath>
    <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>

SetVariableFailed

Hata kodu

steps.extractvariables.SetVariableFailed

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.SetVariableFailed"
        }
    }
}

Neden

Değişkenleri Çıkar politikası değeri bir değişkene ayarlayamadıysa bu hata oluşur. Bu durum genellikle, adları iç içe nokta ile ayrılmış bir biçimde aynı kelimelerle başlayan birden fazla değişkene değer atamaya çalıştığınızda meydana gelir.

Örneğin, var.color değişkenine bir değer oluşturduğunuzu/atadığınızı varsayalım. Bu durumda, color bir nesne düğümü olarak ayrılır. Daha sonra başka bir değişkene var.color.next değer atamaya çalışırsanız color zaten ayrıldığı ve başka bir değişkenin ayrılmasına izin verilmediği için bu işlem başarısız olur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikasını ve değeri ayarlanamayan değişkenin adını belirleyin. Bu öğelerin ikisini de hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde politika adı ExtractColors, değişken ise var.color.next'dir:

    "faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"

  2. Başarısız olan Extract Variables (Değişkenleri Çıkar) politikası XML'sinde, değişken adının hata dizesinde (yukarıdaki 1. adım) tanımlanan değişken adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politika bir istek sorgu parametresinden gelen değeri var.color.next adlı bir değişkene (hata dizesinde görünen değer) atamaya çalışır:

    <?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>
    
  3. Başarısız olan Değişkenleri Çıkar politikasında kullanılan tüm değişken adlarını inceleyin. Adı, hata dizesinde tanımlanan değişken adıyla (yukarıdaki 1. adım) aynı adla başlayan başka bir değişkene değer atadıysanız hatanın nedeni budur.

    Yukarıda gösterilen örnek Değişkenleri Çıkarma politikasında şunlara dikkat edin:

    • color adlı sorgu parametresinin değeri önce var.color adlı bir değişkene atanır(Not: var, <VariablePrefix> öğesinde ayarlanan tüm değişkenlerin önekidir).
    • Bir sonraki atamada, nextcolor sorgu parametresinin değeri başka bir değişkene (var.color.next) atanır.
    • var.color zaten ayrıldığı için Değişkenleri Çıkarma politikası başka bir iç içe değişken var.color.next ayıramaz. Bu nedenle şu hata kodunu alırsınız: steps.extractvariables.SetVariableFailed

Çözünürlük

  1. Adları aynı kelimelerle başlayan ve nokta ile ayrılmış biçimde iç içe yerleştirilmiş birden fazla değişken adınız olmadığından emin olun.

    Yukarıda gösterilen Değişkenleri Çıkar politikasını düzeltmek için değişken adını var.color.next, değişken adı var.nextcolor. olarak değiştirebilirsiniz.

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

Daha Fazla Bilgi

Daha fazla bilgi için bu topluluk gönderisini inceleyin.

InvalidJSONPath

Hata kodu

steps.extractvariables.InvalidJSONPath

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "Invalid JSON path [path_name] in policy [policy_name].",
        "detail": {
            "errorcode": "steps.extractvariables.InvalidJSONPath"
        }
    }
}

Neden

Bu hata, Değişkenleri Çıkarma politikasının <JSONPath> öğesinde geçersiz bir JSON yolu kullanıldığında oluşur. Örneğin, bir JSON yükünde Name nesnesi yoksa ancak Değişkenleri Çıkar politikasında yol olarak Name belirtirseniz bu hata oluşur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikasını ve geçersiz JSON yolunu belirleyin. Bu öğelerin ikisini de hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde politika adı ExtractJSONVariables, geçersiz JSON yolu ise $.Name'dir:

    "faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."

  2. Başarısız olan Extract Variables politikası XML'sinde, <JSONPath> öğesinde ayarlanan JSON yolunun hata dizesinde tanımlanan yolla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki Değişkenleri Çıkar politikası, hata dizesindekiyle eşleşen $.Name JSON yolunu belirtir:

    <?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>
    
  3. <Source> öğesini inceleyin ve değişkeni hangi JSON yükünden çıkarmaya çalıştığınızı belirleyin. Örneğin, <Source> öğesi request olarak ayarlanırsa politika, JSON yükünü istek nesnesinden çıkarır. response olarak ayarlanırsa yanıt nesnesi olur.

    Yukarıda gösterilen örnek Değişkenleri Ayıkla politikasında <Source> öğesi response olarak ayarlanmıştır. Bu nedenle, değişkenler yanıtın JSON yükünden ayıklanır.

    <Source>response</Source>

  4. Uygun JSON yükünü (3. adımda belirlenir) inceleyin ve <JSONPath> öğesinde belirtilen nesnenin yükte olup olmadığını doğrulayın. JSON yükünde bu nesne yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki JSON yanıtı yükünden değişkenleri ayıklamaya çalıştığınızı düşünün:

    {
      "firstName":"John",
      "lastName":"Doe",
      "city":"San Jose",
      "state":"CA"
    }
    

    JSON yanıtı yükünde Name nesnesi olmadığından Değişkenleri Çıkarma politikası, steps.extractvariables.InvalidJSONPath hata koduyla başarısız olur.

Çözünürlük

  1. Değişkenlerin çıkarıldığı JSON yükünün bir parçası olan nesnelerin yalnızca Değişkenleri Çıkar politikasının <JSONPath> öğesinde belirtildiğinden emin olun.

    Yukarıda gösterilen örnek Değişkenleri Çıkar politikasını düzeltmek için <JSONPath> öğesini değiştirerek örnek JSON yanıtı Yükü'nde bulunan nesnelerden birini belirtebilirsiniz (örneğin, firstName ve lastName nesneleri geçerlidir):

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

Hata kodu

steps.extractvariables.ExecutionFailed

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "Failed to execute the ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.ExecutionFailed"
        }
    }
}

Olası nedenler

Bu hatanın olası nedenleri şunlardır:

Neden Açıklama
Eksik giriş yükü Giriş yükü (JSON, XML) boş.
Geçersiz veya Hatalı Giriş (Invalid or Malformed Input) Politikaya iletilen giriş (JSON, XML vb.) geçersiz veya hatalı biçimlendirilmiş.

Neden: Giriş yükü eksik

Değişkenleri ayıklama politikası, değişkenleri bir JSON veya XML yükünden ayıklaması gerekirken <Source> öğesinde belirtilen değişkenin içeriği (yük) boşsa bu hata oluşur.

Örneğin, Değişkenleri Çıkar politikasındaki <Source> öğesi request veya response olarak ayarlanmışsa ve JSON ya da XML yükü içermesi gerekiyorsa ancak yük boşsa hata oluşur.

Teşhis

  1. Hatayı içeren Değişkenleri Çıkarma politikasını belirleyin. Bu bilgileri hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde politika adı ExtractJSONVariables'dır:

    "faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"

  2. Başarısız olan Değişkenleri Çıkar XML'sindeki <Source> öğesini inceleyin ve değişkenlerin çıkarıldığı giriş türünü belirleyin. Örneğin, aşağıdaki Değişkenleri Çıkar politikası, <Source> öğesi response olarak ayarlanmış ve değişkenleri XML yükünden çıkarıyor:

    <?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>
    
    
  3. Değişkenleri Ayıklama politikası tarafından ayrıştırılan girişin boş olup olmadığını kontrol edin. Giriş boşsa hatanın nedeni budur.

    Yukarıda gösterilen örnek Değişkenleri Ayıkla politikasında, arka uç sunucusu tarafından gönderilen yanıt yükü (yani yanıt gövdesi) boştu.

    XML yanıtı yükü boş olduğundan şu hata kodunu alırsınız:

    steps.extractvariables.ExecutionFailed

    Bu hata, <Source> öğesi request olarak ayarlanmışsa ancak API proxy isteğinde yük geçirilmemişse de oluşabilir. Örneğin:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml"
    

    Değişkenleri Ayıkla politikası, yalnızca mesajın Content-Type başlığı application/xml, text/xml veya application/*+xml olduğunda XML ayıklama işlemi gerçekleştirir. Değişkenleri Ayıkla politikasının bir XML isteği yükünü ayrıştırmasını istiyorsanız Content-Type üstbilgisini application/xml, text/xml veya application/*+xml olarak iletmeniz gerekir.

Çözünürlük

Değişkenleri Ayıkla politikasına iletilen girişin geçerli ve boş olmadığından emin olun.

Yukarıda gösterilen örnek Değişkenleri Çıkarma politikasıyla ilgili sorunu düzeltmek için geçerli bir XML yükü iletin. Örneğin:

  1. Aşağıdaki içeriğe sahip city.xml adlı bir dosya oluşturun:

    <city>Bengaluru</city>
    <area>Sanjaynagar</area>
    
  2. Aşağıdaki gibi bir cURL komutu kullanarak API çağrısı yapın:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml
    
    

Neden: Geçersiz veya Hatalı Giriş

Değişkenleri Ayıkla politikası, geçersiz veya hatalı biçimlendirilmiş girişi ayrıştırırsa bu hatayı alırsınız.

Örneğin, Değişkenleri Çıkar politikasında giriş olarak aşağıdaki geçersiz JSON sağlanırsa bu hatayı alırsınız.

[
    "args": ["name" : "amar" ]
]

Teşhis

  1. Hatayı içeren Değişkenleri Çıkarma politikasını belirleyin. Bu bilgileri hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring içinde politika adı ExtractJSONVariables'dir:

    "faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"

  2. Başarısız olan Değişkenleri Çıkar XML'sindeki <Source> öğesini inceleyin ve değişkenlerin çıkarıldığı giriş türünü belirleyin. Örneğin, aşağıdaki Değişkenleri Çıkarma politikası, <Source> öğesini request olarak ayarlamış ve değişkenleri JSON yükünden çıkarıyor:

    <?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>
    
    
  3. Değişkenleri Ayıkla politikası tarafından ayrıştırılan girişin geçerli olup olmadığını kontrol edin. Giriş geçersizse veya hatalı biçimlendirilmişse hatanın nedeni budur.

    Yukarıda gösterilen örnek Değişkenleri Çıkarma politikasında, Değişkenleri Çıkarma politikasına aşağıdaki geçersiz JSON iletilmiştir.

    [
        "args": ["name" : "amar" ]
    ]
    

    İsteğin nasıl iletildiğini gösteren örnek API çağrısını aşağıda bulabilirsiniz:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'
    

    API'ye iletilen JSON yükü, köşeli parantez ([ ]) içeren bir dizi içerdiğinden geçersizdir. Bu nedenle şu hata kodunu alırsınız:

    steps.extractvariables.ExecutionFailed
    

    Bu hata, <Source> öğesi response olarak ayarlanmışsa ancak JSON yanıt yükü geçersiz veya hatalı biçimlendirilmişse de oluşabilir.

Çözünürlük

Değişkenleri Ayıkla politikasına iletilen girişin geçerli ve hatalı biçimlendirilmemiş olduğundan emin olun.

Yukarıda bahsedilen örnek Değişkenleri Çıkarma politikasıyla ilgili sorunu düzeltmek için geçerli bir JSON yükü isteğini aşağıdaki gibi iletin:

{
   "args":{
      "name":"amar"
   }
}

UnableToCast

Hata kodu

steps.extractvariables.UnableToCast

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "Unable to cast value [value] as [type].",
        "detail": {
            "errorcode": "steps.extractvariables.UnableToCast"
        }
    }
}

Neden

Bu hata, Değişkenleri Çıkar politikası çıkarılan değeri değişkene dönüştüremediğinde oluşur. Bu durum genellikle bir veri türünün değerini başka bir veri türünün değişkenine ayarlamaya çalıştığınızda meydana gelir.

Örneğin, Değişkeni Çıkar politikası bir dize değişkeninden çıkarılan bir değeri bir tam sayı değişkenine ayarlamaya çalışırsa bu hatayı görürsünüz.

Teşhis

  1. Değişkenleri Ayıkla politikasının yayınlamaya çalıştığı ve başarısız olduğu değişkenin veri türünü belirleyin. Bu bilgileri hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring içinde nesne türü BOOLEAN'dir:

    "faultstring":"Unable to cast value 36.231 as BOOLEAN."

  2. Değeri 1. adımda belirlenen türdeki bir değişkene ayarlamaya çalıştığınız Extract Variables (Değişkenleri Çıkarma) politikasını belirleyin.

    Örneğin, aşağıdaki Değişkenleri Ayıkla politikası, bir JSONPath $.latitude değerini, hata dizesindekiyle eşleşen boolean türünde bir değişkene ayıklar:

    <?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>
    
    
  3. Ayıklanan değerin veri türünü inceleyin. Veriler; başlıklar, URI yolları, JSON/XML yükleri, form parametreleri ve sorgu parametreleri biçiminde olabilir.

  4. 3. adımda belirlenen veri türü ile verilerin atandığı değişkenin veri türünün (2. adımda belirlenir) aynı olup olmadığını doğrulayın.

  5. Kaynak ve hedef değişkenlerin veri türü aynı değilse hatanın nedeni budur.

    Yukarıda gösterilen örnek Değişkenleri Ayıklama politikasında, JSON isteği yükünün aşağıdaki gibi olduğunu varsayalım:

    {
     "latitude":36.2312
    }
    

    <JSONPath>, ‘$.latitude’ öğesinden çıkarılan değerin veri türü, Boole veri türündeki bir değişkene atanan bir tam sayıdır.

    Ayıklanan değerin veri türü ile değerin atandığı değişkenin veri türü aynı olmadığından şu hata kodunu alırsınız: steps.extractvariables.UnableToCast.

Çözünürlük

Çıkarılan değerin veri türü ile içeriğin atandığı değişkenin veri türünün aynı olduğundan emin olun.

Örnek Extract Variables politikasını düzeltmek için değişkenin türünü Integer olarak değiştirmeniz gerekir:

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

Hata kodu

steps.extractvariables.JsonPathParsingFailure

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for flow variables [variable_name]",
        "detail": {
            "errorcode": "steps.extractvariables.JsonPathParsingFailure"
        }
    }
}

Neden

Bu hata, Değişkenleri Çıkar politikası bir JSON yolunu ayrıştıramadığında ve <Source> öğesinde belirtilen akış değişkeninden veri çıkaramadığında oluşur. Bu durum genellikle <Source> öğesinde belirtilen akış değişkeni mevcut akışta yoksa ortaya çıkar.

Örneğin, Değişkenleri Ayıklama politikası yanıt akışında yürütülürken ve bir JSON yolunu ayrıştırması beklenirken <Source> öğesi, yanıt akışında bulunmayan request.content akış değişkenini belirtirse bu hata oluşur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikasını ve verilerin çıkarılamadığı akış değişkeninin adını belirleyin. Bu öğelerin ikisini de hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki hata dizesinde politika adı ExtractVariables-1, değişken ise request.content'dir:

    "faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"

  2. Başarısız olan Extract Variables (Değişkenleri Çıkarma) politikası XML'sinde, <Source> öğesinde ayarlanan değişken adının, hata dizesinde (yukarıdaki 1. adım) tanımlanan değişken adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki Değişkenleri Ayıkla politikası, hata dizesindekiyle eşleşen request.content adlı bir değişkeni belirtir:

    <?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>
    
    
  3. <Source> öğesinde kullanılan akış değişkeninin, Değişkenleri Çıkar politikasının yürütüldüğü akışta tanımlanıp tanımlanmadığını ve kullanılabilir olup olmadığını doğrulayın.

  4. Değişken şu durumlarda:

    • kapsam dışı (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
    • çözümlenemiyor (tanımlanmamış)

    Bu durumda hatanın nedeni budur.

    Örneğin, yukarıda gösterilen ExtractVariables politikasının yanıt akışında yürütülmesi gerektiğini varsayalım. Akış değişkeni request.content , Değişkenleri Çıkar politikasının <Source> öğesinde kullanılır. Akış değişkeni request.content yalnızca istek akışında kullanılabilir.

    response değişkeni istek akışında mevcut olmadığından steps.extractvariables.JsonPathParsingFailure hata kodunu alırsınız.

Çözünürlük

Değişkenleri Çıkarma politikasının <Source> öğesinde kullanılan akış değişkeninin, Değişkenleri Çıkarma politikasının yürütüldüğü akışta kullanılabilir olduğundan emin olun.

Örneğin, yanıttaki akışta response.content adlı bir değişkenin bulunduğunu ve bu değişkenin, ayıklamak istediğiniz JSON'u içerdiğini varsayalım. Yukarıda gösterilen ExtractVariables politikasını düzeltmek için <Source> öğesini aşağıdaki şekilde değiştirebilirsiniz:

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