強化されたモジュールデザイナー

高まる顧客の要求に応えるために、CRM に新しいアプリを追加したくない人はいないでしょうか。 同時に、これらの機能を実行するための魅力的で使いやすいインターフェイスも必要です。

多くの開発者は、デザイン面を無視して、実績のある画面上の機能にこだわります。 多くの人は、おそらく時間の不足や関連する開発コストのせいで、CRM 機能を拡張するための機能を追加するオプションを検討しません。

新しいアプリの作成や UI の改善に役立つソリューションがあると言ったらどうなるでしょうか?

VtigerのモジュールデザイナーとVTAPを組み合わせると、開発時間を短縮してアプリを作成し、必要なUIコンポーネントを追加できます。

このことを考慮。

モジュール デザイナーを使用するとスクリプトを作成でき、VTAP を使用すると CRM で選択したモジュールのリスト ビューと詳細ビューにカスタム ボタンを追加できます。

モジュール デザイナーの機能強化により、開発者は UI からカスタム ボタンを非常に簡単に追加できるようになります。

以下は、強化されたモジュール デザイナーによってコーディング時間がどのように短縮されるかを示す例です。 新しいタブで vtiger.com ページを開くリスト ビュー ボタンを追加しましょう。

現在のモジュール デザイナーでは、以下のコードでこれを実現できます。

強化されたモジュール デザイナーを使用すると、以下に示すように、UI からこれを行うことができます。

これらのアクションは、モジュール デザイナーの UI アクションから追加できます。

これを実現するには、[モジュール デザイナー] -> [設定] -> [カスタマイザー設定] でデザイナー モードを有効にするだけです。

「デザイナー モード」チェックボックスを有効にすると、モジュール ページ自体 (たとえば、連絡先モジュールのリスト ビュー ページまたは詳細ビュー ページ) からボタンを追加できるようになります。

上に示したように、デザイナー モードを有効にすると、追加したアイコンが強調表示されます。 これらのアイコンをクリックすると、カスタム ボタンを追加できます。

現在、CRM では次のボタン タイプが有効になっています。

ボタンの種類 VTAP 登録イベント 詳細説明
グローバルアクションアイコン GLOBAL_ACTION Vtigerヘッダーにアイコンを追加します
リストビューボタン LIST_BASIC_BUTTON リストビューにボタンを追加します
リストビュー レコードタイプの追加 LIST_ADD_RECORD_OPTION リストビューの「追加」ボタンの前にボタンを追加します。
リストビュー設定アクション LIST_ADVANCED_SETTING 設定ドロップダウンにボタンを追加します
リストビュー行基本アクションアイコン LIST_ROW_BASIC_ACTION リストビューの行の最後にアイコンを追加します
リストビュー行の二次アクションアイコン LIST_ROW_SECONDARY_ACTION リストビューの行の先頭にアイコンを追加します
リストビューのマスアクションアイコン LIST_MASS_ACTION 複数のレコードを選択するためのアイコンを追加します
詳細 アクションアイテムをさらに表示 DETAIL_MORE_ACTION_ITEM 詳細ビューの「その他」アクションにボタンを追加します。
詳細表示基本ボタン DETAIL_BASIC_BUTTON 詳細ビューにボタンを追加します
詳細ビューのアクション アイコン DETAIL_ACTION_ICON 詳細ヘッダー アイコン ドロップダウンにアイコンを追加します
 
 
 

VTAP のお客様の使用例

 
 

クライアントは翻訳サービスの範囲内で動作します。 彼らの目的は、プロジェクト作成後 XNUMX か月以内の発注書 (PO) の作成を制限することでした。

Vtigerは、VTAPを使用したソリューションを提供することができました。XNUMXか月後に作成されるPOは承認をトリガーします。

上記の解決策のコードを見てみましょう。

 

クライアントは翻訳サービスの範囲内で動作します。 彼らの目的は、プロジェクト作成後 XNUMX か月以内の発注書 (PO) の作成を制限することでした。

Vtigerは、VTAPを使用したソリューションを提供することができました。XNUMXか月後に作成されるPOは承認をトリガーします。

上記の解決策のコードを見てみましょう。


  

var PurchaseOrder_Component_ValidatePO = VTAP.Component.Core.extend({

created() {

VTAP.Detail.BeforeSave('PurchaseOrder', (params) => {

return new Promise((resolve, reject) => {

let record = params.record;

if (!record.id && record.cf_purchaseorder_projectref) {

VTAP.Api.Get('records', {

id: record.cf_purchaseorder_projectref.id,

module: record.cf_purchaseorder_projectref.module

}, (error, response) => {

if (response) {

let currentDate = moment.tz(new Date(), 'YYYY-MM-DD', VTAP.User().time_zone);

let projectDate = moment.tz(response.createdtime, 'YYYY-MM-DD', VTAP.User().time_zone);

let months = currentDate.diff(projectDate, 'months');

if (months >= 1) {

record.set('postatus', 'Needs Approval');

}

resolve(params);

}

});

} else {

resolve(params);

}

});

});

}

});


  

