注: スクリプトは現在カスタマイズWorkivaからのみ利用可能です。詳細はこちら。
スクリプトのセットアップと概要
スクリプトはどのように使われるのが一般的ですか?
Workiva スクリプトは、手作業で行っていた多くの反復可能で時間のかかるタスクを自動化することができます。一般的な使用例としては、ゼロ行の抑制、レポートレイアウト、複数のドキュメントへの書式設定の適用などが含まれます。
とはいえ、スクリプトは多くのビジネスニーズに幅広く対応できる。コードはお客様独自のものです。これで行うことは、スクリプト開発者、ワークスペースのセットアップ、業務における現在のマニュアルプロセスの数に大きく依存します。
スクリプトの制限はありますか?
はい、Workiva は、Workiva スクリプトとスクリプト API の両方に対して、多くの制限を実施しています。
チェーンからスクリプトをトリガーするには?
これには Workiva スクリプト・コネクターが必要です。
詳細は以下の記事をご覧いただきたい:
Workiva スクリプトは Fedramp に対応していますか?
もちろんだ。Workivaではセキュリティが最優先事項であり、お客様のコード実行が安全でパフォーマンスも高いことを保証するインフラを構築しています。
スクリプトにアクセスしないようにするには?
不正なユーザーが使用しないようにコードを保護する方法はいくつかあります:
- 許可されたユーザー専用のワークスペースまたは組織を作成する :許可されたユーザーだけのワークスペース、あるいは組織全体を作成することは、最も安全なオプションです。例えば、パートナーは組織内に Workiva スクリプティング用のワークスペースを作成し、顧客に自分の組織からスクリプトを実行させることができます。
- 役割を使用:Workiva のスクリプト役割 (スクリプト閲覧者、スクリプト実行者、スクリプト編集者) は階層化されており、ユーザーは業務に必要なスクリプトのみに使用することができます。例えば、スクリプトランナーの役割では、ユーザーはスクリプトを実行できますが、コードには一切アクセスしません。
- 権限を使用する :スクリプトファイルをファイルレベルで制限し、特定のユーザーだけがコードを編集または閲覧できるようにすることができます。
スクリプトの役割と権限 の詳細はこちら。
スクリプトのために許可されたIPのリストはありますか?
はい、スクリプト・プログラムに許可されたIPはここに含まれています 。
スクリプトライブラリはありますか?
サンプルスクリプト を集めましたので、ご利用ください。これらのスクリプトは、前の質問でリンクした記事を使ってマニュアルで作成することもできます。
スクリプトエディタの使い方
スクリプトのバージョンを管理するには?
現時点では、Workivaはスクリプトの最新バージョンのみを保存します。
Workivaでスクリプトファイルのコピーを作成し、フォルダに整理することもできますが、別のバージョンコントロールシステムを使用することをお勧めします(特にエンタープライズバージョンコントロールシステムを使用している場合)。
Workivaのコードを企業のバージョンコントロールシステム(例:GitHub)と同期するにはどうすればよいですか?
Workiva Scripting API は、ユーザーがスクリプトの最新バージョンを取得したり、スクリプトを新しいコピーに更新したりできるソース管理エンドポイントを提供します。Workivaは現在、スクリプトファイルと企業バージョンコントロールシステム(Gitlab、Github、SVNなど)との自動同期を提供していません。
スクリプトから Workiva および Workiva 以外のシステムの認証情報にアクセスするにはどうすればよいですか?
Workiva システムと Workiva 以外のシステムに認証情報を使用するには、2 つの方法があります:
- クレデンシャルをランタイム入力として送る(推奨)
- 認証情報をコードにハードコードする
スクリプト実行時の入力値が、実行中のログ出力に表示されないのはなぜですか?
これはセキュリティ上の予防措置である。入力パラメータは機密データを含む可能性があるため、ユーザー向けの記録から削除する。
スクリプト実行中に一時的にデータを保存するにはどうすればよいですか?
Workiva スクリプトは、Python Open 関数 (外部リンク) を使用して、一時的に /tmp フォルダ内のファイルを読み書きすることができます。他の道は制限されている。
スクリプトが実行されるたびに、Workivaのクラウドインフラでコンテナがスピンアップされる。そのコンテナにはlinuxがインストールされていて、/tmp(空)以外のすべてのパスが制限されている。そのパスでは、データを一時的に書き込んだり、読み込んだりすることができる。実行が終わると、コンテナはゴミ箱に入れられます。
チェーンのように、複数のスクリプトで使用するグローバル変数を定義できますか?
今はまだです。
パラメータとしてファイルを送ることはできますか?
バイナリは、128KBを超えず、テキストにエンコードされている限り、パラメータとして送信することができる(すなわち、バイナリからテキストへのエンコード )。
スクリプトで組織ID、ワークスペースID、地域にアクセスすることはできますか?
組織ID、ワークスペースID、地域(US、APAC、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。 | 一回の実行でスクリプトが使用可能な RAM の最大量 |
| workiva_scripting_disk_limit。 | スクリプトが/tmp ディレクトリで 1 回の実行中に使用できる最大ディスク ストレージ。 |
あるWorkivaスクリプトのコードを別のWorkivaスクリプトで使用できますか?
現時点では、Workivaスクリプトをライブラリとしてパッケージ化し、複数のスクリプトでコードを再利用する方法はありません。今のところ最良のオプションは、再利用可能なコードをコピーし、必要に応じてスクリプトに貼り付けることだ。
自動化からのスクリプトの使用
別のワークスペース、組織、環境(APAC、EU、US)でホストされているスクリプトを実行できますか?
Workiva の自動化機能 は、ファイルが置かれている同じワークスペース内でしかスクリプトを実行できません。ただし、Workiva Scripting コネクター またはWorkiva Scripting API を使用すると、別の場所でホストされているスクリプトを実行できます。
スクリプトAPIを使用する場合は、スクリプトAPIを呼び出し、セカンダリ・ワークスペースでスクリプトを実行することのみを目的としたスクリプトをメイン・ワークスペースで作成し、ホストする必要があります。
スクリプト実行時に実行時入力/パラメータを送信できますか?
現時点では、自動化機能では、スクリプトの実行時にスクリプトに送信される実行時入力を許可していません。
自動化からスクリプト実行に送信されるメタデータは何ですか? ワークスペースIDは送信されていますか?
スクリプトが自動化から実行されるとき、送信される唯一のパラメータは、自動化が構成されているドキュメントのIDです。
スクリプトの実行から Workiva および Workiva 以外のシステムの認証情報にアクセスするにはどうすればよいですか?
スクリプトが自動化から実行される場合、唯一のオプションは、コード自体に認証情報をハードコードすることである。
同じスクリプトを2つ以上のファイルから同時に実行できますか?
はい、スクリプトは同じファイルからでも複数のファイルからでも同時に実行できます。
チェーンからのスクリプトの使用
別のワークスペース、組織、環境(APAC、EU、US)でホストされているスクリプトを実行できますか?
はい。あるワークスペースでホストされているスクリプトは、別のワークスペース、組織、または環境でホストされているチェーンで実行できます。
これを行うには、チェーンで使用されるWorkiva スクリプティングコネクター が、ホストワークスペースで作成された API グラントで設定され、使用されるスクリプト/IAM URL が正しいワークスペースに対応している必要があります。
詳細は以下の記事をご覧いただきたい:
同じスクリプトを2つのノードから同時に実行できますか?
同じチェーン内の複数のノードや複数のチェーンから、同じスクリプトを同時に実行することができる。
スクリプトの出力を別のチェーン・ノードで使用するには?
スクリプト実行コマンド では、JSONを生成する各出力にサンプルペイロードを入力することができ、それを他のノードで使用することができます。
スクリプトのパラメータによって、チェーン内に一時ファイルを作成できますか?
128KBを超えない限り、バイナリをパラメータとして設定できる。
APIとライブラリ
どのAPIとライブラリがサポートされていますか?
Workivaスクリプトは現在m以下の機能をサポートしています:
- WorkivaパブリックAPI
- Workiva以外のAPI
- Pythonの標準ライブラリ
- Python Package Index (PyPI)
追加言語のサポートはまだ検討中であり、将来的に実装される可能性がある。
詳細はこちら:サポートされる Workiva スクリプトライブラリと依存先
Workivaスクリプトで使用されているPythonのバージョンは?
Workivaスクリプトは現在、Python 3.9とPython 3.13をサポートしており、Python 3.9のサポートは2026年3月に終了します。
詳細はこちら:WorkivaのPython 3.13へのスクリプトの移行
Workivaは、PythonやJavaのような一般的な言語でAPIクライアントを提供していますか?
現在、PythonやJava用のパブリックSDKはプロバイダーとして提供していません。
しかし、Workiva APIについてはオープンなAPI仕様を提供していますので、ご自身でライブラリを生成することも可能です。例えば、Workiva Platform API の OAS ファイルを取得し、クライアント・ライブラリを生成することができます 。
スクリプト専用のAPIはありますか?
スクリプト API エンドポイント は、Workiva のプロトタイプ・プラットフォーム API 内のプロトタイプ・エンドポイントとして利用可能です。
Workiva Public APIのAPI付与を作成、ビューするにはどうすればよいですか?
クライアントIDとシークレットを取得するには、こちらの説明に従ってください。
Pythonを使用してWorkiva Public APIに認証する方法を教えてください。
次のコード・スニペットは、IAM サービスを呼び出してアクセストークンを生成し、それを使用してスクリプティング・プロトタイプ・エンドポイントを認証します。APIグラント(つまりクライアント)が、グラントを作成したワークスペース内で使用することができるすべてのスクリプトのリストを取得します。
import requests import json import os AUTH_URL = "https://api.app.wdesk.com/iam/v1/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/prototype/platform/scripts/" CLIENT_ID = os.getenv('CLIENT_ID') CLIENT_SECRET = os.getenv('CLIENT_SECRET') tokenResponse = requests.post( AUTH_URL, data = 'client_id=' + CLIENT_ID + '&client_secret=' + CLIENT_SECRET + '&grant_type=client_credentials', headers = {'Content-Type': 'application/x-www-form-urlencoded; \ charset=UTF-8'}) accessToken = 'Bearer ' + json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
Pythonを使ってセルの書式を更新するには?
Update Sheet Content プロトタイプエンドポイントは、Pythonコードを使用してセルの書式設定を更新することができます。
Workivaに保存されているWorkiva以外のファイルの読み書きやアップロードはできますか?
現時点では、Workivaに保存されているWorkiva以外のファイルを読み書きまたはアップロードできるエンドポイントはありません。
プログラムで自動化を作成・管理できますか?
現時点では、プログラムで自動化を作成または管理するためのエンドポイントはありません。