Workiva スクリプトは、Workiva ソフトウェア上で Python コードを実行するための柔軟で安全なプラットフォームを提供します。この記事では、スクリプトの作成中に遭遇する可能性のある、より一般的なシナリオについて説明します。
ここでカバーされていない問題については、その他のスクリプト記事を確認するか、Workiva API & Scriptingコミュニティにアクセスしてください。
注: スクリプトは現在カスタマイズWorkivaからのみ利用可能です。詳細はこちら
管理者と権限の問題
スクリプトの実行アクションが自動化に表示されない
これは、このスクリプトを実行するのに必要な役割を持っていないことを示します。ワークスペース管理者に連絡して、適切なスクリプト役割 を割り当ててください。
必要な役割が割り当てられているにもかかわらずアクションが利用できない場合は、その特定のワークスペースでスクリプト機能が有効になっていることを確認してください。
Workivaスクリプトコネクターはチェーンでは使用できません。
これは、Workiva スクリプト コネクタがワークスペースで有効になっていないことを示します。有効化するには、 までご連絡ください。
ワークスペース管理者にはスクリプト役割が見えない
これは、スクリプト機能がワークスペースで有効になっていないことを示します。有効化するには、 までご連絡ください。
Workiva スクリプトコネクターとコマンドの問題(チェーン)
コマンドの実行は開始されるが、スクリプトの実行は開始されない
ワークスペースでスクリプト機能が有効になっていることを確認します。そうでない場合は、当社まで連絡して有効化してください。
スクリプトが有効になっていることを確認した場合、Workiva Scripting コネクター の統合ユーザーに必要な役割が割り当てられていない可能性があります。ワークスペース管理者に連絡して、適切なスクリプト役割 を割り当ててください。統合ユーザーが、コマンドによって起動されたスクリプトにアクセスする権限を持っていることも確認する必要があります。
コマンドの実行は進行中ですが、スクリプトの実行が予期せず停止しました。
このコマンド以外でスクリプトの実行がキャンセルされていないか確認してください。実行履歴は、スクリプト編集者のプロパティ パネルで検索するか、スクリプトプロトタイプ API エンドポイント から取得することができる。
問題が解決しない場合は、スクリプトの実行が許容されるRAM使用状況の上限に達していないか確認してください(Scripting Limits を参照)。これは、コード内のメモリ使用状況をレポートすることで可能です。
Python標準ライブラリからtracemallocを使ってメモリ使用状況をレポートする方法の例を以下に含む必要があります。
# importing the module
import tracemalloc
# code or function for which memory
# has to be monitored
def app():
lt = []
for i in range(0, 100000):
lt.append(i)
# starting the monitoring
tracemalloc.start()
# function call
app()
# displaying the memory
print(tracemalloc.get_traced_memory())
# stopping the library
tracemalloc.stop()
スクリプトの実行にも最大実行時間があります(スクリプトの制限 を参照)。スクリプトの実行がこの制限に達していないことを確認してください。
最後に、スクリプトのコードに 、以下の関数が含まれていないことを確認する:
- やめる
- 閉じる
- sys.exit()
- os._exit()
これらの関数は、Python インタプリタが閉じる SystemExit 例外を発生させる関数とほぼ同じ機能を持っています。
コマンドとスクリプトの実行が同期しない
これは、コマンドが完了してもスクリプトの実行が移動し続けている場合、またはその逆の場合に発生します。
スクリプトの実行前にコマンドが完了する場合は、コマンドタイムアウト がスクリプトの実行時間よりも長いことを確認してください(スクリプトの最大実行時間については、スクリプトの制限 を参照してください)。
スクリプトの実行がコマンドのわずか数秒前に完了した場合、これはスクリプトの実行が完了した後にスクリプト・システムが情報をプロセスするために生じる遅延である可能性があります。コマンドが完了をレポートするのは、プロセス全体が終了してからである。
スクリプト編集者
ライブラリのインポートがうまくいかない
Workiva Scripting は、Python の標準ライブラリ をすぐにサポートするほか、Python Package Index から利用可能なコンポーネントもサポートしています(詳細は、Supported Workiva Scripting libraries and dependencies を参照)。追加インストールが必要なPyPIコンポーネントはサポートされない場合があります。
インポートしようとしているライブラリがPythonの標準ライブラリまたはPython Package Indexの一部であることを確認してください。後者のコンポーネントの場合は、追加インストールが必要ないことを確認する。