Teamsware Studio API deployment

Teamsware Studio API deployment

Hinweis: Um die Teamsware-API-Bereitstellung zu nutzen, überprüfen Sie Ihre Mandanteneinstellungen und erlauben Sie die benutzerdefinierte App-Authentifizierung wie hier hier beschrieben. 

Was ist das API Deployment

Die API-Bereitstellung ist eine Art der Veröffentlichung, die es ermöglicht, den Bereitstellungsprozess mit einem HTTP-Aufruf zu starten.

Registrierung des Solution Service

Nach erfolgreicher Paketierung Ihrer Lösung kann ein neuer Dienst registriert werden.
Wenn Sie auf der Registerkarte Veröffentlichen auf die Schaltfläche Veröffentlichen klicken, wird der Assistent geöffnet, der Sie durch die Definition des Dienstes für die Veröffentlichung dieser Lösung führt.


Nachdem Sie die Allgemeinen Geschäftsbedingungen akzeptiert haben, müssen Sie die folgenden Service-Details angeben:

  1. Titel des Dienstes: Der Titel, wie er im Teamsware Studio erscheinen wird
  2. Beschreibung: Eine Beschreibung des Dienstes
  3. Lösungspaket: Das Paket der Lösung, das bereitgestellt werden soll. Standardmäßig ist die neueste Paketversion ausgewählt.
  4. Zugangsdaten für die Authentifizierung: Anmeldedaten für die Validierung von Anfragen -> dies kann eine beliebige Kombination aus Benutzername und Passwort sein

Nachdem der Dienst im Teamsware Studio registriert wurde, muss das externe System korrekt konfiguriert werden, um die Teamsware Solution Management API aufzurufen.
Die Anfrage-URLs zum Erstellen, Löschen und Ändern der Bereitstellung werden in den allgemeinen Einstellungen eines registrierten Dienstes angezeigt.
Diese URLs können als Anfragen an die Teamsware Solution Management API verwendet werden, die vom externen Dienst initiiert werden.

 

Direktes Aufrufen der Provisioning API aus Code

Die API kann direkt aufgerufen werden, indem die in Teamsware Solution Studio angegebene URL auf dem konfigurierten Solution-Dienst angegeben wird (z. B. über JavaScript)
function callTeamswarePublishAPI() {
  var data = {
    "SiteUrl": "https://<customerTenant>.sharepoint.com/sites/<customerSite>",
    "SiteLoginName": "janesmith@<customerTenant>.onmicrosoft.com",
    "SiteLoginPassword": "<site password>",
    "Email": "Optional",
    "Callback": "http://your.site.url"
  };
  jQuery.support.cors = true;
  jQuery.ajax({
    method: "POST",
    url: serviceUrl,
    crossOrigin: true,
    dataType: "json",
    beforeSend: function(xhr) {
      xhr.setRequestHeader(
        "Authorization",
        "Basic " + btoa(serviceUser + ":" + servicePassword)
      );
    },
    data: data
  });
}

 

