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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

SourceUnavailable

Kod błędu

steps.xml2json.SourceUnavailable

Treść odpowiedzi o błędzie

{
    "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ślona w elemencie <Source> w zasadach XML to JSON:

  • poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada) lub
  • Nie można rozwiązać (nie określono)

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

Diagnostyka

  1. Wskaż zasadę z formacie XML na JSON, w której wystąpił błąd, oraz nazwę zmiennej, która jest niedostępna. Oba te elementy znajdziesz w elemencie faultstring odpowiedzi o błędzie. Na przykład w tagu faultstring nazwa zasady to Convert-XMLToJSON, a zmienna to response:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. W pliku XML z zasadą JSON, którego nie udało się przetworzyć, sprawdź, czy nazwa zestawu zmiennych w elemencie <Source> odpowiada nazwie zmiennej określonej w ciągu błędu (krok 1 powyżej). Na przykład ta zasada z kodu XML na JSON określa w elemencie <Source> zmienną o nazwie response, która jest zgodna z wartością w 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żywana w elemencie <Source> jest zdefiniowana i dostępna w procesie, w którym wykonywana jest zasada z zakresu XML do JSON.

  4. Jeśli zmienna to:

    • poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada) lub
    • Nie można rozwiązać (nie określono)

    to jest jego przyczyna.

    Załóżmy na przykład, że pokazana powyżej zasada zmiany formatu XML na JSON powinna zostać wykonana w procesie żądania. 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 istnieje w przepływie żądania, otrzymasz kod błędu:

    steps.xml2json.SourceUnavailable
    

Rozdzielczość

Upewnij się, że zmienna ustawiona w elemencie <Source> w nieudanej zasadzie XML do formatu JSON jest zdefiniowana i istnieje w procesie, w którym jest wykonywana.

Aby poprawić pokazaną powyżej przykładową zasadę z kodu XML na format JSON, możesz zmodyfikować element <Source> tak, aby używał zmiennej request w takiej 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 o błędzie

