פעולה

Usage

view: view_name {
  dimension: field_name {
    action:  {
      label: "Label to Appear in Action Menu"
      url: "https://example.com/posts"
      icon_url: "https://looker.com/favicon.ico"
      form_url: "https://example.com/ping/{{ value }}/form.json"
      param: {
        name: "name string"
        value: "value string"
      }
      form_param: {
        name:  "name string"
        type: textarea | string | select
        label:  "possibly-localized-string"
        option: {
          name:  "name string"
          label:  "possibly-localized-string"
        }
        required:  yes | no
        description:  "possibly-localized-string"
        default:  "string"
      }
      user_attribute_param: {
        user_attribute: user_attribute_name
        name: "name_for_json_payload"
      }
    }
  }
}
היררכיה
action
סוגי שדות אפשריים
מאפיין, מדד

ערך ברירת המחדל
ללא

אישור
פרמטרים שונים

כללים מיוחדים
  • כתובת ה-URL של form_url צריכה להיות נגישה לשרת Looker ולהשתמש ב-HTTPS עם אישור תקין
  • כתובת ה-URL של icon_url צריכה להיות נגישה לדפדפן של המשתמש

הגדרה

הפרמטר action יוצר פעולת נתונים שמאפשרת למשתמשים לבצע משימות ברמת השדה בכלי אחר, ישירות מ-Looker. לדוגמה, הפעולה יכולה לגרום לשליחת אימייל, להגדיר ערכים באפליקציות אחרות או לבצע כל פעולה אחרת שאפשר להגדיר ששרת מקבל יעשה. השרת המקבל צריך להיות מסוגל לקבל בקשת POST בפורמט JSON.

אפשר להגדיר action למאפיין או למדד. כדי לגשת לפעולה, בוחרים את השדה שלה כשנמצאים בדף של כלי המחקר, בדף של Look או במרכז בקרה.

כשמגדירים action, מציינים את ההתנהגות הרצויה באמצעות הפרמטרים הבאים:

פרמטר תיאור
label מחרוזת שמציינת את שם הפעולה כפי שהוא יופיע למשתמשים בתפריט הפעולות.
url מחרוזת שמציינת את כתובת ה-URL לעיבוד הפעולה. אם צוינה רשימת היתרים של כתובות URL לפעולות על נתונים, צריך להוסיף את הערך url לרשימת ההיתרים. רק כתובות URL שתואמות לתבנית ברשימת ההיתרים מורשות לכל פעולת נתונים. אם אין רשומות קיימות, כל כתובות ה-URL מורשות לפעולות על נתונים.
icon_url מחרוזת שמציינת כתובת URL שמכילה קובץ תמונה, כדי שהמשתמשים יוכלו להבין במבט חטוף לאן הקישור הזה יפנה אותם. הערך icon_url צריך להיות נגיש לדפדפן של המשתמש.
form_url מחרוזת שמציינת כתובת URL שתחזיר טופס שיוצג למשתמשים. הטופס צריך להיות בפורמט JSON, כפי שמתואר בקטע הגדרת התנהגות הטופס באמצעות form_url או form_param בדף הזה. צריך להיות לשרת Looker גישה אל form_url, והוא צריך להשתמש ב-HTTPS עם אישור תקף.
param מעבירה ערך לשרת המקבל.
form_param מוסיפים קלט לטופס שיוצג לפעולה הזו.
user_attribute_param מעבירה מאפיין משתמש לשרת המקבל. אם אתם משתמשים ב-user_attribute_param לפעולת הנתונים, אתם צריכים להוסיף את הערך url של פעולת הנתונים אל רשימת ההיתרים של כתובות URL לפעולות נתונים.

בדומה לפעולת נתונים, אפשר גם להשתמש בפעולה ברמת השדה שזמינה ממרכז הפעולות של Looker כדי לשלוח נתונים מתא ספציפי. מידע נוסף על האפשרות הזו מופיע בקטע כדאי להשתמש ב-Action Hub של Looker בדף הזה.

העברת מאפייני משתמש לשרת המקבל באמצעות user_attribute_param

אפשר לשלוח מאפייני משתמש לשרת המקבל באמצעות הפרמטר user_attribute_param. בכל user_attribute_param מציינים את הפרמטרים הבאים:

פרמטר סוג תיאור
user_attribute מזהה Looker השם של מאפיין המשתמש ב-Looker
name String השם של המאפיין שרוצים שיופיע במטען הייעודי (payload) של JSON

העברת ערכים לשרת המקבל באמצעות param

אפשר לשלוח נתונים שרירותיים במטען הייעודי (payload) של JSON באמצעות הפרמטר param. בכל param מציינים את הפרמטרים הבאים:

פרמטר סוג תיאור
name String שם של פרמטר להעברה לשרת המקבל
value String הערך של פרמטר שמועבר לשרת המקבל

אסור להעביר נתונים רגישים או מידע פרטי, כמו פרטי כניסה של משתמשים, בפרמטר param. במקום זאת, צריך להגדיר את פרטי הכניסה של המשתמש כמאפיין משתמש בהגדרות האדמין, ולהעביר את המידע הזה בפרמטר user_attribute_param.

ציון התנהגות הטופס באמצעות form_url או form_param

אתם יכולים ליצור טופס שמשתמשי Looker יכולים ליצור איתו אינטראקציה, ואז לשלוח את הקלט מהטופס במטען הייעודי (payload) של JSON. אם מציגים טופס, הוא יופיע כשכבת-על בדף (בכרטיסייה 'חיפוש', 'הצגה' או במרכז הבקרה) שבו הופעלה הפעולה. אפשר לעשות את זה באמצעות הפרמטר form_url או הפרמטר form_param.

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

