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

Wyświetlasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

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 ciąg znaków określony w elemencie <Source> zasady XML na JSON to:

  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
  • nie można rozwiązać (nie jest zdefiniowany)

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

Diagnostyka

  1. Określ zasady XML na JSON, w których 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 tagu faultstring nazwa zasady to Convert-XMLToJSON, a zmiennej to response:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. W nieprawidłowym kodzie XML zasady XML na plik JSON sprawdź, czy nazwa zmiennej ustawiona w elemencie <Source> jest zgodna z nazwą zmiennej podaną w ciągu błędu (krok 1 powyżej). Na przykład ta zasada XML na JSON określa zmienną o nazwie response w elemencie <Source>, która pasuje do zawartości 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. Określ, czy zmienna używana w elemencie <Source> jest zdefiniowana i dostępna w procesie, w którym wykonywana jest zasada XML na JSON.

  4. Jeśli zmienna jest:

    • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
    • nie można rozwiązać (nie jest zdefiniowany)

    to właśnie jest przyczyną błędu.

    Załóżmy na przykład, że zasada XML to JSON, która jest widoczna powyżej, ma być wykonywana w obiegu żądania. Zwróć uwagę, że zmienna response jest używana w elemencie <Source> zasady XML na JSON. Zmienne odpowiedzi są dostępne tylko w schemacie odpowiedzi.

    Zmienna odpowiedzi nie występuje w przepływie żądania, więc otrzymujesz kod błędu:

    steps.xml2json.SourceUnavailable
    

Rozdzielczość

Upewnij się, że zmienna ustawiona w elemencie <Source> w nieudanej regule XML-JSON jest zdefiniowana i występuje w przepływie, w którym jest wykonywana.

Aby poprawić widoczną powyżej przykładową zasadę XML na plik JSON, możesz zmodyfikować element <Source>, tak aby używał zmiennej request w postaci, w jakiej występuje 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 wejściowego Ładunek wejściowy (XML) jest pusty.
Nieprawidłowe lub źle sformatowane dane wejściowe Dane wejściowe (XML) przekazywane do zasady XML w formacie JSON są nieprawidłowe lub źle sformułowane.

Przyczyna: brak ładunku wejściowego

W zasadzie XML na JSON, jeśli zawartość (ładunek) zmiennej określonej w elemencie <Source> jest pusta, występuje ten błąd.

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

Diagnostyka

  1. Wskaż zasadę XML na 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 kodzie XML zasady XML na JSON i określ podaną zmienną. Na przykład w tej zasadzie XML na JSON element <Source> jest ustawiony na żądanie:

    <?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 podana dla elementu <Source> w zasadach XMLToJSON jest pusta. Jeśli jest pusty, to właśnie jest przyczyną błędu.

    W pokazanej powyżej przykładowej zasadzie XML na JSON ładunek żądania (tj.treść żądania), który został 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 jako odpowiedź, ale serwer backendu przekazuje pusty ładunek.

Rozdzielczość

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

Aby rozwiązać problem z przykładową zasadą XML na plik 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. Wykonaj wywołanie interfejsu 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 źle sformatowane dane wejściowe

Jeśli zasada XML do JSON analizuje dane wejściowe, które są nieprawidłowe lub nieprawidłowe, pojawia się ten błąd.

Jeśli na przykład w zasadzie XML na JSON podany zostanie następujący nieprawidłowy kod XML,

<?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. Wskaż zasadę XML na JSON, w której wystąpił błąd. Te informacje znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w tym elemencie 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 pliku XML z zasadami XML zawierającymi błędy w formacie JSON. Na przykład w tej zasadzie XML na 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> w zasadzie XML To JSON są prawidłowym ładunkiem XML. Jeśli dane wejściowe są nieprawidłowe lub źle sformułowane, to właśnie jest przyczyną błędu.

    W pokazanej powyżej przykładowej zasadzie XML na JSON do zasady wyodrębniania zmiennych za pomocą pliku city.xml przekazano następujący nieprawidłowy kod XML:

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

    Oto przykład wywołania interfejsu API, który pokazuje, jak przekazano żądanie:

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

    Dane XML przekazane do interfejsu API są nieprawidłowe, ponieważ nie zawierają tagu końcowego dla elementu <root>. Otrzymasz kod błędu:

    steps.xml2json.ExecutionFailed
    

    Ten błąd może również wystąpić, jeśli element <Source> był ustawiony na odpowiedź, ale ładunek odpowiedzi XML z serwera backendu jest nieprawidłowy lub źle sformułowany.

Rozdzielczość

Sprawdź, czy dane wejściowe przekazywane do zasady XML w formacie JSON za pomocą elementu <Source> są prawidłowe i nie mają nieprawidłowego formatu.

Aby rozwiązać problem z opisaną powyżej zasadą dotyczącą konwersji XML na JSON, prześlij 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> w zasadach XML na JSON jest typu string, a element <OutputVariable> nie jest zdefiniowany. Element <OutputVariable> jest wymagany, gdy zmienna zdefiniowana w elemencie <Source> ma typ string.

