クライアントスクリプトによるZoho CRM週次患者訪問スケジュール検証の強制
お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
要件の概要
Zoho CRM ユーザーは、病院訪問のスケジュールに一貫性を持たせるための検証メカニズムを必要としています。システムは、病院訪問をスケジュールする際に、どの週も飛ばして登録できないように制御する必要があります。
ユースケース
医療クリニックでは、治療効果の維持、経過観察、コンプライアンスの観点から、患者の定期的かつ継続的な来院が非常に重要です。多くのケアプランでは、患者は毎週欠かさず病院を訪れる必要があります。
Zoho CRM に適切な検証メカニズムがない場合、ユーザーが一部の週の訪問スケジュールを誤って登録し忘れてしまう可能性があります。このような状況は次のような問題につながります。
-
患者のモニタリングや治療継続性の途切れ
-
診断漏れや治療遅延のリスク増大
-
レポートの不正確さおよびデータ品質の低下
-
スタッフによる手動管理への依存度の増加
このリスクを軽減するため、CRM の操作画面でクライアントスクリプトを使用してエラーポップアップの仕組みを実装します。これにより CRM ユーザーは、週が抜け落ちるような形で訪問情報を更新しようとした際に、即座に通知を受け取ることができます。
スケジュールの抜けが修正されるまでシステムはデータの保存を許可しないため、毎週の訪問要件を確実に順守させることができます。
重要な理由:
-
データの正確性
-
患者の継続的なモニタリング
-
リスクの軽減
-
手作業の削減
権限と利用条件
-> 拡張機能の管理権限を持つユーザーは、クライアントスクリプトを設定・構成できます。
-> サンドボックスの管理権限を持つユーザーは、サンドボックスを管理し、このユースケースをテストできます。
設定
ここでは、編集ページのPatients タブに対してクライアントスクリプトを作成し、ページ上の変更を監視します。例として、ユーザーが編集ページで任意のデータを更新しようとするたびに、スクリプトが毎週の訪問データをチェックし、患者のスケジュールに抜けている週がある場合はエラーポップアップを表示します。
このユースケース向けにクライアントスクリプトを設定する手順は次のとおりです。
1) まず、スクリプトの目的に応じて、名前と説明などの基本情報を入力します。
2) カテゴリの詳細セクションで、次の項目を選択します。
* カテゴリ:タブ
* ページ:編集
* タブ:Patients
* 必要なレイアウトを選択します。
3) イベントの詳細セクションで、次の項目を選択します。
* タイプ:ページイベント
* イベント:onChange
コード
-
// 患者に対してスケジュールされているすべての週の訪問を取得
-
console.clear();
-
var week1_value = ZDK.Page.getField('Week_1').getValue();
-
var week2_value = ZDK.Page.getField('Week_2').getValue();
-
var week3_value = ZDK.Page.getField('Week_3').getValue();
-
var week4_value = ZDK.Page.getField('Week_4').getValue();
-
var week5_value = ZDK.Page.getField('Week_5').getValue();
-
var week6_value = ZDK.Page.getField('Week_6').getValue();
-
var week7_value = ZDK.Page.getField('Week_7').getValue();
-
var week8_value = ZDK.Page.getField('Week_8').getValue();
-
var week9_value = ZDK.Page.getField('Week_9').getValue();
-
var week10_value = ZDK.Page.getField('Week_10').getValue();
-
-
-
// 各週のデータを保存するための空の配列を作成
-
let weekarray = [];
-
-
const week1 = {
-
'Week': week1_value
-
}
-
weekarray.push(week1);
-
-
const week2 = {
-
'Week': week2_value
-
}
-
weekarray.push(week2);
-
-
const week3 = {
-
'Week': week3_value
-
}
-
weekarray.push(week3);
-
-
const week4 = {
-
'Week': week4_value
-
}
-
weekarray.push(week4);
-
-
const week5 = {
-
'Week': week5_value
-
}
-
weekarray.push(week5);
-
-
const week6 = {
-
'Week': week6_value
-
}
-
weekarray.push(week6);
-
-
const week7 = {
-
'Week': week7_value
-
}
-
weekarray.push(week7);
-
-
const week8 = {
-
'Week': week8_value
-
}
-
weekarray.push(week8);
-
-
const week9 = {
-
'Week': week9_value
-
}
-
weekarray.push(week9);
-
-
const week10 = {
-
'Week': week10_value
-
}
-
weekarray.push(week10);
-
-
console.log('Array length : ', weekarray.length);
-
-
var array = weekarray.length - 1;
-
-
// 作成した配列を使って各週を反復処理し、予定された訪問の間で週が抜けていないかを確認
-
for (i = 0; i < array; i++) {
-
current = weekarray[i].Week;
-
next = weekarray[i + 1].Week
-
console.log('Iteration Count : ', i);
-
console.log('Current :', current);
-
console.log('Next :', next);
-
if (current == null && next != null) {
-
ZDK.Client.showAlert('週を飛ばすことはできません');
-
return false;
-
break;
-
}
-
}
-
コードの説明
-> スクリプトは現在のデータのレコードを取得し、すべての週次フィールドの値を取得します。
-> 次に、各週の値を保存するための配列(バケット)を作成します。
-> その後、スクリプトは配列内の各要素をループし、現在(ユーザーが更新した項目)と次週のデータを保存します。
-> いずれかの週が抜けている場合は、エンドユーザーが続行できるよう、UI 上にエラーポップアップを表示します。
動作デモ - スクリーンキャスト
-> 同じ設定は詳細ページでも構成できます。
-> また、ページ上の複数のフィールドに対して(ページイベント -> OnChangeに基づき)この設定を行うことで、データ損失のリスクを軽減できます。
スムーズに導入するため、本番環境に反映する前に、まず サンドボックス環境で設定とテストを行うことを推奨します。
TIPS - よくあるエラーを回避するには
-> スクリプト内では、正しいAPI 名を、タブとフィールドの両方に対して使用していることを確認してください。
-> 想定どおりの出力を得るため、各変数にlogs() または console.log()を追加し、出力を確認しながら動作を検証することをお勧めします。つまり、'Messages'タブで、各 logs() の出力を Client Script IDE内から確認できます。コンソールログを表示するには、'ブラウザー画面を右クリック >> 検証 >> Console'
-> 期待した動作にならない場合は、各出力とループを確認しながらスクリプトを検証し、あわせて、提供されているサンプルヘルプドキュメントで各ZDK Client/CRM API メソッドの構文を再確認してください。
各 ZDK Client/CRM API メソッドのサンプルスクリプト - ヘルプリファレンス
メモ: コードの最適化におけるベストプラクティスや、Zoho CRM 全体に Client Script を展開するさまざまな方法については、次のガイド記事を参照してください。