Workiva スクリプトは、Workiva ソフトウェア上で Python コードを実行するための柔軟で安全なプラットフォームを提供します。繰り返し可能なプロセスを自動的に実行するカスタムスクリプトを作成することで、複数のレポート、ファイル、ワークスペースを拡大縮小して効率化を図ることができます。
注: スクリプトは現在カスタマイズWorkivaからのみ利用可能です。詳細はこちら。
役割と権限
役割は Workiva のシステム全体の設定であり、ワークスペース内のすべてのスクリプトに標準的なアクセス レベルの設定を意味しています。ワークスペース管理者によって割り当てられる Workiva スクリプト役割は 3 つあります。
| 役割 | アクセスレベル |
|---|---|
| ScriptRunner | スクリプトを実行できる。 |
| スクリプト閲覧者 | スクリプトを表示可能 |
| スクリプト編集者 | スクリプトのビュー、作成、編集が可能。 |
ヒント スクリプトランナーの役割を使用するよりも、技術者でないユーザーのほとんどは、統合自動化 を使用してスクリプトを開始することをお勧めします。
また、権限 を割り当てることで、ファイル単位でアクセス制御することもできます。権限は役割よりも優先されるため、スクリプトの保有者や作成者は、個々のファイルへのアクセスを付与したり制限したりすることができます。
| アクセス許可 | アクセスレベル |
|---|---|
| 閲覧者 | スクリプトの実行とビューが可能。 |
| 編集者 | スクリプトの実行、編集、ビューが可能。 |
| オーナー | スクリプトの実行、編集、ビュー、作成が可能。 |
Workivaスクリプトの使い方
ワークスペースで有効にすると、スクリプトは、サイト内の他のスプレッドシート、ドキュメント、プレゼンテーションと一緒にホーム画面に表示されます。新規スクリプトを作成するか、ファイルリストから既存のスクリプトを選択することができます。
スクリプト編集者は、サイト内のスクリプトを構築、編集、実行する場所です。
以下の機能が用意されています。
- 中央のキャンバス ここでスクリプトを構成する。
- スクリプトの実行結果をビューする下部の出力セクション
- メニューバーが上に表示され、そこでスクリプトを保存または実行
- スクリプトのプロパティや実行履歴を管理するためのプロパティパネルを右側に配置
- 左側のソースパネル
一度構築されたスクリプトは、マニュアル、プログラム、チェーンを通して、または Workiva ファイル内から実行することができます。
スクリプトをマニュアルで実行する:
- 画面上部のメニューバーにあるスクリプト実行 をクリックしてください。
- + 変数追加 をクリックする。
- パラメータとして渡す環境変数の名称と値を入力する。
- スクリプト実行 をクリックしてください。
プログラムでスクリプトを実行するには、Initiate a script executionprototype エンドポイントに HTTP POST リクエストを行います。
スクリプトIDはエンドポイントに含まれます。POSTリクエストの本文で環境変数の名称と値を定義することで、パラメータを渡すことができます。
スクリプトの出力は、製品の状態を監視するための使用状況メトリクスとともに、標準エラーおよび標準出力として記録されます。
チェーンを通してスクリプトを実行するには、Workiva スクリプト・コネクターを使用する必要があります。その前に、組織のセキュリティ管理者は、構成画面を通じてコネクター を有効にする必要があります。
詳細は以下の記事をご覧いただきたい:
Workiva ファイル内でスクリプトを実行するには、以下のステップに従います。
ドキュメント、スプレッドシート、またはプレゼンテーションの[自動化]パネルで、 新規自動化を作成し、トリガーとして手動実行 を選択します。
スクリプトの実行 アクションを追加し、実行するスクリプトを選択し、オプション で実行を許可するユーザーまたは役割を定義します。
指定したユーザーだけが、ファイル内の自動化を表示し、実行できます。
練習用スクリプトの作成
サイトでライブスクリプトを作成する前に、スクリプト編集者で練習用スクリプトを作成することをお勧めします。これは、ライブデータを扱う前にプロセスに慣れるためのヘルプとなる。
以下のステップに従って、お金の時間価値を計算する簡単なスクリプトを作成してください:
- ホームから+ 作成 => スクリプト をクリックする。
- 右側に、スクリプトの名称と簡単な説明を入力します。
- 画面中央のスクリプトエディタに移動し、既存のコードを削除します。真っ白なキャンバスを持つべきだ。
-
このコードを編集者に貼り付けます:
import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # 貨幣の時間価値の数式 # FV = PV x [1 + (i / n)]^(n x t) # 10,000ドルを年利10%で1年間運用すると仮定します.# その貨幣の将来価値は:# FV = $10,000 x [1 + (10% / 1)] ^ (1 x 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スクリプト制限
- サンプルスクリプト
これらのリソースは、Workivaスクリプトを使い始めるためのヘルプとなります。WorkivaパブリックAPIを使用して、Workivaプラットフォームとプログラム的に対話するコードを記述することに関する質問については、デベロッパー&APIコミュニティ をご利用ください。
FAQ|よくあるご質問
スクリプトはどのように使われるのが一般的ですか?
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スクリプトをライブラリとしてパッケージ化し、複数のスクリプトでコードを再利用する方法はありません。今のところ最良のオプションは、再利用可能なコードをコピーし、必要に応じてスクリプトに貼り付けることだ。