Pemecahan masalah error runtime kebijakan XML ke JSON

Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi Apigee Edge.

SourceUnavailable

Kode error

steps.xml2json.SourceUnavailable

Isi respons error

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

Contoh Pesan Error

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

Penyebab

Error ini terjadi jika variabel string atau message yang ditentukan dalam elemen <Source> dari kebijakan XML ke JSON adalah:

  • di luar cakupan (tidak tersedia dalam alur tertentu tempat kebijakan dijalankan) atau
  • tidak dapat diselesaikan (tidak ditentukan)

Misalnya, error ini terjadi jika kebijakan XML ke JSON seharusnya dijalankan dalam alur permintaan, tetapi elemen <Source> ditetapkan ke variabel response, yang tidak ada dalam alur permintaan.

Diagnosis

  1. Identifikasi kebijakan XML ke JSON tempat terjadinya error dan nama variabel yang tidak tersedia. Anda dapat menemukan kedua item ini di elemen faultstring dalam respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah Convert-XMLToJSON dan variabelnya adalah response:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. Di XML kebijakan XML ke JSON yang gagal, pastikan nama set variabel di elemen <Source> cocok dengan nama variabel yang diidentifikasi dalam string kesalahan (langkah #1 di atas). Misalnya, kebijakan XML ke JSON berikut menentukan variabel bernama response dalam elemen <Source>, yang cocok dengan yang ada di 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. Tentukan apakah variabel yang digunakan dalam elemen <Source> ditentukan dan tersedia dalam alur tempat kebijakan XML ke JSON sedang dieksekusi.

  4. Jika variabelnya adalah:

    • di luar cakupan (tidak tersedia dalam alur tertentu tempat kebijakan dijalankan) atau
    • tidak dapat diselesaikan (tidak ditentukan)

    maka itulah penyebab error.

    Sebagai contoh, misalkan kebijakan XML ke JSON yang ditampilkan di atas seharusnya dieksekusi dalam alur permintaan. Ingatlah bahwa variabel response digunakan dalam elemen <Source> kebijakan XML ke JSON. Variabel respons hanya tersedia di alur respons.

    Karena variabel respons tidak ada dalam alur permintaan, Anda akan menerima kode error:

    steps.xml2json.SourceUnavailable
    

Resolusi

Pastikan variabel yang ditetapkan dalam elemen <Source> dari kebijakan XML ke JSON yang gagal, ditentukan dan ada dalam alur tempat kebijakan dijalankan.

Untuk memperbaiki contoh kebijakan XML ke JSON yang ditampilkan di atas, Anda dapat mengubah elemen <Source> untuk menggunakan variabel request sebagaimana adanya dalam alur permintaan:

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

Kode error

steps.xml2json.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Kemungkinan penyebab

Kemungkinan penyebab error ini adalah:

Penyebab Deskripsi
Payload input tidak ada Payload input (XML) kosong.
Input Tidak Valid atau Salah Format Input (XML) yang diteruskan ke kebijakan XML ke JSON tidak valid atau salah.

Penyebab: Payload input tidak ada

Dalam kebijakan XML ke JSON, jika konten (payload) variabel yang ditentukan dalam elemen <Source> kosong, maka error ini akan terjadi.

Misalnya, jika elemen <Source> dalam kebijakan XML ke JSON ditetapkan sebagai variabel request atau response dan seharusnya berisi payload XML, error ini terjadi jika payload kosong.

Diagnosis

  1. Identifikasi kebijakan XML ke JSON tempat terjadinya error. Anda dapat menemukan informasi ini di elemen faultstring dari respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly  around char 0)"
    
  2. Periksa elemen <Source> dalam XML kebijakan XML ke JSON yang gagal dan tentukan variabel yang ditentukan. Misalnya, kebijakan XML ke JSON berikut memiliki elemen <Source> yang ditetapkan ke permintaan:

    <?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. Periksa apakah variabel yang ditentukan untuk elemen <Source> dalam kebijakan XMLToJSON kosong. Jika kosong, maka itulah penyebab error.

    Dalam contoh kebijakan XML ke JSON yang ditampilkan di atas, payload permintaan (yaitu, isi permintaan) yang dikirim oleh klien kosong.

    Contoh:

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

    Dengan your_host_alias adalah domain yang menghadap publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi dalam properti virtualhosts.hostAliases di file penggantian Anda. Lihat Menentukan penggantian konfigurasi.

    Karena payload permintaan XML kosong, Anda akan menerima kode error:

    steps.xml2json.ExecutionFailed
    

    Error ini juga dapat terjadi jika elemen <Source> disetel ke respons, tetapi payload kosong diteruskan oleh server backend.

Resolusi

Pastikan input yang diteruskan ke kebijakan XML ke JSON melalui elemen <Source> adalah payload XML yang valid dan tidak kosong.

Untuk memperbaiki masalah pada contoh kebijakan XML ke JSON, teruskan payload XML yang valid. Contoh:

  1. Buat file bernama city.xml dengan konten berikut:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    </root>
    
  2. Lakukan panggilan API menggunakan perintah cURL sebagai berikut:

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

    Dengan your_host_alias adalah domain yang menghadap publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi dalam properti virtualhosts.hostAliases di file penggantian Anda. Lihat Menentukan penggantian konfigurasi.

