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 message lub zmienna ciągu określona w elemencie <Source> w zasadach XML to JSON:

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

Ten błąd występuje na przykład, 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. Wskaż zasadę XML na JSON, w której wystąpił błąd, i 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 pliku XML zasad w formacie XML do JSON sprawdź, czy nazwa zmiennej w elemencie <Source> jest zgodna z nazwą zmiennej wskazaną w ciągu znaków błędu (krok 1 opisany 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 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. Pamiętaj, że zmienna response jest używana w elemencie <Source> w zasadach XML do JSON. Zmienne odpowiedzi są dostępne tylko w schemacie odpowiedzi.

    Ponieważ zmienna odpowiedzi nie istnieje w przepływie żądań, otrzymasz kod błędu:

    steps.xml2json.SourceUnavailable
    

Rozdzielczość

Upewnij się, że zmienna ustawiona w elemencie <Source> nieprawidłowego kodu XML do pliku JSON jest zdefiniowana i istnieje w przepływie wykonywania zasady.

Aby poprawić przykład zasad XML na JSON pokazany powyżej, możesz zmodyfikować element <Source>, aby używał zmiennej request w postaci, w której 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 danych wejściowych Dane wejściowe (XML) są puste.
Nieprawidłowe lub źle sformatowane dane wejściowe Dane wejściowe (XML) przekazane do zasad XML to JSON są nieprawidłowe lub nieprawidłowe.

Przyczyna: brak danych wejściowych

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 powinno zawierać ładunek XML, ten błąd występuje wtedy, gdy ładunek jest pusty.

Diagnostyka

  1. Zidentyfikuj zasadę konwersji pliku XML na plik 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 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 przypadku tej polityki XML na JSON element <Source> ma wartość 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 podana dla elementu <Source> w zasadach XMLToJSON jest pusta. Jeśli jest pusty, to właśnie jest przyczyną błędu.

    W przykładowej polityce XML-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, otrzymujesz kod błędu:

    steps.xml2json.ExecutionFailed
    

    Ten błąd może też wystąpić, jeśli element <Source> ma wartość response, ale serwer zaplecza przekazuje pusty ładunek danych.

Rozdzielczość

Upewnij się, że dane wejściowe przekazane do zasad XML to 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 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. Zidentyfikuj zasadę konwersji pliku XML na plik 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 pliku XML zasad XML do JSON, który nie spełnia wymagań. Na przykład w zasadach XML na JSON element <Source> ma wartość zmiennej 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 określone w elemencie <Source> w zasadach XML To JSON są prawidłowym ładunkiem XML. Jeśli dane wejściowe są nieprawidłowe lub błędnie sformatowane, jest to przyczyna błędu.

    W przykładzie zasad konwersji XML na JSON pokazanym powyżej do zasady wyodrębniania zmiennych został przekazany nieprawidłowy kod XML za pomocą 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 żądanie zostało przekazane:

    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>. Otrzymujesz więc kod błędu:

    steps.xml2json.ExecutionFailed
    

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

Rozdzielczość

Upewnij się, że dane wejściowe przekazane do zasad XML na JSON za pomocą elementu <Source> są prawidłowe i nieuszkodzone.

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> jest typu 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 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 w elemencie <Source>:

    1. Znajdź kod w pakiecie proxy interfejsu API, w którym 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 type (jeśli występuje).
      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 to 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.

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

    <Source>TrackingNumber</Source>
    

    Ponieważ TrackingNumber jest typu ciąg znaków, a w zasadzie brakuje elementu <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 obowiązkowy.

Aby poprawić zasady XML To JSON opisane powyżej, 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, 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. 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 nieprawidłowej zasadzie XML To JSON zwróć uwagę na wartości określone w zasadzie <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 określonej w elementach <Source> i <OutputVariable>:

    1. Znajdź kod w pakiecie interfejsu API Proxy, w którym zdefiniowano po raz pierwszy każdą z tych zmiennych.
    2. Gdy ustalisz zasadę, 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 type (jeśli występuje).
      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 message lub odwrotnie, jest to przyczyna błędu. Więcej informacji o popularnych zmiennych i ich typach znajdziesz w artykule Przewodnik po 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. Zmienne TrackingNumber jest więc typu string.

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

    <Source>TrackingNumber</Source>
    

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

    <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 też wystąpić, jeśli zmienna w elemencie <Source> jest typu message, a 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. Typ zmiennych zawartych w elemencie <Source> i elemencie <OutputVariable> musi być taki sam.

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. Określ nieprawidłowy typ źródła używany w zasadach XML do 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 nieudanej próbie konwersji pliku XML na plik zasad w formacie JSON zwróć uwagę na nazwę zmiennej określoną w sekcji <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 type (jeśli występuje).
      2. Jeśli brak atrybutu „type”, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej określony w elemencie <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.

    Na przykład zasada wyodrębniania zmiennych, 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ść

Upewnij się, że typ zmiennej służącej 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.