Workiva Scripting zapewnia elastyczną, bezpieczną platformę do uruchamiania kodu Python w oprogramowaniu Workiva. W tym artykule omówiono niektóre z najczęstszych scenariuszy, które możesz napotkać podczas tworzenia skryptu.
Aby zapoznać się z kwestiami, które nie zostały tutaj omówione, zapoznaj się z naszymi innymi artykułami dotyczącymi skryptów lub uzyskaj dostęp do społeczności Workiva APIs & Scripting.
Uwaga: Skrypty są obecnie dostępne tylko poprzez Customize Workiva. Dowiedz się więcej.
Problemy z administracją i uprawnieniami
Akcja Wykonaj skrypt nie pojawia się w Automatyzacjach
Oznacza to, że nie masz roli wymaganej do wykonania tego skryptu. Skontaktuj się z administratorem obszaru roboczego, aby przypisać odpowiednią rolę skryptową .
Jeśli wymagana rola jest przypisana, a akcja nadal nie jest dostępna, sprawdź, czy funkcja skryptów jest włączona w danym obszarze roboczym.
Konektor skryptowy Workiva nie jest dostępny w łańcuchach
Oznacza to, że konektor Workiva Scripting nie został włączony dla Twojego obszaru roboczego. Skontaktuj się z nami, aby ją włączyć.
Żadne role skryptowe nie są widoczne dla administratora obszaru roboczego
Oznacza to, że funkcja skryptów nie została włączona dla Twojej przestrzeni roboczej. Skontaktuj się z nami, aby ją włączyć.
Konektor skryptów Workiva i problemy z poleceniami (łańcuchy)
Wykonywanie polecenia rozpoczyna się, ale skrypt nie jest wykonywany
Sprawdź, czy funkcja skryptów została włączona dla Twojego obszaru roboczego. Jeśli nie, skontaktuj się z nami, aby ją włączyć.
Jeśli potwierdziłeś, że obsługa skryptów jest włączona, użytkownik integracji dla konektora Workiva Scripting może nie mieć przypisanej niezbędnej roli. Skontaktuj się z administratorem obszaru roboczego, aby przypisać odpowiednią rolę Scripting. Powinieneś również sprawdzić, czy użytkownik integracji ma uprawnienia dostępu do skryptu uruchamianego przez polecenie.
Wykonywanie polecenia jest nadal w toku, ale wykonywanie skryptu zostało nieoczekiwanie zatrzymane
Sprawdź, czy wykonanie skryptu nie zostało anulowane poza tym poleceniem. Historię uruchomień można znaleźć w panelu Properties edytora skryptów lub pobrać za pośrednictwem punktów końcowych Scripting Prototype API.
Jeśli tak nie jest, upewnij się, że wykonanie skryptu nie osiągnęło maksymalnego dozwolonego użycia pamięci RAM (patrz Scripting Limits). Możesz to zrobić, raportując użycie pamięci w swoim kodzie.
Poniżej zamieściliśmy przykład raportowania użycia pamięci za pomocą tracemalloc z biblioteki standardowej Pythona.
# import modułu
import tracemalloc
# kod lub funkcja, dla której pamięć
# ma być monitorowana
def app():
lt = []
for i in range(0, 100000):
lt.append(i)
# rozpoczęcie monitorowania
tracemalloc.start()
# wywołanie funkcji
app()
# wyświetlenie pamięci
print(tracemalloc.get_traced_memory())
# zatrzymanie biblioteki
tracemalloc.stop()
Wykonywanie skryptów ma również maksymalny czas działania (patrz Scripting Limits); upewnij się, że wykonywanie skryptu nie osiągnęło tego limitu.
Na koniec sprawdź, czy kod skryptu nie zawiera następujących funkcji:
- quit()
- exit()
- sys.exit()
- os._exit()
Funkcje te mają prawie taką samą funkcjonalność, aby podnieść wyjątek SystemExit, przez który kończy działanie interpreter Python.
Brak synchronizacji wykonywania poleceń i skryptów
Dzieje się tak, gdy polecenie zostanie zakończone, a wykonywanie skryptu będzie kontynuowane lub odwrotnie.
Jeśli polecenie zakończy się przed wykonaniem skryptu, upewnij się, że limit czasu polecenia jest większy niż czas wykonania skryptu (zobacz Scripting Limits, aby dowiedzieć się więcej o maksymalnym czasie wykonania skryptu).
Jeśli wykonywanie skryptu zakończy się zaledwie kilka sekund przed wydaniem polecenia, może to być oczekiwane opóźnienie spowodowane przetwarzaniem informacji przez system Scripting po zakończeniu wykonywania skryptu. Polecenie zgłosi ukończenie dopiero po zakończeniu całego procesu.
Edytor skryptów
Import biblioteki nie działa
Workiva Scripting obsługuje standardową bibliotekę Pythona, a także komponenty dostępne w indeksie pakietów Pythona (zobacz Obsługiwane biblioteki i zależności Workiva Scripting, aby uzyskać więcej informacji). Komponenty PyPI wymagające dodatkowych instalacji mogą nie być obsługiwane.
Upewnij się, że biblioteka, którą próbujesz zaimportować, jest częścią standardowej biblioteki Pythona lub indeksu pakietów Pythona. Jeśli jest to składnik tego ostatniego, upewnij się, że nie są wymagane żadne dodatkowe instalacje.