Mülkler Hizmeti

Properties hizmeti, basit verileri bir komut dosyası, bir komut dosyası kullanıcısı veya bir eklentinin kullanıldığı bir dokümanla sınırlı anahtar/değer çiftleri olarak depolamanıza olanak tanır. Genellikle geliştirici yapılandırmasını veya kullanıcı tercihlerini depolamak için kullanılır. Özellikler hiçbir zaman komut dosyaları arasında paylaşılmaz.

Properties hizmetinin günlük kotalarını ve depolama alanı sınırlarını görüntülemek için Google hizmetlerinin kotaları başlıklı makaleyi inceleyin.

Mülk mağazalarının karşılaştırılması

PropertiesService global nesnesi, her biri benzer bir Properties nesnesi döndüren ancak aşağıdaki tabloda gösterildiği gibi farklı erişim haklarına sahip üç yöntem sunar:

Komut Dosyası Özellikleri Kullanıcı Özellikleri Doküman Özellikleri
Erişim yöntemi getScriptProperties() getUserProperties() getDocumentProperties()
Şunlar arasında paylaşılan veriler: Bir komut dosyasının, eklentinin veya web uygulamasının tüm kullanıcıları Bir komut dosyasının, eklentinin veya web uygulamasının mevcut kullanıcısı Açık belgedeki bir eklentinin tüm kullanıcıları
Genellikle kullanıldığı yer Uygulama genelinde yapılandırma verileri (ör. geliştiricinin harici veritabanı için kullanıcı adı ve şifre) Kullanıcıya özel ayarlar (ör. metrik veya İngiliz birimleri) Dokümana özgü veriler (ör. yerleştirilmiş bir grafiğin kaynak URL'si)

Veri biçimi

Properties hizmeti, tüm verileri anahtar/değer çiftlerinde dize olarak depolar. Kaydedilmiş nesnelerde bulunan yöntemler de dahil olmak üzere, henüz dize olmayan veri türleri otomatik olarak dizelere dönüştürülür.

Veri tasarrufu

Tek bir değeri kaydetmek için aşağıdaki örnekte gösterildiği gibi uygun mağazanın Properties.setProperty(key, value) yöntemini çağırın:

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);
}

Verileri toplu olarak kaydetmek için anahtar/değer çiftlerinin haritasını Properties.setProperties(properties) öğesine iletin. Parametredeki nesnenin her anahtar/değer çifti ayrı bir özellik olarak depolanır:

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);
}

Verileri okuma

Daha önce kaydettiğiniz tek bir değeri almak için Properties.getProperty(key) işlevini çağırın:

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);
}

Mevcut özellik deposundaki tüm değerleri almak için Properties.getProperties() işlevini çağırın:

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);
}

Verileri değiştirme

getProperty() ve getProperties() yöntemleri, canlı görünüm değil, depolanan verilerin bir kopyasını döndürür. Bu nedenle, döndürülen nesnenin değiştirilmesi, özellik deposundaki değeri güncellemez. Mağazadaki verileri güncellemek için verileri tekrar kaydetmeniz yeterlidir:

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);
}

Veri silme

Tek bir değeri silmek için Properties.deleteProperty(key) işlevini çağırın:

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);
}

Mevcut mağazadaki tüm mülkleri silmek için Properties.deleteAllProperties() işlevini çağırın:

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);
}

Komut dosyası özelliklerini manuel olarak yönetme

Proje ayarları sayfasından anahtar/değer çiftleri olarak en fazla elli özel özelliği manuel olarak ekleyebilirsiniz. Elli adetten fazla özellik eklemek için Verileri kaydetme bölümünde yukarıda açıklanan yöntemleri kullanarak bu özellikleri programlı bir şekilde eklemeniz gerekir. Proje ayarları sayfasından komut dosyası özelliklerini ayarladığınızda komut dosyası değişkenlerine başvuramazsınız.

Komut dosyası özellikleri ekleme

  1. Apps Komut Dosyası projenizi açın.
  2. Sol tarafta Proje Ayarları'nı Proje ayarları simgesi tıklayın.
  3. İlk özelliği eklemek için Komut Dosyası Özellikleri bölümünde Komut dosyası özelliği ekle'yi tıklayın.
  4. İkinci ve sonraki özellikleri eklemek için Komut Dosyası Özellikleri bölümünde Komut dosyası özelliklerini düzenle > Komut dosyası özelliği ekle'yi tıklayın.
  5. Özellik için anahtar adını girin.
  6. Değer alanına anahtarın değerini girin.
  7. (İsteğe bağlı) Daha fazla özellik eklemek için Komut dosyası özelliği ekle'yi tıklayın.
  8. Komut dosyası özelliklerini kaydet'i tıklayın.

Komut dosyası özelliklerini düzenleme

  1. Apps Komut Dosyası projenizi açın.
  2. Sol tarafta Proje Ayarları'nı Proje ayarları simgesi tıklayın.
  3. Komut Dosyası Özellikleri bölümünde Komut dosyası özelliklerini düzenle'yi tıklayın.
  4. Değiştirmek istediğiniz her mülk için anahtar adında ve anahtar değerinde değişiklik yapın.
  5. Komut dosyası özelliklerini kaydet'i tıklayın.

Komut dosyası özelliklerini silme

  1. Apps Komut Dosyası projenizi açın.
  2. Sol tarafta Proje Ayarları'nı Proje ayarları simgesi tıklayın.
  3. Komut Dosyası Özellikleri bölümünde Komut dosyası özelliklerini düzenle'yi tıklayın.
  4. Silmek istediğiniz mülkün yanındaki Kaldır'ı tıklayın.
  5. Komut dosyası özelliklerini kaydet'i tıklayın.