Workiva Scripting tillhandahåller en flexibel och säker miljö för att köra Python-kod på Workiva-plattformen. I den här artikeln beskrivs några av de vanligaste scenarierna som du kan stöta på när du bygger ditt skript.
Workiva-skript ingår i Anpassa Workiva. För att använda skript måste din arbetsyta ha Anpassa Workiva/skript aktiverat, och användarna behöver lämplig(a) skriptroll(er) och filbehörigheter.
För problem som inte tas upp här, kolla in våra andra Workiva Scripting-artiklar eller besökWorkiva API:erochWorkiva Scriptingcommunities.
Problem med administratörer och behörigheter
Åtgärden Execute Script visas inte i Automations
Detta indikerar att du inte har den roll som krävs för att köra detta skript. Kontakta din administratör för arbetsytan för tilldelning av en lämplig Scripting-roll.
Om en nödvändig roll har tilldelats och åtgärden fortfarande inte är tillgänglig ska du kontrollera att skriptfunktionen är aktiverad i den aktuella arbetsytan.
Workiva Scripting-anslutning inte tillgänglig i kedjor
Detta indikerar att Workiva Scripting Connector inte har aktiverats för din arbetsyta. Om du anser att det borde vara aktiverat och det inte är det, kontakta ditt Workiva-kontoteam.
Inga skriptroller är synliga för administratören av arbetsytan
Detta indikerar att skriptfunktionen inte har aktiverats för din arbetsyta. Om du anser att det borde vara aktiverat och det inte är det, kontakta ditt Workiva-kontoteam.
Workiva Scripting-anslutning och kommandoproblem (kedjor)
Exekveringen av kommandot startar men inte skriptexekveringen
Kontrollera att skriptfunktionen har aktiverats för din arbetsyta. Om du anser att det borde vara aktiverat och det inte är det, kontakta ditt Workiva-kontoteam.
Om du har bekräftat att skriptning är aktiverat kanske integrationsanvändaren för Workiva Scripting connector inte har tilldelats den nödvändiga rollen. Kontakta din administratör för arbetsytan för tilldelning av en lämplig Scripting-roll. Du bör också kontrollera att integrationsanvändaren har behörighet för åtkomst till skriptet som startas av kommandot.
Exekveringen av kommandot pågår fortfarande men skriptexekveringen stoppas oväntat
Kontrollera att skriptexekveringen inte avbröts utanför detta kommando. Körningshistoriken finns i panelen Properties i skriptredigeraren eller hämtas via Scripting Prototype API endpoints.
Om det inte är problemet, se till att skriptkörningen inte har nått maximalt tillåten RAM-användning (se Workiva Scripting Limits). Du kan göra detta genom att rapportera minnesanvändningen i din kod.
Vi har inkluderat ett exempel nedan på hur man rapporterar minnesanvändning med tracemalloc från Python standardbibliotek.
# importerar modulen import tracemalloc # kod eller funktion för vilken minne # måste övervakas def app(): lt = [] for i in range(0, 100000): lt.append(i) # startar övervakningen tracemalloc.start() # funktionsanrop app() # visar minnet print(tracemalloc.get_traced_memory()) # stoppar biblioteket tracemalloc.stop()Skriptkörningar har också en maximal körtid (se Workiva Scripting Limits); se till att skriptkörningen inte har nått denna gräns.
Kontrollera slutligen att skriptkoden inte innehåller följande funktioner:
- Avsluta()
- avsluta()
- sys.exit()
- os._exit()
Dessa funktioner har nästan samma funktionalitet för att generera SystemExit-undantaget genom vilket Python-tolken avslutas.
Kommando- och skriptexekvering inte synkroniserade
Detta inträffar när kommandot slutförs och skriptkörningen fortsätter, eller vice versa.
Om kommandot slutförs innan skriptet körs, se till att kommandots timeout är större än skriptets körningstid (se Workiva Scripting Limits för att lära dig mer om maximal skriptkörningstid).
Om skriptexekveringen är klar bara några sekunder före kommandot kan detta vara en förväntad fördröjning som orsakas av att skriptsystemet bearbetar information efter att skriptexekveringen är klar. Kommandot kommer att rapportera slutförande först när hela processen är klar.
Skript-editor
Importera ett bibliotek fungerar inte
Workiva Scripting stöder Pythons standardbibliotek direkt, samt komponenter som finns tillgängliga från Python Package Index (se Workiva Scripting-bibliotek och beroenden som stöds för mer information). PyPI-komponenter som kräver ytterligare installationer kanske inte får support.
Kontrollera att det bibliotek du försöker importera ingår i Pythons standardbibliotek eller Pythons paketindex. Om det är en komponent i den senare, se till att inga ytterligare installationer krävs.