Workiva obsługuje zarówno standardową bibliotekę języka Python, jak i Python Package Index (PyPI). Zależności można generować automatycznie, korzystając z wbudowanego edytora skryptów, lub ręcznie na komputerze lokalnym.
Skrypty Workiva są zawarte w module Customize Workiva. Aby móc korzystać ze skryptów, w obszarze roboczym musi być włączona opcja Dostosowywanie Workiva/Skryptów, a użytkownicy muszą mieć odpowiednie role skryptowe i uprawnienia do plików.
Obsługiwane biblioteki
Skrypty Workiva obsługują standardową bibliotekę Pythonaod razu; wystarczy zaimportować moduł do kodu i zacząć go używać. Biblioteka ta zawiera wbudowane moduły zapewniające dostęp do funkcjonalności systemu, np. wejścia/wyjścia plików, a także wiele standardowych rozwiązań typowych problemów programistycznych.
Oprócz biblioteki standardowej dostępna jest stale powiększająca się kolekcja komponentów w Python Package Index. Będziesz musiał wygenerować zależności w swoim skrypcie, które będą zawierać komponenty PyPI, których chcesz użyć.
Jednym z powszechnie używanych przez nas komponentów PyPI jest komponent „requests”, który umożliwia interakcję z platformą Workiva za pomocą 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 budować zależności.
Oto jak:
- Z Homeotwórz plik skryptu (lub utwórz nowy).
- Przejdź do panelu Źródła po lewej stronie, kliknij prawym przyciskiem myszy w pustej przestrzeni tuż pod bieżącymi źródłami i wybierz + Dodaj plik źródłowy.
- Utwórz nowe źródło o nazwie: requirements.txt.
- Na środkowym płótnie dodaj wiersz określający bibliotekę i wersję do zainstalowania. (To jest linia requests==2.28.1 w naszym przykładowym obrazku.)
- Kliknij Zapisz w lewym górnym rogu.
- Odśwież ekran. Nie pomijaj tego kroku!
Po zapisaniu i odświeżeniu Workiva automatycznie generuje pakiet zależności o nazwie dependencies.zip. Teraz możesz używać tej biblioteki w swoim kodzie.
Generuj zależności z komputera lokalnego
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”, aby uruchomić skrypt:
import żądań drukuj (requests.get('https://api.github.com').text) Można to zrobić za pomocą menedżera pakietów zgodnego zpip:
-
Zdefiniuj wersję biblioteki
requests, do której chcesz uzyskać dostęp w formacie zgodnym z pip; powinna zostać zapisana jako plik.txt:żądania echa==2.28.1 > requirements.txt
-
Zainstaluj zależność w nowym katalogu dependencies :
pip3 install --target ./dependencies --requirements.txt
-
Utwórz plik
dependencies.zip:zależności cd
zip -r ../dependencies.zip .
cd ..
-
Poproś o token dostępu:
curl -X POST https://api.app.wdesk.com/iam/v1/oauth2/token \ -H 'Typ zawartości: application/x-www-form-urlencoded;charset=UTF-8' \ -H 'Akceptuj: application/json' \ -d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials"
Pobierz
access_tokenz odpowiedzi i użyj go poniżej jako$BEARER_TOKEN. -
W projekcie Workiva Scripting utwórz nowe źródło dla
dependencies.zip:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /sources \ -H "Typ zawartości: application/json" \ -H "Akceptuj: application/json" \ -H "Autoryzacja: Nośnik $BEARER_TOKEN" \ -H "Wersja X: 2022-01-01" \ -d '{"path":"dependencies.zip"}'Odpowiedź zwraca nowe źródło, łącznie z jego identyfikatorem:
{"id":"<sourceId> ", ścieżka": "zależności.zip"} -
Aby uzyskać listę identyfikatorów źródłowych w skrypcie, wykonaj żądanie GET:
curl -X GET https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /sources \ -H "Akceptuj: application/json" \ -H "Autoryzacja: Nośnik $BEARER_TOKEN" \ -H "Wersja X: 2022-01-01"
-
Zainicjuj przesyłanie treści dla tego źródła, a następnie UMIEŚĆ
dependencies.zipw zwróconym uploadUrl:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /źródła/<sourceId> /contentUpload \ -H „Akceptuj: application/json” \ -H „Autoryzacja: Nośnik $BEARER_TOKEN” \ -H „Wersja X: 2022-01-01”
Odpowiedź zwraca cel przesyłania:
{"uploadUrl":"<uploadUrl> "}Następnie prześlij plik binarny na ten adres URL:
curl -X PUT "<uploadUrl> „ \ -H „Autoryzacja: Nośnik $BEARER_TOKEN” \ --data-binary @dependencies.zip
-
Aby przetestować bibliotekę
żądań, uruchom skrypt z następującym kodem:import żądań print(requests.get('https://api.github.com').text)
Często zadawane pytania
Jakie 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)
Workiva Scripting obsługuje na razie tylko język Python.
Dowiedz się więcej: Obsługiwane biblioteki i zależności skryptów Workiva
Która wersja języka Python jest używana w Workiva Scripting?
Nowe skrypty działają w Pythonie 3.13. Rozwiązanie Workiva Scripting nadal obsługuje istniejące skrypty języka Python 3.9, jednak wsparcie dla tego języka zakończy się w październiku 2027 r. — dlatego należy jak najszybciej przenieść wszystkie skrypty języka Python 3.9 do języka Python 3.13.
Dowiedz się więcej: Migracja skryptów do Pythona 3.13 w Workiva
Czy Workiva udostępnia klientom API popularne języki, takie jak Python lub Java?
Obecnie nie udostępniamy publicznych zestawów SDK dla języków Python i Java.
Jednakże udostępniamy otwarte specyfikacje API dla interfejsów API Workiva, dzięki czemu możesz samodzielnie wygenerować te biblioteki. Możesz na przykład uzyskać plik OAS interfejsu API platformy Workiva i wygenerować bibliotekę klienta.
Czy są dostępne interfejsy API przeznaczone specjalnie do skryptowania?
Tak. Punkty końcowe interfejsu API skryptów są obecnie dostępne jako prototypy punktów końcowych w ramach interfejsu API platformy prototypów Workiva.
Punkty końcowe interfejsu Public Scripting API będą dostępne latem 2026 r. Po ich udostępnieniu będziesz musiał przeprowadzić migrację do publicznych punktów końcowych — wsparcie dla niepublicznych punktów końcowych Workiva Scripting (w tym prototypu) zakończy się w październiku 2027 r.
Jak tworzyć i przeglądać uprawnienia API dla publicznych interfejsów API Workiva?
Aby uzyskać identyfikator klienta i klucz tajny, należy postępować zgodnie z instrukcjami podanymi tutaj.
Jak autoryzować się do publicznych interfejsów API Workiva za pomocą języka Python?
Poniższy fragment kodu wywołuje usługę IAM w celu wygenerowania tokena dostępu, który następnie służy do uwierzytelniania w punktach końcowych prototypu skryptów. Otrzyma listę wszystkich skryptów, do których API (czyli klient) ma dostęp w obszarze roboczym, w którym utworzono zezwolenie.
importuj żądania 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 = 'Nośnik' + 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?
Formatowanie komórek można aktualizować z poziomu skryptu, wywołując punkt końcowy [Aktualizuj zawartość arkuszainterfejsu API platformy Workiva (POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update). Użyj polaapplyFormats, aby zastosować formaty, takie jak pogrubienie, formatowanie liczb i walut oraz cieniowanie, a polaapplyBorders, aby zastosować obramowanie. Zamiast wysyłać jedno żądanie na zakres, łącz operacje wielu formatów w jedno żądanie — każde pole akceptuje tablicę operacji, a punkt końcowy ma ograniczenie przepustowości.
Dowiedz się więcej:Aktualizacja zawartości arkuszai Przewodnik po danych arkusza kalkulacyjnego.
Czy mogę odczytywać/zapisywać lub przesyłać pliki spoza systemu Workiva, które są przechowywane w systemie Workiva?
Tak. Korzystając z interfejsów API do zarządzania plikami firmy Workiva, możesz przesyłać na platformę pliki spoza platformy Workiva — takie jak pliki PDF, obrazy lub inne dowolne typy plików — jakoDokumenty pomocnicze, które zachowują oryginalny plik w niezmienionej postaci. Aby przesłać taki dokument, należy użyć punktu końcowego pliku importu z parametremkindustawionym naSupportingDocument. Dokumenty pomocnicze pojawiają się obok innych plików Workiva i można je wyświetlać, przenosić, kopiować, eksportować (pobierać) i usuwać jak każdy inny plik.
Dowiedz się więcej:Wprowadzenie do interfejsów API zarządzania plikami
Czy mogę programowo tworzyć i zarządzać automatyzacjami?
W tej chwili nie ma dostępnych punktów końcowych umożliwiających programowe tworzenie automatyzacji ani zarządzanie nimi.