Ausführen Office Skripts mit Power Automate

Power Automate können Sie einem größeren, automatisierten Workflow Office Skripts hinzufügen. Sie können Power Automate aktionen wie das Hinzufügen des Inhalts einer E-Mail zu einer Tabelle eines Arbeitsblatts oder das Erstellen von Aktionen in Ihren Projektverwaltungstools basierend auf Arbeitsmappenkommentaren verwenden.

Erste Schritte

Wenn Sie noch nicht mit Power Automate vertraut sind, empfehlen wir, "Erste Schritte mit Power Automate"zu besuchen. Dort können Sie mehr über alle Automatisierungsmöglichkeiten erfahren, die Ihnen zur Verfügung stehen. Die Dokumente hier konzentrieren sich darauf, wie Office Skripts mit Power Automate arbeiten und wie dies dazu beitragen kann, Ihre Excel Erfahrung zu verbessern.

Um mit der Kombination von Power Automate und Office Skripts zu beginnen, führen Sie das Lernprogramm mit der Verwendung von Skripts mit Power Automate aus. Dadurch erfahren Sie, wie Sie einen Fluss erstellen, der ein einfaches Skript aufruft. Nachdem Sie dieses Lernprogramm abgeschlossen haben und die Daten an Skripts in einem automatisch ausgeführten Power Automate Fluss-Lernprogramm übergeben haben, kehren Sie hier zurück, um ausführliche Informationen zum Verbinden von Office Skripts mit Power Automate Flüssen zu finden.

Excel Online-Connector (Business)

Connectors sind die Brücken zwischen Power Automate und Anwendungen. Der connector Excel Online (Business) bietet Ihren Flüssen Zugriff auf Excel Arbeitsmappen. Mit der Aktion "Skript ausführen" können Sie alle Office aufrufen, auf die über die ausgewählte Arbeitsmappe zugegriffen werden kann. Sie können Ihren Skripts auch Eingabeparameter geben, damit Daten vom Fluss bereitgestellt werden können, oder Ihr Skript Informationen für spätere Schritte im Fluss zurückgeben lassen.

Wichtig

Die Aktion "Skript ausführen" bietet Personen, die den Excel Connector verwenden, erheblichen Zugriff auf Ihre Arbeitsmappe und ihre Daten. Darüber hinaus gibt es Sicherheitsrisiken bei Skripts, die externe API-Aufrufe ausführen, wie in externen Aufrufen von Power Automateerläutert. Wenn Sich Ihr Administrator mit der Offenlegung streng vertraulicher Daten befasst, kann er entweder den Excel Online-Connector deaktivieren oder den Zugriff auf Office Skripts über die Administratorsteuerelemente Office Skriptseinschränken.

Datenübertragung in Flüssen für Skripts

mit Power Automate können Sie Datenteile zwischen den Schritten des Flusses übergeben. Skripts können so konfiguriert werden, dass sie alle arten von Informationen akzeptieren, die Sie benötigen, und alles aus Ihrer Arbeitsmappe zurückgeben, die Sie in Ihrem Flow wünschen. Die Eingabe für Ihr Skript wird durch Hinzufügen von Parametern zur main Funktion (zusätzlich zu workbook: ExcelScript.Workbook ) angegeben. Die Ausgabe des Skripts wird deklariert, indem ein Rückgabetyp zu main hinzugefügt wird.

Hinweis

Wenn Sie einen "Skript ausführen"-Block in Ihrem Flow erstellen, werden die akzeptierten Parameter und zurückgegebenen Typen aufgefüllt. Wenn Sie die Parameter ändern oder Typen ihres Skripts zurückgeben, müssen Sie den "Skript ausführen"-Block des Flusses wiederholen. Dadurch wird sichergestellt, dass die Daten richtig analysiert werden.

In den folgenden Abschnitten werden die Eingabe- und Ausgabedetails für Skripts behandelt, die in Power Automate verwendet werden. Wenn Sie einen praktischen Ansatz zum Erlernen dieses Themas wünschen, testen Sie die Pass-Daten an Skripts in einem automatisch ausgeführten Lernprogramm Power Automate Fluss oder erkunden Sie das Beispielszenario für automatisierte Aufgabenerinnerungen.

main Parameter: Übergeben von Daten an ein Skript

Alle Skripteingaben werden als zusätzliche Parameter für die main Funktion angegeben. Wenn sie beispielsweise möchten, dass ein Skript einen Wert akzeptiert, der string einen Namen als Eingabe darstellt, ändern Sie die Signatur in main function main(workbook: ExcelScript.Workbook, name: string) .

Wenn Sie einen Fluss in Power Automate konfigurieren, können Sie Skripteingaben als statische Werte, Ausdrückeoder dynamischen Inhalt angeben. Details zum Connector eines einzelnen Diensts finden Sie in der Dokumentation zu Power Automate Connector.

