פתרון בעיות שקשורות ל-Liquid

המדריך הזה יעזור לכם לפתור שגיאות ב-Liquid ב-LookML.

עץ ניפוי הבאגים

כדי לפתור בעיות נפוצות ב-Liquid, אפשר להיעזר בתרשים הבא של עץ החלטות:

בקטעים הבאים מפורטים התרחישים בעץ.

שגיאה: המשתנה לא נמצא

בודקים אם השדה נגיש בניתוח

השגיאה הזו יכולה להופיע אם אתם מפנים לשדה שלא ניתן לגשת אליו ב'ניתוח נתונים'.

קודם כל, כדאי לבדוק אם יש שגיאות הקלדה בשם השדה. לאחר מכן, בודקים שהתצוגה שבה השדה מוגדר מצורפת ל-Explore.

שגיאה: חריגה בניתוח Liquid

השגיאה הזו יכולה להופיע במהלך אימות של LookML ב-IDE או במהלך הפעלת שאילתה. בקטעים הבאים מתוארות סיבות נפוצות לשגיאה הזו.

סגירת מירכאות בודדות או כפולות

בודקים אם יש מירכאות יחידות או כפולות שנפתחו אבל לא נסגרו. לדוגמה, הקוד הבא יגרום לשגיאה:

{% if value == "Shirt %}
  This is a shirt.
{% endif %}

כדי לפתור את השגיאה, צריך לסגור את המירכאות.

{% if value == "Shirt" %}
  This is a shirt.
{% endif %}

שימוש ב-== להשוואה

אל תשתמשו בסימן שווה (=) יחיד כשבודקים אם ערך מסוים שווה לערך אחר. הקוד הבא יחזיר שגיאה:

{% if value = "Shirt" %}
  This is a shirt.
{% endif %}

כדי לפתור את השגיאה, צריך להשתמש ב-== במקום זאת.

{% if value == "Shirt" %}
  This is a shirt.
{% endif %}

שימוש בתחביר התגים הנכון

אסור להשתמש בתחביר של פלט סביב הצהרת if, או בתחביר של תג סביב ערך יחיד. הקוד הבא יקפיץ הודעת שגיאה:

{{ if value == "Shirt" }}
  This is a {% value %}.
{{ endif }}

במקום זאת, צריך להשתמש בתחביר של תגי HTML כדי להוסיף ערכים בודדים, ובתחביר של תגי HTML כדי לבצע השוואות ופעולות לוגיות.

{% if value == "Shirt" %}
  This is a {{ value }}.
{% endif %}

אל תקננו תגי Liquid

אסור להשתמש בתגי Liquid בתוך תגי Liquid אחרים. לדוגמה, הקוד הבא יחזיר שגיאה:

{% if value > {{ view_name.field_name._value }} %}
  This value is larger.
{% endif %}

כדי לפתור את השגיאה, מסירים את התגים המקוננים:

{% if value > view_name.field_name._value %}
  This value is larger.
{% endif %}

ערך שגוי מוצג ב-Liquid

במקרים כאלה, בדרך כלל לא יופיעו שגיאות באימות של LookML, אבל תקבלו תוצאות לא צפויות כשמריצים שאילתה ב-Explore.

שימוש באותיות רישיות בערכים yesno

אם אתם משתמשים ב-Liquid כדי לבדוק את הערך של שדה yesno, כדאי לבדוק אם יש ערכים שלא מתחילים באות גדולה. הקוד הבא לא יתאים לאף תוצאה עבור התנאי yes:

{% if value == "yes" %}
  This is a shirt or shoes.
{% endif %};;

במקום זאת, צריך להשתמש באותיות רישיות בערכים Yes ו-No.

{% if value == "Yes" %}
  This is a shirt or shoes.
{% endif %};;

בדיקה אם יש תמיכה בפרמטר Liquid

אם מפנים לפרמטר Liquid בפרמטר LookML שלא תומך בפרמטר Liquid הזה, Looker יתעלם מפרמטר Liquid.

לדוגמה, הקוד הבא לא יחזיר כלום, כי אין תמיכה בתחביר parameter parameter_name בפרמטר html LookML.

html: {% parameter parameter_name %};;

כדי לראות אילו פרמטרים של Liquid נתמכים באילו פרמטרים של LookML, אפשר לעיין בחומר העזר בנושא משתני Liquid. בדוגמה הזו, אפשר לשכתב את הקוד באופן הבא:

html: {{ parameter_name._parameter_value }};;