כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
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>
במדיניות ה-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/>
<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) של קלט חסר | המטען הייעודי (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 של מדיניות ה-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 שנכשל במדיניות ה-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 הוא מטען ייעודי (payload) חוקי ב-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
המטען הייעודי (payload) של ה-XML שהועבר ל-API לא תקין כי ל-XML אין תג סיום עבור רכיב
<root>
. ואז מתקבל קוד השגיאה:steps.xml2json.ExecutionFailed
השגיאה הזו יכולה להופיע גם אם הרכיב
<Source>
הוגדר כתגובה, אבל המטען הייעודי (payload) של תגובת ה-XML משרת הקצה העורפי לא חוקי או שגוי.
רזולוציה
צריך לוודא שהקלט שמועבר למדיניות XML ל-JSON דרך הרכיב <Source>
תקין ולא פגום.
כדי לתקן את הבעיה במדיניות ה-XML לדוגמה ל-JSON שפורטה למעלה, יש להעביר בקשה חוקית למטען ייעודי של 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>
:- מאתרים את הקוד בחבילה של שרת ה-API של שרת ה-proxy, במקום שבו המשתנה הוגדר קודם.
- אחרי שמבינים מהי המדיניות שבה המשתנה מוגדר ומאוכלס קודם, צריך לקבוע את הסוג של המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם יש כזה).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה הוא
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 To 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 To JSON שנכשלה, שימו לב לערכים שצוינו ב-
<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 של שרת ה-API, שבה כל אחד מהמשתנים האלה הוגדר קודם.
- אחרי שמבינים מהי המדיניות שבה המשתנה מוגדר ומאוכלס קודם, צריך לקבוע את הסוג של המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם יש כזה).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>
הואstring
בעוד שסוג המשתנה<OutputVariable>
הוא הודעה או להיפך, זו הסיבה לשגיאה. מידע נוסף על משתנים נפוצים ועל הסוגים שלהם זמין בחומר העזר בנושא משתנים.
לדוגמה, נתייחס למדיניות בנושא הקצאת הודעות שמשמשת להגדרת ערך למשתנה שנקרא
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>
של המדיניות XMLToJSON:<Source>TrackingNumber</Source>
באופן דומה, חשוב לזכור שהמשתנה
request
נמצא בשימוש ברכיב<OutputVariable>
של המדיניות מסוג XML To JSON:<OutputVariable>request</OutputVariable>
TrackingNumber
הוא מסוגstring
בעוד שהמשתנהresponse
הוא מסוגmessage
, לכן הם לא מסוגים תואמים ולכן מופיע קוד השגיאה:steps.xml2json.InCompatibleTypes
השגיאה שלמעלה יכולה גם לקרות אם המשתנה ברכיב
<Source>
הוא מסוגmessage
אבל המשתנה ברכיב<OutputVariable>
הוא מסוג מחרוזת.
רזולוציה
צריך לוודא שסוג המשתנה שמוגדר ברכיב <Source>
והרכיב <OutputVariable>
הם תמיד זהים. חובה שסוג המשתנים שבתוך הרכיב <Source>
יהיה תואם לרכיב <OutputVariable>
.
כדי לתקן את המדיניות בנושא XML ל-JSON שתוארה למעלה, אפשר להצהיר על משתנה נוסף TrackingNumber_output
מסוג string
באמצעות הקצאת מדיניות הודעות ולהשתמש במשתנה הזה ברכיב <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. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בדוגמה הבאה, הסוג הלא חוקי הוא מספר שלם.
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
יש לבדוק את כל כללי המדיניות מסוג XML ל-JSON בשרת ה-proxy הספציפי של ה-API שבו אירעה הכשל. במדיניות XML ל-JSON שנכשלה, חשוב לשים לב לשם המשתנה שצוין ב-
<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 של שרת ה-API, שבה המשתנה הזה הוגדר קודם.
- אחרי שמבינים מהי המדיניות שבה המשתנה מוגדר ומאוכלס קודם, צריך לקבוע את הסוג של המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם יש כזה).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>
אינו מסוגmessage
או מסוגstring
, זו הסיבה לשגיאה. מידע נוסף על משתנים נפוצים ועל הסוגים שלהם זמין בחומר העזר בנושא משתנים.
כדוגמה, נתייחס למדיניות בנושא extracts שמשמשת לחילוץ הערך ממטען ייעודי (payload) של 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 To JSON:<Source>BookCode</Source>
סוג המשתנה הזה הוא
Integer
, שאינו סוג חוקי של<Source>
, ולכן שרת ה-Proxy של ה-API נכשל ומוצגת השגיאה:steps.xml2json.InvalidSourceType
רזולוציה
יש לוודא שסוג המשתנה המשמש לציון הרכיב <Source>
הוא חוקי. הסוגים החוקיים של <Source>
הם message
ו-string
.
כדי להימנע מהשגיאה שלמעלה במדיניות של XML ל-JSON, אפשר להשתמש במשתנה request
מסוג message
או בכל מחרוזת אחרת שהיא מטען ייעודי (payload) חוקי ב-XML.