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 message atau string yang ditentukan dalam elemen <Source> kebijakan XML ke JSON adalah:

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

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

Diagnosis

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

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. Pada XML kebijakan XML ke JSON yang gagal, pastikan nama variabel yang ditetapkan dalam 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> telah ditentukan dan tersedia dalam alur tempat kebijakan XML ke JSON dijalankan.

  4. Jika variabelnya adalah:

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

    maka itulah penyebab terjadinya {i>error<i}.

    Sebagai contoh, misalkan kebijakan XML ke JSON yang ditampilkan di atas seharusnya dieksekusi dalam alur request. Ingat kembali 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 telah 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 seperti yang ada 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 Format Salah Input (XML) yang diteruskan ke XML ke kebijakan JSON tidak valid atau formatnya salah.

Penyebab: Payload input tidak ada

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

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 error terjadi. Anda dapat menemukan informasi ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakannya 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 yang gagal ke XML kebijakan JSON dan tentukan variabel yang ditentukan. Misalnya, kebijakan XML ke JSON berikut memiliki elemen <Source> yang disetel untuk meminta:

    <?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, berarti itulah penyebab error.

    Pada contoh kebijakan XML ke JSON yang ditunjukkan 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 ditampilkan kepada publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi di properti virtualhosts.hostAliases di file penggantian Anda. Lihat Menentukan penggantian konfigurasi.

    Karena payload permintaan XML kosong, Anda 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> merupakan 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 ditampilkan kepada publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi di 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 formatnya salah, error ini akan terjadi.

Misalnya, jika XML yang 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 error terjadi. Anda dapat menemukan informasi ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakannya 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 yang gagal ke XML kebijakan JSON. Misalnya, kebijakan XML ke JSON berikut memiliki elemen <Source> yang disetel 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. Lakukan validasi apakah input yang ditentukan dalam elemen <Source> pada kebijakan XML Ke JSON adalah payload XML yang valid. Jika input tidak valid atau salah format, maka itulah penyebab error.

    Dalam contoh kebijakan XML ke JSON yang ditunjukkan di atas, XML tidak valid berikut diteruskan ke kebijakan Ekstrak Variabel 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 ditampilkan kepada publik yang digunakan untuk mengakses API Anda, seperti yang dikonfigurasi di 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> ditetapkan sebagai respons, tetapi payload respons XML dari server backend tidak valid atau formatnya salah.

Resolusi

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

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> kebijakan XML ke JSON adalah string jenis dan elemen <OutputVariable> tidak ditentukan. Elemen <OutputVariable> bersifat wajib jika variabel yang ditentukan dalam elemen <Source> adalah jenis string.

Diagnosis

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

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. Dalam XML yang gagal, validasi Kebijakan JSON jika <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. Temukan kode dalam paket Proxy API, tempat variabel ditentukan terlebih dahulu.
    2. Setelah mengetahui kebijakan yang menentukan dan mengisi variabel terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel akan dianggap sebagai string.
    3. Jika jenis variabel adalah string, itulah penyebab error. Anda dapat mempelajari variabel umum dan jenisnya di Referensi variabel.

    Misalnya, lihat variabel TrackingNumber dalam kebijakan XML ke JSON di atas. Berjenis string. Sekarang, pertimbangkan kebijakan Tetapkan Pesan yang digunakan untuk menetapkan nilai ke variabel bernama 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 string jenis.

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

    <Source>TrackingNumber</Source>
    

    Karena TrackingNumber adalah jenis 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> Kebijakan XMLToJSON adalah string jenis, elemen <OutputVariable> bersifat wajib dalam kasus ini.

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

<?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 terdapat dalam elemen <Source> dan elemen <OutputVariable> harus cocok.

The valid types are message and string.

Diagnosis

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

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. Pada Kebijakan XML Ke JSON yang gagal, catat 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. Temukan kode dalam paket Proxy API, tempat setiap variabel ini ditentukan terlebih dahulu.
    2. Setelah mengetahui kebijakan yang menentukan dan mengisi variabel terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel akan 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 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 string jenis.

    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 Ke JSON:

    <OutputVariable>request</OutputVariable>
    

    Karena TrackingNumber berjenis string sedangkan variabel response berjenis message, jenis tersebut 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 jenis.

Resolusi

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

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

Kebijakan Tetapkan Pesan 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>

Mengubah kebijakan XMLToJSON:

  <?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 tidak valid yang digunakan dalam kebijakan XML ke JSON. Anda dapat menemukan informasi ini dari pesan error. Misalnya, dalam 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. Pada Kebijakan XML Ke JSON yang gagal, perhatikan 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. Temukan kode dalam paket Proxy API, tempat variabel ini ditentukan terlebih dahulu.
    2. Setelah mengetahui kebijakan yang menentukan dan mengisi variabel terlebih dahulu, Anda perlu menentukan jenis variabel tersebut sebagai berikut:
      1. Periksa nilai atribut jenis (jika ada).
      2. Jika atribut jenis tidak ada, variabel akan dianggap sebagai string.
    3. Jika jenis variabel yang ditentukan di <Source> bukan jenis message atau string, 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 ini:

    <?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 Ke 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 pada kebijakan XML Ke JSON, Anda dapat menggunakan variabel request yang berjenis message atau string lain yang merupakan payload XML yang valid.