Uwaga: Skrypty są obecnie dostępne tylko poprzez Customize Workiva. Dowiedz się więcej.
Konfiguracja i przegląd skryptów
W jaki sposób skrypty są powszechnie używane?
Workiva Scripting może zautomatyzować wiele powtarzalnych, czasochłonnych zadań, które w przeciwnym razie byłyby wykonywane ręcznie. Niektóre typowe przypadki użycia obejmują eliminację zerowych wierszy, układy raportów i zastosowanie niestandardowego formatowania do wielu dokumentów.
Dzięki temu skrypty mogą być szeroko adaptowane do wielu potrzeb biznesowych. Kod należy do Ciebie; to, co z nim zrobisz, w dużej mierze zależy od twórcy skryptu, konfiguracji przestrzeni roboczej i aktualnej liczby procesów ręcznych w Twojej firmie.
Czy istnieją jakieś ograniczenia dotyczące skryptów?
Tak, Workiva narzuca szereg ograniczeń zarówno dla Workiva Scripting, jak i API skryptów.
Dowiedz się więcej o limitach skryptów .
Jak uruchamiać skrypty z łańcuchów?
Wymaga to konektora Workiva Scripting.
Zobacz poniższe artykuły, aby dowiedzieć się więcej:
Czy Workiva Scripting jest zgodny z Fedramp?
Absolutnie. Bezpieczeństwo jest naszym najwyższym priorytetem w Workiva i zbudowaliśmy infrastrukturę, która gwarantuje, że Twój kod jest zarówno bezpieczny, jak i wydajny.
Jak mogę chronić dostęp do skryptów?
Istnieje kilka sposobów ochrony kodu przed dostępem nieautoryzowanych użytkowników:
- Utwórz dedykowany obszar roboczy lub organizację dla autoryzowanych użytkowników: Najbezpieczniejszą opcją jest utworzenie obszaru roboczego, a nawet całej organizacji, tylko dla autoryzowanych użytkowników. Na przykład partnerzy mogą utworzyć obszar roboczy dla Workiva Scripting w Twojej organizacji i zlecić klientom uruchamianie skryptów z własnej organizacji.
- Używaj ról: Role skryptowe Workiva (Script Viewer, Script Runner i Script Editor) są warstwowe, dzięki czemu użytkownicy mają dostęp tylko do skryptów niezbędnych do ich pracy. Na przykład rola Script Runner pozwala użytkownikom uruchamiać skrypty, ale nie ma dostępu do żadnego kodu.
- Użyj uprawnień: Pliki skryptów można ograniczyć na poziomie pliku, tak aby tylko określeni użytkownicy mogli edytować lub wyświetlać Twój kod.
Dowiedz się więcej o rolach i uprawnieniach skryptów .
Czy istnieje lista dozwolonych adresów IP dla skryptów?
Tak, dozwolone adresy IP dla programu skryptowego są zawarte tutaj.
Czy dostępna jest biblioteka skryptów?
Zebraliśmy wiele przykładowych skryptów do twojego użytku. Skrypty te można również utworzyć ręcznie, korzystając z artykułów, do których odnośniki znajdują się w poprzednim pytaniu.
Korzystanie z edytora skryptów
Jak zarządzać wersjami skryptów?
Obecnie Workiva przechowuje tylko najnowszą wersję skryptu.
Możesz tworzyć kopie plików skryptów w Workiva i organizować je w folderach, ale zalecamy korzystanie z oddzielnego systemu kontroli wersji - zwłaszcza jeśli masz system kontroli wersji dla przedsiębiorstw.
Jak zsynchronizować kod Workiva z systemem kontroli wersji przedsiębiorstwa (np. GitHub)?
Interfejs API skryptów Workiva Scripting API zapewnia punkty końcowe zarządzania źródłami, w których użytkownicy mogą pobrać najnowszą wersję skryptu lub zaktualizować skrypt do nowszej kopii. Workiva nie oferuje obecnie automatycznej synchronizacji między plikami skryptów a systemem kontroli wersji Twojego przedsiębiorstwa (np. Gitlab, Github, SVN).
Jak uzyskać dostęp do poświadczeń systemów Workiva i innych niż Workiva z poziomu skryptu?
Istnieją dwa sposoby uzyskania dostępu do poświadczeń dla systemów Workiva i innych niż Workiva:
- Wysyłaj dane uwierzytelniające jako dane wejściowe środowiska uruchomieniowego (preferowane)
- Zakoduj na stałe dane uwierzytelniające w kodzie
Dlaczego wartości danych wejściowych uruchamianego skryptu nie są wyświetlane w dzienniku podczas jego wykonywania?
Jest to środek ostrożności. Ponieważ parametry wejściowe mogą zawierać poufne dane, usuwamy je z logów przeznaczonych dla użytkowników.
Jak mogę przechowywać dane tymczasowe podczas wykonywania skryptu?
Skrypty Workiva mogą używać funkcji Python Open (link zewnętrzny) do odczytu i zapisu plików tymczasowo w folderze /tmp. Inne ścieżki są ograniczone.
Za każdym razem, gdy uruchamiany jest skrypt, w infrastrukturze chmury Workiva uruchamiany jest kontener. Ten kontener ma zainstalowany system Linux, a wszystkie ścieżki są ograniczone z wyjątkiem /tmp (który jest pusty). Dane mogą być tymczasowo zapisywane i odczytywane w tej ścieżce. Po zakończeniu biegu pojemnik jest usuwany.
Czy mogę zdefiniować zmienne globalne do użycia w wielu skryptach, à la Chains?
Nie w tej chwili.
Czy mogę wysyłać pliki jako parametry?
Pliki binarne mogą być wysyłane jako parametry, o ile nie przekraczają 128 KB i są zakodowane do tekstu (tj. kodowanie binarne do tekstu).
Czy mogę uzyskać dostęp do identyfikatora organizacji, identyfikatora obszaru roboczego i regionu w moich skryptach?
Tak, identyfikator organizacji, identyfikator obszaru roboczego i region (USA, APAC, UE) są dostępne dla kodu skryptu za pośrednictwem zmiennej środowiskowej. Na przykład, os.getenv("WORKIVA_ORGANIZATION_ID").
| Zmienna | Opis |
|---|---|
| WORKIVA_ORGANIZATION_ID | Unikalny identyfikator organizacji Workiva, w której hostowany jest skrypt |
| WORKIVA_ACCOUNT_ID | Unikalny identyfikator obszaru roboczego Workiva, w którym hostowany jest skrypt |
| WORKIVA_CLUSTER_DOMAIN | Region Workiva (USA, APAC lub UE) środowiska produkcyjnego, w którym hostowany jest skrypt |
| WORKIVA_SCRIPTING_SCRIPT_ID | Unikalny identyfikator uruchamianego skryptu Scripting |
| WORKIVA_SCRIPTING_RUN_ID | Unikalny identyfikator bieżącego uruchomienia skryptu |
| WORKIVA_SCRIPTING_MEMORY_LIMIT | Maksymalna ilość pamięci RAM dostępna dla skryptu podczas pojedynczego uruchomienia |
| WORKIVA_SCRIPTING_DISK_LIMIT | Maksymalna ilość miejsca na dysku, jaką skrypt może wykorzystać w katalogu /tmp podczas pojedynczego uruchomienia |
Czy mogę użyć kodu z jednego skryptu Workiva w innym skrypcie Workiva?
Obecnie nie ma możliwości spakowania skryptu Workiva jako biblioteki i ponownego wykorzystania kodu w wielu skryptach. Najlepszą opcją w tym momencie jest skopiowanie fragmentu kodu wielokrotnego użytku i wklejenie go do skryptów w razie potrzeby.
Używanie skryptów z automatyzacji
Czy mogę wykonać skrypt hostowany w innej przestrzeni roboczej, organizacji lub środowisku (APAC, UE, USA)?
Funkcja automatyzacji w Workiva może wykonywać skrypty tylko w tym samym obszarze roboczym, w którym znajduje się plik. Do wykonania skryptu hostowanego w innej lokalizacji można jednak użyć konektora Workiva Scripting lub interfejsu Workiva Scripting API.
Jeśli korzystasz ze skryptowego interfejsu API, musisz utworzyć i hostować skrypt w głównym obszarze roboczym, którego jedynym celem jest wywołanie skryptowego interfejsu API i wykonanie skryptu w dodatkowym obszarze roboczym.
Czy mogę wysyłać dane wejściowe/parametry podczas wykonywania skryptu?
Obecnie funkcja automatyzacji nie zezwala na dane wejściowe wysyłane do skryptu podczas jego wykonywania.
Jakie metadane są wysyłane do skryptu wykonywanego z poziomu automatyzacji? Czy identyfikator obszaru roboczego został wysłany?
Gdy skrypt jest wykonywany z poziomu automatyzacji, jedynym wysyłanym parametrem jest identyfikator dokumentu, w którym skonfigurowano automatyzację.
Jak uzyskać dostęp do poświadczeń do systemów Workiva i innych niż Workiva z poziomu wykonywania skryptu?
Gdy skrypt jest wykonywany z poziomu automatyzacji, jedyną opcją jest zakodowanie poświadczeń w samym kodzie.
Czy ten sam skrypt może być wykonywany jednocześnie z dwóch lub więcej plików?
Tak, skrypt może być wykonywany jednocześnie z tego samego pliku lub z wielu plików.
Używanie skryptów z łańcuchów
Czy mogę wykonać skrypt hostowany w innej przestrzeni roboczej, organizacji lub środowisku (APAC, UE, USA)?
Tak, skrypt hostowany w jednym obszarze roboczym może być wykonywany przez łańcuch hostowany w innym obszarze roboczym, organizacji lub środowisku.
Aby to zrobić, konektor Workiva Scripting używany w łańcuchu musi być skonfigurowany z grantem API utworzonym w obszarze roboczym hosta, a używane adresy URL skryptów/IAM muszą odpowiadać właściwemu obszarowi roboczemu.
Zobacz poniższe artykuły, aby dowiedzieć się więcej:
Czy ten sam skrypt może być wykonywany jednocześnie z dwóch węzłów?
Ten sam skrypt może być wykonywany jednocześnie z wielu węzłów w ramach tego samego łańcucha i/lub wielu łańcuchów.
Jak wykorzystać dane wyjściowe skryptu w innym węźle łańcucha?
Polecenie Run Script umożliwia wprowadzenie przykładowego ładunku dla każdego wyjścia, które generuje JSON, który może być następnie użyty w innych węzłach.
Czy można utworzyć plik temporalny w łańcuchu za pomocą parametrów w skrypcie?
Możesz ustawić pliki binarne jako parametry, o ile nie przekraczają one 128 KB.
Interfejsy API i biblioteki
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.