Anmerkungen:

  1. Stellen Sie sicher, dass Sie im Parameter Email eine gültige E-Mail-Adresse angeben. Bestätigungen und Fehler werden an die angegebene E-Mail-Adresse gesendet.
  2. Die Variable serviceUrl für den Ajax-Aufruf sollte die von Solution Studio für den Dienst bereitgestellte URL sein (z. B.  https://solutionmanager.teamsware.app/api/8f499960-00da-ed11-8aae-14cb652751b2/provision ).
  3. Setzen Sie die Variablen serviceUser und servicePassword auf die entsprechenden Werte, die bei der Erstellung des Dienstes eingegeben wurden.
  4. In data sollte ein JSON mit den Parametern entsprechend der Bereitstellung gesetzt werden:
    1. Die SiteUrl ist die URL der SharePoint-Site, auf der die Lösung bereitgestellt werden soll.
    2. SiteLoginName und SiteLoginPassword beziehen sich auf den SharePoint-Benutzer mit Administratorrechten für die Website.
    3. Email wird auf die E-Mail-Adresse des Kunden gesetzt, damit er Benachrichtigungen über den Status der Bereitstellung erhält.
    4. Callback kann eine beliebige URL zu einer Website sein, an die eine POST-Anfrage gestellt wird, wenn die Lösung bereitgestellt wurde. Bei erfolgreicher Bereitstellung lautet der Text des Posts "{status: "Completed", errorDetails: null}. Wenn die Bereitstellung fehlschlägt, lautet der Textkörper {status: "Failed", errorDetails: "<some error details>"}. Die Angabe des Callback-Parameters ist optional.

API endpoint für eine Batch-Bereitstellung

Wir haben die automatische Bereitstellung mithilfe unseres mandantenweiten Solutions Foundation Add-Ins implementiert, das den in den bereitgestellten Lösungen verwendeten Hintergrundbeschleunigern Berechtigungen erteilt.

Das Teamsware Solutions Foundation-Add-in sollte nur einmal pro Tenant im globalen App-Katalog installiert werden. Wenn es vertrauenswürdig ist und die Skripting-Fähigkeiten auf den Ziel-Site-Sammlungen aktiviert sind, kann die Bereitstellung gestartet werden.

Die folgende POST-API kann verwendet werden, um neue Bereitstellungen zu starten:
Post
https://solutionmanager.teamsware.app/api/provision

Authotization
Credentials ("Basic username:userpassword" in base64 string)

Headers
Content-Type: application/json
Authorization: Basic aXJhOmlyYQ==

Body
{
"serviceData": [{
"serviceId": "60366197-9088-ea11-86e9-000d3a222298",
"webUrl": "https://m365b601773.sharepoint.com/Lunches"
},
{
"serviceId": "60366197-9088-ea11-86e9-000d3a222298",
"webUrl": "https://m365b601775.sharepoint.com/Lunches"
}
],
"email": "Optional",
"callbackUrl": "http://your.site.url",
"callbackHeaderName": "Key1,Key2",
"callbackHeaderValue": "Value1,Value2",
"statusFieldUpdate": {
"webUrl":"https://m365x36372584.sharepoint.com/sites/LVOsourceCS",
"listName":"<internal name of List from URL>", (or "ListId":"d1620f67-de02-4b75-a848-a988ef85b689")
"fieldName":"Status",
"itemId": "Id"
}
}

Response example
[{"Provision":{"ServiceId":"60366197-9088-ea11-86e9-000d3a222298","WebUrl":"https://m365b601773.sharepoint.com/Lunches"},"Status":"Completed","ErrorMessage":null},{"Provision":{"ServiceId":"60366197-9088-ea11-86e9-000d3a222298","WebUrl":"https://m365b601775.sharepoint.com/Lunches"},"Status":"Completed","ErrorMessage":null}]

Statusfeld-Konfiguration während des Bereitstellungsprozesses

Zusätzlich können Sie den Body Ihrer Anfrage mit dem Statusfeld-Konfigurationsparameter "statusFieldUpdate" erweitern.
Der Parameter "statusFieldUpdate" mit listName (alternativ ListId), internem Feldnamen (einzeiliger Text oder Auswahlfeldtyp) und itemId zeigt den aktuellen Status entsprechend dem Status des Deployment-Prozesses an und kann z.B. für ausgelöste Aktionen auf dieser Liste konfiguriert werden. 

Mögliche Status:

  1. In Bearbeitung - wird gesetzt, wenn das erste Deployment im Batch beginnt
  2. Abgeschlossen - wenn die letzte Bereitstellung abgeschlossen ist
  3. Fehlgeschlagen - wenn eine Bereitstellung fehlgeschlagen ist (wird auch gesetzt, wenn die letzte Bereitstellung abgeschlossen ist)

Hinweis: Die Aktualisierung von mandantenübergreifenden Statusfeldern ist nicht zulässig.

Wenn eine Dienstdefinition erstellt wird, kann die Definitions-ID kopiert werden (als Teil der Dienst-URL).
Diese Dienstdefinitions-ID wird in der Anfrage als "serviceId" verwendet.


Batch-Bereitstellungen auf der Registerkarte API-Bereitstellungen von Teamsware Studio sind nach Tenant-URL gruppiert.

Prozess der Lösungsaktualisierung

Wenn das bereitgestellte Paket aktualisiert werden muss, aktualisieren Sie es auf der Registerkarte "API Deployments": zuerst die Service-Definition und danach die Bereitstellung selbst.

Nach Abschluss des Aktualisierungsvorgangs wird eine E-Mail mit dem Aktualisierungsstatus gesendet.

Die Batch-Aktualisierung kann wie folgt durchgeführt werden:
Die Dienstdefinition auf der Registerkarte API-Bereitstellungen von Teamsware Studio sollte aktualisiert werden, und anschließend sollte die Batch-Bereitstellungs-API aufgerufen werden.
In diesem Fall wird die Bereitstellung mit der neueren Paketversion überschrieben.




    • Related Articles

    • Selektives Deployment

      Funktion Selektives Deployment Package & Publish ist eine SharePoint-Bereitstellungsfunktion vom Teamsware Studio, mit der man eine benutzerdefinierte SharePoint-Lösung bereitstellen kann. Während des Bereitstellungsprozesses kann es vorkommen, dass ...
    • Teamsware Studio Update 07.11.2024

      Fehlerbehebungen und Verbesserungen Moderne Formulare Version 1.3.69 Fix: Fehlermeldung behoben, die angezeigt wird, wenn die API-Anforderungsberechtigung 'Directory.Read.All' für den Platzhalter [[@User.IsMemberOfGroup('Group', ...
    • Teamsware Studio Update 15.08.2024

      Neue Funktionen Aktion Start Power Automate Flow Aktion Start Power Automate Flow für moderne Formulare, Listenaktionen, Automatisierungsaktionen, geplante und ausgelöste Aktionen hinzugefügt Aktion Add site to favorite Aktion Website zu Favoriten ...
    • Teamsware Studio Update 07.12.2023

      Neue Funktion Paketkonfiguration importieren Die Funktion Paketkonfiguration importieren (Solution Merge) bietet die Möglichkeit, die Konfiguration aus einer anderen Lösung in die aktuelle zu importieren (zusammenzuführen). Die Funktion ...
    • Teamsware Studio Update 30.03.2023

      Fehlerbehebungen und Verbesserungen Moderne Formulare Version 1.3.18 Fix: Auswertung von Platzhaltern in der Fuß- und Endnote der Dokumentvorlage in der Aktion 'Dokument erzeugen' Fix: Dokument mit einem einfachen Anführungszeichen im Dateinamen ...