Bibliotheken

Eine Bibliothek ist ein Skriptprojekt, dessen Funktionen in anderen Skripts wiederverwendet werden können.

Zugriff auf eine Mediathek erhalten

Wenn Sie eine Bibliothek in Ihr Projekt einbinden möchten, müssen Sie mindestens Zugriff auf die Datenansichtsebene haben. Wenn Sie nicht der Autor der Bibliothek sind, die Sie aufnehmen möchten, wenden Sie sich an den Autor und fordern Sie Zugriff an.

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

Bibliothek zum Skriptprojekt hinzufügen

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

Bibliothek verwenden

Verwenden Sie die enthaltene Bibliothek genau wie einen Standarddienst. Wenn beispielsweise Test die ID 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 Skripteditor neben dem Namen der Bibliothek auf das Dreipunkt-Menü > Entfernen > Bibliothek entfernen.

Bibliothek aktualisieren

Sie können die Version der Bibliothek ändern oder ihre ID 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

Führen Sie die folgenden Schritte aus, um Ihr Skriptprojekt als Bibliothek zu verwenden und freizugeben.

  1. Erstellen Sie eine versionierte Bereitstellung des Skripts.
  2. Geben Sie allen potenziellen Nutzern der Bibliothek mindestens Zugriff auf die Ansichtsebene.
  3. Weisen Sie diesen Nutzern die Skript-ID zu, die auf der Seite Projekteinstellungen zu finden ist.

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 verwendet wird.
  2. Wenn eine oder mehrere Methoden Ihres Skripts für die Nutzer der Bibliothek nicht sichtbar oder noch verwendbar sein sollen, können Sie den Namen der Methode mit einem Unterstrich beenden. Beispiel: myPrivateMethod_().
  3. Nur aufzählbare globale Eigenschaften sind für Bibliotheksnutzer sichtbar. Dazu gehören Funktionsdeklarationen, Variablen, die außerhalb einer Funktion mit var erstellt wurden, sowie Eigenschaften, die explizit für das globale Objekt festgelegt sind. Wenn beispielsweise Object.defineProperty() enumerable auf false gesetzt ist, wird ein Symbol erstellt, das Sie in Ihrer Bibliothek verwenden können, aber Ihre Nutzer können nicht darauf zugreifen.
  4. Wenn Sie möchten, dass Nutzer der Bibliothek die automatische Vervollständigung des Skripteditors und die automatisch generierte Dokumentation verwenden, müssen Sie für alle 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 festlegen

Wenn Sie mit Bibliotheken arbeiten, gibt es zwei Arten von Ressourcen: freigegebene und nicht freigegebene Ressourcen. 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 veranschaulicht eine freigegebene Ressource am Beispiel von Nutzereigenschaften:

Freigegebene Ressource

Eine nicht freigegebene Ressource bedeutet, dass sowohl die Bibliothek als auch das einschließende Skript integrierten Zugriff nur auf ihre Instanz der Ressource haben. Eine Bibliothek kann jedoch mithilfe expliziter Funktionen Zugriff auf nicht gemeinsam genutzte Ressourcen gewähren. Hier ist ein Beispiel für eine Funktion, die Sie in Ihre Bibliothek aufnehmen würden, um die Skripteigenschaften bereitzustellen:

  function getLibraryProperty(key) {
    return ScriptProperties.getProperty(key);
  }

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

Nicht freigegebene Ressource

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

Ressource Freigegeben* Nicht geteilt** Hinweise
Sperren Eine in der Bibliothek erstellte Instanz ist für alle Skripts sichtbar, einschließlich Skripts.
Skripteigenschaften Eine in der Bibliothek erstellte Instanz ist für alle Skripts sichtbar, einschließlich Skripts.
Cache Eine in der Bibliothek erstellte Instanz ist für alle Skripts sichtbar, einschließlich Skripts.
Trigger Einfache Trigger, die in der Bibliothek erstellt wurden, werden nicht durch das Skript zum Einbeziehen ausgelöst.
ScriptApp
UiApp
Nutzereigenschaften
Logger und Ausführungstranskript
Google Sites, Google Tabellen und andere Container Ein Aufruf von getActive() gibt den Container des inklusiven Skripts zurück.
MailApp und GmailApp
* Dies bedeutet, dass die Bibliothek keine eigene Instanz der Funktion bzw. Ressource hat und stattdessen die Instanz verwendet, die von dem Skript erstellt wurde, das sie aufgerufen hat.
** Das bedeutet, dass diese Bibliothek eine eigene Instanz der Ressource bzw. des Features hat und dass alle Skripts, die die Bibliothek verwenden, dieselbe Instanz gemeinsam nutzen und darauf zugreifen können.

Bibliothek testen

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

Fehler in einer Bibliothek beheben

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.