Diagnostyka

  1. Zidentyfikuj zasadę XML na JSON, w której wystąpił błąd. Możesz go znaleźć w elemencie faultstring w odpowiedzi na błąd. Na przykład w tym elemencie faultstring nazwa zasady to Convert-XMLToJSON:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. Sprawdź, czy w nieudanej konwersji XML na JSON Policy brakuje elementu <OutputVariable>.

    Oto przykład dokumentu XML do JSON, w którym 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 określonej w elemencie <Source>:

    1. Znajdź kod w pakiecie proxy interfejsu API, w którym zmienna została zdefiniowana jako pierwsza.
    2. Po ustaleniu zasady, według której zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu typ (jeśli jest dostępny).
      2. Jeśli atrybut type jest nieobecny, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej to string, to jest przyczyną błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Na przykład zwróć uwagę na zmienną TrackingNumber w wymienionej powyżej polityce XML do JSON. Jest typu ciąg znaków. Weź pod uwagę zasadę Przypisz wiadomość, 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 typem zmiennej ustawionym za pomocą funkcji <AssignVariable> jest ciąg znaków. Zmienne TrackingNumber jest więc typu string.

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

    <Source>TrackingNumber</Source>
    

    Ponieważ TrackingNumber jest ciągiem znaków, a zasada nie zawiera elementu <OutputVariable>, pojawia się 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 obowiązkowy.

Aby poprawić omówioną powyżej zasadę XML To JSON, dołącz element <OutputVariable> w podany niżej sposób.

<?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, gdy typ zmiennej zdefiniowanej w elemencie <Source> i elemencie <OutputVariable> jest inny. Typ zmiennych zawartych w elemencie <Source> i elemencie <OutputVariable> musi być taki sam.

The valid types are message and string.

Diagnostyka

  1. Zidentyfikuj zasadę XML na JSON, w której wystąpił błąd. Możesz go znaleźć w elemencie faultstring w 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 błędnej zasadzie XML To JSON zwróć uwagę na wartości określone w <OutputVariable>.

    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 określonej w elementach <Source> i <OutputVariable>:

    1. Znajdź kod w pakiecie serwera proxy interfejsu API, w którym najpierw zdefiniowano każdą z tych zmiennych.
    2. Gdy już ustalisz, w której z zasad zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu typ (jeśli jest dostępny).
      2. Jeśli atrybut type jest nieobecny, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej określonej w funkcji <Source> to string, a typ zmiennej <OutputVariable> to komunikat lub odwrotnie, to właśnie jest przyczyną błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Na przykład zasada Przypisz wiadomość 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 ciągiem znaków.

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

    <Source>TrackingNumber</Source>
    

    Przypominamy również, że w elemencie <OutputVariable> zasady XML To JSON używana jest zmienna request:

    <OutputVariable>request</OutputVariable>
    

    Ponieważ zmienna TrackingNumber ma typ string, a zmienna response – typ message, są to typy niezgodne, więc otrzymasz kod błędu:

    steps.xml2json.InCompatibleTypes
    

    Powyższy błąd może wystąpić również wtedy, gdy zmienna w elemencie <Source> jest typu message, ale zmienna w elemencie <OutputVariable> jest typu „ciąg znaków”.

Rozdzielczość

Upewnij się, że typ zmiennej zdefiniowanej w elemencie <Source> i elemencie <OutputVariable> jest zawsze taki sam. Konieczne jest, aby typ zmiennych w elemencie <Source> i elemencie <OutputVariable> był zgodny.

Aby poprawić zasadę XML To JSON, o której mowa powyżej, możesz zadeklarować inną zmienną TrackingNumber_output typu string za pomocą zasady przypisywania wiadomości i użyć tej zmiennej w elemencie <OutputVariable> zasady XML To JSON.

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

Zmieniona zasada 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, gdy typ zmiennej używanej do zdefiniowania elementu <Source> jest nieprawidłowy. Prawidłowe typy zmiennych to messagestring.

Diagnostyka

  1. Zidentyfikuj nieprawidłowy typ źródła używany w zasadzie XML na JSON. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w następującym błędzie nieprawidłowy typ to integer.

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. Sprawdź wszystkie zasady konwersji XML na JSON w przypadku konkretnego interfejsu Proxy API, w którym wystąpił błąd. W nieprawidłowej zasadzie XML To JSON zanotuj nazwę zmiennej określonej w zasadzie <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 określonej w elemencie <Source>:

    1. Znajdź kod w pakiecie proxy interfejsu API, w którym ta zmienna została zdefiniowana jako pierwsza.
    2. Gdy już ustalisz, w której z zasad zmienna jest zdefiniowana i wypełniana jako pierwsza, musisz określić jej typ w ten sposób:
      1. Sprawdź wartość atrybutu typ (jeśli jest dostępny).
      2. Jeśli brak atrybutu „type”, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej określony w parametrye <Source> nie jest ani message, ani string, to jest to przyczyna błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Jako przykład rozważmy zasadę ExtractZmiennes, 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> w zasadach XML To JSON:

    <Source>BookCode</Source>
    

    Ponieważ typ tej zmiennej to Integer, który nie jest prawidłowym typem <Source>, usługa Proxy API kończy działanie z błędem:

    steps.xml2json.InvalidSourceType
    

Rozdzielczość

Sprawdź, czy typ zmiennej używanej do określania elementu <Source> jest prawidłowy. Prawidłowe typy <Source> to message i string.

Aby uniknąć powyższego błędu w zasadzie 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.