カスタム・スクリプトによるアプリケーションの構成
オンラインであるかオフラインであるかに関係なく、検証およびルールを強制するカスタム・スクリプトをJavaScriptを使用して記述することで、ビジネス要件にあわせてアプリケーションをさらに構成できます。 この強力な機能により、任意のトップレベルの親オブジェクトおよび子オブジェクトについて、選択したイベントでトリガーできるスクリプトを作成できます。 たとえば、商談の作成時に製品フィールドを必須にするスクリプトを作成できます。
スクリプトの作成方法
すべてのオブジェクトまたは特定のオブジェクトについてカスタム・スクリプトを作成できます。 ここでは、特定のオブジェクトについてカスタム・スクリプトを作成する方法を示します。
-
構成に使用するサンドボックスを選択します。
-
を選択します。
-
「モバイル・アプリケーション設定」ページの上部にある「CX Sales Mobileスクリプト」タブをクリックします。
-
最上位の親オブジェクトについてスクリプトを作成するには、スクリプトを記述するオブジェクトを選択し、スクリプトをトリガーするイベントを選択します。 次のいずれかのイベントを選択できます。
-
作成時(モバイル・アプリケーションで新しいレコードが作成されたときにトリガーされる)。
-
保存前(レコードが保存される前にトリガーされる)。
-
保存後(アプリケーションでレコードが保存された後にトリガーされる)。
-
フィールド値の変更時(ユーザーがフィールドの値を変更した後、フィールドの外側をタップしたときにトリガーされる)。
-
編集時(ユーザーがレコードを編集したときにトリガーされる)。
-
-
子オブジェクトについてスクリプトを作成するには、最上位の親オブジェクトを選択し、商談の子オブジェクト・セクションで関連する子オブジェクトを選択します。 最後に、スクリプトをトリガーするイベントを選択します。
ノート: 子オブジェクトの保存前イベントまたは保存後イベントについて検証を作成する場合は、親オブジェクトの保存前イベントまたは保存後イベントを使用する必要があります。 -
<イベント名>スクリプト・セクションでプラス・アイコンをクリックします。
-
スクリプトの名前と摘要を入力します。
-
(オプション)スクリプトが特定の地域について機能するようにする場合は、スクリプトの地理的地域を選択します。 このスクリプトは、CX Salesアプリケーションで国プリファレンスとして選択した地域を設定しているユーザーについて機能します。
ノート: スクリプトには複数の地域を関連付けることができますが、同じオブジェクトおよびイベントの複数のアクティブなスクリプトに同じ地域を割り当てることはできません。特定のユーザー・ロールについてトリガーするようにスクリプトを制限する場合は、JavaScriptスクリプトを記述して、これらを指定する必要があります
-
「作成」をクリックし、スクリプトを作成します。
-
「検証」をクリックして、スクリプトにエラーがあるかどうかをチェックします。 検証チェックには、ネストされた関数コールや、無限ループで永久に実行される原因となるスクリプト内の他のすべてのものに関するチェックが含まれます。
-
終了後、「保存」をクリックします。
カスタム関数の作成方法
すべてのスクリプトですべてのオブジェクトについて使用できるカスタム関数(ユーティリティ関数と呼ばれる)を作成することもできます。 その方法は次のとおりです。
-
スクリプトの作成方法の項のステップ1から6を実行した後、ユーティリティ関数セクションでプラス・アイコンをクリックします。
-
関数を作成します。 関数がユーティリティ関数として指定され、システム関数リストに含まれるように、必ず関数に
_C
を含めてください(システム関数の詳細は、次のスクリプトの作成に役立つ機能の項を参照してください)。 システム関数リストに含まれると、任意のカスタム・スクリプトからユーティリティ関数にアクセスできます。 次に形式の例を示します。function example_c() { var a = 100; a = 100+a }
-
「検証」、「保存」の順にクリックします。
スクリプトの作成に役立つ機能
スクリプトを作成する際には、正しいオブジェクト値とフィールド値を入力することが重要です。そのため、これを簡単に行うことができるように、スクリプト・ボックス内で[Ctrl]+[Space]を押すと、オブジェクトとフィールドのリストが表示されます。 挿入するオブジェクトまたはフィールドを選択すると、正しい値がスクリプトに追加されます。
この機能を使用すると、APIをスクリプトに自動移入するシステム関数も使用できるようになります。 [Ctrl]+[Space]を押し、システム関数セクションまで下にスクロールすると、使用可能なAPIのリストが表示されます。 たとえば、これらのAPIを使用して、デバイスのオペレーティング・システムやユーザーの現在の位置を確認できます。 システム関数セクションには、自分が作成したユーティリティ関数も表示されます。 使用可能なシステム関数のリストとそれらの使用方法は、カスタム・スクリプト用のシステム関数のライブラリのトピックを参照してください。
スクリプトのテスト
スクリプトのテストに役立つように、スクリプトでCXCoreLogger
クラス・メソッドを使用して、警告、エラーまたは情報メッセージを書き込むことができます。 その後、メッセージを確認してスクリプトをデバッグできます。
スクリプトをデバッグした後、CX Sales Mobileでスクリプトをテストし、完了したらサンドボックスを公開します。 CX Sales Mobileで構成を確認する方法の詳細は、構成のテストのトピックを参照してください。
スクリプトの例
ここでは、カスタム検証およびルールを作成する方法の例をいくつか示します。
オブジェクト、イベントおよび要件 |
スクリプトの例 |
---|---|
オブジェクト: 商談
イベント: 要件: 商談の名前および 所有者フィールドに値を自動移入する。 |
|
オブジェクト: 商談
イベント: 要件: 子の売上金額に基づいて 商談売上金額を更新する。 |
|
オブジェクト: 商談
イベント: 要件: 商談が新しく作成されたものでない場合、 商談にノートを追加する。 |
|
オブジェクト: 商談
イベント: 要件: ステータス・コード値が WON/LOSTに変更され、受注/失注事由が指定されていない場合、 「Please specify win/loss reason」というメッセージが表示される。 |
|
オブジェクト: 商談売上
イベント:
要件: 商談売上という子オブジェクトの |
|
オブジェクト: 商談
イベント: フィールド: フィルタ値がチェックされる動的選択リスト。 要件: ユーザーがフィルタ基準を満たさない動的選択リスト値を選択しようとすると、エラーがトリガーされる。 前提条件: CX Sales Mobileのフィルタ・オブジェクト・ピッカー・ページにフィルタ基準フィールド(この例ではアカウント・タイプ)が含まれていること。 |
|
オブジェクト: 商談
イベント: 要件: ユーザーが無効な動的選択リスト値のあるレコードを保存しようとすると、エラーがトリガーされる。 前提条件: CX Sales Mobileのフィルタ・オブジェクト・ピッカー・ページにフィルタ基準フィールド(この例ではアカウント・タイプ)が含まれていること。 |
|