Rozwiązywanie problemów związanych z błędami zasad w środowisku wykonawczym zasad XML na JSON

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

SourceUnavailable

Kod błędu

steps.xml2json.SourceUnavailable

Treść odpowiedzi na błąd

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

Przykładowy komunikat o błędzie

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

Przyczyna

Ten błąd występuje, jeśli zmienna message lub zmienna ciągu znaków określona w elemencie <Source> w zasadach XML do JSON jest:

  • poza zakresem (niedostępne w określonym procesie, w którym są wykonywane zasady) lub
  • nie można rozstrzygnąć (nie jest zdefiniowana)

Ten błąd występuje na przykład wtedy, gdy zasada XML do JSON ma być wykonywana w przepływie żądania, ale element <Source> jest ustawiony na zmienną response, która nie istnieje w przepływie żądania.

Diagnostyka

  1. Określ zasadę XML do JSON, w której wystąpił błąd, oraz nazwę zmiennej, która jest niedostępna. Oba te elementy znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w tym faultstring nazwa zasad to Convert-XMLToJSON, a zmienna to response:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. W pliku XML zasad XML do JSON, które nie zostały wykonane, sprawdź, czy nazwa zmiennej ustawionej w elemencie <Source> jest zgodna z nazwą zmiennej podaną w ciągu błędu (krok 1 powyżej). Na przykład poniższa zasada XML do JSON określa zmienną o nazwie response w elemencie <Source>, która pasuje do elementu 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. Sprawdź, czy zmienna użyta w elemencie <Source> jest zdefiniowana i dostępna w przepływie, w którym wykonywana jest zasada XML do JSON.

  4. Jeśli zmienna ma wartość:

    • poza zakresem (niedostępne w określonym procesie, w którym są wykonywane zasady) lub
    • nie można rozstrzygnąć (nie jest zdefiniowana)

    wtedy to jest przyczyną błędu.

    Załóżmy na przykład, że zasada XML do JSON pokazana powyżej ma być wykonywana w przepływie request. Pamiętaj, że zmienna response jest używana w elemencie <Source> zasady XML do JSON. Zmienna odpowiedzi jest dostępna tylko w przepływie odpowiedzi.

    Ponieważ zmienna odpowiedzi nie występuje w przepływie żądania, otrzymasz kod błędu:

    steps.xml2json.SourceUnavailable
    

Rozdzielczość

Sprawdź, czy zmienna ustawiona w elemencie <Source> nieudanej zasady XML na JSON jest zdefiniowana i występuje w przepływie, w którym jest wykonywana.

Aby poprawić podaną powyżej przykładową zasadę XML na JSON, możesz zmodyfikować element <Source>, aby używać zmiennej request w sposób, w jaki występuje ona w przepływie żądania:

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

Kod błędu

steps.xml2json.ExecutionFailed

Treść odpowiedzi na błąd

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

Możliwe przyczyny

Możliwe przyczyny tego błędu:

Przyczyna Opis
Brak ładunku danych wejściowych Ładunek wejściowy (XML) jest pusty.
Nieprawidłowe lub niepoprawne dane wejściowe Dane wejściowe (XML) przekazane do zasad XML do JSON są nieprawidłowe lub mają nieprawidłową strukturę.

Przyczyna: brak ładunku danych wejściowych

W przypadku zasady XML do JSON ten błąd występuje, gdy treść (ładunek) zmiennej określonej w elemencie <Source> jest pusta.

Jeśli na przykład element <Source> w zasadach XML do JSON jest ustawiony jako zmienna request lub response i ma zawierać ładunek XML, ten błąd występuje, gdy ładunek jest pusty.

Diagnostyka

  1. Określ zasadę XML do JSON, w której wystąpił błąd. Te informacje znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w tym faultstring nazwa zasady to Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly  around char 0)"
    
  2. Sprawdź element <Source> w nieprawidłowym pliku XML zasad XML do JSON i określ zmienną. Na przykład w tych zasadach konwersji z XML na JSON element <Source> jest ustawiony na 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. Sprawdź, czy zmienna określona dla elementu <Source> w zasadach XMLToJSON jest pusta. Jeśli jest pusta, to jest to przyczyna błędu.

    W przykładowej zasadzie XML do JSON pokazanej powyżej ładunek żądania (czyli treść żądania) wysłany przez klienta był pusty.

    Na przykład:

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

    Ponieważ ładunek żądania XML jest pusty, otrzymasz kod błędu:

    steps.xml2json.ExecutionFailed
    

    Ten błąd może też wystąpić, jeśli element <Source> jest ustawiony na odpowiedź, ale serwer backendu przekazuje pusty ładunek.

Rozdzielczość

Sprawdź, czy dane wejściowe przekazywane do zasady XML do JSON za pomocą elementu <Source> są prawidłowym i niepustym ładunkiem XML.

Aby rozwiązać problem z przykładową zasadą XML do JSON, przekaż prawidłowy ładunek XML. Na przykład:

  1. Utwórz plik o nazwie city.xml z tą zawartością:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    </root>
    
  2. Wywołaj interfejs API za pomocą polecenia cURL w ten sposób:

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

