שירות נכסים

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

כדי לראות את המכסות היומיות ואת מגבלות האחסון בשירות Properties, אפשר לעיין במאמר מכסות לשירותי Google.

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

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

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

פורמט נתונים

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

שמירת נתונים

כדי לשמור ערך יחיד, מפעילים את השיטה 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 מאפיינים מותאמים אישית, כמחרוזות של זוגות מפתח/ערך. כדי להוסיף יותר מ-50 מאפיינים, צריך להוסיף אותם באופן פרוגרמטי באמצעות השיטות שמתוארות למעלה בקטע שמירת נתונים. כשמגדירים מאפייני סקריפט בדף הגדרות הפרויקט, אי אפשר להפנות למשתני סקריפט.

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

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

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

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

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

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