変数
Zoho People 拡張機能の変数は、コンポーネント、スクリプト、ワークフロー、テンプレートなど、プラットフォーム全体で参照できるキーと値のペアを作成するために使用します。再利用可能なデータホルダーとして機能し、一度情報を保存すれば、システム内の必要な場所でいつでも利用できます。
変数および
変数の利用方法についての詳細は、各リンクを参照してください。
Zoho People 拡張機能における変数の詳細概要
Zoho People の変数とは異なり、プラットフォーム変数は、より高いカスタマイズ性、連携機能、開発者による制御を提供するという利点があります。変数の値が変更されると、カスタムロジックを自動的に実行できます(例: 通知の送信、関連設定の調整、他のタブでの値の再取得など)。
権限カテゴリ
拡張機能プラットフォームでは、エンドユーザーによる変数の利用に対する権限を設定できます。
権限カテゴリは次の 4 種類です。
- Read/Write:この権限では、変数はユーザーの組織内で表示され、値を閲覧および更新できます。ただし、開発者コンソールで値を変更しても、その更新内容はアップグレードによって反映されず、ユーザーの組織には適用されません。そのような変更は新規サインアップにのみ適用されます。今後の拡張機能アップグレード時には、値以外の変数の詳細のみ更新できます。
- 表示専用:表示専用変数はユーザーの組織内で表示されますが、更新はできません。また、その値は開発者コンソールからのアップグレードによっても変更されません。ただし、変数の値を除くその他のデータは、拡張機能の次バージョンへのアップグレード時に更新できます。
- 非表示:非表示変数は開発者コンソール上では開発者が管理できますが、ユーザーの組織内のエンドユーザーには表示されません。開発者コンソールで行った変数値の変更は、ユーザーのアカウントにはアップグレードで反映されません。ただし、新規サインアップには反映され、変数の値を除くその他のデータは、拡張機能の次バージョンへのアップグレード時に更新できます。
- System:System 変数は開発者コンソール上で開発者が管理できますが、ユーザーの組織内のエンドユーザーには表示されません。この権限タイプでは、ユーザーの組織内で変数の値を変更することはできません。開発者コンソールで行った変数値の変更は、アップグレード時にユーザーのアカウントへ反映されます。
|
権限タイプ
|
表示設定
(開発者組織)
|
表示設定
(顧客組織)
|
拡張機能アップグレード時に更新される値
|
|
READ/WRITE
|
はい |
はい |
いいえ |
| READ_ONLY |
はい |
はい |
いいえ |
| 非表示 |
はい |
いいえ |
いいえ |
| SYSTEM |
はい |
いいえ |
はい
|
- ユーザーの組織では、SYSTEM 権限の変数を除き、すべてのカテゴリの変数値を API 経由で更新できます。
- 非表示および SYSTEM 権限の変数は、他のコンポーネントで差し込み項目として使用できません。
- SYSTEM 権限の変数を除き、他のすべての権限の変数には、独自の「変更時スクリプト」関数を設定できます。
変数を使用できるコンテキスト
- カスタム関数 - コードロジックや計算内で値を動的に参照します。
- メールテンプレート - 事前定義された変数値を使用してメッセージをパーソナライズします。
- データテンプレート - データの作成や表示時に、値を動的に差し込みます。
- メールマージテンプレート - ドキュメント生成時に変数を使用し、シームレスにデータを差し込みます。
- API 連携 - 外部システムや連携用に、API を通じて変数値へアクセスします。
- 変更時スクリプト関数 - 変数ごとに個別のカスタム関数を設定できます。変数の値が更新されると、その変数に紐づく変更時スクリプト関数が実行されます。
変数プロパティのパッケージング
パッケージ化された変数とは、Developer Console で作成され、サインアップ時またはアップグレードを通じてユーザーの組織にデプロイされる変数を指します。これらの変数の動作は、次の表のとおりです。
|
プロパティ
|
アップグレードタイプ
|
変更権限
|
|
変数名
|
アップグレード可
|
開発者のみ
|
|
API 名
|
アップグレード不可
|
編集不可
|
|
説明
|
アップグレード可
|
開発者のみ
|
|
変数タイプ
|
アップグレード不可
|
編集不可
|
|
権限
|
アップグレード可
|
開発者のみ
|
|
グループ
|
アップグレード不可
|
編集不可
|
変更時スクリプト関数
Zoho People 拡張機能の Developer Console では、開発者は変更時スクリプトを定義し、ユーザーの組織でグローバル変数の値が更新されたタイミングで実行されるロジックを処理できます。
動作方法
変数が更新されると、システムは関連付けられた変更時スクリプトを呼び出し、スクリプトに対して変更前と変更後の両方の値を渡します。これにより、変更の結果として何を行うべきかを判断するための十分なコンテキストが得られます。これを実現するために、variableMap という事前定義済みの入力オブジェクトがスクリプトに渡されます。このオブジェクトには、変更前と新しい変数値が含まれます。
スクリプトの設定
変更時スクリプトを追加するには:
- 対象の変数設定画面で、項目値 - 変更時タブに移動します。
- スクリプトを作成をクリックします。
- エディタ内で variableMap オブジェクトを使用し、変更前と現在の値にアクセスします。
サンプル構文
- oldValue - 変更前の変数の値。
- newValue - 更新後の値。
これらの値を使用して、独自のロジックを作成できます。
例:
if (oldVal != newVal)
{
// ここにカスタムロジックを記述
info 'Variable updated from ' + oldVal + ' to ' + newVal;
}
利用シーン:
変更スクリプトをどのように利用できるかの例をいくつか示します:
- 設定済みの変数が更新されたときに、依存項目を再計算する。
- 重要な設定が変更されたときに、ユーザーや管理者に通知する。
- しきい値が更新されたときに、値やワークフローをリセットする。
- グローバル設定に依存する API 通信や連携を更新する。
インストール設定
- ユーザーが拡張機能をインストールし、その拡張機能に変数が含まれている場合、インストールページに認証変数タブが表示されます。