אם רוצים להגדיר את פריסת הטופס ישירות ב-LookML, משתמשים בפרמטר form_param.

אפשרויות הטופס

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

אפשרות סוג תיאור
name String השם של הערך כפי שהוא יופיע במטען הייעודי (payload) של JSON
type סוג קלט סוג שדה הטופס שיוצג למשתמש:

  • select – הצגת רשימה נפתחת
  • string – הצגת שדה להזנת קלט של שורה אחת
  • textarea – הצגת תיבת קלט טקסט עם כמה שורות
label String התווית של קלט כמו שהיא תופיע למשתמשים
description String תיאור של השדה שיוצג למשתמשים
required בוליאני ההגדרה קובעת אם המשתמש צריך לספק את האפשרות של הטופס לפני שליחת הטופס
default String הערך ההתחלתי של שדה הטופס, אם יש כזה
option String אם בוחרים באפשרות type מתוך select, מגדירים כאן את אפשרויות הבחירה

אם מגדירים את type לערך select, צריך לציין פריטים ברשימה הנפתחת באמצעות option. כל option כולל את הפרטים הבאים:

אפשרות סוג תיאור
name String השם של ערך הטופס כפי שהוא יופיע במטען הייעודי (payload) של JSON
label String התווית של האפשרות כפי שהיא תוצג למשתמשים (אופציונלי)

שימוש בפעולת נתונים ללא טופס

אם לא כוללים פרמטר form_url או form_param בהגדרה של action, פעולת הנתונים לא תכלול טופס. במקרה כזה, הפעולה שולחת בקשה כשמשתמש בוחר בפעולה הזו מתוך התפריט פעולות.

אחרי שבוחרים פעולה בלי טופס, בתפריט פעולות מוצגים סמלים מימין לפעולה כדי לציין את המצב שלה:

  • יופיע סמל טעינה שמראה שהפעולה מתבצעת.

  • יופיע סימן וי, שמציין שהפעולה בוצעה.

  • מופיע עיגול עם האות i, שמציין שהפעולה נכשלה.

אם לא מופיע סמל מימין לפעולה, הפעולה לא הופעלה.

תגובות השרת

תגובת HTTP מוצלחת תיחשב כפעולה מוצלחת.

השרת יכול גם להעביר כמה אפשרויות בחזרה ל-Looker לגבי הצלחת הפעולה. אם בקשת ה-webhook מגיבה עם JSON, ‏ Looker מחפש מפתח looker מיוחד בתגובה. המערכת מתעלמת מכל דבר אחר. לדוגמה, בביטוי:

{
  "my_apps_business_logic": "something",
  "looker": {
    "success": true,
    "refresh_query": true
  }
}

כאן, ערך ברירת המחדל של success הוא true, והגדרת success ל-false תציין ב-Looker שהבקשה נכשלה. בנוסף, refresh_query מוגדר כברירת מחדל ל-false, והגדרתו ל-true תגרום להרצה מחדש של השאילתה הנוכחית ב-Looker, תוך דילוג על המטמון.

אפשר גם להגיב עם שגיאות אימות לכל פרמטר של טופס שהועבר:

{
  "looker": {
    "success": false,
    "validation_errors": {
      "body": "Body must be more than 10 characters long."
    }
  }
}

כאן, ברירת המחדל של validation_errors היא {}. הערך צריך להיות אובייקט JSON שבו המפתחות הם השמות של פרמטרים בטופס והערך הוא מחרוזת שמייצגת הודעת שגיאה לגבי הפרמטר הזה.

דוגמאות

אם משתמשים בפרמטר form_url (עם תחביר Liquid בדוגמה הזו), כל האפשרויות צריכות להיות מוחזרות באובייקט JSON. לדוגמה:

dimension: foo {
  action: {
    label: "Send a Thing"
    url: "https://example.com/ping/\{{ value \}}"
    form_url: "https://example.com/ping/\{{ value \}}/form.json"
  }
}

השרת צריך להחזיר ייצוג JSON של טופס שתואם ל-LookML:

[
  {
    "name": "title",
    "type": "select",
    "label": "desired label name",
    "description": "description text",
    "required": true,
    "default": "value string",
    "options": [
      {
        "name": "name string"
        "label": "desired label name"
      },
      {
        "name": "name string"
        "label": "desired label name"
      }
    ]
  },
  {
    "name": "title",
    "type": "textarea",
    "label": "desired label name",
    "description": "description text",
    "required": true,
    "default": "value string",
  }
]

אם משתמשים בפרמטר form_param, האפשרויות משמשות כפרמטרים של LookML. לדוגמה:

form_param: {
  name: "title"
  type: select
  label: "desired label name"
  option: {
    name: "name string"
    label: "desired label name"
  }
  required: yes
  description: "description text"
  default: "value string"
}

כדאי להשתמש ב-Looker Action Hub

הפרמטר action הוא בחירה טובה אם עדיין אין לכם שרת שהוגדר לקבל את בקשות הפעולה שלכם, או אם אתם רוצים להטמיע תרחיש שימוש עם אפשרויות שימוש חוזר מוגבלות. אבל אפשר גם להשתמש בפעולות ברמת השדה שזמינות בLooker Action Hub. (חשוב לוודא שהמופע שלכם עומד בדרישות של Looker Action Hub).

בנוסף לשילובים קיימים של Looker Action Hub, אפשר גם ליצור פעולה מותאמת אישית משלכם באמצעות ההוראות שבדף התיעוד של מרכז הפעולות.