Requirement 概要
Zoho CRM ユーザーが、Client Scriptを利用して詳細ページ上のデータを更新しています。しかし、従来の方法では、詳細ページで項目やサブフォームを更新する際に課題が生じることがよくあります。たとえば、営業担当者がリードデータを詳細ページで更新すると、Client Scriptが発動し、関連項目(例:ステータス、担当者、カスタムスコア項目など)を修正します。ただし、更新後の値はすぐに詳細ページに反映されません。 これにより混乱や意思決定の遅れが発生することがあります。
現在の課題
詳細ページでのデータ更新 - 現時点では、Client Script 機能で setValues() Client メソッドを利用した詳細表示ページでの項目更新には対応していません。同様に、サブフォームを更新する insetRows() Client メソッドにも対応していません。
現在、上記の Client メソッドは作成・編集・複製ページなど他のページで対応しています。詳細表示ページでは、ユーザーがクライアントスクリプト内で Web API メソッド(CRM API など)を利用できます。
データ詳細ページでの更新反映の仕組み- 現在、詳細表示ページで行った更新内容は即時に反映されません。変更を表示するにはページを更新する必要があります。この課題を解決するために、navigateTo() Client メソッドをスクリプト内で利用し、現在のデータ詳細ページへ自動遷移させることができます。
OnLoad スクリプトによる自動更新ループの稀なシナリオ- ユーザーが OnLoad ページイベントに基づいて詳細ページに Client Script を設定し、変更を自動的に反映させたい場合があります。しかし、この場合、ページの自動更新ループが発生することがあります。
権限 & 利用可能範囲
-> 管理 Extensibility権限を持つユーザーは、Client Script の設定および管理が可能です。
-> 管理 テスト環境権限を持つユーザーは、テスト環境の管理が可能です。
-
Client Script の様々な場所でのデプロイ
例えば
-> ページの On_Load/On_Save/On_Edit、項目の On_Type/On_Change、サブフォーム処理、Blueprint 処理、リスト表示処理 など。
-> コマンド/ショートカットキー(CRM 内のどこからでも、いつでもスクリプトをトリガー可能)。
-> カスタムボタン (最近の強化)
詳細については以下のヘルプ 参照をご覧ください。対象: Client Script 処理 詳細.
-
Client Script の作成手順:
Client Script の追加方法は2通りあります:
1. 設定ページから追加する場合:
Zoho CRM の設定 (⚙️) >> Developer Hub >> Client Script >> 新規 Script へ進みます。
-> スクリプトに適した名前と説明を入力します
-> カテゴリー 詳細-
- 要件に応じて カテゴリーを選択します。タブ - 処理でトリガーされます || Commands- Command Palletやショートカットキーでトリガーされます。
- スクリプトを追加したいタブを選択します。例:Lead、連絡先など。
- 特定のページにスクリプトを適用するためのPageを選択します。例:作成、編集、複製する、詳細、Listなど。
- Layoutを選択します。例:スタンダードまたはカスタムレイアウト。
-> Event 詳細-
処理の種類を選択します - 項目 Event または Page Event または Subform Event
- 項目 Event-> 項目とEventを選択します(例:名 項目のonChange)。
- Page Event-> PageとEventを選択します(例:作成 PageのonLoad)。
- Subform Event-> SubformとEventを選択します(例:onCellChange)。
2. 詳細/List/作成/編集/複製するページを利用したデータ操作
-> Zoho CRMで目的のタブを選択し、そのタブ内の任意のデータでList、作成、詳細、編集、複製するページのいずれかを開きます。例として、作成 Lead ページを参照してください。
-> ページ(作成/編集/複製する など)の場合は、ページ最右端にある Client Script をクリックし、スクリプトを追加してください。
-> カテゴリー 詳細はシステムによって自動入力されます。クライアントスクリプトのその他の詳細(名前、説明、Event 詳細など)を入力してください。その後、「次へ」をクリックし、Client Script IDEのコードエディターにスクリプトを追加します。最後に、「保存」と「閉じる」をクリックします。
詳細ページからClient Scriptを追加する方法:
リスト/作成/編集/複製ページなどからClient Scriptを追加する方法:
使用する-case
A銀行のローン担当者が、Zoho CRM内の詳細表示ページでLeadデータを開きます。選択されたLoan種類に基づいて、システムはLoanステータス項目を「In確認する」に自動入力します。これらすべての処理は、手動で保存やページの更新を行う必要なく完了します。
設定
次に、Leadタブの詳細ページに対してOnLoad of PageトリガーでClient Scriptを作成します。例として、データ詳細ページが読み込まれるたびに、クライアントスクリプトが実行され、データを更新する操作を行います。
Loan種類とLoanステータスの2つのピッキングリスト項目を追加します。また、詳細ページで自動更新のループを防ぐために、カスタムチェックボックス項目(例:名前 - ForDetailPage_stop_automatic_reload)を追加します。
メモ: 現在、Client Scriptを通じて詳細ページに加えた更新はすぐには反映されません。変更内容をデータに適用するには、ユーザーがページを更新する必要があります。
上記の制限により、同じClient Scriptを使用してデータ詳細ページを自動的に更新するようにします。ユーザーがデータ詳細ページを開くたびに、スクリプトがデータを更新し、自動的に更新を行います。ただし、再読み込みは1回だけで停止させる必要があります。そのため、もう1つのチェックボックス項目を使って更新を停止します。
ユーザーにカスタム項目を表示したくない場合は、項目詳細を編集し、すべての権限で非表示(表示しない)に設定できます。
コード
- var 種類 = ZDK.Page.getField('Loan_Type').getValue(); //Loan 種類 項目の値を取得
- log(種類);
- //現在のデータを取得
- var recDetail = ZDK.Apps.CRM.見込み客.fetchById($Page.record_id);
- //確認中:種類項目が「Personal Loan」と等しいかどうか確認。該当する場合は、Loan ステータス項目を「In 確認する」に更新
- if (種類 == 'Personal Loan') {
- //データ内の国およびチェックボックス項目を更新
- recDetail.Loan_Status = 'In 確認する';
- recDetail.ForDetailPage_stop_automatic_reload = 真;
- var recUpdate = recDetail.__update();
- // log('recUpdate', recUpdate);
-
- //チェックボックス項目を取得
- var stopField = ZDK.Page.getField('ForDetailPage_stop_automatic_reload');
- var stopFieldVal = stopField.getValue();
- log('項目値 - ' + stopFieldVal);
- //チェックボックス項目が無効の場合のみ、入力を行います。有効であれば、スキップします。
- if (stopFieldVal == 無効) {
- //詳細ページを自動的に更新します。次の1時間後に更新されます。.
- log('entered');
- ZDK.Client.navigateTo('record_detail', { タブ: '見込み客', record_id: $Page.record_id });
- }
- }
動作デモ - スクリーンキャスト
TIPS(ヒント)
-> スクリプト内で 正しい API名を両方 タブ & 項目で使用するようにしてください。
-> スクリプト作成時には、各変数に logs() または console.log()を追加して出力を確認し、スムーズな動作を確保することを推奨します。例えば、出力を 'Messages'タブ(Client Script IDE 内)で各 logs() の出力として表示できます。consoleのログを表示するには、次の手順で確認できます - ブラウザページ上で右クリック >> 検証 >> Console
-> 期待した機能が動作しない場合は、各出力やループを確認しながらスクリプトを検証し、さらに各 ZDK Client/CRM APIメソッドの構文をサンプルヘルプドキュメントでクロス認証してください。
各ZDK クライアント/CRM API メソッドのサンプルスクリプト- ヘルプ 参照
円滑な導入のため、設定をテスト環境で構成・検証してから本番環境へ展開することを推奨します。