Penyebab: Input Tidak Valid atau Salah Format

Jika kebijakan XML ke JSON mengurai input yang tidak valid atau salah bentuk, Anda akan mendapatkan error ini.

Misalnya, jika XML tidak valid berikut diberikan sebagai input ke kebijakan XML ke JSON,

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

Anda akan mendapatkan error:

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

Diagnosis

  1. Identifikasi kebijakan XML ke JSON tempat terjadinya error. Anda dapat menemukan informasi ini di elemen faultstring dari respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
    
  2. Periksa elemen <Source> yang ditentukan dalam XML kebijakan XML ke JSON yang gagal. Misalnya, kebijakan XML ke JSON berikut memiliki elemen <Source> yang ditetapkan ke variabel 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. Memvalidasi apakah input yang ditentukan dalam elemen <Source> ke kebijakan XML To JSON adalah payload XML yang valid. Jika input tidak valid atau salah format, maka itulah penyebab error.

    Dalam contoh kebijakan XML ke JSON yang ditampilkan di atas, XML tidak valid berikut diteruskan ke kebijakan Extract Variables melalui file city.xml:

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

    Berikut adalah contoh panggilan API yang menunjukkan cara permintaan diteruskan:

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

    Dengan your_host_alias adalah domain yang menghadap publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi dalam properti virtualhosts.hostAliases di file penggantian Anda. Lihat Menentukan penggantian konfigurasi.

    Payload XML yang diteruskan ke API tidak valid, karena XML tidak memiliki tag akhir untuk elemen <root>. Jadi, Anda menerima kode error:

    steps.xml2json.ExecutionFailed
    

    Error ini juga dapat terjadi jika elemen <Source> disetel ke respons, tetapi payload respons XML dari server backend tidak valid atau salah format.

Resolusi

Pastikan input yang diteruskan ke kebijakan XML ke JSON melalui elemen <Source> valid dan tidak salah bentuk.

Untuk memperbaiki masalah pada contoh kebijakan XML ke JSON yang dibahas di atas, teruskan permintaan payload XML yang valid sebagai berikut:

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

OutputVariableIsNotAvailable

Kode error

steps.xml2json.OutputVariableIsNotAvailable

Isi respons error

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

Contoh Pesan Error

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

Penyebab

Error ini terjadi jika variabel yang ditentukan dalam elemen <Source> dari kebijakan XML ke JSON berjenis string dan elemen <OutputVariable> tidak ditentukan. Elemen <OutputVariable> wajib ada jika variabel yang ditentukan dalam elemen <Source> berjenis string.

Diagnosis

  1. Identifikasi Kebijakan XML ke JSON tempat terjadinya error. Anda dapat menemukannya di elemen faultstring dalam respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. Dalam kebijakan XML ke JSON yang gagal, periksa apakah <OutputVariable> tidak ada.

    Berikut adalah contoh Kebijakan XML ke JSON yang tidak memiliki elemen <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. Tentukan jenis variabel yang ditentukan dalam elemen <Source>:

    1. Cari kode dalam paket Proxy API, tempat variabel ditentukan pertama kali.
    2. Setelah mengetahui kebijakan tempat variabel ditentukan dan diisi terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel dianggap sebagai string.
    3. Jika jenis variabel adalah string, maka itulah penyebab error. Anda dapat mempelajari variabel umum dan jenisnya di Referensi variabel.

    Misalnya, lihat variabel TrackingNumber dalam kebijakan XML ke JSON di atas. Nilainya berjenis string. Sekarang, pertimbangkan kebijakan Tetapkan Pesan yang digunakan untuk menetapkan nilai ke variabel bernama TrackingNumber seperti yang ditunjukkan di bawah ini:

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

    Perhatikan bahwa jenis variabel yang ditetapkan melalui <AssignVariable> adalah string. Jadi, variabel TrackingNumber adalah jenis string.

    Sekarang, ingatlah bahwa variabel TrackingNumber digunakan dalam elemen <Source> dari kebijakan XML To JSON:

    <Source>TrackingNumber</Source>
    

    Karena TrackingNumber berjenis string dan <OutputVariable> tidak ada dalam kebijakan, Anda akan menerima kode error:

    steps.xml2json.OutputVariableIsNotAvailable
    

Resolusi

Pastikan bahwa jika variabel yang ditentukan dalam elemen <Source> dari Kebijakan XMLToJSON berjenis string, elemen <OutputVariable> wajib ada dalam kasus ini.

Untuk memperbaiki Kebijakan XML ke JSON yang dibahas di atas, sertakan elemen <OutputVariable> seperti yang ditunjukkan di bawah ini.

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

Kode error

steps.xml2json.InCompatibleTypes

Isi respons error

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

Contoh Pesan Error

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

Penyebab

Error ini terjadi jika jenis variabel yang ditentukan dalam elemen <Source> dan elemen <OutputVariable> tidak sama. Jenis variabel yang ada dalam elemen <Source> dan elemen <OutputVariable> harus sama.