Berücksichtigen Sie beim Hinzufügen von Eingabeparametern zur Funktion eines Skripts main die folgenden Einschränkungen und Einschränkungen.

  1. Der erste Parameter muss vom Typ ExcelScript.Workbook sein. Der Parametername spielt keine Rolle.

  2. Jeder Parameter muss einen Typ aufweisen (z. B. string oder number ).

  3. Die grundlegenden Typen string , , , , , und werden number boolean unknown object undefined unterstützt.

  4. Arrays ( [] ) der zuvor aufgeführten Basistypen werden unterstützt.

    Wichtig

    Bitte beachten Sie, dass das Objekt Array<T> kein unterstützter Parametertyp ist.

  5. Geschachtelte Arrays werden als Parameter unterstützt (aber nicht als Rückgabetypen).

  6. Union-Typen sind zulässig, wenn es sich um eine Vereinigung von Literalen handelt, die zu einem einzelnen Typ gehören (z. B. "Left" | "Right" ). Außerdem werden Verbindungen eines unterstützten Typs mit nicht definierten Typen unterstützt (z. B. string | undefined ).

  7. Objekttypen sind zulässig, wenn sie Eigenschaften vom Typ string , number , boolean unterstützten Arrays oder anderen unterstützten Objekten enthalten. Das folgende Beispiel zeigt geschachtelte Objekte, die als Parametertypen unterstützt werden:

    // Office Scripts can return an Employee object because Position only contains strings and numbers.
    interface Employee {
        name: string;
        job: Position;
    }
    
    interface Position {
        id: number;
        title: string;
    }
    
  8. Für Objekte muss ihre Schnittstelle oder Klassendefinition im Skript definiert sein. Ein Objekt kann auch anonym inline definiert werden, wie im folgenden Beispiel gezeigt:

    function main(workbook: ExcelScript.Workbook): {name: string, email: string}
    
  9. Optionale Parameter sind zulässig und können mithilfe des optionalen Modifizierers (z. B. ) als solche gekennzeichnet ? function main(workbook: ExcelScript.Workbook, Name?: string) werden.

  10. Standardwerte sind zulässig async function main(workbook: ExcelScript.Workbook, Name: string = 'Jane Doe') (z. B. .

Zurückgeben von Daten aus einem Skript

Skripts können Daten aus der Arbeitsmappe zurückgeben, die als dynamischer Inhalt in einem Power Automate Fluss verwendet werden sollen. Wie bei Eingabeparametern werden Power Automate einige Einschränkungen für den Rückgabetyp festlegen.

  1. Die grundlegenden Typen string , , , und werden number boolean void undefined unterstützt.

  2. Union-Typen, die als Rückgabetypen verwendet werden, folgen den gleichen Einschränkungen wie bei der Verwendung als Skriptparameter.

  3. Arraytypen ( [] ) sind zulässig, wenn sie vom Typ string number sind, oder boolean . Sie sind auch zulässig, wenn es sich bei dem Typ um eine unterstützte Vereinigung oder einen unterstützten Literaltyp handelt.

    Wichtig

    Bitte beachten Sie, dass das Objekt Array<T> kein unterstützter Rückgabetyp ist.

  4. Objekttypen, die als Rückgabetypen verwendet werden, folgen den gleichen Einschränkungen wie bei der Verwendung als Skriptparameter.

  5. Implizite Eingaben werden unterstützt, müssen jedoch denselben Regeln wie ein definierter Typ entsprechen.

Beispiel

Der folgende Screenshot zeigt einen Power Automate Fluss, der ausgelöst wird, wenn Ihnen ein GitHub Problem zugewiesen wird. Der Fluss führt ein Skript aus, das das Problem einer Tabelle in einer Excel Arbeitsmappe hinzufügt. Wenn in dieser Tabelle fünf oder mehr Probleme auftreten, sendet der Fluss eine E-Mail-Erinnerung.

Der Power Automate Fluss-Editor mit dem Beispielfluss.

Die main Funktion des Skripts gibt die Problem-ID und den Ausgabetitel als Eingabeparameter an, und das Skript gibt die Anzahl der Zeilen in der Problemtabelle zurück.

function main(
  workbook: ExcelScript.Workbook,
  issueId: string,
  issueTitle: string): number {
  // Get the "GitHub" worksheet.
  let worksheet = workbook.getWorksheet("GitHub");

  // Get the first table in this worksheet, which contains the table of GitHub issues.
  let issueTable = worksheet.getTables()[0];

  // Add the issue ID and issue title as a row.
  issueTable.addRow(-1, [issueId, issueTitle]);

  // Return the number of rows in the table, which represents how many issues are assigned to this user.
  return issueTable.getRangeBetweenHeaderAndTotal().getRowCount();
}

Siehe auch