Przyczyna: nieprawidłowe lub błędnie sformatowane dane wejściowe

Ten błąd pojawia się, gdy zasady XML do JSON analizują nieprawidłowe lub źle sformatowane dane wejściowe.

Jeśli na przykład poniższy nieprawidłowy kod XML zostanie podany jako dane wejściowe do zasady XML do JSON,

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

Pojawi się błąd:

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

Diagnostyka

  1. Określ zasadę XML do JSON, w której wystąpił błąd. Te informacje znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w tym faultstring nazwa zasady to Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
    
  2. Sprawdź element <Source> określony w nieprawidłowym pliku XML zasad XML do JSON. Na przykład w tych zasadach XML do JSON element <Source> jest ustawiony na zmienną 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. Sprawdź, czy dane wejściowe określone w elemencie <Source> zasady XML To JSON są prawidłowym ładunkiem XML. Jeśli dane wejściowe są nieprawidłowe lub błędnie sformatowane, to jest to przyczyną błędu.

    W przykładzie zasady XML na JSON powyżej do zasady Wyodrębnij zmienne przekazano ten nieprawidłowy kod XML w pliku city.xml:

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

    Oto przykładowe wywołanie interfejsu API, które pokazuje, jak przekazano żądanie:

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

    Ładunek XML przekazany do interfejsu API jest nieprawidłowy, ponieważ w XML nie ma tagu zamykającego element <root>. Otrzymasz kod błędu:

    steps.xml2json.ExecutionFailed
    

    Ten błąd może też wystąpić, jeśli element <Source> został ustawiony na odpowiedź, ale ładunek odpowiedzi XML z serwera backendu jest nieprawidłowy lub błędnie sformatowany.

Rozdzielczość

Sprawdź, czy dane wejściowe przekazywane do zasady XML do JSON za pomocą elementu <Source> są prawidłowe i nieuszkodzone.

Aby rozwiązać problem z przykładową zasadą XML do JSON omówioną powyżej, przekaż prawidłowe żądanie ładunku XML w ten sposób:

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

OutputVariableIsNotAvailable

Kod błędu

steps.xml2json.OutputVariableIsNotAvailable

Treść odpowiedzi na błąd

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

Przykładowy komunikat o błędzie

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

Przyczyna

Ten błąd występuje, jeśli zmienna określona w elemencie <Source> zasady XML do JSON jest typu string, a element <OutputVariable> nie jest zdefiniowany. Element <OutputVariable> jest wymagany, gdy zmienna zdefiniowana w elemencie <Source> jest typu string.

Diagnostyka

  1. Określ zasadę XML do JSON, w której wystąpił błąd. Znajdziesz go w elemencie faultstring odpowiedzi na błąd. Na przykład w tym faultstring nazwa zasady to Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. W przypadku nieudanej weryfikacji zasady XML do JSON sprawdź, czy brakuje elementu <OutputVariable>.

    Oto przykładowa zasada XML do JSON, w której brakuje elementu <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. Określ typ zmiennej podanej w elemencie <Source>:

    1. Znajdź w pakiecie serwera proxy interfejsu API kod, w którym zmienna została zdefiniowana po raz pierwszy.
    2. Gdy ustalisz, w których zasadach zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu type (jeśli jest obecny).
      2. Jeśli atrybut type nie występuje, zmienna jest traktowana jako ciąg znaków.
    3. Jeśli typ zmiennej to string, to jest to przyczyną błędu. Więcej informacji o najczęstszych zmiennych i ich typach znajdziesz w tym artykule.

    Spójrz na przykład na zmienną TrackingNumber w powyższych zasadach XML do JSON. Jest to ciąg znaków. Rozważmy teraz zasadę Assign Message, która służy do ustawiania wartości zmiennej o nazwie TrackingNumber, jak pokazano poniżej:

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

    Pamiętaj, że typ zmiennej ustawiony za pomocą <AssignVariable> to ciąg znaków. Zmienna TrackingNumber jest więc typu ciąg znaków.

    Pamiętaj, że zmienna TrackingNumber jest używana w elemencie <Source> zasady XML To JSON:

    <Source>TrackingNumber</Source>
    

    Ponieważ TrackingNumber jest ciągiem znaków, a w zasadach brakuje <OutputVariable>, otrzymasz kod błędu:

    steps.xml2json.OutputVariableIsNotAvailable
    

Rozdzielczość

Jeśli zmienna określona w elemencie <Source> zasady XMLToJSON jest typu string, element <OutputVariable> jest w tym przypadku wymagany.

Aby poprawić omówioną powyżej zasadę XML To JSON, dodaj element <OutputVariable>, jak pokazano poniżej.

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

Kod błędu

steps.xml2json.InCompatibleTypes

Treść odpowiedzi na błąd

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

Przykładowy komunikat o błędzie

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

Przyczyna

Ten błąd występuje, jeśli typ zmiennej zdefiniowanej w elemencie <Source> i elemencie <OutputVariable> nie jest taki sam. Typ zmiennych zawartych w elementach <Source> i <OutputVariable> musi być zgodny.

