Workiva obsługuje zarówno standardową bibliotekę Pythona, jak i indeks pakietów Pythona (PyPI). Zależności mogą być generowane automatycznie za pomocą wbudowanego edytora skryptów lub tworzone ręcznie na twoim komputerze lokalnym.
Uwaga: Skrypty są obecnie dostępne tylko poprzez Customize Workiva. Dowiedz się więcej.
Wymagania
- Skrypty Workiva muszą być włączone dla Twojej przestrzeni roboczej. Dowiedz się więcej o Workiva Scripting.
- Rola Script Editor jest wymagana do tworzenia lub edytowania skryptów.
Obsługiwane biblioteki
Skrypty Workiva obsługują standardową bibliotekę Pythona od razu po wyjęciu z pudełka; możesz po prostu zaimportować moduł do swojego kodu i zacząć z niego korzystać. Biblioteka ta zawiera wbudowane moduły, które zapewniają dostęp do funkcji systemowych, takich jak wejścia/wyjścia plików, a także wiele standardowych rozwiązań dla typowych problemów programistycznych.
Oprócz biblioteki standardowej, istnieje rosnąca kolekcja komponentów dostępnych w indeksie pakietów Pythona . Będziesz musiał wygenerować zależności do swojego skryptu, które zawierają komponenty PyPI, których chcesz użyć.
Jednym z często używanych przez nas komponentów PyPI jest komponent "requests", który umożliwia interakcję z platformą Workiva za pośrednictwem publicznych interfejsów API Workiva.
Uwaga: Komponenty PyPI wymagające dodatkowych instalacji mogą nie być obsługiwane.
Generuj zależności za pomocą edytora skryptów
Edytor skryptów może automatycznie tworzyć twoje zależności.
Oto jak to zrobić:
- Na stronie Home otwórz plik skryptu (lub utwórz nowy).
- Przejdź do panelu Źródła po lewej stronie, kliknij prawym przyciskiem myszy w pustym miejscu tuż pod bieżącymi źródłami i wybierz + Dodaj plik źródłowy.
- Utwórz nowe źródło o nazwie: requirements.txt.
- W środkowym obszarze roboczym dodaj wiersz określający bibliotekę i wersję do zainstalowania. (Jest to linia requests==2.28.1 w naszym przykładowym obrazie)
- Kliknij Zapisz w lewym górnym rogu.
- Przeładuj ekran. Nie pomijaj tego kroku!
Po zapisaniu i odświeżeniu Workiva automatycznie wygeneruje pakiet zależności o nazwie dependencies.zip. Możesz teraz użyć biblioteki w swoim kodzie.
Wygeneruj zależności z lokalnego komputera
Aby ręcznie utworzyć zależności, musisz utworzyć pakiet lokalnie i przesłać go do edytora skryptów. Na przykład, możesz mieć projekt, który potrzebuje dostępu do biblioteki "requests" w celu uruchomienia skryptu:
import requests print (requests.get('https://api.github.com').text) Można to zrobić za pomocąlub menedżera pakietów kompatybilnego z pip:
- Zdefiniuj wersję biblioteki "requests", aby uzyskać do niej dostęp w formacie zgodnym z pip; powinna ona zostać zapisana jako plik .TXT:
echo requests==2.26.0 > requirements.txt
- Zainstaluj zależność w nowym katalogu Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Utwórz plik dependencies.zip:
cd dependencies
zip -r ../dependencies.zip .
cd .
- W projekcie Workiva Scripting utwórz pusty plik dependencies.zip plik:
curl -k -v -X POST \
-H 'Content-type: application/x-www-form-urlencoded;charset=UTF-8' \
-d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \
https://api.app.wdesk.com/iam/v1/oauth2/token - Aby uzyskać łącze punktu końcowego, kliknij Uruchom łącze w menu u góry edytora skryptów:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Powinieneś otrzymać następującą odpowiedź. Możesz stamtąd pobrać identyfikator pliku.
-H "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" \
-d '{"path": "dependencies.zip"}'
{"id":"<file-id>", "path": "dependencies.zip"} - Aby uzyskać listę identyfikatorów plików w skrypcie, wykonaj żądanie GET:
curl -X GET https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
-H "Content-Type:application/json" \
-H "Authorization: Bearer $BEARER_TOKEN" - Prześlij plik dependencies.zip do nowego identyfikatora pliku:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \
-H "Authorization: Bearer $BEARER_TOKEN" --data-binary @dependencies.zip - Aby przetestować bibliotekę "requests", uruchom skrypt z następującym kodem:
import requests print (requests.get('https://api.github.com').text)
FAQ
Które interfejsy API i biblioteki są obsługiwane?
Workiva Scripting obecnie obsługuje:
- Publiczne interfejsy API Workiva
- Interfejsy API inne niż Workiva
- Biblioteka standardowa Pythona
- Indeks pakietów Pythona (PyPI)
Obsługa dodatkowych języków jest nadal rozważana i może zostać wdrożona w przyszłości.
Dowiedz się więcej: Obsługiwane biblioteki i zależności Workiva Scripting
Która wersja Pythona jest używana w Workiva Scripting?
Workiva Scripting obsługuje obecnie Python 3.9 i Python 3.13, a wsparcie dla Python 3.9 zakończy się w marcu 2026 roku.
Dowiedz się więcej: Migracja skryptów do Python 3.13 w Workiva
Czy Workiva udostępnia klientów API w popularnych językach, takich jak Python lub Java?
Obecnie nie udostępniamy publicznych zestawów SDK dla języka Python lub Java.
Udostępniamy jednak otwarte specyfikacje API dla interfejsów API Workiva, dzięki czemu możesz samodzielnie wygenerować te biblioteki. Na przykład, możesz uzyskać plik OAS interfejsu API platformy Workiva i wygenerować bibliotekę klienta.
Czy dostępne są interfejsy API specyficzne dla skryptów?
Punkty końcowe interfejsu API skryptów są dostępne jako prototypowe punkty końcowe w ramach interfejsu API platformy prototypowej Workiva.
Jak utworzyć i wyświetlić granty API dla publicznych interfejsów API Workiva?
Musisz uzyskać identyfikator klienta i sekret, postępując zgodnie z instrukcjami tutaj.
Jak autoryzować się do publicznych interfejsów API Workiva przy użyciu języka Python?
Poniższy fragment kodu wywołuje usługę IAM w celu wygenerowania tokenu dostępu, który jest następnie używany do uwierzytelniania w punktach końcowych prototypu Scripting. Otrzymasz listę wszystkich skryptów, do których ma dostęp grant API (tj. klient) w obszarze roboczym, w którym grant został utworzony.
import requests import json import os AUTH_URL = "https://api.app.wdesk.com/iam/v1/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/prototype/platform/scripts/" CLIENT_ID = os.getenv('CLIENT_ID') CLIENT_SECRET = os.getenv('CLIENT_SECRET') tokenResponse = requests.post( AUTH_URL, data = 'client_id=' + CLIENT_ID + '&client_secret=' + CLIENT_SECRET + '&grant_type=client_credentials', headers = {'Content-Type': 'application/x-www-form-urlencoded; \ charset=UTF-8'}) accessToken = 'Bearer ' + json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
Jak zaktualizować format komórek za pomocą Pythona?
Prototypowy punkt końcowy Update Sheet Content umożliwia aktualizację formatu komórek za pomocą kodu Python.
Czy mogę odczytywać/zapisywać lub przesyłać pliki spoza Workiva przechowywane w Workiva?
W tej chwili nie ma dostępnych punktów końcowych do odczytu/zapisu lub przesyłania plików spoza Workiva przechowywanych w Workiva.
Czy mogę programowo tworzyć automatyzacje i zarządzać nimi?
W chwili obecnej nie ma dostępnych punktów końcowych do programowego tworzenia lub zarządzania automatyzacjami.