Studio
2023.4
false
Studio-Benutzerhandbuch
Last updated 15. Juli 2024

Webdienste in Bibliotheken laden

Studio kann Aktivitäten direkt aus SOAP- oder REST-Webdiensten oder Postman-Sammlungen über das Fenster Dienst-Editor generieren.

SOAP- und REST-Webdienste

Das Fenster ermöglicht das automatische Laden aller Methoden oder Endpunkte in einem bestimmten Webdienst, sei es REST oder SOAP, sofern der bereitgestellte Link die Definition der Dienste – Swagger oder WSDL – enthält.

Sobald sie geladen ist, wählen Sie aus, von welchen Endpunkten oder Methoden automatisch Aktivitäte erstellt werden sollen. Alle ausgewählten Elemente werden im Panel Aktivitäten angezeigt, und zwar unter dem Namespace, den Sie im Fenster Dienst-Editor angegeben haben.

Anschließend können diese Bibliotheken als .nupkg-Datei gepackt und in Orchestrator oder an einem benutzerdefinierten Ort veröffentlicht werden. Als Ergebnis können Sie Ihre neu definierte Aktivität leicht mit anderen Entwicklern teilen, mit denen Sie zusammenarbeiten.
Hinweis: SOAP-Webdienste werden in Windows- und plattformübergreifenden Projekten nicht unterstützt. Sie können diese Integration nur in Windows-Legacy-Projekten verwenden.

Hinzufügen von Diensten

Mit den folgenden Schritten können Sie Aktivitäten aus Webdiensten generieren:

  1. Erstellen Sie eine Bibliothek in Studio, wie auf der Seite Über Bibliotheken (About Libraries) erläutert.
  2. Klicken Sie auf der Registerkarte Design auf die Option Neuer Dienst, oder klicken Sie im Panel Projekt mit der rechten Maustaste auf Dienste, und klicken Sie dann auf Neuer Dienst. Das Fenster Dienst-Editor wird angezeigt.


  3. Fügen Sie einen Dateipfad oder Link zur Swagger- oder WSDL-Ressource hinzu. Klicken Sie auf Laden. Alle definierten Endpunkte aus dem Webdienst werden nun im Fenster Dienst-Editor geladen.


  4. Geben Sie im Suchfeld Suchoperationen (Search Operations) die Methode oder die Operation ein, die Sie brauchen, und sehen Sie sich die Ergebnisse unten an. Bei Swagger sind die Methoden an jedem Endpunkt mit unterschiedlichen Farben markiert. Mit dem Kontrollfeld Alle deaktivieren (Deselect All) deaktivieren Sie alle Endpunkte und wählen die Endpunkte aus, die Sie laden möchten. Der Namensraum wird automatisch generiert. Geben Sie einfach einen neuen Namen ein, um ihn zu ändern.
  5. Klicken Sie auf Speichern (Save). Der Dienst ist jetzt im Projektbaum integriert.


  6. Um die generierten Aktivitäten im Panel Designer zu verwenden, gehen Sie in das Panel Aktivitäten (Activities), suchen Sie nach dem Namensraum des Dienstes im Aktivitätsabschnitt Verfügbar (Available) und ziehen Sie jede Aktivität in das Panel.
    Hinweis:
    Für SOAP-Dienste wird empfohlen, nur SOAP-Clients zu laden, anstatt HttpGet- oder HttpPost-Clients.

    Wenn der Dienst die Antwort vom Server nicht deserialisieren kann, wird für Swagger-Dienste empfohlen, das Swagger-Schema zu überprüfen und nach erforderlichen Eigenschaften in den Modelldefinitionen zu suchen.

Um einen Dienst zu bearbeiten, klicken Sie einfach mit der rechten Maustaste auf den Dienst im Panel Projekt (Project) unter Dienste (Services) und wählen Sie Dienst bearbeiten (Edit Service).

Bitte beachten Sie, dass, wenn sich Ihr Projekt unter Source Control befindet und nur die project.json-Datei der Bibliothek ausgecheckt wird, die Option Dienste bearbeiten für .xaml-Dateien mit geladenen SOAP- oder REST-Webdiensten aktiviert wird.
Das Hinzufügen und Bearbeiten eines Dienstes ist ebenfalls in der Datei project.json beschrieben, welche die Bibliotheksdefinition enthält, und im Dienstdokument. Ein webServices-Knoten wird zur Datei project.json hinzugefügt und jeder Dienst wird durch folgende Elemente identifiziert:


