Workiva Scripting biedt een flexibele en veilige omgeving voor het uitvoeren van Python-code op het Workiva-platform. Dit artikel behandelt enkele van de meest voorkomende scenario's die je kunt tegenkomen tijdens het ontwikkelen van je script.
Workiva Scripting is inbegrepen bij Customize Workiva. Om scripting te gebruiken, moet de optie 'Workiva/Scripting aanpassen' in uw werkruimte zijn ingeschakeld en moeten gebruikers de juiste scriptingrol(len) en bestandsrechten hebben.
Voor onderwerpen die hier niet aan bod komen, raadpleeg onze andere Workiva Scripting-artikelen of bezoek deWorkiva API'senWorkiva Scriptingcommunities.
Beheer- en machtigingsproblemen
De actie 'Script uitvoeren' verschijnt niet in de automatiseringen.
Dit geeft aan dat u niet de benodigde rol hebt om dit script uit te voeren. Neem contact op met uw werkruimtebeheerder om een geschikte scriptroltoe te wijzen.
Als een vereiste rol is toegewezen en de actie nog steeds niet beschikbaar is, controleer dan of de scriptfunctie in die specifieke werkruimte is ingeschakeld.
De Workiva Scripting-connector is niet beschikbaar in Chains.
Dit geeft aan dat de Workiva Scripting-connector niet is ingeschakeld voor uw werkruimte. Als u van mening bent dat deze functie ingeschakeld zou moeten zijn en dat niet het geval is, neem dan contact op met uw Workiva-accountteam.
De werkruimtebeheerder heeft geen scriptrollen tot zijn beschikking.
Dit geeft aan dat de scriptfunctie niet is ingeschakeld voor uw werkruimte. Als u van mening bent dat deze functie ingeschakeld zou moeten zijn en dat niet het geval is, neem dan contact op met uw Workiva-accountteam.
Problemen met de Workiva Scripting-connector en commandoketens
De opdracht wordt wel uitgevoerd, maar het script niet.
Controleer of de scriptfunctie is ingeschakeld voor uw werkruimte. Als u van mening bent dat deze functie ingeschakeld zou moeten zijn en dat niet het geval is, neem dan contact op met uw Workiva-accountteam.
Als je 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 werkruimtebeheerder om een geschikte scriptroltoe te wijzen. U dient er ook voor te zorgen dat de integratiegebruiker de juiste machtigingen heeft om toegang te krijgen tot het script dat door de opdracht wordt uitgevoerd.
De opdracht wordt nog uitgevoerd, maar de scriptuitvoering stopt onverwacht.
Controleer of de uitvoering van het script niet buiten dit commando is geannuleerd. De uitvoeringsgeschiedenis is te vinden in het paneel Eigenschappen van de scripteditor of kan worden opgevraagd via de API-eindpunten van het scriptprototype.
Als dat niet het probleem is, controleer dan of de scriptuitvoering het maximaal toegestane RAM-gebruik niet heeft bereikt (zie Workiva Scripting Limits). Je kunt dit doen door het geheugengebruik in je code te rapporteren.
Hieronder vindt u een voorbeeld van hoe u het geheugengebruik kunt rapporteren met tracemalloc uit de standaardbibliotheek van Python.
# De module importeren import tracemalloc # Code of functie waarvan het 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 looptijd (zie Workiva Scripting Limits); zorg ervoor dat de scriptuitvoering deze limiet niet heeft bereikt.
Controleer tot slot of de scriptcode de volgende functies niet bevat:
- ontslag nemen()
- Uitgang()
- sys.exit()
- os._exit()
Deze functies hebben vrijwel dezelfde functionaliteit om de SystemExit-uitzondering te genereren waarmee de Python-interpreter wordt afgesloten.
De uitvoering van opdrachten en scripts verloopt niet synchroon.
Dit gebeurt wanneer de opdracht is voltooid en het script blijft draaien, of andersom.
Als de opdracht voltooid is voordat het script is uitgevoerd, zorg er dan voor dat de opdrachttime-out groter is dan de uitvoeringsduur van het script (zie Workiva Scripting Limits voor meer informatie over de maximale uitvoeringsduur van het script).
Als de scriptuitvoering enkele seconden vóór de opdracht is voltooid, kan dit een verwachte vertraging zijn die wordt veroorzaakt doordat het scriptingsysteem informatie verwerkt nadat de scriptuitvoering is voltooid. Het commando meldt de voltooiing pas wanneer het hele proces is afgerond.
Scripteditor
Het importeren van een bibliotheek werkt niet.
Workiva Scripting ondersteunt de standaardbibliotheek van Python direct , evenals componenten die beschikbaar zijn via de Python Package Index( zie Ondersteunde Workiva Scripting-bibliotheken en -afhankelijkheden voor meer informatie). PyPI-componenten die aanvullende 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 dat laatste betreft, controleer dan of er geen extra installaties nodig zijn.