The valid types are message and string.

Diagnosis

  1. Identifikasi Kebijakan XML ke JSON tempat terjadinya error. Anda dapat menemukannya di elemen faultstring dalam respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah XMLToJSON_CheckType:

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. Dalam catatan Kebijakan XML ke JSON yang gagal, perhatikan nilai yang ditentukan dalam <OutputVariable>.

    Berikut adalah contoh kebijakan XMLToJSON yang tidak memiliki elemen <OutputVariable>

    <?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. Tentukan jenis variabel yang ditentukan dalam elemen <Source> dan <OutputVariable>:

    1. Cari kode dalam paket Proxy API, tempat setiap variabel ini ditentukan terlebih dahulu.
    2. Setelah mengetahui kebijakan tempat variabel ditentukan dan diisi terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel dianggap sebagai string.
    3. Jika jenis variabel yang ditentukan dalam <Source> adalah string, sedangkan jenis <OutputVariable> adalah pesan atau sebaliknya, maka itulah penyebab error. Anda dapat mempelajari variabel umum dan jenisnya di Referensi variabel.

    Sebagai contoh, pertimbangkan kebijakan Tetapkan Pesan yang digunakan untuk menyetel nilai ke variabel yang disebut TrackingNumber seperti yang ditunjukkan di bawah:

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

    Perhatikan bahwa jenis variabel yang ditetapkan melalui <AssignVariable> adalah string. Jadi, variabel TrackingNumber adalah jenis string.

    Sekarang, ingatlah bahwa variabel TrackingNumber digunakan dalam elemen <Source> dari kebijakan XMLToJSON:

    <Source>TrackingNumber</Source>
    

    Demikian pula, ingatlah bahwa variabel request digunakan dalam elemen <OutputVariable> dari kebijakan XML To JSON:

    <OutputVariable>request</OutputVariable>
    

    Karena TrackingNumber berjenis string, sedangkan variabel response berjenis message, keduanya adalah jenis yang tidak kompatibel sehingga Anda menerima kode error:

    steps.xml2json.InCompatibleTypes
    

    Error di atas juga dapat terjadi jika variabel dalam elemen <Source> berjenis message, tetapi variabel dalam elemen <OutputVariable> berjenis string.

Resolusi

Pastikan jenis variabel yang ditentukan dalam elemen <Source> dan elemen <OutputVariable> selalu sama. Jenis variabel yang ada dalam elemen <Source> dan elemen <OutputVariable> harus sama.

Untuk memperbaiki Kebijakan XML ke JSON yang dibahas di atas, Anda dapat mendeklarasikan variabel TrackingNumber_output lain berjenis string menggunakan Kebijakan Pesan Penugasan dan menggunakan variabel ini dalam elemen <OutputVariable> dari Kebijakan XML ke JSON.

Kebijakan Assign Message yang diubah:

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

Kebijakan XMLToJSON yang diubah:

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

Kode error

steps.xml2json.InvalidSourceType

Isi respons error

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

Contoh Pesan Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika jenis variabel yang digunakan untuk menentukan elemen <Source> tidak valid.Jenis variabel yang valid adalah message dan string.

Diagnosis

  1. Identifikasi jenis sumber yang tidak valid yang digunakan dalam kebijakan XML ke JSON. Anda dapat menemukan informasi ini dari pesan error. Misalnya, pada error berikut, jenis yang tidak valid adalah bilangan bulat.

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. Periksa semua kebijakan XML ke JSON di Proxy API tertentu tempat kegagalan terjadi. Dalam catatan Kebijakan XML ke JSON yang gagal, catat nama variabel yang ditentukan dalam <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. Tentukan jenis variabel yang ditentukan dalam elemen <Source>:

    1. Cari kode dalam paket Proxy API, tempat variabel ini ditentukan pertama kali.
    2. Setelah mengetahui kebijakan tempat variabel ditentukan dan diisi terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel dianggap sebagai string.
    3. Jika jenis variabel yang ditentukan dalam <Source> bukan jenis message maupun string, maka itulah penyebab error. Anda dapat mempelajari variabel umum dan jenisnya di Referensi variabel.

    Sebagai contoh, pertimbangkan kebijakan ExtractVariables yang digunakan untuk mengekstrak nilai dari payload XML dan menetapkan nilai ke variabel BookCode menjadi jenis integer seperti yang ditunjukkan di bawah:

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

    Sekarang, ingatlah bahwa variabel BookCode digunakan dalam elemen <Source> dari kebijakan XML To JSON:

    <Source>BookCode</Source>
    

    Karena jenis variabel ini adalah Integer, yang bukan jenis <Source> yang valid, Proxy API gagal dengan error:

    steps.xml2json.InvalidSourceType
    

Resolusi

Pastikan jenis variabel yang digunakan untuk menentukan elemen <Source> valid. Jenis <Source> yang valid adalah message dan string.

Untuk menghindari error di atas dengan kebijakan XML To JSON, Anda dapat menggunakan variabel request yang bertipe message atau string lain yang merupakan payload XML yang valid.