שירות נכסים

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

כדי לראות את המכסות היומיות ואת מגבלות האחסון של השירות 'נכסים': מכסות לשירותי Google.

השוואה בין חנויות נכסים

PropertiesService שאובייקט גלובלי מציע שלוש שיטות, שכל אחת מהן מחזירה Properties אבל עם הרשאות גישה שונות, כפי שמוצג בטבלה הבאה:

מאפייני הסקריפט מאפייני המשתמש מאפייני המסמך
שיטת גישה getScriptProperties() getUserProperties() getDocumentProperties()
נתונים שמשותפים בין כל המשתמשים בסקריפט, בתוסף או באפליקציית אינטרנט המשתמש הנוכחי בסקריפט, בתוסף או באפליקציית אינטרנט כל המשתמשים בתוסף במסמך הפתוח
בדרך כלל משמש עבור נתוני תצורה ברמת האפליקציה, כמו שם המשתמש והסיסמה של מסד הנתונים החיצוני של המפתח הגדרות ספציפיות למשתמש, כמו יחידות מטריות או יחידות אימפריאליות נתונים ספציפיים למסמך, כמו כתובת ה-URL של המקור של תרשים מוטמע

פורמט נתונים

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

מתבצעת שמירה של הנתונים

כדי לשמור ערך בודד, קוראים לשיטה Properties.setProperty(key, value) של החנות המתאימה, כפי שמוצג בדוגמה הבאה:

service/propertyService.gs
try {
  // Set a property in each of the three property stores.
  const scriptProperties = PropertiesService.getScriptProperties();
  const userProperties = PropertiesService.getUserProperties();
  const documentProperties = PropertiesService.getDocumentProperties();

  scriptProperties.setProperty('SERVER_URL', 'http://www.example.com/');
  userProperties.setProperty('DISPLAY_UNITS', 'metric');
  documentProperties.setProperty('SOURCE_DATA_ID',
      '1j3GgabZvXUF177W0Zs_2v--H6SPCQb4pmZ6HsTZYT5k');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

כדי לשמור נתונים בכמות גדולה, יש להעביר מפה של צמדי מפתח/ערך אל Properties.setProperties(properties) כל צמד מפתח/ערך של אובייקט בפרמטר מאוחסן בתור נכס:

service/propertyService.gs
try {
  // Set multiple script properties in one call.
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperties({
    'cow': 'moo',
    'sheep': 'baa',
    'chicken': 'cluck'
  });
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

קריאת נתונים

כדי לאחזר ערך בודד ששמרתם בעבר, צריך להתקשר Properties.getProperty(key)

service/propertyService.gs
try {
  // Get the value for the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  const units = userProperties.getProperty('DISPLAY_UNITS');
  console.log('values of units %s', units);
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

כדי לאחזר את כל הערכים במאגר הנכסים הנוכחי, קוראים לפונקציה Properties.getProperties()

service/propertyService.gs
try {
  // Get multiple script properties in one call, then log them all.
  const scriptProperties = PropertiesService.getScriptProperties();
  const data = scriptProperties.getProperties();
  for (const key in data) {
    console.log('Key: %s, Value: %s', key, data[key]);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

שינוי נתונים

השיטות getProperty() ו-getProperties() מחזירות עותק של של הנתונים, ולא צפייה פעילה, לכן שינוי האובייקט המוחזר לא יעדכן את הערך בחנות הנכסים. כדי לעדכן את הנתונים בחנות, יש לשמור אותם שוב:

service/propertyService.gs
try {
  // Change the unit type in the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  let units = userProperties.getProperty('DISPLAY_UNITS');
  units = 'imperial'; // Only changes local value, not stored value.
  userProperties.setProperty('DISPLAY_UNITS', units); // Updates stored value.
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

מחיקת נתונים

כדי למחוק ערך בודד, Properties.deleteProperty(key)

service/propertyService.gs
try {
  // Delete the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty('DISPLAY_UNITS');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

כדי למחוק את כל הנכסים בחנות הנוכחית, התקשר Properties.deleteAllProperties()

service/propertyService.gs
try {
  // Get user properties in the current script.
  const userProperties = PropertiesService.getUserProperties();
  // Delete all user properties in the current script.
  userProperties.deleteAllProperties();
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

ניהול מאפייני סקריפט באופן ידני

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

הוספת מאפייני סקריפט

  1. פותחים את פרויקט Apps Script.
  2. בצד ימין, לוחצים על הגדרות הפרויקט הסמל של הגדרות הפרויקט.
  3. כדי להוסיף את הנכס הראשון, בקטע מאפייני סקריפט לוחצים על מוסיפים את מאפיין הסקריפט.
  4. כדי להוסיף מאפיין שני ואחר כך, לוחצים על מאפייני סקריפט. עריכת מאפייני סקריפט > הוספת מאפיין סקריפט.
  5. בשדה נכס, מזינים את שם המפתח.
  6. בשדה Value, מזינים את ערך המפתח.
  7. (אופציונלי) כדי להוסיף עוד מאפיינים, לוחצים על הוספת מאפיין סקריפט.
  8. לוחצים על Save script properties (שמירת מאפייני הסקריפט).

עריכת מאפייני הסקריפט

  1. פותחים את פרויקט Apps Script.
  2. בצד ימין, לוחצים על הגדרות הפרויקט הסמל של הגדרות הפרויקט.
  3. בקטע מאפייני סקריפט, לוחצים על עריכת מאפייני סקריפט.
  4. עורכים שינויים בשם המפתח ובערך המפתח בכל נכס שרוצים לשנות.
  5. לוחצים על Save script properties (שמירת מאפייני הסקריפט).

מחיקת מאפייני סקריפט

  1. פותחים את פרויקט Apps Script.
  2. בצד ימין, לוחצים על הגדרות הפרויקט הסמל של הגדרות הפרויקט.
  3. בקטע מאפייני סקריפט, לוחצים על עריכת מאפייני סקריפט.
  4. לצד הנכס שרוצים למחוק, לוחצים על סמל ההסרה .
  5. לוחצים על Save script properties (שמירת מאפייני הסקריפט).