Teamsware Studio API deployment

Teamsware Studio API deployment

Was ist das API Deployment

Die API-Bereitstellung ist eine Art der Veröffentlichung, die es ermöglicht, den Bereitstellungsprozess über 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 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 API-ID zum Anstoß wird in den allgemeinen Einstellungen des Dienstes angezeigt.
Diese ID kann für Anfragen an die Teamsware Solution Management API genutzt 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 API-ID auf dem konfigurierten Solution-Dienst angegeben wird (z. B. über JavaScript)
function callTeamswarePublishAPI() {
  // Service-Definition-ID aus Teamsware Studio (Registerkarte "API Deployments")
  var serviceId = "<serviceId-aus-Teamsware-Studio>";

  // Ziel-Site, auf der die Lösung bereitgestellt werden soll
  var webUrl = "https://<customerTenant>.sharepoint.com/sites/<customerSite>";

  // Request-Body gemäß Provisioning-API (ein Eintrag in serviceData)
  var requestBody = {
    "serviceData": [
      {
        "serviceId": serviceId,
        "webUrl": webUrl
      }
    ],
    "email": "customer@<domain>.com",         // Optional, für Status-Mails
    "callbackUrl": "http://your.site.url"     // Optional, für Callback nach Abschluss
    // "callbackHeaderName": "Key1,Key2",     // Optional
    // "callbackHeaderValue": "Value1,Value2" // Optional
  };

  // Zugangsdaten wie im Dienst in Teamsware Studio hinterlegt
  var serviceUser = "<serviceUser>";
  var servicePassword = "<servicePassword>";

  jQuery.support.cors = true;
  jQuery.ajax({
    method: "POST",
    crossDomain: true,
    dataType: "json",
    contentType: "application/json",
    beforeSend: function (xhr) {
      xhr.setRequestHeader(
        "Authorization",
        "Basic " + btoa(serviceUser + ":" + servicePassword)
      );
    },
    data: JSON.stringify(requestBody)
  });
}

 


Notes

Anmerkungen:

  1. Stellen Sie sicher, dass Sie im Parameter Email eine gültige E-Mail-Adresse angeben. Benachrichtigungen zu Erfolgen und Fehlern werden dorthin 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 hinterlegt wurden.
  4. In data sollte ein JSON mit den Parametern entsprechend der Bereitstellung gesetzt werden:
    1. Die SiteUrl ist die URL der SharePoint-Site, in 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


Die Bereitstellung erfolgt nun über den Teamsware API Deployment Connector, der pro Lösung gesteuert wird.
Damit Lösungen per API bereitgestellt werden können, muss der Kunde im Teamsware Studio die gewünschten Ziel-Websites zuerst genehmigen.

Dies erfolgt im Dialog „Teamsware API Deployment Connector“, in dem für jede Lösung (Solution) entweder konkrete Sites oder Wildcard‑URLs (z. B. https://tenant.sharepoint.com/sites/%) freigegeben werden können.
Info
Erst nach dieser Freigabe können API‑Bereitstellungen durchgeführt 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)
  4. Warten - wenn das Limit gleichzeitiger Deployments erreicht 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

    • ⚖️ Vergleich: SharePoint Standard vs. Teamsware Studio

      Legende: ✅ möglich / enthalten ❌ nicht möglich ? teilweise ? Wichtiger Hinweis: Power Apps & Power Automate können einzelne SharePoint‑Themen ergänzen – im Projektumfeld sind sie jedoch sehr häufig nicht sauber wiederverwendbar (z. B. „Vorlage ...
    • Teamsware Studio Update 16.01.2025

      Neue Funktionen Selektives Deployment für App-Deployment Die selektive Bereitstellung ist beim Erstellen oder Aktualisieren des teamsware-App-Bereitstellungsdienstes auf der Registerkarte Bereitstellungen verfügbar. Fehlerbehebungen und ...
    • Teamsware Studio Update 25.04.2024

      Neue Funktionen Selektive Bereitstellung für das API-Deployment Eine selektive Bereitstellung ist nun bei der Erstellung des API-Bereitstellungsdienstes auf der Registerkarte Bereitstellungen verfügbar. Darüber hinaus können Sie unterschiedliche ...
    • Teamsware Studio Update 21.11.2024

      Neue Funktionen Unterstützte Kommentare in den Formularen Anzeigen und Bearbeiten Die Spalte „Standort“ ist jetzt in den Formularen und im Expression Builder verfügbar Fehlerbehebungen und Verbesserungen Moderne Formulare Version 1.3.70 Geändertes ...
    • Datum und Timestamp im Teamsware Solution Studio berechnen

      Ziel In diesem Artikel erfährst du, wie du im Teamsware Solution Studio automatisch ein neues Datum oder einen vollständigen Timestamp (Datum plus Uhrzeit) berechnen kannst. Damit kannst du z. B. Fristen, Erinnerungen oder Ablaufdaten festlegen, die ...