Workiva Scripting tillhandahåller en flexibel och säker plattform för att köra Python-kod på Workiva-programvaran. I den här artikeln beskrivs några av de vanligaste scenarierna som du kan stöta på när du bygger ditt skript.
För frågor som inte täcks här, kolla in våra andra Scripting-artiklar eller åtkomst till Workiva APIs & Scripting community.
Obs: Scripting är för närvarande endast tillgängligt via Customize Workiva. Läs mer.
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 att tilldela en lämplig skriptroll.
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. Kontakta oss på för att aktivera den.
Inga skriptroller är synliga för administratören av arbetsytan
Detta indikerar att skriptfunktionen inte har aktiverats för din arbetsyta. Kontakta oss på för att aktivera den.
Workiva Scripting-anslutning och kommandoproblem (kedjor)
Exekveringen av kommandot startar men inte skriptexekveringen
Kontrollera att skriptfunktionen har aktiverats för din arbetsyta. Om inte, kontakta oss för att få det aktiverat.
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 ska du kontrollera att skriptexekveringen inte har nått den högsta tillåtna RAM-användningen (se Skriptgränser). 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 minnet
# ska ö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()
Skriptexekveringar har också en maximal exekvering (se Skriptgränser)
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 skapa SystemExit-undantaget genom vilket tolken Python 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 ska du kontrollera att command timeout är längre än tiden för skriptexekvering (se Scripting Limits för information om maximal tid för skriptexekvering).
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.