The valid types are message and string.

Diagnostyka

  1. Określ zasadę XML do JSON, w której wystąpił błąd. Znajdziesz go w elemencie faultstring odpowiedzi na błąd. Na przykład w tym faultstring nazwa zasady to XMLToJSON_CheckType:

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. W notatce dotyczącej nieudanej zasady XML To JSON zwróć uwagę na wartości podane w <OutputVariable>.

    Oto przykładowa zasada XMLToJSON, w której brakuje elementu <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. Określ typ zmiennej podanej w elementach <Source> i <OutputVariable>:

    1. Odszukaj kod w pakiecie serwera proxy interfejsu API, w którym każda z tych zmiennych została zdefiniowana po raz pierwszy.
    2. Gdy ustalisz, w których zasadach zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu type (jeśli jest obecny).
      2. Jeśli atrybut type nie występuje, zmienna jest traktowana jako ciąg znaków.
    3. Jeśli typ zmiennej określony w parametrze <Source> to string, a typ parametru <OutputVariable> to message lub odwrotnie, to jest to przyczyną błędu. Więcej informacji o najczęstszych zmiennych i ich typach znajdziesz w tym artykule.

    Rozważmy na przykład zasadę Assign Message, która służy do ustawiania wartości zmiennej o nazwie TrackingNumber, jak pokazano poniżej:

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

    Pamiętaj, że typ zmiennej ustawiony za pomocą <AssignVariable> to ciąg znaków. Zmienna TrackingNumber jest więc typu ciąg znaków.

    Pamiętaj, że zmienna TrackingNumber jest używana w elemencie <Source> zasady XMLToJSON:

    <Source>TrackingNumber</Source>
    

    Pamiętaj też, że zmienna request jest używana w elemencie <OutputVariable> zasady XML To JSON:

    <OutputVariable>request</OutputVariable>
    

    Ponieważ TrackingNumber jest typu string, a zmienna response jest typu message, są to typy niezgodne, więc otrzymujesz kod błędu:

    steps.xml2json.InCompatibleTypes
    

    Powyższy błąd może też wystąpić, jeśli zmienna w elemencie <Source> jest typu message, a zmienna w elemencie <OutputVariable> jest typu string.

Rozdzielczość

Upewnij się, że typ zmiennej zdefiniowanej w elemencie <Source> i elemencie <OutputVariable> jest zawsze taki sam. Typ zmiennych zawartych w elementach <Source> i <OutputVariable> musi być zgodny.

Aby poprawić zasadę XML To JSON omówioną powyżej, możesz zadeklarować kolejną zmienną TrackingNumber_output typu string za pomocą zasady Assign Message i użyć tej zmiennej w elemencie <OutputVariable> zasady XML To JSON.

Zmodyfikowana zasada przypisywania wiadomości:

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

Zmodyfikowane zasady 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

Kod błędu

steps.xml2json.InvalidSourceType

Treść odpowiedzi na błąd

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

Przykładowy komunikat o błędzie

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

Przyczyna

Ten błąd występuje, jeśli typ zmiennej użytej do zdefiniowania elementu <Source> jest nieprawidłowy.Prawidłowe typy zmiennych to message i string.

Diagnostyka

  1. Określ nieprawidłowy typ źródła użyty w zasadach XML do JSON. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nieprawidłowym typem jest liczba całkowita.

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. Sprawdź wszystkie zasady XML do JSON w konkretnym serwerze proxy interfejsu API, w którym wystąpił błąd. W notatce dotyczącej nieudanej zasady XML To JSON (XML do JSON) zanotuj nazwę zmiennej określonej w <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. Określ typ zmiennej podanej w elemencie <Source>:

    1. Znajdź kod w pakiecie serwera proxy interfejsu API, w którym ta zmienna została zdefiniowana po raz pierwszy.
    2. Gdy ustalisz, w których zasadach zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu type (jeśli jest obecny).
      2. Jeśli atrybut type nie występuje, zmienna jest traktowana jako ciąg znaków.
    3. Jeśli typ zmiennej określony w parametrze <Source> nie jest typem message ani string, to jest to przyczyną błędu. Więcej informacji o najczęstszych zmiennych i ich typach znajdziesz w tym artykule.

    Rozważmy na przykład zasadę ExtractVariables, która służy do wyodrębniania wartości z ładunku XML i ustawia wartość zmiennej BookCode na typ integer, jak pokazano poniżej:

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

    Pamiętaj, że zmienna BookCode jest używana w elemencie <Source> zasady XML To JSON:

    <Source>BookCode</Source>
    

    Typ tej zmiennej to Integer, który nie jest prawidłowym typem <Source>, więc serwer proxy API zwraca błąd:

    steps.xml2json.InvalidSourceType
    

Rozdzielczość

Upewnij się, że typ zmiennej użytej do określenia elementu <Source> jest prawidłowy. Prawidłowe typy <Source> to message i string.

Aby uniknąć powyższego błędu w przypadku zasady XML To JSON, możesz użyć zmiennej request typu message lub dowolnego innego ciągu znaków, który jest prawidłowym ładunkiem XML.