Parameter

Beschreibung

namespace

Der Name des Dienstes, der im Fenster Dienst-Editor angegeben wird.

serviceDocument

Der Pfad zu der .json-Datei, die Metadaten für den SOAP- oder Swagger-Dienst enthält. Die Datei wird beim Reparieren des Dienstes verwendet und sollte dieselbe Version wie das Projekt haben.

webDocumentUri

Der Dateipfad oder der Link zur Swagger- oder SOAP-Ressource (die beim Erstellen des Dienstes im Fenster Dienst-Editor angegeben wurde).

uniqueReference

Eine Referenz, die für die Dienstversion benötigt wird.

Reparaturdienste

Aus SOAP- oder REST-Webdiensten generierte dll-Dateien werden nicht in Source Control-Repositorys gepusht. Daher weisen die Projekte beim Auschecken von Bibliotheken mit Diensten unaufgelöste Aktivitäten im Panel Designer auf.
Um diese Aktivitäten zu reparieren und die Datei .dll für den Dienst neu zu generieren, klicken Sie mit der rechten Maustaste auf den Dienstknoten im Panel Projekt, und wählen Sie Dienst reparieren im Kontextmenü aus.


SOAP- oder REST-Dienstmetadaten und weitere Informationen werden für jeden in Studio geladenen Dienst in einer .json-Datei gespeichert. Wenn bei einem geladenen Dienst die zugehörige .json-Datei fehlt, ermöglicht Ihnen die Kontextmenüoption Dienste reparieren für den Knoten Dienste das Generieren der fehlenden .json-Dateien mit dem Link zur Webdokumentbeschreibung, die bei der Diensterstellung angegeben wurde. Infolgedessen werden Filter, die möglicherweise bei der ersten Erstellung des Dienstes angewandt wurden, nicht mehr angewandt und alle von dem vorgenannten Pfad oder Link zur Verfügung gestellten Ressourcen werden importiert.
Beim Veröffentlichen von Bibliotheken mit der Befehlszeilen-Bedienoberfläche UiPath.Studio.CommandLine.exe, die auf der Seite Befehlszeilenparameter für massenhaftes Aktualisieren (Mass Update Command Line Parameters) angegeben ist, werden keine Webdienste berücksichtigt.
Hinweis: Von SOAP- oder REST-Diensten generierte Aktivitäten können nicht in Studio lokalisiert werden.

Um Aktivitäten aufzurufen, die von Webdiensten mehrmals innerhalb einer Schleife generiert wurden, erstellen Sie einen separaten Workflow aus der Hauptbibliotheksdatei, und rufen Sie dort die Dienstmethode auf. Verwenden Sie im Hauptworkflow die Aktivität Workflow-Datei aufrufen in einer Für alle-Aktivität, und rufen Sie den zuvor erstellten Workflow auf.

Weitere Informationen zu generierten Aktivitäten von Webdiensten finden Sie unter Aus Webdiensten generierte Aktivitäten.

Importieren von Namespaces

Studio v2020.4 bringt eine bahnbrechende Änderung in Bezug auf Bibliotheken mit importierten Swagger-Diensten. Die Art und Weise, wie Studio die .json-Dateien aus Swagger-Diensten interpretiert, hat sich geändert, wodurch Abwärtskompatibilitätsprobleme auftreten, wenn ein vorhandener Dienst aus dem Fenster Dienst bearbeiten bearbeitet wird.

Im folgenden Beispiel haben wir die Änderung mithilfe des Petstore-Demowebdienstes veranschaulicht.

Vor Studio v2020.4, nachdem Sie den Dienst zu einem Bibliotheksprojekt hinzugefügt und das Kontextmenü „Nach Typen durchsuchen...“ verwendet haben, finden Sie die folgenden Namespaces unter SwaggerPetstore-Assemblyname:



Wenn Sie tiefer in UiPath.WebClient._ClientNamespace eintauchen, finden Sie die folgenden Typen:


Wenn eine AddPet-Aktivität in einer xaml-Datei aus einer Studio-Bibliothek verwendet worden wäre, wäre sie daher Teil von UiPath.WebClient._ClientNamespace. Der _ClientAddPetRequest-Typ wurde zum Generieren einer Anforderung verwendet, wie im folgenden Auszug:
xmlns:uw_="clr-namespace:UiPath.WebClient.<em>ClientNamespace;assembly=SwaggerPetstore" 
...
<uw</em>:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:<em>ClientAddPetRequest Body="{x:Null}" />
      </uw</em>:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>xmlns:uw_="clr-namespace:UiPath.WebClient.<em>ClientNamespace;assembly=SwaggerPetstore" 
