אתם צופים במסמכי התיעוד של 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 to 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 לא תקין או שהפורמט שלו שגוי. |
הסיבה: חסר מטען קלט
השגיאה הזו מתרחשת במדיניות XML ל-JSON אם התוכן (המטען הייעודי) של המשתנה שצוין ברכיב <Source> ריק.
לדוגמה, אם רכיב <Source> במדיניות XML ל-JSON מוגדר כמשתנה request או response והוא אמור להכיל מטען ייעודי (payload) של XML, השגיאה הזו מתרחשת אם המטען הייעודי ריק.
אבחון
מזהים את מדיניות ה-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 שמוצגת למעלה, מטען הבקשה (כלומר, גוף הבקשה) שנשלח על ידי הלקוח היה ריק.
לדוגמה:
curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"מכיוון שמטען ה-XML של הבקשה ריק, מתקבל קוד השגיאה:
steps.xml2json.ExecutionFailedהשגיאה הזו יכולה להופיע גם אם רכיב
<Source>מוגדר לתגובה, אבל שרת הקצה העורפי מעביר מטען ייעודי ריק.
רזולוציה
מוודאים שהקלט שמועבר למדיניות XML ל-JSON דרך הרכיב <Source> הוא מטען ייעודי (payload) תקין של XML ולא ריק.
כדי לפתור את הבעיה במדיניות לדוגמה של XML ל-JSON, צריך להעביר מטען ייעודי חוקי בפורמט 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 To JSON הוא מטען ייעודי (payload) תקין של XML. אם הקלט לא תקין או שהפורמט שלו שגוי, זאת הסיבה לשגיאה.בדוגמה של מדיניות XML ל-JSON שמוצגת למעלה, קובץ ה-XML הלא תקין הבא הועבר למדיניות Extract Variables (חילוץ משתנים) דרך הקובץ
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>הוגדר כ-response, אבל מטען ה-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>:- מאתרים את הקוד בחבילת ה-API Proxy, שבו הוגדר המשתנה לראשונה.
- אחרי שמגלים באיזו מדיניות המשתנה מוגדר ומאוכלס לראשונה, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה הוא
string, זו הסיבה לשגיאה. במאמר הפניה למשתנים אפשר לקרוא על משתנים נפוצים ועל הסוגים שלהם.
לדוגמה, אפשר לראות את המשתנה TrackingNumber במדיניות XML ל-JSON שלמעלה. הוא מסוג מחרוזת. עכשיו נניח שיש מדיניות 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הוא מסוג מחרוזת.נזכיר שהמשתנה
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 Proxy, שבו כל אחד מהמשתנים האלה הוגדר לראשונה.
- אחרי שמגלים באיזו מדיניות המשתנה מוגדר ומאוכלס לראשונה, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>הואstring, וסוג המשתנה שצוין ב-<OutputVariable>הוא message, או להפך, זו הסיבה לשגיאה. במאמר הפניה למשתנים אפשר לקרוא על משתנים נפוצים ועל הסוגים שלהם.
לדוגמה, נניח שיש מדיניות 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הוא מסוג מחרוזת.עכשיו, נזכיר שהמשתנה
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. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, הסוג הלא תקין הוא integer.
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."בודקים את כל כללי המדיניות של XML ל-JSON ב-API Proxy הספציפי שבו התרחשה השגיאה. בהערה של מדיניות XML To 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 Proxy, שבו הוגדר המשתנה הזה לראשונה.
- אחרי שמגלים באיזו מדיניות המשתנה מוגדר ומאוכלס לראשונה, צריך לקבוע את סוג המשתנה באופן הבא:
- בודקים את הערך של מאפיין הסוג (אם הוא קיים).
- אם מאפיין הסוג לא קיים, המשתנה נחשב למחרוזת.
- אם סוג המשתנה שצוין ב-
<Source>הוא לא מסוגmessageאו מסוגstring, זו הסיבה לשגיאה. במאמר הפניה למשתנים אפשר לקרוא על משתנים נפוצים ועל הסוגים שלהם.
לדוגמה, נניח שיש מדיניות ExtractVariables שמשמשת לחילוץ ערך ממטען ייעודי (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>תקין, ולכן ה-API Proxy נכשל עם השגיאה:steps.xml2json.InvalidSourceType
רזולוציה
מוודאים שסוג המשתנה שמשמש לציון הרכיב <Source> הוא תקין. הסוגים התקינים של <Source> הם message ו-string.
כדי להימנע מהשגיאה שלמעלה במדיניות XML To JSON, אפשר להשתמש במשתנה request שהוא מסוג message או בכל מחרוזת אחרת שהיא מטען XML תקין.