{
    "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 sformułowane dane wejściowe Dane wejściowe (XML) przekazane do pliku XML do zasady JSON są nieprawidłowe lub źle sformułowane.

Przyczyna: brak ładunku wejściowego

W zasadzie z formacie 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 do JSON jest ustawiony jako zmienna request lub response i powinien zawierać ładunek XML, ten błąd występuje, gdy ładunek jest pusty.

Diagnostyka

  1. Wskaż zasadę z pliku XML na JSON, w której wystąpił błąd. Te informacje znajdziesz w elemencie faultstring odpowiedzi o błędzie. Na przykład w tagu 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 pliku XML zasad, które nie działają z kodem XML, i określ określoną zmienną. Na przykład ta zasada XML na JSON zawiera element <Source> 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 określona dla elementu <Source> w zasadzie XMLToJSON jest pusta. Jeśli pole jest puste, to jest przyczyna błędu.

    W powyższej 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, pojawia się 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 przekazane 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 JSON, przekaż prawidłowy ładunek XML. Na przykład:

  1. Utwórz plik o nazwie city.xml z następującą 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łędne dane wejściowe

Ten błąd występuje, jeśli zasada XML do JSON analizuje dane wejściowe, które są nieprawidłowe lub źle sformułowane.

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

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

wystąpi 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ę z pliku XML na JSON, w której wystąpił błąd. Te informacje znajdziesz w elemencie faultstring odpowiedzi o błędzie. Na przykład w tagu 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 JSON, który nie działa w prawidłowy sposób. Na przykład w tej zasadzie z kodu 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> zasady XML do JSON są prawidłowym ładunkiem XML. Jeśli dane wejściowe są nieprawidłowe lub błędnie sformatowane, to właśnie jest przyczyną błędu.

    W wskazanej powyżej przykładowej zasadzie z formatu XML na JSON za pomocą pliku city.xml przekazano nieprawidłowy kod XML do zasady Wyodrębnianie zmiennych:

    <?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 sposób przekazania żądania:

    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ż kod XML nie zawiera tagu końcowego dla elementu <root>. Pojawia się 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 odpowiedzi XML z serwera backendu jest nieprawidłowy lub błędnie sformatowany.

Rozdzielczość

Upewnij się, że dane wejściowe przekazywane do zasady JSON za pomocą elementu <Source> są prawidłowe i nie są sformatowane.

Aby rozwiązać problem z przykładową zasadą XML-JSON omówioną powyżej, przekaż prawidłowe żądanie ładunku XML w następujący 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 o błędzie

{
    "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 ciągiem znaków, a element <OutputVariable> nie jest zdefiniowany. Element <OutputVariable> jest wymagany, gdy zmienna zdefiniowana w elemencie <Source> ma typ string.

Diagnostyka

  1. Wskaż zasadę z pliku XML na JSON, w którym wystąpił błąd. Możesz to znaleźć w elemencie faultstring odpowiedzi o błędzie. Na przykład w tagu faultstring nazwa zasady to Convert-XMLToJSON:

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

    Oto przykładowa zasada z kodem XML na 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 określony w elemencie <Source>:

    1. Znajdź kod w pakiecie serwera proxy interfejsu API, w którym zmienna została zdefiniowana jako pierwsza.
    2. Gdy już określisz zasadę, w której zdefiniujesz i uzupełnisz zmienną, musisz najpierw określić jej typ:
      1. Sprawdź wartość atrybutu typu (jeśli istnieje).
      2. Jeśli atrybut type nie jest obecny, zmienna jest uznawana za ciąg znaków.
    3. Jeśli zmienna ma typ string, to właśnie jest przyczyną błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Przyjrzyj się na przykład zmiennej TrackingNumber w powyższej zasadzie XML do JSON. Jest to ciąg znaków. Przyjrzyjmy się teraz zasadzie przypisywania wiadomości, 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> jest ciągiem tekstowym. Zmienna TrackingNumber jest więc ciągiem znaków.

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

    <Source>TrackingNumber</Source>
    

    TrackingNumber jest ciągiem znaków, a w zasadzie brakuje elementu <OutputVariable>, więc pojawia się kod błędu:

    steps.xml2json.OutputVariableIsNotAvailable
    

Rozdzielczość

Upewnij się, że jeśli zmienna określona w elemencie <Source> zasady XMLToJSON jest ciągiem znaków, w tym przypadku element <OutputVariable> jest wymagany.

Aby poprawić omówioną powyżej zasadę z pliku XML na plik JSON, dołącz element <OutputVariable> w sposób pokazany 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 o błędzie

{
    "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> są różne. Typ zmiennych w elemencie <Source> i elemencie <OutputVariable> musi być taki sam.

The valid types are message and string.

Diagnostyka

  1. Wskaż zasadę z pliku XML na JSON, w którym wystąpił błąd. Możesz to znaleźć w elemencie faultstring odpowiedzi o błędzie. Na przykład w tagu faultstring nazwa zasady to XMLToJSON_CheckType:

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. W nieudanej zasadzie XML do JSON zwróć uwagę na wartości określone 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 określony w elementach <Source> i <OutputVariable>:

    1. Znajdź kod w pakiecie serwera proxy interfejsu API, w którym każda z tych zmiennych została zdefiniowana jako pierwsza.
    2. Gdy już określisz zasadę, w której zdefiniujesz i uzupełnisz zmienną, musisz najpierw określić jej typ:
      1. Sprawdź wartość atrybutu typu (jeśli istnieje).
      2. Jeśli atrybut type nie jest obecny, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej określony w zasadzie <Source> to string, a typ zmiennej <OutputVariable> to komunikat lub odwrotnie, to jest przyczyną błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Przyjrzyjmy się przykładowi zasady przypisywania wiadomości, 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> jest ciągiem tekstowym. Zmienna TrackingNumber jest więc ciągiem znaków.

    Zwróć uwagę, że zmienna TrackingNumber jest używana w elemencie <Source> zasady XMLToJSON:

    <Source>TrackingNumber</Source>
    

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

    <OutputVariable>request</OutputVariable>
    

    TrackingNumber jest typu string, a zmienna responsemessage, więc są to niezgodne typy, dlatego pojawia się 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 w elemencie <OutputVariable> jest ciągiem znaków.

Rozdzielczość

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

Aby poprawić omówioną powyżej zasadę XML do formatu JSON, możesz zadeklarować inną zmienną TrackingNumber_output typu string przy użyciu zasady przypisywania wiadomości i użyć tej zmiennej w elemencie <OutputVariable> zasady XML do JSON.

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

Zmodyfikowana 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 o błędzie

{
    "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. Zidentyfikuj nieprawidłowy typ źródła użyty w zasadzie XML do formatu JSON. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym 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 z formacie XML do JSON na określonym serwerze proxy interfejsu API, na którym wystąpił błąd. W nieudanej zasadzie 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 określony w elemencie <Source>:

    1. Znajdź kod w pakiecie serwera proxy interfejsu API, w którym ta zmienna została zdefiniowana jako pierwsza.
    2. Gdy już określisz zasadę, w której zdefiniujesz i uzupełnisz zmienną, musisz najpierw określić jej typ:
      1. Sprawdź wartość atrybutu typu (jeśli istnieje).
      2. Jeśli atrybut type nie jest obecny, zmienna jest uznawana za ciąg znaków.
    3. Jeśli typ zmiennej określony w zasadzie <Source> nie jest typu message ani string, to jest przyczyną błędu. Więcej informacji o typowych zmiennych i ich typach znajdziesz w dokumentacji zmiennych.

    Przyjrzyjmy się przykładowi zasady ExtractVariables, która służy do wyodrębniania wartości z ładunku XML, i ustawiana wartość na zmienną BookCode jako 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 do formatu JSON:

    <Source>BookCode</Source>
    

    Ponieważ typ tej zmiennej to Integer, co nie jest prawidłowym typem <Source>, serwer proxy interfejsu API kończy się błędem:

    steps.xml2json.InvalidSourceType
    

Rozdzielczość

Upewnij się, że 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 przypadku zasady XML do JSON, możesz użyć zmiennej request typu message lub dowolnego innego ciągu znaków, który jest prawidłowym ładunkiem XML.