Workiva Scripting tilbyr en fleksibel og sikker plattform for kjøring av Python-kode på Workiva-programvaren. Denne artikkelen tar for seg noen av de vanligste scenariene du kan støte på når du bygger skriptet ditt.
For spørsmål som ikke dekkes her, sjekk ut andre artikler om skripting eller gå inn på Workiva API-er og skripting community.
Merk: Skripting er for øyeblikket bare tilgjengelig gjennom Customize Workiva. Lær mer om dette.
Administrasjons- og rettighetsproblemer
Handlingen Execute Script vises ikke i Automations
Dette indikerer at du ikke har rollen som kreves for å kjøre dette skriptet. Kontakt Workspace Admin for å tildele en passende skriptrolle.
Hvis en nødvendig rolle er tildelt og handlingen fremdeles ikke er tilgjengelig, må du kontrollere at skriptfunksjonen er aktivert i det aktuelle arbeidsområdet.
Workiva Scripting-kontakt ikke tilgjengelig i kjeder
Dette indikerer at Workiva Scripting Connector ikke er aktivert for arbeidsområdet ditt. Kontakt oss på for å få det aktivert.
Ingen skriptroller er synlige for arbeidsområdeadministratoren
Dette indikerer at skriptfunksjonen ikke er aktivert for arbeidsområdet ditt. Kontakt oss på for å få det aktivert.
Problemer med Workiva Scripting-kontakt og kommandoer (kjeder)
Kommandokjøringen starter, men skriptkjøringen starter ikke
Kontroller at skriptfunksjonen er aktivert for arbeidsområdet ditt. Hvis ikke, kontakt oss for å få det aktivert.
Hvis du har bekreftet at skripting er aktivert, kan det hende at integrasjonsbrukeren for Workiva Scripting Connector ikke har fått tildelt den nødvendige rollen. Kontakt Workspace Admin for å tildele en passende Scripting-rolle. Du bør også kontrollere at integrasjonsbrukeren har tillatelse til å få tilgang til skriptet som kommandoen utløser.
Kommandokjøringen pågår fortsatt, men skriptkjøringen stopper uventet
Kontroller at skriptkjøringen ikke ble avbrutt utenfor denne kommandoen. Kjøringshistorikk kan finnes i Properties -panelet i skriptredigeringsprogrammet eller hentes via Scripting Prototype API-endepunktene.
Hvis dette ikke er problemet, må du kontrollere at skriptkjøringen ikke har nådd den maksimalt tillatte RAM-bruken (se Scripting Limits). Dette kan du gjøre ved å rapportere minnebruken i koden din.
Nedenfor har vi inkludert et eksempel på hvordan du kan rapportere minnebruk med tracemalloc fra Python-standardbiblioteket.
# importerer modulen
import tracemalloc
# kode eller funksjon som minnet
# skal overvåkes for
def app():
lt = []
for i in range(0, 100000):
lt.append(i)
# starter overvåkingen
tracemalloc.start()
# funksjonsanrop
app()
# viser minnet
print(tracemalloc.get_traced_memory())
# stopper biblioteket
tracemalloc.stop()
Skriptkjøringer har også en maksimal kjøretid (se Scripting Limits); sørg for at skriptkjøringen ikke har nådd denne grensen.
Til slutt må du kontrollere at skriptkoden ikke inneholder følgende funksjoner:
- avslutt()
- exit()
- sys.exit()
- os._exit()
Disse funksjonene har nesten samme funksjonalitet for å utløse SystemExit-unntaket som Python tolken avsluttes med.
Kommando- og skriptutførelse ikke synkronisert
Dette skjer når kommandoen fullføres og skriptkjøringen fortsetter, eller omvendt.
Hvis kommandoen fullføres før skriptet kjøres, må du sørge for at command timeout er større enn skriptets kjøretid (se Scripting Limits for å finne ut mer om maksimal kjøretid for skript).
Hvis skriptet kjøres bare noen sekunder før kommandoen, kan dette være en forventet forsinkelse som skyldes at skriptsystemet behandler informasjon etter at skriptet er ferdig kjørt. Kommandoen vil bare rapportere fullføring når hele prosessen er ferdig.
Skriptredigerer
Importer et bibliotek fungerer ikke
Workiva Scripting støtter Pythons standardbibliotek uten videre, i tillegg til komponenter som er tilgjengelige fra Python Package Index (se Støttede Workiva Scripting-biblioteker og -avhengigheter for mer informasjon). PyPI-komponenter som krever ytterligere installasjoner, støttes kanskje ikke.
Kontroller at biblioteket du prøver å importere er en del av Pythons standardbibliotek eller Python Package Index. Hvis det er en komponent i sistnevnte, må du forsikre deg om at det ikke er nødvendig med ytterligere installasjoner.