Workiva Scripting は「Customize Workiva」に含まれています。スクリプティング機能を使用するには、ワークスペースで「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か所にまとめて管理し、各スクリプトに個別にコピーする代わりに、スクリプト間で再利用できるようになります。
依存関係の構築およびアップロードの手順については、をご覧ください。サポートされているスクリプトライブラリおよび依存関係については、 をご覧ください。
自動化からのスクリプトの使用
別のワークスペース、組織、またはリージョン(APAC、CA、EU、US)にホストされているスクリプトを実行することはできますか?
Workivaの自動化機能( )では、そのファイルと同じワークスペース内にあるスクリプトのみを実行できます。別のワークスペース、組織、またはリージョンでスクリプトを実行するには、のWorkiva Scriptingコネクタ( )またはのWorkiva Scripting API( )を使用してください。
Scripting API を使用する場合は、対象のスクリプトがホストされているワークスペースで API グラントを作成してください。この助成金では、script:execute が必須となります。また、統合機能によって実行ステータス、ログ、または出力が取得される場合は、script:read も必要となります。API グラントの作成または更新方法については、「Workiva API の設定」 を参照してください。
スクリプト実行時に実行時入力/パラメータを送信できますか?
現時点では、自動化機能では、スクリプトの実行時にスクリプトに送信される実行時入力を許可していません。
自動化からスクリプト実行に送信されるメタデータは何ですか? ワークスペースIDは送信されていますか?
自動化からスクリプトが実行されると、以下のパラメータが送信されます:
- DOCUMENT_ID: 自動化が実行されるドキュメントのID。
- INPUT_SHEET_ID: 自動化の入力パラメータを管理するために使 用されるスプレッドシートの WURL。
- INPUT_RESOURCE_ID: 「input」スプレッドシート内のセクションのWURL。
- INPUT_SPREADSHEET_ID: 「入力」スプレッドシートのID。
- INPUT_SPREADSHEET_SHEET_ID: 「input」スプレッドシート内のセクションのID。
詳細については、Workivaのサポートページ()および「自動化機能によるスクリプトの実行」( )をご覧ください。
スクリプトの実行から Workiva および Workiva 以外のシステムの認証情報にアクセスするにはどうすればよいですか?
スクリプトが自動化から実行される場合、唯一のオプションは、コード自体に認証情報をハードコードすることである。
同じスクリプトを2つ以上のファイルから同時に実行できますか?
はい、スクリプトは同じファイルからでも複数のファイルからでも同時に実行できます。
チェーンからのスクリプトの使用
別のワークスペース、組織、またはリージョン(APAC、カナダ、EMEA、米国)にホストされているスクリプトを実行することはできますか?
はい。あるワークスペースでホストされているスクリプトは、別のワークスペース、組織、または環境でホストされているチェーンで実行できます。
これを行うには、チェーンで使用されるWorkiva スクリプティングコネクター が、ホストワークスペースで作成された API グラントで設定され、使用されるスクリプト/IAM URL が正しいワークスペースに対応している必要があります。
詳細については、以下の記事をご覧ください:
同じスクリプトを2つのノードから同時に実行できますか?
同じスクリプトを、1つのチェーン内の複数のノードから、あるいは複数のチェーンにまたがって同時に実行することができます。
スクリプトの出力を別のチェーン・ノードで使用するには?
の「スクリプトの実行」コマンド( )を使用すると、JSONを出力する各出力に対してサンプルペイロードを入力することができます。この出力は、他のノードで利用することができます。
チェーンからスクリプトに一時ファイルを渡すことはできますか?
128KBを超えない限り、バイナリをパラメータとして設定できる。
APIとライブラリ
どのAPIとライブラリがサポートされていますか?
Workivaスクリプトは現在m以下の機能をサポートしています:
- WorkivaパブリックAPI
- Workiva以外のAPI
- Pythonの標準ライブラリ
- Python Package Index (PyPI)
Workiva Scriptingでは、現時点ではPythonのみをサポートしています。
詳細については、Workivaのサポートページ()および、サポートされているWorkivaスクリプティングライブラリと依存関係( )をご覧ください。
Workivaスクリプトで使用されているPythonのバージョンは?
新しいスクリプトは Python 3.13 で実行されます。Workiva Scripting では、既存の Python 3.9 スクリプトを引き続きサポートしていますが、Python 3.9 のサポートは 2027 年 10 月に終了します。そのため、Python 3.9 スクリプトはできるだけ早く Python 3.13 へ移行してください。
詳細については、Workivaのサポートページ()および「WorkivaでのスクリプトのPython 3.13への移行」( )をご覧ください。
Workivaは、PythonやJavaのような一般的な言語でAPIクライアントを提供していますか?
現在、PythonやJava用のパブリックSDKはプロバイダーとして提供していません。
しかし、Workiva APIについてはオープンなAPI仕様を提供していますので、ご自身でライブラリを生成することも可能です。例えば、Workiva Platform API の OAS ファイルを取得し、クライアント・ライブラリを生成することができます 。
スクリプト専用のAPIはありますか?
もちろんです。パブリックスクリプティングAPIは、Workiva APIバージョン2026-01-01以降で利用可能です。すべてのリクエストに「X-Version: 2026-01-01」を含めて送信してください。
サポートされている操作、スコープ、および要件については、『』スクリプト API ガイド( )をご覧ください。
Workiva Public APIのAPI付与を作成、ビューするにはどうすればよいですか?
クライアントIDとシークレットを取得するには、こちらの説明に従ってください。
Pythonを使用してWorkiva Public APIに認証する方法を教えてください。
次の例では、アクセス トークンを取得し、そのワークスペース内で API グラントを通じてアクセス可能なスクリプトを取得します。このAPIグラントには、スクリプトの「read」スコープが必要です。API グラントの作成または更新方法については、「Workiva API の設定」 を参照してください。
import os import requests AUTH_URL = "https://api.app.wdesk.com/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/scripts" API_VERSION = "2026-01-01" CLIENT_ID = os.environ["CLIENT_ID"] CLIENT_SECRET = os.environ["CLIENT_SECRET"] token_response = requests.post( AUTH_URL, headers={ "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "X-Version": API_VERSION, }, data={ "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "grant_type": "client_credentials", }, timeout=30, ) token_response.raise_for_status() headers = { "Authorization": f"Bearer {token_response.json()['access_token']}", "X-Version": API_VERSION, } scripts_response = requests.get( SCRIPTING_API_URL, headers=headers, timeout=30, ) scripts_response.raise_for_status() print(scripts_response.json())Pythonを使ってセルの書式を更新するには?
スクリプトからセルの書式設定を更新するには、Workiva Platform API の「」エンドポイント(「」および「POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update 」)を呼び出します。
-
applyFormatsフィールドを使用して、太字、数値や通貨の書式設定、塗りつぶしなどの書式を適用し、applyBordersを使用して、枠線を適用します。 - 各範囲ごとに1つのリクエストを送信するのではなく、複数のフォーマット操作を1つのリクエストにまとめて送信することをお勧めします。各フィールドは操作の配列を受け付け、エンドポイントにはレート制限が設けられているためです。
詳細については、以下の Workiva 開発者向けページを参照してください:
Workivaに保存されているWorkiva以外のファイルの読み書きやアップロードはできますか?
はい。Workivaのファイル管理APIを使用すると、PDFや画像、その他の任意のファイル形式など、Workiva以外のファイルを、サポート文書 としてプラットフォームにアップロードできます。これにより、元のファイルがそのままの状態で保持されます。ファイルをアップロードするには、インポートファイルのエンドポイントを使用し、、kindをに設定し、SupportingDocument を指定してください。「サポート文書」は、他のWorkivaファイルと一緒に表示され、他のファイルと同様に、一覧表示、移動、コピー、エクスポート(ダウンロード)、およびゴミ箱への移動が可能です。
プログラムで自動化を作成・管理できますか?
現時点では、プログラムで自動化を作成または管理するためのエンドポイントはありません。