Immobiliendienst

Mit dem Attributdienst können Sie einfache Daten in Schlüssel/Wert-Paaren speichern, die einem Skript, einem Nutzer eines Skripts oder einem Dokument zugeordnet sind, in dem ein Add-on verwendet wird. Sie wird normalerweise zum Speichern von Entwicklerkonfigurationen oder Nutzereinstellungen verwendet. Eigenschaften werden niemals von mehreren Skripts gemeinsam verwendet.

Informationen zu den Tageskontingenten und Speicherlimits für den Properties-Dienst finden Sie unter Kontingente für Google-Dienste.

Vergleich von Immobilienspeichern

Das globale Objekt PropertiesService bietet drei Methoden, von denen jede ein ähnliches Properties-Objekt mit unterschiedlichen Zugriffsrechten zurückgibt, wie in der folgenden Tabelle dargestellt:

Skripteigenschaften Nutzereigenschaften Dokumenteigenschaften
Zugriffsmethode getScriptProperties() getUserProperties() getDocumentProperties()
Daten, die zwischen Alle Nutzer eines Skripts, eines Add-ons oder einer Webanwendung Der aktuelle Nutzer eines Skripts, Add-ons oder einer Webanwendung Alle Nutzer eines Add-ons im geöffneten Dokument
Üblicherweise verwendet für App-weite Konfigurationsdaten wie Nutzername und Passwort für die externe Datenbank des Entwicklers Nutzerspezifische Einstellungen, z. B. metrische oder imperiale Einheiten Dokumentspezifische Daten wie die Quell-URL eines eingebetteten Diagramms

Datenformat

Der Properties-Dienst speichert alle Daten als Strings in Schlüssel/Wert-Paaren. Datentypen, die noch keine Strings sind, werden automatisch in Strings konvertiert. Dies gilt auch für Methoden, die in gespeicherten Objekten enthalten sind.

Daten werden gespeichert

Um einen einzelnen Wert zu speichern, rufen Sie die Methode Properties.setProperty(key, value) des entsprechenden Speichers auf, wie im folgenden Beispiel gezeigt:

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

Wenn Sie Daten im Bulk speichern möchten, übergeben Sie eine Zuordnung von Schlüssel/Wert-Paaren an Properties.setProperties(properties). Jedes Schlüssel/Wert-Paar des Objekts im Parameter wird als separates Attribut gespeichert:

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

Daten lesen

Um einen einzelnen Wert abzurufen, den Sie zuvor gespeichert haben, rufen Sie Properties.getProperty(key) auf:

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

Um alle Werte im aktuellen Property-Speicher abzurufen, rufen Sie Properties.getProperties() auf:

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

Daten ändern

Die Methoden getProperty() und getProperties() geben eine Kopie der gespeicherten Daten und keine Liveansicht zurück. Wenn Sie das zurückgegebene Objekt ändern, wird also nicht der Wert im Attributspeicher aktualisiert. Um die Daten im Speicher zu aktualisieren, speichern Sie sie einfach noch einmal:

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

Daten löschen

Um einen einzelnen Wert zu löschen, rufen Sie Properties.deleteProperty(key) auf:

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

Um alle Attribute im aktuellen Speicher zu löschen, rufen Sie Properties.deleteAllProperties() auf:

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

Skripteigenschaften manuell verwalten

Auf der Seite mit den Projekteinstellungen können Sie bis zu 50 benutzerdefinierte Eigenschaften als Strings in Schlüssel/Wert-Paaren manuell hinzufügen. Wenn Sie mehr als 50 Properties hinzufügen möchten, müssen Sie sie mithilfe der oben unter Daten speichern beschriebenen Methoden programmatisch hinzufügen. Wenn Sie auf der Seite mit den Projekteinstellungen Skripteigenschaften festlegen, können Sie keine Skriptvariablen referenzieren.

Skripteigenschaften hinzufügen

  1. Öffnen Sie Ihr Apps Script-Projekt.
  2. Klicken Sie links auf Projekteinstellungen Das Symbol für die Projekteinstellungen.
  3. Klicken Sie unter Skripteigenschaften auf Skripteigenschaft hinzufügen, um die erste Eigenschaft hinzuzufügen.
  4. Wenn Sie eine zweite und nachfolgende Eigenschaften hinzufügen möchten, klicken Sie unter Skripteigenschaften auf Skripteigenschaften bearbeiten > Skripteigenschaft hinzufügen.
  5. Geben Sie unter Property den Schlüsselnamen ein.
  6. Geben Sie unter Wert den Wert für den Schlüssel ein.
  7. Optional: Klicken Sie auf Skripteigenschaft hinzufügen, um weitere Eigenschaften hinzuzufügen.
  8. Klicken Sie auf Skripteigenschaften speichern.

Skripteigenschaften bearbeiten

  1. Öffnen Sie Ihr Apps Script-Projekt.
  2. Klicken Sie links auf Projekteinstellungen Das Symbol für die Projekteinstellungen.
  3. Klicken Sie unter Skripteigenschaften auf Skripteigenschaften bearbeiten.
  4. Nehmen Sie für jede Eigenschaft, die Sie ändern möchten, Änderungen am Schlüsselnamen und am Schlüsselwert vor.
  5. Klicken Sie auf Skripteigenschaften speichern.

Skripteigenschaften löschen

  1. Öffnen Sie Ihr Apps Script-Projekt.
  2. Klicken Sie links auf Projekteinstellungen Das Symbol für die Projekteinstellungen.
  3. Klicken Sie unter Skripteigenschaften auf Skripteigenschaften bearbeiten.
  4. Klicken Sie neben der Property, die Sie löschen möchten, auf „Entfernen“ .
  5. Klicken Sie auf Skripteigenschaften speichern.