var PurchaseOrder_Component_ValidatePO = VTAP.Component.Core.extend({

created() {

VTAP.Detail.BeforeSave('PurchaseOrder', (params) => {

return new Promise((resolve, reject) => {

let record = params.record;

if (!record.id && record.cf_purchaseorder_projectref) {

VTAP.Api.Get('records', {

id: record.cf_purchaseorder_projectref.id,

module: record.cf_purchaseorder_projectref.module

}, (error, response) => {

if (response) {

let currentDate = moment.tz(new Date(), 'YYYY-MM-DD', VTAP.User().time_zone);

let projectDate = moment.tz(response.createdtime, 'YYYY-MM-DD', VTAP.User().time_zone);

let months = currentDate.diff(projectDate, 'months');

if (months >= 1) {

record.set('postatus', 'Needs Approval');

}

resolve(params);

}

});

} else {

resolve(params);

}

});

});

}

});

 

VTAP.Detail.BeforeSave は、指定されたモジュールにレコードを保存する前にイベント ハンドラーをトリガーします。 解決コマンドと拒否コマンドに応じて、システムはレコードの保存を続行するか停止します。

 

VTAP.Detail.BeforeSave は、指定されたモジュールにレコードを保存する前にイベント ハンドラーをトリガーします。 解決コマンドと拒否コマンドに応じて、システムはレコードの保存を続行するか停止します。

 
 

近日公開

 

アプリの作成とアプリの進化

 
 

App Creator ツールの機能を活用して、私たちは従来を超える旅に乗り出します。

すべての人のためのデザイン: 包括的なアプリ作成による CRM への新たな視点

アプリの進化: あらゆるプロファイルの CRM インタラクションに革命を起こす

CRM ユーザーがアプリを作成できるようにするだけではありません。 私たちはこの特権を私たちの関係者やより広範な一般の人々に広げます。 私たちのビジョンには、アプリ作成のための XNUMX つの異なる手段を導入することが含まれており、それぞれが特定のエンゲージメント領域に対応します。

ユーザーアプリ: これらの特殊なアプリケーションは、CRM ユーザー専用に設計されています。 組織内のユーザー固有のニーズを満たすように調整されたこれらのアプリは、生産性と効率を向上させるために細かく調整されたツールを CRM ユーザーに提供します。

アプリに連絡する: 連絡先も専用のアプリケーションを使用できる環境を想像してみてください。 これらのアプリは連絡先のみがアクセスでき、カスタマー ポータルの概念を反映しており、連絡先にビジネスとのやり取りや関与のためのシームレスなチャネルを提供します。

公開アプリ:さらに視野を広げて、組織の枠を超えたアプリを導入していきます。 これらのアプリはパブリック アクセス向けに設計されており、インタラクションと価値創造のための新しい道を開きます。 これらのアプリをより多くのユーザーが利用できるようにすることで、私たちは障壁を打ち破り、従来の枠を超えたエンゲージメントを促進しています。

実際、これらの多様なアプリ カテゴリの導入により、カスタム ソリューションを構築し、独自のアプリケーションを作成できるようになります。 目的? CRM に直接関与する人々と間接的に関係する人々の両方を含む、幅広い聴衆に応えるため。 このアプローチは CRM の可能性を高め、組織を顧客、連絡先、そして世界全体に近づけます。

 

App Creator ツールの機能を活用して、私たちは従来を超える旅に乗り出します。

すべての人のためのデザイン: 包括的なアプリ作成による CRM への新たな視点

アプリの進化: あらゆるプロファイルの CRM インタラクションに革命を起こす

CRM ユーザーがアプリを作成できるようにするだけではありません。 私たちはこの特権を私たちの関係者やより広範な一般の人々に広げます。 私たちのビジョンには、アプリ作成のための XNUMX つの異なる手段を導入することが含まれており、それぞれが特定のエンゲージメント領域に対応します。

ユーザーアプリ: これらの特殊なアプリケーションは、CRM ユーザー専用に設計されています。 組織内のユーザー固有のニーズを満たすように調整されたこれらのアプリは、生産性と効率を向上させるために細かく調整されたツールを CRM ユーザーに提供します。

アプリに連絡する: 連絡先も専用のアプリケーションを使用できる環境を想像してみてください。 これらのアプリは連絡先のみがアクセスでき、カスタマー ポータルの概念を反映しており、連絡先にビジネスとのやり取りや関与のためのシームレスなチャネルを提供します。

公開アプリ:さらに視野を広げて、組織の枠を超えたアプリを導入していきます。 これらのアプリはパブリック アクセス向けに設計されており、インタラクションと価値創造のための新しい道を開きます。 これらのアプリをより多くのユーザーが利用できるようにすることで、私たちは障壁を打ち破り、従来の枠を超えたエンゲージメントを促進しています。

実際、これらの多様なアプリ カテゴリの導入により、カスタム ソリューションを構築し、独自のアプリケーションを作成できるようになります。 目的? CRM に直接関与する人々と間接的に関係する人々の両方を含む、幅広い聴衆に応えるため。 このアプローチは CRM の可能性を高め、組織を顧客、連絡先、そして世界全体に近づけます。

 
 

サインアップして最新のアップデートを受け取りましょう!