...
<uw</em>:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:<em>ClientAddPetRequest Body="{x:Null}" />
      </uw</em>:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>

Mit Studio v2020.4 kann beim Importieren desselben Webdienstes der folgende Namespace gefunden werden:



Beim Erweitern von UiPath.WebClient.PetClientNamespace werden die folgenden Typen gefunden:


Wenn die AddPet-Aktivität in einer xaml-Datei aus einer Studio-Bibliothek verwendet wird, die mit v2020.4 erstellt wurde, ist sie daher Teil von UiPath.WebClient.PetClientNamespace, und der PetClientAddPetRequest-Typ wird zum Generieren einer Anforderung verwendet. Dies sind andere Namespaces und Typen als für Bibliotheken, die mit Versionen vor v2020.4 erstellt wurden.

Unten ist ein Auszug aus einer solchen Bibliothek, die mit v2020.4 erstellt wurde:

xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <a href="uwp:AddPetActivity.Request">uwp:AddPetActivity.Request</a>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <a href="uwp:AddPetActivity.Request">uwp:AddPetActivity.Request</a>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>

Postman-Sammlungen

Die Postman-Anwendung kann zum Erstellen und Gruppieren von API-Definitionen in Sammlungen verwendet werden, wodurch Ihre Anforderungen organisiert und miteinander verkettet werden. Postman unterstützt Skripts zum Übergeben von Daten zwischen API-Anforderungen. Sehen Sie sich die Postman-Onlinedokumentation an, um mehr über das Erstellen einer Sammlung zu erfahren.

Wenn Sie bereits über eine Postman-Sammlung verfügen, können Sie deren Anforderungen in Studio laden und eine Aktivität generieren. Die Wartung der Sammlung erfolgt in Postman, und alle Änderungen werden auch in Ihrem Workflow vorgenommen.

Studio erhält über einen API-Schlüssel Zugriff auf eine Postman-Sammlung, die dem Fenster Dienst-Editor im Feld Datei oder Link hinzugefügt werden muss. Der API-Schlüssel ist ein kontoweiter Schlüssel, der auf der Seite „Postman-Profileinstellungen“ > „API-Schlüssel“ generiert wird, und kein API-Schlüssel, der durch das Freigeben einer Sammlung generiert wird. Daher werden Änderungen an Anforderungen nur in Postman und nicht auch in Studio vorgenommen.

Studio lädt alle in der Auflistung definierten Anforderungen, und Anforderungen können nicht einzeln ausgeführt werden. Das Bearbeiten und Reparieren einer Sammlung in Studio erfolgt auf die gleiche Weise wie bei SOAP- oder REST-Webdiensten.
Note: Access to the collection is only supported through the API key. Loading a JSON schema file may cause unexpected errors.

Voraussetzungen für Postman-Sammlungen

Es wird empfohlen, den Computer nach der Installation von Newman neu zu starten.

Beispiel für eine Postman-Sammlung

Im folgenden Beispiel wird eine Postman-Auflistung verwendet, um den Wert einer bestimmten Währung zu get und im Bereich Ausgabe von Studio anzuzeigen.

In diesem Beispiel haben wir ein Test-Skript geschrieben, um die empfangenen Daten zu durchlaufen. Wir haben eine globale Variable direkt im Skript deklariert, aber dies kann auch mit dem Snippet Eine globale Variable festlegen in Postman erfolgen. Mehr dazu lesen Sie hier.



Das In-Argument übergab den Wert der Währung EUR an ein Out-Argument, das in der Bibliothek sichtbar ist, im Bedienfeld Eigenschaften > Eingabe > Auflistung. Das Out-Argument ist im gleichen Bereich im Abschnitt Ausgabe sichtbar.


Out-Argumente aus den Aktivitäten werden einer Variablen zugeordnet, und ihr Wert wird in das Bedienfeld Ausgabe geschrieben.

Sie können eine If-Aktivität verwenden, um den zurückgegebenen Wert der Variablen zu überprüfen. In diesem Beispiel haben wir überprüft, ob der Wert zurückgegeben wird, und ihn dann in den Ausgabebereich geschrieben.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen - Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005-2024 UiPath. Alle Rechte vorbehalten.