サーバースクリプトとジョブ

サーバースクリプトとジョブモジュールによるVtigerのカスタマイズと自動化機能の大幅な改善を発表できることを嬉しく思います。

サーバー側スクリプトは、さまざまなタスクを実行できる強力な機能です。この機能により、レコードの保存時または承認/拒否時にカスタム アクションを実行できます。スケジュールされた間隔で実行するカスタム バックグラウンド タスクを設定することもできます。

3年前、企業がVtiger CRMインスタンスをさらにカスタマイズできるように、ローコード自動化フレームワークであるVtigerのアプリケーションプラットフォーム(VTAP)を立ち上げました。 VTAP を使用すると、開発者はユーザーのブラウザ内で実行されるクライアント側のコードを作成して、クライアント側のカスタマイズを可能にすることができます。

ただし、カスタム コードをサーバー側で実行する必要があるシナリオは数多くあります。 

サーバー スクリプトとジョブを使用すると、顧客とパートナーは JavaScript で書かれたカスタム コードを Vtiger サーバー上で直接実行できます。この機能により、無制限の自動化への道が開かれます。

いくつかの例があります:

  • 他のソースから情報を取得してリードデータを充実させます。
  • 外部ソースから CRM にデータを定期的にインポートします。
  • 子レコードに従って親レコードのデータを調整したり、その逆を行ったりします (各組織の未払いの請求書残高を更新します)。
  • AI を活用したカスタム分析を統合します。

この機能は、次の 2 つの方法でこれらのサーバー側スクリプトをトリガーします。

  • サーバー スクリプト: これらは、特定のアクションが発生したときに実行されるサーバー側のスクリプトです。たとえば、レコードが保存されたり、承認/拒否されたりします。
  • サーバージョブ: これらは、時間ごと、毎日、毎週などの固定間隔で自動的に実行されるサーバー側のスクリプトです。

Use Case

組織レコード内の期限を過ぎた請求金額を更新する簡単な例を使用して、サーバー側のスクリプトがどのように機能するかを理解しましょう。

要件: いつでも、あらゆる組織の期限を過ぎた請求額を確認できるはずです。

解決策: サーバー スクリプトを使用すると、これを簡単に実現できます。

  • 請求書が更新される (金額またはステータスが変更される) たびに、スクリプトをトリガーします。
  • VtigerのRESTメソッドを使用すると、スクリプト内のすべての請求書を請求書の組織にリンクできます。
  • 各請求書の残高を合計します。
  • もう一度、VtigerのRESTメソッドを使用して、組織フィールドの残高を更新します。
  • これにより、期限を過ぎた請求額が組織の記録に常に表示されるようになります。


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}

詳細については、ヘルプを参照してください ドキュメント.

 
 
 

近日公開 - アップデート拡張機能

 
 

アップデート拡張機能! 

現在、マーケットプレイスから拡張機能を更新する方法はありません。 

今後のリリースでは、ユーザーがアドオン パブリッシャーから公開される拡張機能を更新できるコア アップデートを提供する予定です。 

ワークフロー、API デザイナー、モジュール デザイナーなどの拡張機能に加えられた変更は、顧客インスタンスに更新されます。 

 

アップデート拡張機能! 

現在、マーケットプレイスから拡張機能を更新する方法はありません。 

今後のリリースでは、ユーザーがアドオン パブリッシャーから公開される拡張機能を更新できるコア アップデートを提供する予定です。 

ワークフロー、API デザイナー、モジュール デザイナーなどの拡張機能に加えられた変更は、顧客インスタンスに更新されます。 

 
 

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