- このタブには、Read/Write と Read-Only の権限タイプを持つ変数が表示されます。Read-Only 変数は編集できませんが、ユーザーはインストールページ上で Read/Write 変数を直接設定できます。
- ユーザーがインストール時にこの手順をスキップした場合でも、後から拡張機能の設定スライダー、または開発者向け情報内の Variables タブから変数の値を編集できます。
変更内容と影響
Zoho People 拡張機能でグローバル変数を追加または更新し、それをパッケージのアップグレードとしてユーザーの組織にプッシュする場合、これらの変更が既存の実装にどのような影響を与えるかを理解しておくことが重要です。
以下は、変数に対して行われた変更の種類に基づく影響の詳細な内訳です。
新規変数の追加
- アップグレードを通じて新しいグローバル変数を追加しても、ユーザーの組織内の既存設定に干渉することはありません。
- その変数は、新しいワークフロー、スクリプト、または項目設定で利用可能になります。
- 既存の機能やユーザー定義プロセスは、これまでどおり動作し続けます。
- 現在のセットアップに遡及的な影響を与えない、純粋な追加として扱うことができます。
既存変数の更新
既存変数への変更は、何が更新されたかによって影響度が異なります:
影響の少ない変更:
- 変数の説明や名前を更新しても、既存の参照や機能には影響しません。
- これらは見た目や情報面のみの変更です。
影響の大きい変更:
権限の変更-アクセスレベル(例: Read/Write → 表示専用、または Read/Write → 非表示)を変更すると、その変数の動作はユーザーの組織内で即座に変わります。
-
非表示/システム変数は、設定画面に表示されなくなる場合があります。
-
エンドユーザーは値を編集できなくなる可能性があります。
値の変更- パッケージ内で変数の初期値を変更した場合:
- 変更前の値に依存しているスクリプト、ワークフロー、またはプロセスは、動作が変わる可能性があります。
- 開発者は、変更スクリプトを使用して、これらの移行をプログラム的に処理できます。
- ただし、エンドユーザーは新しい値に合わせて自分のカスタムロジックを手動で更新する必要があります。
わずかな値の変更でも、その値に依存するしきい値、条件、計算に影響を与える可能性があります。
変数の削除
変数の削除は破壊的な変更です。ユーザーのデータや設定に長期的な影響を与える可能性があります。実行する前に結果を十分に検討し、本当に必要な場合にのみ進めてください。
グローバル変数の削除は、影響度が高く元に戻せない操作であり、細心の注意を払って実行する必要があります。
- 削除された変数を参照しているプロセス、項目、スクリプト、またはワークフローはすべて動作しなくなります。
- これにより、拡張機能全体で実行時エラー、値の欠落、ロジックの失敗が発生する可能性があります。
- 明示的に実装しない限り、自動的なフォールバックや代替はありません。
変数を削除すると、稼働中のユーザー環境を混乱させる可能性があります。廃止予定で未使用、かつ下流の依存関係がない変数のみを削除し、可能であれば明確なリリースノートを伴うメジャーバージョンアップグレード時に実施してください。
ユースケース: Zoho People 拡張機能向け IDfy 連携
Zoho People 拡張機能を IDfy と連携し、従業員のバックグラウンドチェックを実行する拡張機能を想定します。従業員の詳細(Aadhaar 番号、PAN(納税者番号)、氏名、生年月日など)は従業員フォームで取得します。フォームを送信すると、拡張機能が API を介して IDfy へのバックグラウンドチェックリクエストをトリガーします。照合結果(合格/不合格、ステータス、詳細)は従業員データに書き戻されます。この拡張機能は、HR 管理者が照合ステータスの表示、チェックの実行、連携設定の構成を行えるカスタム UI ウィジェットまたは Web タブをサポートします。
変数の設定
拡張機能内で変数をパッケージ化し、顧客が機密情報を設定・保護できるようにします。
| 変数名 |
説明 |
権限 |
| idfy_api_key |
IDfy 用のシークレット API キー |
Read/Write |
| idfy_client_id |
IDfy から発行されたクライアント ID |
Read/Write |
| idfy_access_token |
テスト環境または本番環境の種別 |
非表示 |
| idfy_refresh_token |
IDfy ラベル |
非表示 |
| Dev_Contact |
開発者が使用するシステム変数 |
System |
拡張機能のフロー
- インストールと初期設定
- ユーザーの組織が拡張機能をインストールします。
- インストールページで、ユーザーは次を入力します:
- idfy_client_id(Read/Write)
- idfy_client_secret(Read/Write)
- idfy_client_secret を入力して保存すると、この変数に紐づく On Change スクリプトがトリガーされます。
- idfy_client_secret 用の On Change スクリプト
- このスクリプトは、Variables API を使用して idfy_client_secret の権限を Read/Write から非表示に変更します。これによりシークレットがロックされ、ユーザーはそれを閲覧・変更できなくなります。
- 次に、OAuth トークン生成フローをトリガーし、クライアント ID とシークレットを使用して IDfy からアクセストークンとリフレッシュトークンを取得・更新します。
- 取得した access_token と refresh_token は、Variables API を通じて動的に作成/更新される新しい非表示変数(idfy_access_token、idfy_refresh_token)として保存されます。
- 従業員の照合フロー(Web タブ UI により実行)
- ユーザーの組織の従業員が Web タブ UI を開き、IDfy 照合用に従業員の詳細(例: Aadhaar 番号)を入力します。
- 送信時に、以下のスタンドアロン関数が実行されます。
- 非表示の OAuth トークン変数(idfy_access_token、idfy_refresh_token)を読み取る。
- アクセストークンを使用して IDfy の照合 API を呼び出す。
- 照合結果を処理し、従業員データを更新する。
-
アクセストークンの有効期限が切れている場合、関数はリフレッシュトークンを使用して新しいアクセストークンを取得し、非表示変数を更新できます。