Workiva Scripting biedt een flexibel, veilig platform voor het uitvoeren van Python-code op de Workiva-software. Dit artikel behandelt enkele van de meest voorkomende scenario's die u kunt tegenkomen tijdens het bouwen van uw script.
Bekijk voor onderwerpen die hier niet worden behandeld onze andere Scripting-artikelen of ga naar de Workiva API's & Scripting community.
Opmerking: Scripting is momenteel alleen beschikbaar via Customize Workiva. Meer informatie.
Admin- en toestemmingsproblemen
De actie Script uitvoeren verschijnt niet in Automations
Dit geeft aan dat u niet de vereiste rol hebt om dit script uit te voeren. Neem contact op met uw Workspace Admin om een geschikte scripting rol toe te wijzen.
Als een vereiste rol is toegewezen en de actie nog steeds niet beschikbaar is, controleer dan of de scriptingfunctie is ingeschakeld in die bepaalde werkruimte.
Workiva Scripting connector niet beschikbaar in Ketens
Dit geeft aan dat de Workiva Scripting-connector niet is ingeschakeld voor uw werkruimte. Neem contact met ons op om dit in te schakelen.
Geen scriptingrollen zijn zichtbaar voor de Workspace Administrator
Dit geeft aan dat de scriptfunctie niet is ingeschakeld voor uw werkruimte. Neem contact met ons op om dit in te schakelen.
Workiva Scripting-connector en problemen met opdrachten (ketens)
Commando-uitvoering start maar scriptuitvoering niet
Controleer of de scriptfunctie is ingeschakeld voor uw werkruimte. Zo niet, neem dan contact met ons op om het in te schakelen.
Als u hebt bevestigd dat scripting is ingeschakeld, dan heeft de integratiegebruiker voor de Workiva Scripting connector mogelijk niet de benodigde rol toegewezen. Neem contact op met uw Workspace Admin om een geschikte Scripting-rol toe te wijzen. U moet ook controleren of de integratiegebruiker toestemming heeft om het script te openen dat door de opdracht wordt gestart.
De uitvoering van het commando is nog bezig, maar de uitvoering van het script stopt onverwachts
Controleer of de uitvoering van het script niet geannuleerd is buiten deze opdracht om. De uitvoeringsgeschiedenis is te vinden in het paneel Eigenschappen van de scripteditor of kan worden opgehaald via de Scripting Prototype API-eindpunten.
Als dat niet het probleem is, controleer dan of de uitvoering van het script niet het maximaal toegestane RAM-gebruik heeft bereikt (zie Scripting Limits). U kunt dit doen door het geheugengebruik in uw code te rapporteren.
We hebben hieronder een voorbeeld opgenomen van hoe u geheugengebruik kunt rapporteren met tracemalloc van de Python standaardbibliotheek.
# de module importeren
import tracemalloc
# code of functie waarvoor geheugen
# moet worden bewaakt
def app():
lt = []
for i in range(0, 100000):
lt.append(i)
# de bewaking starten
tracemalloc.start()
# functie aanroepen
app()
# het geheugen weergeven
print(tracemalloc.get_traced_memory())
# de bibliotheek stoppen
tracemalloc.stop()
Scriptuitvoeringen hebben ook een maximale runtime (zie Scripting Limits); controleer of de scriptuitvoering deze limiet niet heeft bereikt.
Controleer ten slotte of de scriptcode niet de volgende functies bevat:
- stoppen()
- exit()
- sys.exit()
- os._exit()
Deze functies hebben bijna dezelfde functionaliteit om de SystemExit-uitzondering op te roepen waarmee de Python interpreter afsluit.
Commando- en scriptuitvoering lopen niet synchroon
Dit gebeurt wanneer de opdracht wordt voltooid en de scriptrun doorgaat, of omgekeerd.
Als de opdracht is voltooid voordat het script is uitgevoerd, zorg er dan voor dat de commandotime-out groter is dan de scriptuitvoeringstijd (zie Scripting Limits voor meer informatie over de maximale scriptuitvoeringstijd).
Als de scriptuitvoering slechts enkele seconden voor de opdracht is voltooid, kan dit een verwachte vertraging zijn die wordt veroorzaakt doordat het scriptsysteem informatie verwerkt nadat de scriptuitvoering is voltooid. Het commando meldt pas voltooiing als het hele proces is voltooid.
Scriptbewerkingsprogramma
Een bibliotheek importeren werkt niet
Workiva Scripting ondersteunt Python's standaardbibliotheek out-of-the-box, evenals componenten die beschikbaar zijn via de Python Package Index (zie Ondersteunde Workiva Scripting bibliotheken en afhankelijkheden voor meer informatie). PyPI componenten die extra installaties vereisen, worden mogelijk niet ondersteund.
Zorg ervoor dat de bibliotheek die u probeert te importeren deel uitmaakt van de standaardbibliotheek van Python of de Python Package Index. Als het een onderdeel van het laatste is, controleer dan of er geen extra installaties nodig zijn.