Bibliotheken

Eine Bibliothek ist ein Scriptprojekt, dessen Funktionen in anderen Scripts wiederverwendet werden können.

Zugriff auf eine Bibliothek erhalten

Wenn Sie eine Bibliothek in Ihr Projekt einfügen möchten, benötigen Sie mindestens Zugriff auf Ansichtsebene. Wenn Sie nicht der Autor der Bibliothek sind, die Sie einbinden möchten, wenden Sie sich an den Autor und fordern Sie Zugriff an.

Sie benötigen die Script-ID der Bibliothek, die Sie einfügen möchten. Wenn Sie Zugriff auf die Bibliothek haben, finden Sie die Script-ID auf der Seite Projekteinstellungen .

Bibliothek zu einem Skriptprojekt hinzufügen

  1. Klicken Sie links im Apps Script-Editor neben „Bibliotheken“ auf „Bibliothek hinzufügen“ .
  2. Fügen Sie im Feld „Script-ID“ die Script-ID der Bibliothek ein.
  3. Klicken Sie auf Suchen.
  4. Klicken Sie auf das Drop-down-Menü Version und wählen Sie die Version der Bibliothek aus, die Sie verwenden möchten.
  5. Prüfen Sie, ob der Standardname „Identifier“ der Name ist, den Sie für diese Bibliothek verwenden möchten. Dies ist der Name, den Ihr Skript verwendet, um auf die Bibliothek zu verweisen. Wenn Sie sie beispielsweise auf Test setzen, können Sie eine Methode dieser Bibliothek so aufrufen: Test.libraryMethod().
  6. Klicken Sie auf Hinzufügen.

Bibliothek verwenden

Verwenden Sie die enthaltene Bibliothek wie einen Standarddienst. Wenn Test beispielsweise der Bezeichner für Ihre Bibliothek ist, geben Sie Test gefolgt von einem Punkt ein, um die Liste der Methoden in der Bibliothek aufzurufen.

So öffnen Sie die Referenzdokumentation für eine enthaltene Bibliothek:

Klicken Sie links im Skripteditor neben dem Namen der Bibliothek auf das Dreipunkt-Menü  > In neuem Tab öffnen.

Bibliothek entfernen

Klicken Sie links im Scripteditor neben dem Namen der Bibliothek auf das Dreipunkt-Menü  > Entfernen > Bibliothek entfernen.

Bibliothek aktualisieren

Sie können die Version der Bibliothek ändern oder ihre Kennung aktualisieren.

  1. Klicken Sie links im Editor unter „Bibliotheken“ auf den Namen der Bibliothek.
  2. Nehmen Sie die Änderungen vor und klicken Sie auf Speichern.

Bibliothek erstellen und teilen

So verwenden und teilen Sie Ihr Skriptprojekt als Bibliothek:

  1. Erstellen Sie ein versioniertes Deployment Ihres Skripts.
  2. Geben Sie allen potenziellen Nutzern der Bibliothek mindestens Zugriff auf Datenansichtsebene.
  3. Geben Sie diesen Nutzern die Script-ID, die Sie auf der Seite Projekteinstellungen finden.

Best Practices

Hier sind einige Richtlinien, die Sie beim Schreiben einer Bibliothek beachten sollten:

  1. Wählen Sie einen aussagekräftigen Namen für Ihr Projekt aus, da er als Standard-ID verwendet wird, wenn Ihre Bibliothek von anderen eingebunden wird.
  2. Wenn Sie möchten, dass eine oder mehrere Methoden Ihres Skripts für Ihre Bibliotheksnutzer nicht sichtbar (und nicht nutzbar) sind, können Sie den Namen der Methode mit einem Unterstrich beenden. Beispiel: myPrivateMethod_().
  3. Bibliotheksnutzer können nur auf aufzählbare globale Eigenschaften zugreifen. Dazu gehören Funktionsdeklarationen, Variablen, die außerhalb einer Funktion mit var erstellt wurden, und Eigenschaften, die explizit für das globale Objekt festgelegt wurden. Wenn Sie beispielsweise Object.defineProperty() mit enumerable auf false festlegen, erstellen Sie ein Symbol, das Sie in Ihrer Bibliothek verwenden können. Ihre Nutzer haben jedoch keinen Zugriff auf dieses Symbol.
  4. Wenn Sie möchten, dass Ihre Bibliotheksnutzer die automatische Vervollständigung des Scripteditors und die automatisch generierte Dokumentation verwenden können, müssen Sie für alle Ihre Funktionen eine Dokumentation im JSDoc-Stil haben. Beispiel:

    /**
     * Raises a number to the given power, and returns the result.
     *
     * @param {number} base the number we're raising to a power
     * @param {number} exp the exponent we're raising the base to
     * @return {number} the result of the exponential calculation
     */
    function power(base, exp) { ... }
    

Ressourcenbereich

Wenn Sie mit Bibliotheken arbeiten, gibt es zwei Arten von Ressourcen: freigegebene und nicht freigegebene. Eine gemeinsam genutzte Ressource bedeutet, dass sowohl die Bibliothek als auch das einschließende Skript einen integrierten Zugriff auf dieselbe Instanz der Ressource haben. Das folgende Diagramm zeigt eine freigegebene Ressource am Beispiel von Nutzer-Properties:

Freigegebene Ressource

Bei einer nicht freigegebenen Ressource haben sowohl die Bibliothek als auch das einschließende Skript nur integrierten Zugriff auf ihre Instanz der Ressource. Eine Bibliothek kann jedoch Zugriff auf ihre nicht freigegebenen Ressourcen gewähren, indem sie explizite Funktionen enthält, die auf diese Ressourcen zugreifen. Hier sehen Sie ein Beispiel für eine Funktion, die Sie in Ihre Bibliothek aufnehmen würden, um ihre Skripteigenschaften verfügbar zu machen:

  function getLibraryProperty(key) {
    const scriptProperties = PropertiesService.getScriptProperties();
    return scriptProperties.getProperty(key);
  }

Das folgende Diagramm zeigt eine nicht freigegebene Ressource am Beispiel von Skripteigenschaften:

Nicht freigegebene Ressource

In dieser Tabelle sind die freigegebenen und nicht freigegebenen Ressourcen aufgeführt:

Ressource Freigegeben* Nicht geteilt** Hinweise
Sperren Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird.
Skripteigenschaften Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird.
Cache Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird.
Trigger Einfache Trigger, die in der Bibliothek erstellt wurden, werden nicht durch das einschließende Skript ausgelöst.
ScriptApp
UiApp
Nutzereigenschaften
Logger und Ausführungsprotokoll
Sites, Tabellen und andere Container Ein Aufruf von getActive() gibt den Container des einschließenden Skripts zurück.
MailApp und GmailApp
* Das bedeutet, dass die Bibliothek keine eigene Instanz des Features/der Ressource hat, sondern die vom aufrufenden Skript erstellte Instanz verwendet.
** Das bedeutet, dass die Bibliothek eine eigene Instanz der Ressource/Funktion hat und dass alle Skripts, die die Bibliothek verwenden, auf diese Instanz zugreifen und sie gemeinsam nutzen.

Bibliothek testen

Verwenden Sie die Head-Bereitstellung, um Ihre Bibliothek zu testen. Jeder, der Zugriff auf das Skript auf Editorebene hat, kann die Head-Bereitstellung verwenden.

Bibliothek debuggen

Wenn Sie den Debugger in einem Projekt verwenden, das eine Bibliothek enthält, können Sie in eine Funktion der enthaltenen Bibliothek eintreten. Der Code wird im Debugger im Nur-Lese-Modus und in der richtigen Version angezeigt.