第 1 部: 基本
このチュートリアルの第 1 部では、ロボットのスクリプトと、HighBond API を使用してプロセスの一部を自動化する方法の概要について説明します。
学習内容
ここでは次の項目について学習します。
-
HighBond ロボットで Python/HCL スクリプトを設定、作成、テストする
-
HighBond API を使用して Diligent One オブジェクトを操作する
-
HCL を使用して、一部のデータをインポートおよび変換し、出力をリザルトに保存する
シナリオ:Diligent One で出力結果をリザルト アプリに保存する
ロボットでデータ分析を何回か繰り返して実行する必要があるとします。分析を実行した後に、問題の改善やデータの視覚化を実行するために、出力結果をリザルト アプリに保存します。
データ分析を含むロボット アプリをスケジュールし、夜間に定期的に無人で実行します。夜間の出力結果を格納するテーブルがリザルトに存在するかどうかが問題になったり、手動で一意のテーブル ID を取得しなければならなかったりする状況は避けたいと考えています。スクリプトで名前に基づいて正しいテーブルを自動的に検出するか、指定された名前のテーブルが存在しない場合は新しいテーブルを作成します。
チュートリアルの第 1 部では、このエンドツーエンド プロセスの一部を自動化します。第 2 部では完全に自動化します。
メモ
リザルトのテーブルを使用して、HighBond API の機能を実証します。ただし、API を使用すると、複数の異なる Diligent One アプリで、多数の異なる種類の Diligent One オブジェクトを操作することができます。
詳細については、HighBond API リファレンスでコアリソースを検索して、アクセス可能なオブジェクトを確認してください。
Diligent One にサインインして、設定タスクを実行する
まず、組織の Diligent One インスタンスにサインインして、設定タスクを実行する必要があります。このタスクは簡単ですぐに完了します。
メモ:このチュートリアルのすべてのタスクを実行するには、Launchpad システム管理者で、ロボットおよびリザルト アプリへのアクセス権が必要です。
Diligent One にサインインする

- www.highbond.com に進みます。
- Diligent One 資格情報を入力します(電子メールアドレスとパスワード)。
- [サインイン]をクリックします。
- 会社が Diligent One で複数のインスタンスを使用している場合は、該当するインスタンスがアクティブであることを確認します。
リザルト アプリでコレクションと分析を作成する
リザルトで、作成するテーブルを格納するコレクションと分析を作成します。コレクションはリザルトの最上位のコンテナーです。分析は 2 番目のレベルのコンテナーです。
メモ
チュートリアルの第 2 部では、スクリプトを拡張して、この部分の設定を自動化し、手動で実行せずにすむようにします。
コレクションを作成する

- [アプリを切り替える
> リザルト]をクリックし、リザルトアプリに進みます。
- リザルトホームページで、[コレクションの追加]をクリックします。
- [新しいコレクション]ページで、コレクションに「Test collection 1 <イニシャル>」という名前を付けます。
例:Test collection 1 LM
重要
コレクション名が一意であることを確認してください。リザルトでは、同一のコレクション名があっても回避することはできません。コレクション名が同じ場合、作成するスクリプトの問題が生じます。
コレクションの最後にイニシャルを追加するだけで、十分に一意性を確保できます。
-
[コレクションの作成]をクリックします。
結果 [新しいコレクション]ページが開き、コレクションにアクセスできるメンバー一覧が表示されます。
分析を作成する

- [テーブル]タブを選択して、[分析を追加]をクリックします。
- [新しい分析]ページで、分析の名前を Test analysis 1 にし、[分析を作成]をクリックします。
結果 新しい分析が開き、「分析が空です」というメッセージが表示されます。
- 分析で、設定ボタン
をクリックします。
- ブラウザーのアドレスバーで、分析の一意の ID をコピーして、テキスト ファイルに貼り付け、一時的に保存します。
ロボット アプリでロボットを作成する
作成しようとしているスクリプトを含むロボットを作成します。

