- HTMLスクリプトの説明
-> Styleタグの下では、シンプルCSS折れ線グラフのコードを用いて、必須のポップアップをカスタマイズした色と形式で表示しています。
-> 本文タグの下では、すべてのヘッダー、段落、ボタンにクラスを割り当てて追加しています。また、「Result」テキスト項目と「続ける」ボタンに「id」タグを付与し、HTMLスクリプト内のFlyoutコードで使用できるようにしています。
-> Scriptタグの下では、Flyoutを介してClient Scriptへ戻る通信を行うコードがあります。
-> まず、両方のResultテキストと続けるボタンを取得します。その後、addEventListener('クリック', transportData)を使用して結果データを戻します。ここで「transportData」は、Flyoutへレスポンスを送信する関数です。
- Zoho CRMでウィジェットを作成する
これで、ユーザーはCRM内でWidgetをボタン種類として作成し、Client Scriptから呼び出すことができます。
Zoho CRMの設定(⚙️)>> Developer Hub >> Widgetsへ移動します。
新規作成するWidgetを選択し、下記のスクリーンショットに従って設定を選択してください:
メモ:
-> 種類は必ず「Button」を選択してください。
-> Hostingは「Zoho」を選択し、完了したウィジェットファイルを郵便番号として取得し、アップロードしてください。
-> Indexページにはhtmlファイル名を指定します。例:最初のプロジェクトを作成する際、htmlファイル名が「widget.html」の場合、ユーザーはindexとして「/widget.html」と指定できます。
ステップ2- クライアントスクリプトの作成
次に、「受注書」タブの編集ページで、onSaveトリガーに基づくページイベント用のクライアントスクリプトを作成します。例として、ユーザーが編集ページで「保存」ボタンをクリックすると、スクリプトが実行され、バリデーションに基づいてエンドユーザーにポップアップが表示されます。
この使用ケースのクライアントスクリプトを設定するには、以下の手順に従ってください。
1)基本情報として、名前および説明を、スクリプトの目的に基づいて入力してください。
2)カテゴリー 詳細セクションでは、次の項目を選択してください。
* カテゴリー:タブ
* Page:編集
* タブ:受注書
* 必須のLayoutを選択してください。
3)Event 詳細セクションでは、次の項目を選択してください。
* 種類:Page Event
* イベントとしてonSave
コード
- console.クリア();
- var field_obj = ZDK.Page.getField('倉庫');
- var 倉庫 = field_obj.getValue();
- if (倉庫 == 'India') {
- console.log('入力されました');
- var WIDGET_API_NAME = 'Popup1';
- ZDK.Client.createFlyout('myFlyout', { header: 'Delivery エラー 注意', animation_type: 1, close_icon: 無効, height: '385px', width: '240px', left: 'center' });
-
- ZDK.Client.getFlyout('myFlyout').開く({ api_name: WIDGET_API_NAME, 種類: 'widget' });
- console.log('フライアウト作成済み');
- var response = ZDK.Client.getFlyout('myFlyout').通知({ data: ZDK.Page.getField('倉庫').getValue() }, { wait: 真 });
- ZDK.Client.getFlyout('myFlyout').閉じる();
- console.log('??? ', response);
- console.log(response.incrementedNumber)
- ZDK.Page.getField('倉庫').setValue(response.incrementedNumber);
- ZDK.Client.showMessage('倉庫が正常に更新されました', { 種類: 'info' });
- }
-
Client Script コード解説
-> まず、倉庫項目の値を取得し、変数(例:倉庫)に格納します。
-> 基本的なバリデーションとして、ユーザーが倉庫として「India」を選択し、保存ボタンをクリックした場合、他の倉庫を選択するように促すバリデーションエラーのポップアップが表示されます。したがって、ユーザーが「India」を選択した際には、以下の処理を行います。
Flyout メソッド
-> Flyoutは、Client Scriptを使用して制御できるフローティングユーザーインターフェースです。ユーザーは、ウィジェットをページ上の任意の場所でポップアップまたはコンポーネントとして呼び出すことができます。
-> Flyoutは、ウィジェットとClient Script間のコミュニケーションに便利です。
-> ウィジェットからの入力を待ち、CRM内の該当する項目にその内容を入力することで情報を収集できます。
-> 上記の説明の通り、flyout(つまりウェブページ上のコンポーネント)を作成し、高さやウィジェットなどを調整して適切な位置に配置します。
-> 次に、ウィジェットを作成したFlyoutコンポーネントに渡します。
-> ここでFlyoutは待機し、ウィジェットコード(上記参照)が実行されます。その後、Flyoutはウィジェットの結果テキストからデータを取得し、選択済み倉庫が保存されます。
-> 続いて、Flyoutが閉じられ、データがCRMの項目に入力されます。
-> また、ウィジェット経由でCRM項目のデータが更新された場合、最後に「倉庫が正常に更新されました」と記載されたメッセージのポップアップが表示されます。
動作デモ - スクリーンキャスト
-> ユーザーは、他のページ(リスト表示/作成/詳細など)にも同じ設定を適用できます。
-> また、ウィジェット内でHTMLやCSSを活用して詳細なカスタマイズを行い、エンドユーザーに提供することも可能です。
円滑な実装を行うために、まずテスト環境で設定を構成およびテストし、その後本番環境へデプロイすることを推奨します。
TIPS - よくあるエラーを回避する方法
-> スクリプト内で正しいAPI Namesをタブ & 項目の両方に使用していることを確認してください。
-> 意図した出力を取得するため、各変数に対してlogs() または console.log() を追加し、出力を確認することをお勧めします。たとえば、'Messages'タブ内で各logs() の出力を表示できます。console logsを表示するには、「ブラウザページ上で右クリック >> 検証 >> Console」
-> 期待される機能が動作しない場合は、各出力やループを確認してください。また、提供されているサンプルのヘルプ ドキュメントに記載されている各ZDK Client/CRM APIメソッドの構文も必ずクロスチェックしてください。ZDK Client/CRM API methodは、提供されたサンプルのヘルプ ドキュメントをご参照ください。
各ZDK Client/CRM APIメソッドのサンプルスクリプト- ヘルプ 参照
メモ: 以下の ガイド・記事を参照し、コード最適化のベストプラクティスやZoho CRM全体でのClient Scriptのさまざまなデプロイ方法をご確認ください。