Blue Prism macht Prozesse (Roboter) als WebServices verfügbar und kann extern ausgeführt werden. In diesem Artikel schreibe ich einen Client in Python und rufe den Blue Prism-Prozess auf.
Es gibt zwei Voraussetzungen für die Ausführung eines Prozesses, der als WebService verfügbar gemacht wird. [Separater Artikel](https://qiita.com/muuuuuwa/items/8fdd65eb0e0b71263644#blue-prism-%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3% 83% BC% E3% 82% B5% E3% 83% BC% E3% 83% 93% E3% 82% B9% E3% 82% 92% E8% B5% B7% E5% 8B% 95% E3% 81% Stellen wir die Voraussetzungen unter Bezugnahme auf 99% E3% 82% 8B) ein.
- A. Der Blue Prism-Serverdienst wird ausgeführt
- B. Auf dem öffentlichen Switch wurde eine Laufzeitressource gestartet
Öffnen Sie im interaktiven Client die Registerkarte "System" und wählen Sie "Prozess> Veröffentlichen". Klicken Sie auf "Veröffentlichungsprozess", der auf der rechten Seite des Bildschirms angezeigt wird.
Wählen Sie den Prozess aus, den Sie als WebService veröffentlichen möchten (hier "logSample") und klicken Sie auf die Schaltfläche "Weiter".
Bestätigen Sie den "öffentlichen Namen des Prozesses" und klicken Sie auf die Schaltfläche "Fertig stellen".
In Anbetracht der tatsächlichen Operation scheint es notwendig zu sein, den Hauptteil des langen Prozesses und den Prozess, der nur den Prozess akzeptiert, zu trennen und so zu gestalten, dass die Antwort synchron an den WebService-Client zurückgegeben wird.
Die WSDL des veröffentlichten Prozesses wird von ** Runtime Resources ** veröffentlicht (es gibt keine API für den Server, um eine WSDL zurückzugeben, nicht wahr?). Dieses Mal stellen wir die Laufzeitressourcen auf Port 8183 zur Verfügung. Öffnen Sie daher `http: //127.0.0.1: 8183 / ws /`
in Ihrem Browser. Anschließend wird eine Liste der als WebService veröffentlichten Prozesse angezeigt (siehe unten).
Laden Sie dieses Mal die WSDL-Datei von dieser Seite herunter und verwenden Sie sie. Speichern Sie es als `` `logSample.xml``` in dem Verzeichnis, in dem Sie das Python-Skript entwickeln.
Bereiten Sie die Python-Skriptentwicklungsumgebung mit [Pipenv] vor (https://pipenv-ja.readthedocs.io/ja/translate-ja/).
% pipenv --python 3.7
Creating a virtualenv for this project…
Pipfile: /Users/m-nakamura/Documents/blueprism-process-invoker_/Pipfile
Using /Users/m-nakamura/.pyenv/versions/3.7.4/bin/python3 (3.7.4) to create virtualenv…
⠹ Creating virtual environment...Using base prefix '/Users/m-nakamura/.pyenv/versions/3.7.4'
New python executable in /Users/m-nakamura/.local/share/virtualenvs/blueprism-process-invoker_-30X4pztG/bin/python3
Also creating executable in /Users/m-nakamura/.local/share/virtualenvs/blueprism-process-invoker_-30X4pztG/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /Users/m-nakamura/.pyenv/versions/3.7.4/bin/python3
✔ Successfully created virtual environment!
Virtualenv location: /Users/m-nakamura/.local/share/virtualenvs/blueprism-process-invoker_-30X4pztG
Creating a Pipfile for this project…
Installieren Sie die erforderlichen Bibliotheken. Um SOAP in Python zu verwenden, wird Zeep empfohlen. Verwenden Sie diese Option. Zeep ist bequem!
% pipenv install zeep
Installing zeep…
Adding zeep to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (663ec6)!
Installing dependencies from Pipfile.lock (663ec6)…
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 15/15 — 00:00:03
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Eine der Funktionen von Zeep ist die Möglichkeit, den Inhalt einer WSDL zu überprüfen (https://python-zeep.readthedocs.io/en/master/index.html#getting-started). Wenn Sie es versuchen, werden Sie feststellen, dass die Eingabe- und Ausgabeparameter des Prozesses vom Typ `` `xsd: string``` sind.
% pipenv run python -m zeep logSample.xml
Prefixes:
xsd: http://www.w3.org/2001/XMLSchema
ns0: urn:blueprism:webservice:logsample
Global elements:
Global types:
xsd:anyType
xsd:ENTITIES
xsd:ENTITY
xsd:ID
xsd:IDREF
xsd:IDREFS
xsd:NCName
xsd:NMTOKEN
xsd:NMTOKENS
xsd:NOTATION
xsd:Name
xsd:QName
xsd:anySimpleType
xsd:anyURI
xsd:base64Binary
xsd:boolean
xsd:byte
xsd:date
xsd:dateTime
xsd:decimal
xsd:double
xsd:duration
xsd:float
xsd:gDay
xsd:gMonth
xsd:gMonthDay
xsd:gYear
xsd:gYearMonth
xsd:hexBinary
xsd:int
xsd:integer
xsd:language
xsd:long
xsd:negativeInteger
xsd:nonNegativeInteger
xsd:nonPositiveInteger
xsd:normalizedString
xsd:positiveInteger
xsd:short
xsd:string
xsd:time
xsd:token
xsd:unsignedByte
xsd:unsignedInt
xsd:unsignedLong
xsd:unsignedShort
Bindings:
Soap11Binding: {urn:blueprism:webservice:logsample}logSampleSoapBinding
Service: logSampleService
Port: logSampleSoap (Soap11Binding: {urn:blueprism:webservice:logsample}logSampleSoapBinding)
Operations:
logSample(message: xsd:string) -> outmessage: xsd:string
Erstellen Sie ein Python-Skript mit dem Namen `` `logsample.py``` in demselben Verzeichnis, in dem Sie die WSDL-Datei unter dem Namen logsample.xml gespeichert haben.
from pathlib import Path
from zeep import Client
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep.transports import Transport
# Legen Sie die Anmeldeinformationen für Blue Prism fest
session = Session()
session.auth = HTTPBasicAuth('admin', 'admin_password_xxxxxx')
# Ruft den Pfad der WSDL-Datei ab, die im selben Verzeichnis gespeichert ist
wsdl = Path.cwd() / "logSample.xml"
client = Client(str(wsdl), transport=Transport(session=session))
service = client.service
# Geben Sie die Eingabeparameter des logSample-Dienstes mit benannten Argumenten an
res = service.logSample(message="hogehoge")
# Ausgabeparameter für einzelne Zeichenfolgen werden direkt als Antwort zurückgegeben
print(type(res))
print(res)
Führen Sie das Skript in dem Verzeichnis aus, in dem die zuvor erstellte `` `logSample.py``` gespeichert ist. Die Ausgabeparameter des Prozesses werden ausgegeben, und Sie können bestätigen, dass der Prozess ausgeführt wurde.
% pipenv run python logSample.py
<class 'str'>
exec at 04/01/20 23:25:12hogehoge
Sie können auch sehen, dass es vom interaktiven Client ausgeführt wurde. Öffnen Sie die Registerkarte "Steuerelemente" und öffnen Sie "Sitzungsverwaltung> Heute".
Nachdem ich die Funktion ausprobiert hatte, war ich besorgt über die folgenden Punkte.
Recommended Posts