-
別のタブでロボット アプリを開きます。
-
[アプリの切り替え
]をクリックします。
-
[ロボット]を右クリックし、[新しいタブでリンクを開く]を選択します。
ヒント
リザルトとロボットを別々のタブで開くと、チュートリアルで後から便利です。
-
-
ロボットが開いているブラウザータブに切り替えます。
-
[HighBond ロボット]を選択し、[HighBond ロボットの作成]をクリックします。
メモ
Professional サブスクリプションのシステム管理者である場合は、ワークフロー ロボットを作成するオプションもあります。チュートリアルでは、HighBond ロボットまたはワークフロー ロボットのいずれかを作成できます。
ACL ロボットを作成しないでください。ACL ロボットは、ACLScript で作成され、Analytics からアップロードされたスクリプトで使用します。
-
ロボットに Tutorial robot <イニシャル> などの名前を付け、[HighBond ロボットの作成]をクリックします。
例:Tutorial robot LM
結果 新しいロボットのロボット スクリプト エディターでスタートアップ処理が開始します。スタートアップ処理が完了するまでは、スクリプトまたはスクリプト セルを実行できません。
Launchpad で HighBond API トークンを作成する
HighBond APIを使用するには、HighBond API トークンが必要です。新し位トークンを作成するか、既存のトークンを使用できます。パスワードのようにトークンを保護し、他者と共有しないでください。

-
Launchpad を起動する
-
画面の左上で Diligent One インスタンスの名前を右クリックします。
-
[新しいタブでリンクを開く]を選択します。
ヒント
Launchpad とロボットを別々のタブで開くと、チュートリアルのこの部で便利です。
-
-
Launchpad が開いているブラウザー タブに切り替えます。
- Launchpad で
>[プロファイル]を選択します。
- [アプリケーション トークン]セクションで[管理]をクリックします。
[API トークンの管理]ページが開きます。
- 新しいトークンを作成するか、既存のトークンを使用できます。
新しいトークンを作成する
- [トークンを追加]をクリックし、[HighBond API]を選択します。
- [新しい HighBond API トークン]パネルに、以下の情報を入力します。
説明 [ロボットスクリプトチュートリアル用のトークン]を入力します
トークンの有効期限 有効のままにします
有効期限が切れるまでの日数 30 を入力します
チュートリアルで構築した自動化をより長期間にわたって有効にしたい場合は、日数を増やします。
パスワード Diligent One パスワードを入力する
[トークンを生成]をクリックします。
トークンが生成されると、トークンとともに 確認が表示されます。
- [コピー]をクリックしてトークンをコピーします。
- 今か後で、[新しい HighBond API トークン]パネルの右上隅の[閉じる]ボタンをクリックして、ダイアログボックスを閉じます。
重要
[新しい HighBond API トークン]パネルを閉じる前に、トークンを保存してください。セキュリティのベストプラクティスとして、ユーザーがトークンにアクセスできるのは、将来使用するために安全な場所に保存するという目的でトークンを最初に作成したときのみです。いったんパネルが閉じると、Diligent One から再びトークンにアクセスすることはできません。トークンを紛失した、または使用できなくなった場合は、新しいトークンを生成する必要があります。
ヒント
チュートリアルの次のセクションでパスワード変数を正常に作成するまでは、トークンをすぐにアクセスできるように保管しておくことができます。
トークンは公開されたパスワードのようなものであるため、不必要に公開しないでください。
既存のトークンを使用する
- 既存のトークンを使用するには、後で使用するために安全な場所に保存したトークンにアクセスします。
- 省略可能。以前に使用されたトークンを使用できなくなった場合は、新しいトークンを作成することもできます。「HighBond アクセストークンの作成と管理」を参照してください。
インタラクティブ モードでスクリプトを作成してテストする
ロボット スクリプト エディターでスクリプトを作成してテストします。手動でスクリプトを実行したり、スクリプト エディターで個別のスクリプト セルを実行したりすることは、インタラクティブ モードと見なされます。スクリプトを実行するには、手動でスクリプトを操作する必要があります。
このチュートリアルの第 2 部では、スクリプトの実行スケジュールを設定し、無人でスクリプトを実行させます。
メモ
スクリプト エディターで数分以上操作を行わない場合は、スクリプト エディター プロセスが有効期限切れになります。セルを実行しようとしたときに、スクリプト エディターが応答しなかったり、ハングしたりする場合は、スクリプトを保存してコミットしてから、スクリプト エディターをいったん終了し、もう一度スクリプト エディターを起動します。詳細については、「スクリプトを保存し、スクリプト エディターを終了します。」を参照してください。
HighBond API トークンのパスワード変数を作成する
スクリプトを作成する前に、HighBond API トークンのパスワード変数を作成します。

