מוצג המסמך של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
SourceUnavailable
קוד שגיאה
steps.xml2json.SourceUnavailable
גוף התשובה לשגיאה
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.xmltojson.SourceUnavailable" } } }
הודעת שגיאה לדוגמה
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
"detail": {
"errorcode": "steps.xml2json.SourceUnavailable"
}
}
}
סיבה
השגיאה הזו מתרחשת אם המשתנה message או המשתנה המחרוזת שצוין ברכיב <Source>
של המדיניות להמרת XML ל-JSON הוא:
- לא בהיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או
- לא ניתן לפתור (לא מוגדר)
לדוגמה, השגיאה הזו מתרחשת אם המדיניות של המרת XML ל-JSON אמורה להתבצע בתהליך הבקשה, אבל הרכיב <Source>
מוגדר למשתנה response
, שלא קיים בתהליך הבקשה.
אבחון
מאתרים את המדיניות להמרת XML ל-JSON שבה אירעה השגיאה ואת שם המשתנה שלא זמין. שני הפריטים האלה מופיעים ברכיב
faultstring
בתשובה לשגיאה. לדוגמה, ב-faultstring
הבא, שם המדיניות הואConvert-XMLToJSON
והמשתנה הואresponse
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
ב-XML של מדיניות XML ל-JSON שנכשלו, צריך לוודא ששם המשתנה שמוגדר ברכיב
<Source>
תואם לשם המשתנה שזוהה במחרוזת השגיאה (שלב 1 למעלה). לדוגמה, המדיניות הבאה בפורמט XML ל-JSON מציינת משתנה בשםresponse
ברכיב<Source>
, שתואם למה שמופיע ב-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>
קובעים אם המשתנה שנעשה בו שימוש ברכיב
<Source>
מוגדר וזמין בתהליך שבו מתבצעת מדיניות XML ל-JSON.אם המשתנה הוא:
- לא בהיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או
- לא ניתן לפתרון (לא מוגדר)
אז זה הגורם לשגיאה.
לדוגמה, נניח שמדיניות XML ל-JSON שמוצגת למעלה אמורה להתבצע בתהליך הבקשה. חשוב לזכור שמשתנה
response
משמש ברכיב<Source>
של המדיניות להמרת XML ל-JSON. משתנה התגובה זמין רק בתהליך התשובה.מאחר שמשתנה התגובה לא קיים בתהליך הבקשה, מופיע קוד השגיאה:
steps.xml2json.SourceUnavailable
רזולוציה
צריך לוודא שהמשתנה מוגדר ברכיב <Source>
של מדיניות JSON ל-XML שנכשלה, מוגדר וקיים בתהליך שבו המדיניות מופעלת.
כדי לתקן את המדיניות לדוגמה בפורמט XML ל-JSON שמוצגת למעלה, אפשר לשנות את הרכיב <Source>
כך שישתמש במשתנה 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/>
<Format>google</Format>
<OutputVariable>response</OutputVariable>
<Source>request</Source>
</XMLToJSON>
ExecutionFailed
קוד שגיאה
steps.xml2json.ExecutionFailed
גוף התגובה לשגיאה
{ "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" } } }
גורמים אפשריים
הסיבות האפשריות לשגיאה הזו הן:
הסיבה | תיאור |
חסר עומס נתונים להזנה | המטען הייעודי (payload) של הקלט (XML) ריק. |
קלט לא חוקי או פגום | הקלט (XML) שהוענק למדיניות של XML ל-JSON לא תקין או שהוא בפורמט שגוי. |
סיבה: חסר מטען ייעודי (payload) של קלט
במדיניות בנושא XML ל-JSON אם התוכן (המטען הייעודי (Payload) של המשתנה שצוין ברכיב <Source>
ריק, השגיאה הזו תתרחש.
לדוגמה, אם הרכיב <Source>
במדיניות XML ל-JSON מוגדר כמשתנה request
או response
והוא אמור להכיל מטען ייעודי (payload) של XML, השגיאה הזו תתרחש אם המטען הייעודי (Payload) ריק.
אבחון
מאתרים את המדיניות להמרת XML ל-JSON שבה אירעה השגיאה. המידע הזה מופיע באלמנט
faultstring
בתשובה לשגיאה. לדוגמה, ב-faultstring
הבא, שם המדיניות הואConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly around char 0)"
צריך לבדוק את הרכיב
<Source>
ב-XML של מדיניות JSON שנכשלו ולקבוע את המשתנה שצוין. לדוגמה, במדיניות הבאה של XML ל-JSON, הרכיב<Source>
מוגדר כבקשה:<?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>
בודקים אם המשתנה שצוין לרכיב
<Source>
במדיניות XMLToJSON ריק. אם השדה ריק, זו הסיבה לשגיאה.בדוגמה של מדיניות ה-XML ל-JSON שמוצגת למעלה, מטען הנתונים הייעודי (payload) של הבקשה (כלומר, גוף הבקשה) שנשלח על ידי הלקוח היה ריק.
לדוגמה:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"
מכיוון שתוכן הבקשה ב-XML ריק, מופיע קוד השגיאה:
steps.xml2json.ExecutionFailed
השגיאה הזו יכולה לקרות גם אם הרכיב
<Source>
מוגדר לתגובה, אבל מטען ייעודי (payload) ריק מועבר על ידי שרת הקצה העורפי.
רזולוציה
צריך לוודא שהקלט שמועבר למדיניות XML ל-JSON דרך הרכיב <Source>
הוא מטען ייעודי (payload) תקין של XML ולא ריק.
כדי לפתור את הבעיה במדיניות לדוגמה של XML ל-JSON, צריך להעביר מטען ייעודי (payload) חוקי של XML. לדוגמה:
יוצרים קובץ בשם city.xml עם התוכן הבא:
<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
מבצעים את הקריאה ל-API באמצעות פקודת cURL באופן הבא:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
הסיבה: קלט לא חוקי או פגום
אם המדיניות להמרת XML ל-JSON מנתחת קלט לא תקין או פגום, תופיע השגיאה הזו.
לדוגמה, אם ה-XML הלא חוקי הבא מסופק כקלט למדיניות של המרת XML ל-JSON,
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
תופיע השגיאה הבאה:
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
אבחון
מאתרים את המדיניות להמרת XML ל-JSON שבה אירעה השגיאה. המידע הזה מופיע ברכיב
faultstring
של תגובת השגיאה. לדוגמה, בfaultstring
הבא, שם המדיניות הואConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
בודקים את הרכיב
<Source>
שצוין במדיניות ה-XML ל-JSON שנכשלה. לדוגמה, במדיניות הבאה של XML ל-JSON, הרכיב<Source>
מוגדר למשתנה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>
מוודאים שהקלט שצוין ברכיב
<Source>
במדיניות של XML ל-JSON הוא עומס נתונים חוקי של XML. אם הקלט לא תקין או לא תקני, זו הסיבה לשגיאה.בדוגמה של מדיניות XML ל-JSON שמוצגת למעלה, ה-XML הלא תקין הבא הועבר למדיניות של חילוץ המשתנים דרך הקובץ
city.xml
:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode>
זוהי קריאת ה-API לדוגמה שמראה איך הבקשה הועברה:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
עומס העבודה של ה-XML שהוענק ל-API לא תקין, כי ל-XML אין תג סוגר לרכיב
<root>
. לכן מופיע קוד השגיאה:steps.xml2json.ExecutionFailed
השגיאה הזו יכולה לקרות גם אם הרכיב
<Source>
הוגדר לתגובה, אבל המטען הייעודי (payload) של תגובת ה-XML משרת הקצה העורפי לא תקין או פגום.
רזולוציה
צריך לוודא שהקלט שמועבר למדיניות XML ל-JSON דרך הרכיב <Source>
תקין ולא פגום.
כדי לפתור את הבעיה במדיניות לדוגמה של XML ל-JSON שצוינה למעלה, מעבירים בקשה תקפה של מטען ייעודי (payload) של XML באופן הבא:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
</root>
OutputVariableIsNotAvailable
קוד שגיאה
steps.xml2json.OutputVariableIsNotAvailable
גוף התשובה לשגיאה
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.xml2json.OutputVariableIsNotAvailable" } } }
הודעת שגיאה לדוגמה
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
"detail": {
"errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
}
}
}
סיבה
השגיאה הזו מתרחשת אם המשתנה שצוין ברכיב <Source>
של המדיניות להמרת XML ל-JSON הוא מסוג מחרוזת והרכיב <OutputVariable>
לא מוגדר. הרכיב <OutputVariable>
הוא רכיב חובה כשהמשתנה שמוגדר ברכיב <Source>
הוא מסוג string
.
אבחון
צריך לזהות את המדיניות בנושא XML ל-JSON שבה התרחשה השגיאה. אפשר למצוא אותו ברכיב
faultstring
בתגובת השגיאה. לדוגמה, בfaultstring
הבא, שם המדיניות הואConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
במדיניות ה-XML ל-JSON שנכשלה, בודקים אם השדה
<OutputVariable>
חסר.הנה דוגמה למדיניות XML ל-JSON שחסר בה רכיב
<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>
קובעים את סוג המשתנה שצוין ברכיב
<Source>
:- מאתרים את הקוד בחבילת שרת ה-proxy ל-API, שבו המשתנה הוגדר לראשונה.
- אחרי שמבינים קודם את המדיניות שבה המשתנה מוגדר ומאוכלס, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם הסוג של המשתנה הוא
string
, זהו הגורם לשגיאה. מידע נוסף על משתנים נפוצים והסוגים שלהם זמין בחומר העזר בנושא משתנים.
לדוגמה, אפשר לעיין במשתנה TrackingNumber במדיניות הקודמת להמרת XML ל-JSON. הוא מסוג מחרוזת. עכשיו נבחן מדיניות הקצאת הודעה שמשמשת להגדרת ערך למשתנה שנקרא
TrackingNumber
, כפי שמוצג בהמשך:<?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>
הערה: סוג המשתנה שמוגדר באמצעות
<AssignVariable>
הוא מחרוזת. כלומר, המשתנהTrackingNumber
הוא מסוג מחרוזת.עכשיו צריך לזכור שהמשתנה
TrackingNumber
נמצא בשימוש ברכיב<Source>
במדיניות XML ל-JSON:<Source>TrackingNumber</Source>
מכיוון ש-
TrackingNumber
הוא מסוג מחרוזת ו-<OutputVariable>
חסר במדיניות, מופיע קוד השגיאה:steps.xml2json.OutputVariableIsNotAvailable
רזולוציה
אם המשתנה שצוין ברכיב <Source>
של המדיניות XMLToJSON הוא מסוג מחרוזת, רכיב <OutputVariable>
הוא חובה במקרה הזה.
כדי לתקן את המדיניות בנושא XML ל-JSON שצוינה למעלה, צריך לכלול את הרכיב <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>
<OutputVariable>response</OutputVariable>
<Source>TrackingNumber</Source>
</XMLToJSON>
InCompatibleTypes
קוד שגיאה
steps.xml2json.InCompatibleTypes
גוף התשובה לשגיאה
{ "fault": { "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.xml2json.InCompatibleTypes" } } }
הודעת שגיאה לדוגמה
{
"fault": {
"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
"detail": {
"errorcode": "steps.xml2json.InCompatibleTypes"
}
}
}
סיבה
השגיאה הזו מתרחשת אם הסוג של המשתנה שמוגדר ברכיב <Source>
שונה מהסוג של המשתנה שמוגדר ברכיב <OutputVariable>
. חובה שהסוג של המשתנים שמופיעים ברכיב <Source>
וברכיב <OutputVariable>
יהיה זהה.
The valid types are message and string.
אבחון
מאתרים את המדיניות להמרת XML ל-JSON שבה אירעה השגיאה. אפשר למצוא אותו ברכיב
faultstring
בתשובה לשגיאה. לדוגמה, ב-faultstring
הבא, שם המדיניות הואXMLToJSON_CheckType
:"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
במדיניות ה-XML שנכשלה, יש לשים לב לערכים שצוינו ב-
<OutputVariable>
.הנה דוגמה למדיניות XMLToJSON שחסר בה רכיב
<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>
קובעים את סוג המשתנה שמצוין ברכיבים
<Source>
ו-<OutputVariable>
:- מאתרים את הקוד בחבילת ה-API Proxy, שבה כל אחד מהמשתנים האלה הוגדר לראשונה.
- אחרי שמוצאים את המדיניות שבה המשתנה מוגדר ומאוכלס קודם, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>
הואstring
והסוג<OutputVariable>
הוא הודעה או להיפך, זו הסיבה לשגיאה. מידע על משתנים נפוצים ועל הסוגים שלהם זמין במאמר העזרה בנושא משתנים.
לדוגמה, נניח שרוצים להשתמש במדיניות Assign Message כדי להגדיר ערך למשתנה שנקרא
TrackingNumber
, כפי שמתואר בהמשך:<?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>
חשוב לשים לב שסוג המשתנה שהוגדר דרך
<AssignVariable>
הוא מחרוזת. לכן המשתנהTrackingNumber
הוא מסוג string.עכשיו צריך לזכור שהמשתנה
TrackingNumber
נמצא בשימוש ברכיב<Source>
של מדיניות XMLToJSON:<Source>TrackingNumber</Source>
באופן דומה, חשוב לזכור שהמשתנה
request
משמש ברכיב<OutputVariable>
של המדיניות להמרת XML ל-JSON:<OutputVariable>request</OutputVariable>
מכיוון ש-
TrackingNumber
הוא מסוגstring
ואילו המשתנהresponse
הוא מסוגmessage
, אלה סוגים לא תואמים ולכן מקבלים את קוד השגיאה:steps.xml2json.InCompatibleTypes
השגיאה שלמעלה יכולה להתרחש גם אם המשתנה ברכיב
<Source>
הוא מסוגmessage
אבל המשתנה ברכיב<OutputVariable>
הוא מסוג מחרוזת.
רזולוציה
חשוב לוודא שהסוג של המשתנה שמוגדר ברכיב <Source>
וברכיב <OutputVariable>
תמיד זהה. חובה שהסוג של המשתנים שמופיעים ברכיב <Source>
וברכיב <OutputVariable>
יהיה זהה.
כדי לתקן את המדיניות של XML ל-JSON שצוינה למעלה, אפשר להצהיר על משתנה TrackingNumber_output
נוסף מסוג string
באמצעות המדיניות Assign Message, ולהשתמש במשתנה הזה ברכיב <OutputVariable>
של המדיניות XML ל-JSON.
מדיניות הקצאת הודעות ששונתה:
<?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>
מדיניות 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
קוד שגיאה
steps.xml2json.InvalidSourceType
גוף התשובה לשגיאה
{ "fault": { "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.xml2json.InvalidSourceType" } } }
הודעת שגיאה לדוגמה
{
"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"
}
}
}
סיבה
שגיאה זו מתרחשת אם סוג המשתנה המשמש להגדרת הרכיב <Source>
אינו חוקי.סוגי המשתנים החוקיים הם message
ו-string
.
אבחון
מזהים את סוג המקור הלא חוקי שנעשה בו שימוש במדיניות XML ל-JSON. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, הסוג הלא חוקי הוא integer.
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
לבדוק את כל כללי המדיניות של XML ל-JSON בשרת ה-proxy הספציפי ל-API שבו התרחש הכשל. במדיניות ה-XML שנכשלה, חשוב לשים לב לשם המשתנה שצוין ב-
<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>
קובעים את סוג המשתנה שצוין ברכיב
<Source>
:- מאתרים את הקוד בחבילת ה-API Proxy, שבה המשתנה הזה הוגדר לראשונה.
- אחרי שמבינים קודם את המדיניות שבה המשתנה מוגדר ומאוכלס, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>
הוא לאmessage
אוstring
, זו הסיבה לשגיאה. מידע על משתנים נפוצים ועל הסוגים שלהם זמין במאמר העזרה בנושא משתנים.
לדוגמה, נניח שמדיניות ExtractVariables משמשת לחילוץ הערך ממטען נתונים של XML, ומגדירה את הערך של המשתנה
BookCode
כסוגinteger
, כפי שמוצג בהמשך:<?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>
עכשיו צריך לזכור שהמשתנה
BookCode
נמצא בשימוש ברכיב<Source>
במדיניות XML ל-JSON:<Source>BookCode</Source>
מכיוון שסוג המשתנה הזה הוא
Integer
, שאינו סוג<Source>
חוקי, שרת ה-proxy ל-API נכשל עם השגיאה:steps.xml2json.InvalidSourceType
רזולוציה
חשוב לוודא שסוג המשתנה שמשמש לציון הרכיב <Source>
הוא תקין. סוגי <Source>
חוקיים הם message
ו-string
.
כדי להימנע מהשגיאה שלמעלה במדיניות של XML ל-JSON, אפשר להשתמש במשתנה request
שהוא מסוג message
או בכל מחרוזת אחרת שהיא עומס עבודה תקין של XML.