Workiva Scripting は、Workiva プラットフォーム上で Python コードを実行するための、柔軟かつ安全な環境を提供します。繰り返し可能なプロセスを自動的に実行するカスタムスクリプトを作成することで、複数のレポート、ファイル、ワークスペースを拡大縮小して効率化を図ることができます。また、AIを活用した業務が増えるにつれ、「Scripting」はその業務に、信頼性が高く、適切に管理された基盤を提供します。柔軟性と、自動化を信頼できる再現性のある成果へと導くために必要な制御機能を両立させているのです。
「Customize Workiva」にはスクリプト機能が含まれています。スクリプティング機能を使用するには、ワークスペースで「Workivaのカスタマイズ/スクリプティング」が有効になっている必要があり、ユーザーには適切なスクリプティングロールとファイルへのアクセス権限が必要です。
役割と権限
役割は Workiva のシステム全体の設定であり、ワークスペース内のすべてのスクリプトに標準的なアクセス レベルの設定を意味しています。ワークスペース管理者によって割り当てられる Workiva スクリプト役割は 3 つあります。
| 役割 | アクセスレベル |
|---|---|
| ScriptRunner | スクリプトを実行できる。 |
| スクリプト閲覧者 | スクリプトを表示可能 |
| スクリプト編集者 | スクリプトのビュー、作成、編集が可能。 |
詳細については、の「スクリプト作成の役割と権限」 サポートページをご覧ください。
Workivaスクリプトの使い方
ワークスペースで有効にすると、スクリプトは、サイト内の他のスプレッドシート、ドキュメント、プレゼンテーションと一緒にホーム画面に表示されます。新規スクリプトを作成するか、ファイルリストから既存のスクリプトを選択することができます。
スクリプト編集者は、サイト内のスクリプトを構築、編集、実行する場所です。
以下の機能が用意されています。
- 中央のキャンバス ここでスクリプトを構成する。
- スクリプトの実行結果をビューする下部の出力セクション
- メニューバーが上に表示され、そこでスクリプトを保存または実行
- スクリプトのプロパティや実行履歴を管理するためのプロパティパネルを右側に配置
- 左側のソースパネル
一度構築されたスクリプトは、マニュアル、プログラム、チェーンを通して、または Workiva ファイル内から実行することができます。
スクリプトをマニュアルで実行する:
- 画面上部のメニューバーにあるスクリプト実行 をクリックしてください。
- + 変数追加 をクリックする。
- パラメータとして渡す環境変数の名称と値を入力する。
- スクリプト実行 をクリックしてください。
スクリプトをプログラムから実行するには、以下のAPIグラントを使用します:
-
script:スクリプトを実行するには、 を実行してください。 -
script:readにアクセスして、実行状況、ログ、または出力を取得します。
X-Version: 2026-01-01ヘッダーを指定して、に対して HTTP リクエストを送信します(POST/scripts/{scriptId}/execution)。リクエスト本文は必須です。実行時の入力は、文字列値のJSONプロパティとして定義するか、スクリプトに入力が不要な場合は空のJSONオブジェクト({} )を送信してください。
このエンドポイントは、202 Acceptedを返し、の operationLocation を指定します。そのURLに対して、操作が「」で完了する 、「」でこの操作の `` および `失敗する 、あるいは「」でキャンセルされる まで、繰り返しポーリングを行ってください。resourceUrl` は、実行されたスクリプトを識別します。
スクリプトのログには、標準出力、標準エラー、および実行の詳細が含まれます。
詳細については、Workiva Developers の「」スクリプティング API の概要( )をご覧ください。
スクリプトをチェーンで実行するには:
Workivaスクリプティングコネクタを使用する必要があります。その前に、組織のセキュリティ管理者は、構成画面を通じてコネクター を有効にする必要があります。
詳細は以下の記事をご覧いただきたい:
Workivaファイル内でスクリプトを実行するには、以下の手順に従ってください:
ドキュメント、スプレッドシート、またはプレゼンテーションの[自動化]パネルで、 新規自動化を作成し、トリガーとして手動実行 を選択します。
スクリプトの実行 アクションを追加し、実行するスクリプトを選択し、オプション で実行を許可するユーザーまたは役割を定義します。
注: 指定されたユーザーのみが、ファイル内の自動化機能を確認・実行できます。
練習用スクリプトの作成
サイトでライブスクリプトを作成する前に、スクリプト編集者で練習用スクリプトを作成することをお勧めします。これは、ライブデータを扱う前にプロセスに慣れるためのヘルプとなる。
以下のステップに従って、お金の時間価値を計算する簡単なスクリプトを作成してください:
- ホームから+ 作成 => スクリプト をクリックする。
- 右側に、スクリプトの名称と簡単な説明を入力します。
- 画面中央のスクリプトエディタに移動し、既存のコードを削除します。真っ白なキャンバスを持つべきだ。
-
このコードを編集者に貼り付けます:
"import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # 資金の時間価値の計算式 # FV = PV × [1 + (i / n)]^(n × t) # 10,000ドルを年利10%、年複利で1年間投資すると仮定します。 # その資金の将来価値は次のようになります: # FV = $10,000 × [1 + (10% / 1)] ^ (1 × 1) = $11,000 compounding_periods = {"annual" : 1, "monthly" : 12, "quarterly" : 4, "daily" : 365} if 'INVESTMENT' not in os.environ: print("スクリプトを実行できません。Investment is missing.") sys.exit() if 'INTEREST_RATE' not in os.environ: print("スクリプトを実行できません。金利が不足しています。") sys.exit() if 'COMPOUNDING_PERIOD' not in os.environ: print("スクリプトを実行できません。複利計算期間がありません。") sys.exit() if 'YEARS' not in os.environ: print("スクリプトを実行できません。年数が足りません。") sys.exit() compounding_period = os.getenv('COMPOUNDING_PERIOD') if compounding_periods.keys() に compounding_period がない場合: print("Cannot run the script.", compounding_period," is not a valid period") sys.exit() investment = int(os.getenv('INVESTMENT')) interest_rate = float(os.getenv('利息率')) years = int(os.getenv('YEARS')) n = compounding_periods[compounding_period] FV = investment * pow((1 + ((interest_rate/100) / n)),n * years) print("assume a sum of",investment, "is invested for",years, "year(s) at", \interest_rate,"% interest compounded on",compounding_period, "basis.") print("The future value of that money is:") print(FV) - 左上のスクリプト実行 をクリックしてください。
-
+変数追加 をクリックし、使用したいパラメータを入力する。
- スクリプト実行 をクリックして終了する。
スクリプトの結果は、画面下部の出力 パネルでビューできます。
Workivaスクリプトでサポートを受ける方法
Workiva スクリプトに関するお問い合わせは、Workiva サポート までご連絡ください。Workivaサポートでは、プラットフォームの動作に関するスクリプト作成のお手伝いはできますが、カスタムPythonコードの作成やデバッグは行えません。
また、サポートセンターの「Workiva スクリプト」セクション()をご覧いただければ、スクリプトの基本、スクリプトの作成と管理、サンプル、トラブルシューティング、ベストプラクティスなど、さらに詳しい情報を得ることができます。
これらのリソースは、Workivaスクリプトを使い始めるためのヘルプとなります。さらに詳しいサポートが必要な場合は、の Workiva APIsコミュニティ()またはのWorkivaスクリプティングコミュニティ( )をご覧ください。
よくある質問
スクリプトはどのように使われるのが一般的ですか?
Workiva スクリプトは、手作業で行っていた多くの反復可能で時間のかかるタスクを自動化することができます。一般的な使用例としては、ゼロ行の抑制、レポートレイアウト、複数のドキュメントへの書式設定の適用などが含まれます。
さらに広く言えば、スクリプトはお客様の独自のビジネスニーズに合わせてカスタマイズ可能です。これにより、組織の業務スタイルに合わせてワークフローを最適化・拡張できるほか、信頼性の高いガバナンスに基づく実行も実現します。コードはお客様独自のものです。これで行うことは、スクリプト開発者、ワークスペースのセットアップ、業務における現在のマニュアルプロセスの数に大きく依存します。また、AIの支援を受ける業務が増えるにつれ、「スクリプティング」はその業務に、確実で再現性のある実行の基盤を提供します。
スクリプトに関する制限はありますか?
はい、Workiva は、Workiva スクリプトとスクリプト API の両方に対して、多くの制限を実施しています。
の詳細については、Workivaスクリプトの制限事項( )をご覧ください。
チェーンからスクリプトをトリガーするには?
これには Workiva スクリプト・コネクターが必要です。
詳細は以下の記事をご覧いただきたい:
Workiva ScriptingはFedRAMPに準拠していますか?
もちろんです。スクリプトは、Workivaが管理するFedRAMP準拠のインフラストラクチャ上で実行され、他のWorkivaコンテンツと同様のプラットフォーム権限およびガバナンス制御が適用されます。
スクリプトにアクセスしないようにするには?
不正なユーザーが使用しないようにコードを保護する方法はいくつかあります:
- 許可されたユーザー専用のワークスペースまたは組織を作成する :許可されたユーザーだけのワークスペース、あるいは組織全体を作成することは、最も安全なオプションです。例えば、パートナーは組織内に Workiva スクリプティング用のワークスペースを作成し、顧客に自分の組織からスクリプトを実行させることができます。
- ロールの使用: Workivaのスクリプト関連ロール(スクリプトエディタ、スクリプトビューア、スクリプトランナー)は階層化されており、ユーザーは自分の業務に必要なスクリプトのみにアクセスできるようになっています。「スクリプト実行」機能を使用すると、ユーザーはコードを確認することなくスクリプトを実行できます。
- 権限を使用する :スクリプトファイルをファイルレベルで制限し、特定のユーザーだけがコードを編集または閲覧できるようにすることができます。
のWorkivaスクリプティングに関する役割と権限の詳細については、 をご覧ください。
スクリプトのために許可されたIPのリストはありますか?
はい、スクリプト・プログラムに許可されたIPはここに含まれています 。
スクリプトライブラリはありますか?
もちろんです。サンプルスクリプト を集めましたので、ご利用ください。また、サポートセンターの「」にある「スクリプトの作成と管理」のセクションに掲載されている手順記事を利用して、独自のスクリプトを作成することもできます。
スクリプトのバージョンを管理するには?
現時点では、Workivaはスクリプトの最新バージョンのみを保存します。
Workiva 内でスクリプトファイルのコピーを作成し、フォルダごとに整理することは可能ですが、別のバージョン管理システムを使用することをお勧めします。特に、エンタープライズ向けのバージョン管理システムをご利用の場合は、および「Workiva スクリプティング:開発プロセスのベストプラクティス」 を参照してください。
Workivaのコードを企業のバージョンコントロールシステム(例:GitHub)と同期するにはどうすればよいですか?
のWorkivaスクリプティングAPI( )は、スクリプトのソースファイルを取得および更新するためのソース管理エンドポイントを提供します。ソースの取得には、script:read が必要です。ソースの作成、更新、アップロード、または同期には、script:write が必要です。Workivaは、GitHub、GitLab、SVNなどの外部バージョン管理システムとスクリプトを自動的に同期することはありません。
API グラントの作成または更新方法については、「Workiva API の設定」 を参照してください。
スクリプトから Workiva および Workiva 以外のシステムの認証情報にアクセスするにはどうすればよいですか?
Workiva システムと Workiva 以外のシステムに認証情報を使用するには、2 つの方法があります:
- クレデンシャルをランタイム入力として送る(推奨)
- 認証情報をコードにハードコードする
スクリプト実行時の入力値が、実行中のログ出力に表示されないのはなぜですか?
これはセキュリティ上の予防措置である。入力パラメータは機密データを含む可能性があるため、ユーザー向けの記録から削除する。
スクリプト実行中に一時的にデータを保存するにはどうすればよいですか?
Workivaスクリプトでは、Pythonの``関数( )を使用して、/tmp( )フォルダ内のファイルを一時的に読み書きする場合があります。他の道は制限されている。
スクリプトが実行されるたびに、Workivaのクラウドインフラでコンテナがスピンアップされる。そのコンテナにはLinuxがインストールされており、 、/tmp、 (空です)を除くすべてのパスへのアクセスが制限されています。そのパスでは、データを一時的に書き込んだり、読み込んだりすることができる。実行が終わると、コンテナはゴミ箱に入れられます。
チェーンのように、複数のスクリプトで使用するグローバル変数を定義できますか?
今はまだです。ただし、スクリプトがChainsワークフローの一部として実行される場合は、Chains変数 を使用し、その値をランタイム入力としてスクリプトに渡すことができます。
パラメータとしてファイルを送ることはできますか?
バイナリは、128KBを超えず、テキストにエンコードされている限り、パラメータとして送信することができる(すなわち、バイナリからテキストへのエンコード )。
スクリプト内で、組織ID、ワークスペースID、およびリージョンにアクセスすることはできますか?
はい、組織 ID、ワークスペース ID、およびリージョン(US、APAC、CA、EU)は、環境変数を通じてスクリプトから利用可能です。例えば、os.getenv("WORKIVA_ORGANIZATION_ID").
| 変数 | 説明 |
|---|---|
| WORKIVA_ORGANIZATION_ID | スクリプトがホストされている Workiva 組織の一意の ID。 |
| WORKIVA_ACCOUNT_ID | スクリプトがホストされている Workiva ワークスペースの一意の ID。 |
| WORKIVA_CLUSTER_DOMAIN | スクリプトがホストされている本番環境のWorkivaリージョン(米国、APAC、カナダ、またはEU)。 |
| workiva_scripting_script_id | 実行中のスクリプティング・スクリプトの一意のID。 |
| workiva_scripting_run_id | 現在実行中のスクリプトの一意のID。 |
| workiva_scripting_memory_limit。 | スクリプトが1回の実行中に利用できるRAMの最大容量。 |
| workiva_scripting_disk_limit。 | スクリプトが 1 回の実行中に、/tmp ディレクトリで使用できるディスク容量の上限。 |
あるWorkivaスクリプトのコードを別のWorkivaスクリプトで使用できますか?
あるWorkivaスクリプトから別のスクリプトを直接インポートしたり、呼び出したりすることはできません。再利用可能なコードが少量であれば、それを必要とする各スクリプトにコピー&ペーストすることができます。
多くのスクリプトで再利用するコードについては、共有依存関係としてパッケージ化するのがより良い方法です。dependencies.zipといった、共有ライブラリ(さらにはWorkiva パブリック API 仕様から生成されたクライアントコードも)を含むバンドルを作成し、それを必要とする各スクリプトにアップロードすることができます。これにより、共通のコードを1か所にまとめて管理し、各スクリプトにコピーする代わりに、複数のスクリプト間で再利用できるようになります。
依存関係の構築およびアップロードの手順については、をご覧ください。サポートされているスクリプトライブラリおよび依存関係については、 をご覧ください。