Workiva Scripting zapewnia elastyczne i bezpieczne środowisko do uruchamiania kodu Python na platformie Workiva. W tym artykule opisano niektóre z częstszych scenariuszy, jakie mogą wystąpić podczas tworzenia skryptu.
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.
W przypadku problemów, które nie zostały tutaj omówione, zapoznaj się z naszymi innymi artykułami na temat skryptów Workiva lub odwiedź społecznościAPI Workivaiskryptów Workiva.
Problemy z administratorem i uprawnieniami
Akcja Wykonaj skrypt nie pojawia się w automatyzacjach
Oznacza to, że nie posiadasz roli wymaganej do wykonania tego skryptu. Skontaktuj się z administratorem swojego obszaru roboczego, aby przypisać odpowiednią rolę skryptową .
Jeśli wymagana rola została przypisana, a akcja nadal nie jest dostępna, sprawdź, czy funkcja skryptowania jest włączona w danym obszarze roboczym.
Łącznik skryptowy Workiva nie jest dostępny w łańcuchach
Oznacza to, że łącznik Workiva Scripting nie został włączony dla Twojego obszaru roboczego. Jeśli uważasz, że ta opcja powinna być włączona, a tak nie jest, skontaktuj się z zespołem ds. kont Workiva.
Administrator obszaru roboczego nie widzi żadnych ról skryptowych
Oznacza to, że funkcja skryptowania nie została włączona w Twoim obszarze roboczym. Jeśli uważasz, że ta opcja powinna być włączona, a tak nie jest, skontaktuj się z zespołem ds. kont Workiva.
Łącznik skryptowy Workiva i problemy z poleceniami (łańcuchy)
Rozpoczyna się wykonywanie polecenia, ale nie następuje wykonywanie skryptu
Sprawdź, czy funkcja skryptów została włączona w Twoim obszarze roboczym. Jeśli uważasz, że ta opcja powinna być włączona, a tak nie jest, skontaktuj się z zespołem ds. kont Workiva.
Jeśli potwierdzono, że obsługa skryptów jest włączona, użytkownik integracji dla łącznika Workiva Scripting może nie mieć przypisanej niezbędnej roli. Skontaktuj się z administratorem swojego obszaru roboczego, aby przypisać odpowiednią rolę skryptową . Należy również sprawdzić, czy użytkownik integracyjny ma uprawnienia dostępu do skryptu uruchomionego przez polecenie.
Wykonywanie polecenia jest nadal w toku, ale wykonywanie skryptu zostaje nieoczekiwanie przerwane
Sprawdź, czy wykonywanie skryptu nie zostało anulowane poza tym poleceniem. Historię uruchomień można znaleźć w panelu Właściwości edytora skryptów lub pobrać za pomocą punktów końcowych prototypu skryptów API.
Jeśli to nie jest przyczyną problemu, upewnij się, że wykonywanie skryptu nie osiągnęło maksymalnego dozwolonego użycia pamięci RAM (zobacz Limity skryptów Workiva). Można to zrobić, raportując użycie pamięci w kodzie.
Poniżej zamieściliśmy przykład raportowania użycia pamięci za pomocą tracemalloc z standardowej biblioteki języka Python.
# importowanie modułu import tracemalloc # kod lub funkcja, dla której pamięć # musi być monitorowana def app(): lt = [] for i in range(0, 100000): lt.append(i) # rozpoczęcie monitorowania tracemalloc.start() # wywołanie funkcji app() # wyświetlanie pamięci print(tracemalloc.get_traced_memory()) # zatrzymanie biblioteki tracemalloc.stop()Wykonywanie skryptów ma również maksymalny czas wykonania (patrz Limity skryptów Workiva); upewnij się, że wykonywanie skryptu nie osiągnęło tego limitu.
Na koniec sprawdź, czy kod skryptu nie zawiera następujących funkcji:
- zrezygnować()
- Wyjście()
- sys.exit()
- os._exit()
Funkcje te mają niemal taką samą funkcjonalność, jak zgłaszanie wyjątku SystemExit, który powoduje zakończenie działania interpretera języka Python.
Wykonywanie poleceń i skryptów nie jest zsynchronizowane
Dzieje się tak, gdy polecenie zostanie zakończone, a skrypt będzie kontynuowany, lub odwrotnie.
Jeśli polecenie zostanie zakończone przed wykonaniem skryptu, upewnij się, że limit czasu polecenia jest większy niż czas wykonania skryptu (zobacz Limity skryptów Workiva, aby dowiedzieć się więcej o maksymalnym czasie wykonania skryptu).
Jeżeli wykonywanie skryptu zakończy się zaledwie kilka sekund przed poleceniem, może to być spowodowane oczekiwanym opóźnieniem spowodowanym przetwarzaniem informacji przez system skryptowy po zakończeniu wykonywania skryptu. Polecenie poinformuje o zakończeniu procesu dopiero po jego zakończeniu.
Edytor skryptów
Importowanie biblioteki nie działa
Workiva Scripting obsługuje standardową bibliotekę języka Pythonoraz komponenty dostępne w Indeksie pakietów języka Python(więcej informacji można znaleźć w dokumencie Obsługiwane biblioteki i zależności Workiva Scripting ). 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żeli jest to składnik tego ostatniego, upewnij się, że nie są wymagane żadne dodatkowe instalacje.