-
ロボットが開いているブラウザータブに切り替えます。
-
ロボットスクリプト エディターから[変数を管理
]をクリックします。
-
[変数]ウィンドウで、次の値を指定し、パスワード変数を作成します。
フィールド/オプション 値 名前 v_hb_token
を指定します。この正確な名前を使用する必要があります。タイプ [パスワード]を選択します。
値 クリップボードの HighBond API トークンをフィールドに貼り付けます。
タスク入力 [パスワード]を選択すると、自動的に有効になります。 タスク入力ラベル [HighBond API トークンを入力:]を指定します。
チュートリアルの第 2 部では、この入力ラベルが使用される場所が示されます。
ユーザー入力は必須です 選択したままにします。 タスク入力説明 省略可能。説明は空欄にできます。 - [保存して閉じる]をクリックします。
結果 変数が保存され、スクリプト エディターに戻ります。
メモ
セキュリティ対策として、スクリプト エディターを終了または更新するたびに、HighBond API トークンが自動的にパスワード変数から削除されます。HighBond API を使用するスクリプトを実行する場合は、スクリプト エディターをもう一度開くか、スクリプト エディターを更新するたびに、有効なトークンを変数に貼り付け直す必要があります。
この手順を忘れると、スクリプトを実行したときに次のエラー メッセージが表示されます。
HTTPError: 401 クライアント エラー:許可されていない URL:<url>
コード ブロックをコピーして、スクリプト エディター セルに貼り付ける
-
下の表の各コード ブロックをコピーして、スクリプト エディターの個別のセルに貼り付けます。
新しいセルをスクリプト エディターに追加するには、スクリプト エディター ツールバーで[下にセルを追加
]をクリックします。必要に応じて、4 つの空のセルをすぐに追加できます。
-
セルのコードを貼り付け、コードで指定した更新を実行した後、[選択したセルの実行
]をクリックすると、出力が表示されます。
詳細はこちら
1 つのセルにすべてのコードを入力できます。ただし、コードを個別のセルに整理すると、スクリプトに視覚的な順序が設定され、異なる論理ブロック間の関係が見やすく、わかりやすくなります。詳細については、セルベースのスクリプト作成の主な特長を参照してください。
ガイドライン
-
同じ順序を維持する 必ずスクリプト エディター セルのコードが下の表のコードと同じ順序に従うようにします。セルのいずれかの順序が正しくない場合、スクリプトが失敗します。
メモ
セルを実行すると、各スクリプト エディター セルの横に数字が表示されます。例:[7]。この数字はセル番号ではありません。これは動的に更新されるシーケンス インジケーターであり、スクリプト セッション中にセルが実行された順序を示します。
-
[コピー]ボタンを使用する 下のコード ブロックで、ブロックにカーソルを置き、[コピー]ボタンを使用して、ブロックのすべてのコードをコピーします。
-
コピーと貼り付けは注意して行う コードのコピーと貼り付けを行うときには、必ずすべてのコードを取得します。Pythonでは、左括弧や右括弧
(
)
などの項目がないとエラーになります。コードのみをコピーして貼り付けてください。下のコード ブロックの後にあるセル出力の例は含めないでください。
注意してコピーと貼り付けを行うと、実行時のエラーを回避できます。
-
セル単位で作業する 出力をセル単位で確認すると、スクリプト ロジックの構造を理解しやすくなります。最初のセルに表示される出力がないとしても、他のセルを実行する前に、そのセルを実行する必要があります。
-
コードのコメントを読む 下の表のコメントのほかに、コードのコメントを読み、コードの処理を理解してください。
# Comment text
セルの説明とコード ブロック
メモ
任意の時点で Python エラー(赤色のエラー ブロック)が発生した場合は、トラブルシューティングを参照してください。
セル # | 説明とコード ブロック |
---|---|
セル 1 |
必要なコンポーネントをインポートする セル 1 のコードは追加のコード コンポーネントをインポートします。
|
![]() スクリプト エディターでこのコード ブロックをコピーし、セル 1 に貼り付けてから、セルを実行します。 このセルを実行するときには、表示される出力は得られません。
|
|
セル 2 |
スクリプトで使用される変数を定義する セル 2 のコードは複数の変数を定義します。スクリプトで使用される特定の値は変動するため、変数が必要です。
|
![]()
セル出力の例 date = 29-Sep-2021 |
|
セル 3 |
リザルトでテーブルを作成する セル 3 のコードは HighBond API を使用して、前のセルで指定した名前( 次の 2 つの HCL メソッドで API 要求が実行されます。
メモ このコード ブロックはスクリプトのコア値を表します。HighBond API を使用すると、プログラムでリザルト アプリを操作できるため、アプリを手動で開く必要はありません。 つまり、リザルトにテーブルが存在するかどうかを気にせずに、スクリプトを無人で実行し、出力結果を受信することができます。 チュートリアルの第 2 部では、スクリプトを拡張し、これと同じ API ベースのアプローチを使用して、コレクションと分析を自動的に検索または作成します。 |
![]() スクリプト エディターでこのコード ブロックをコピーし、セル 3 に貼り付けてから、セルを実行します。
セル出力の例 The ID of the newly created table is 209717 |
|
セル 4 |
データ分析を実行する セル 4 のコードは、シンプルなデータ分析をいくつか実行し、数個の HCL メソッドを示します。
データフレームはテーブル形式の構造で、行と列にデータを整理します。 メモ HCL データフレームを出力するデータ分析を代入し、それをリザルト アプリに保存できます。 |
![]() スクリプト エディターでこのコード ブロックをコピーし、セル 4 に貼り付けてから、セルを実行します。
セル出力の例(HCL データフレーム)
|
|
セル 5 |
データ分析の出力をリザルト テーブルに保存する セル 5 のコードは、スクリプトで前に検出または作成されたリザルト テーブルにデータ分析の出力を保存します。HCL メソッド |
![]() スクリプト エディターでこのコード ブロックをコピーし、セル 5 に貼り付けてから、セルを実行します。
セル出力の例 202 は「承諾」の HTTP 状態コードです。 202 |
新しいテーブルの結果を確認する
リザルト アプリをチェックして、新しいテーブルが作成されたこと、サンプル データ分析の出力結果がテーブルに格納されていることを確認します。

-
リザルトが開いているブラウザー タブに切り替えます。[コレクション]ページに戻ります(テスト コレクション 1 <イニシャル>)。
結果 HighBond API を使用して作成したテーブルが存在し、保存した出力結果が格納されています。
メモ
リザルトの現在の使用レベルによっては、テーブルを入力する出力結果に遅延が生じる場合があります。
-
[テーブル ID を表示]を有効にします。
テーブル名の横にテーブル ID が表示されます。この ID は、スクリプト セルを実行してテーブルを作成したときに作成、表示される ID と同じです。
-
テーブル名をクリックすると、テーブルが開きます。
ロボットからリザルトに保存した出力結果が表示されます。
-
ロボットが開いているブラウザー タブに戻り、スクリプト エディター ツールバーの[すべてのセルを連続して実行
]をクリックします。
結果 最初のセルから最後のセルまでスクリプトが実行されます。セル 3 の出力は次のように表示されます。
既存のテーブルの ID は table_ID です。
スクリプトを再実行すると、セル 3 のコードが
v_table_name
と一致する名前のテーブルを検索します。このため、新しいテーブルを作成する必要はありません。 -
リザルトが開いているブラウザー タブに戻り、ページを更新します。
結果 テーブルが更新され、ロボットからリザルトに保存した追加の出力結果セットが表示されます。
メモ
リザルトの現在の使用レベルによっては、テーブルを入力する出力結果に遅延が生じる場合があります。
詳細はこちら
自由にスクリプトを実験し、リザルト テーブルを作成するためのさまざまなオプションを試してください。

リザルト テーブルを作成するためのさまざまなオプション
スクリプトで日次テーブルを作成します。このテーブルはスクリプト実行日で識別されます。スクリプトを修正して、テーブル名で前日の日付を使用できます。これは、深夜過ぎにスクリプトが実行された場合に役立ちます。あるいは、個別の日次テーブルではなく、累積された 1 つの月次テーブルを作成できます。
メモ
スクリプトを更新した後、[すべてのセルを連続して実行 ]をクリックして、すべての更新と、前提条件または依存関係が正しい順序で実行されることを保証します。
ヒント
誤ってスクリプトにエラーがあり、問題を解決できない場合は、影響を受けるセルのコードを貼り付け直します。
-
日次テーブル スクリプトを夜間に実行するスケジュールを設定した場合は、実行するたびに新しいリザルト テーブルが作成されます。このテーブルでは現在の日付がテーブル名サフィックスとなります。
-
1 日減算する 深夜過ぎにスクリプトが実行され、日付サフィックスを前日の日付にしたい場合は、
timedelta()
メソッド(セル 2、行 7)のコメントを解除します。これで、Diligent One インスタンスの現在の日付から 1 日減算されます。today = date.today() - timedelta(days = 1)
メモ
Diligent One インスタンスの現在の日付は、Diligent One インスタンスが展開されているクラウドインフラストラクチャの日付時刻となります。クラウドインフラストラクチャのタイムゾーンとローカルタイムゾーンの間にはオフセットがある場合があります。
-
月次テーブル 日次テーブルではなく、月次テーブルが必要な場合はどのようにするのでしょうか。この場合、テーブル名サフィックスの変数を変更します(セル 2、行 15)。
v_table_name = f"Test table 1 ({current_month})"
ロボットのデータ分析の日次出力結果が単一の月次テーブルの最後に追加されます。深夜過ぎにスクリプトが実行される場合は、
timedelta()
メソッドを使用して、月の最終日が正しいテーブルに含まれることを保証します。 -
月次テーブルの切り替えをテストする 毎月初めにスクリプトによって新しい月次テーブルが自動的に作成されることを確認できます。
timedelta()
メソッド(セル 2、行 7)を使用して、該当する日数を現在の日付に追加し、翌月に実行されるようにします。例:today = date.today() + timedelta(days = 12)
重要
実験が完了したら、コードを元の値に戻してください。
today = date.today() # - timedelta(days = 1)
スクリプトを保存し、スクリプト エディターを終了します。

-
ロボットが開いているブラウザー タブに切り替えます。
-
スクリプト エディター ツールバーで[保存してコミット]をクリックします。
-
「リザルト テーブルを自動的に作成するスクリプト」などのコミット メッセージを入力します。
-
[コミット]をクリックして、スクリプトを保存して、コミットします。
[スクリプトは正常にコミットされました]メッセージが表示されます。
-
ページ見出しでロボット名(チュートリアル ツール <イニシャル>)をクリックします。
結果 ロボットの[スクリプト バージョン]に戻ります。スクリプトをコミットして保存するたびに、保存されたバージョンがこのタブに追加されます。
-
スクリプト エディターを再入力するには、次の手順を実行します。
-
[スクリプトバージョン]タブで、開きたいスクリプトバージョンを選択します (通常は最新バージョン)。
-
[バージョン詳細]サイドパネルが開くので、[スクリプトの編集]をクリックします。
結果 スクリプト エディターでスクリプト バージョンが開き、起動プロセスが再開します。
メモ
必ず[変数]ウィンドウに HighBond API トークンをもう一度貼り付けてください。
-
ロボット開発モードと本番モード
開発モード
ロボット スクリプト エディターを終了するときには、自分がどのモードを使っているのかを必ず確認してください。今はロボット開発モードです。開発モードは黒い背景色の見出しが表示されるモードです。また、[開発モード]ボタンが選択されています。
前の手順で行ったように、スクリプトを対話型で編集または実行するときには、必ず開発モードに戻る必要があります。ロボット本番モードではスクリプトを対話型で編集または実行できません。
本番モード
開発モードと本番モードを切り替えるには、[開発]ボタンと[本番]ボタンを使用します。
本番モードは、明るい背景色の見出しが表示されるモードであり、[本番]ボタンが選択されています。ロボットを再起動するたびに、最初は本番モードになります。
詳細はこちら
2 つのモードの詳細については、ロボットの開発モードと本番モードを参照してください。
学習した内容
おめでとうございます!ここまでに、HighBond API を使用して、ロボットでネイティブ スクリプトを使用するための基本的な内容を学習しました。
特に、次の手順を学習しました。
-
HighBond ロボットで Python/HCL スクリプトを作成およびテストする
-
HighBond API を使用して Diligent One オブジェクトを操作する
-
HCL を使用して、一部のデータをインポートおよび変換し、出力をリザルトに保存する
次の手順
チュートリアルの第 2 部では、次のプロセスを完全に自動化します。
-
スクリプトを展開して、リザルト アプリで手動でコレクションまたは分析を作成せずにすむようにする
-
スケジュールされたタスクを作成し、スクリプトを無人で実行できるようにする
次の手順 > 第 2 部: 知識を強化する
詳細はこちら
ロボットの HCL とスクリプトの詳細:
トラブルシューティング
セルまたはスクリプト全体を実行するときに、Python エラー(赤色のエラー ブロック)が発生する場合は、以下のトラブルシューティング手順を実行します。

-
スクリプト エディターで[変数]をクリックして、パスワード変数 v_hb_token が存在し、[値]フィールドにトークンを入力したことを再確認します。
トークンは、Analytics トークンではなく、HighBond API トークンでなければなりません。確認のため、Launchpad の[API トークンの管理]画面で該当するトークンをもう一度コピーし、[値]フィールドに貼り付けます。
ヒント
スクリプト エディターを終了または更新する場合は、すべてのパスワード変数の値が自動的に削除されるため、もう一度指定する必要があります。
-
パスワード変数がまったく存在しない場合は、パスワード変数定義のすべての必須要素を入力します。
詳細については、「HighBond API トークンのパスワード変数を作成する」を参照してください。
- [保存して閉じる]をクリックします。
結果 すべての変数が保存され、スクリプト エディターに戻ります。
-
スクリプト エディター ツールバーで[すべてのセルを連続して実行
]をクリックします。
結果 エラーがない場合は、最初のセルから最後のセルまでスクリプトが実行されます。
メモ
保存して、[変数]ウィンドウを閉じると、スクリプト エディターのセッション メモリが消去されます。すべてのセルを連続して再実行すると、すべての必須の Python ライブラリがインポートされ、後続のセルで必要なすべての前提条件処理が実行されることが保証されます。