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 aufnehmen 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 bitten Sie um Zugriff.

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

Ihrem Scriptprojekt eine Bibliothek hinzufügen

  1. Klicken Sie links im Apps Script-Editor neben „Libraries“ (Bibliotheken) auf „Add a library“ (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 zu verwendende Bibliotheksversion aus.
  5. Prüfen Sie, ob der Standardname „Identifier“ derjenige ist, den Sie für diese Bibliothek verwenden möchten. Dies ist der Name, mit dem in Ihrem Script auf die Bibliothek verwiesen wird. Wenn Sie es beispielsweise auf Test festlegen, 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 die Kennung für Ihre Bibliothek ist, geben Sie Test gefolgt von einem Punkt ein, um eine Liste der Methoden in der Bibliothek aufzurufen.

So rufen Sie die Referenzdokumentation für eine enthaltene Bibliothek auf:

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

Mediathek entfernen

Klicken Sie links im Script-Editor 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 gewünschten Änderungen vor und klicken Sie auf Speichern.

Bibliothek erstellen und teilen

So verwenden und geben Sie Ihr Script-Projekt als Bibliothek frei:

  1. Erstellen Sie eine versionierte Bereitstellung Ihres Scripts.
  2. Weisen Sie allen potenziellen Nutzern der Bibliothek mindestens Zugriff auf Datenansichtsebene zu.
  3. Gib diesen Nutzern die Script-ID, die du auf der Seite Projekteinstellungen findest.

Best Practices

Beachten Sie beim Erstellen einer Bibliothek die folgenden Richtlinien:

  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 eingeschlossen wird.
  2. Wenn eine oder mehrere Methoden Ihres Scripts für die Bibliotheksnutzer nicht sichtbar (und nicht nutzbar) sein sollen, können Sie den Namen der Methode mit einem Unterstrich beenden. Beispiel: myPrivateMethod_().
  3. Nur globale Eigenschaften, die gezählt werden können, sind für Bibliotheksnutzer sichtbar. Dazu gehören Funktionsdeklarationen, Variablen, die außerhalb einer Funktion mit var erstellt wurden, und Eigenschaften, die explizit auf dem globalen Objekt festgelegt wurden. Wenn Sie beispielsweise Object.defineProperty() mit enumerable = false festlegen, wird ein Symbol erstellt, das Sie in Ihrer Bibliothek verwenden können, auf das Ihre Nutzer jedoch nicht zugreifen können.
  4. Wenn Nutzer Ihrer Bibliothek die automatische Vervollständigung im Script-Editor und die automatisch generierte Dokumentation nutzen sollen, müssen Sie für alle Funktionen eine JSDoc-Dokumentation bereitstellen. 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) { ... }
    

Ressourcenumfang

Es gibt zwei Arten von Ressourcen, wenn Sie mit Bibliotheken arbeiten: freigegebene und nicht freigegebene. Eine freigegebene Ressource bedeutet, dass sowohl die Bibliothek als auch das einschließende Script einen integrierten Zugriff auf dieselbe Instanz der Ressource haben. Das folgende Diagramm zeigt eine freigegebene Ressource am Beispiel von Nutzereigenschaften:

Freigegebene Ressource

Eine nicht freigegebene Ressource bedeutet, dass sowohl die Bibliothek als auch das einschließende Script nur Zugriff auf ihre Instanz der Ressource haben. Eine Bibliothek kann jedoch Zugriff auf nicht freigegebene Ressourcen gewähren, indem sie explizite Funktionen enthält, die auf diesen Ressourcen ausgeführt werden. Hier ist ein Beispiel für eine Funktion, die Sie in Ihre Bibliothek aufnehmen würden, um ihre Script-Properties freizugeben:

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

Das folgende Diagramm zeigt eine nicht freigegebene Ressource am Beispiel von Script-Properties:

Nicht freigegebene Ressource

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

Ressource Freigegeben* Nicht freigegeben** Hinweise
Sperren Die Instanz ist für alle sichtbar, einschließlich Scripts, wenn sie in der Bibliothek erstellt wird.
Skripteigenschaften Die Instanz ist für alle sichtbar, einschließlich Scripts, wenn sie in der Bibliothek erstellt wird.
Cache Die Instanz ist für alle sichtbar, einschließlich Scripts, wenn sie in der Bibliothek erstellt wird.
Trigger In der Bibliothek erstellte einfache Trigger werden nicht durch das einschließende Script ausgelöst.
ScriptApp
UiApp
Nutzereigenschaften
Logger und Ausführungsprotokoll
Websites, Tabellenblätter und andere Container Ein Aufruf von getActive() gibt den Container des enthaltenen Scripts zurück.
MailApp und GmailApp
* Das bedeutet, dass die Bibliothek keine eigene Instanz der Funktion/Ressource hat, sondern stattdessen diejenige verwendet, die vom Skript erstellt wurde, das sie aufgerufen hat.
** Das bedeutet, dass die Bibliothek eine eigene Instanz der Ressource/Funktion hat und dass alle Scripts, die die Bibliothek verwenden, dieselbe Instanz teilen und darauf zugreifen können.

Bibliothek testen

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

Bibliothek debuggen

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