オフライン入力規則

CRM for iPad、Windows および iPhone では Salesforce.com の入力規則をサポートしています。Salesforce.com 入力規則の標準エディタを使用して、データ検証ロジックを作成し、オフラインで利用することができます。 

設定

  • オフライン入力規則をサポートするオブジェクト、フィールドおよびレコードタイプへのアクセスを設定します。以下の表を参照してください:

    オブジェクト

    フィールド

    管理者

    エンドユーザ

    Rule_Object_Header_vod (ルールのオブジェクトヘッダー)

    すべて

    CRU

    R

    Rule_Definition_vod (ルールの定義)

    すべて

    CRU

    R

    Rule_Message_Translation_vod

    すべて

    CRU

    R

    ユーザ

    Profile_Name_vod

    R

    R

  • エンドユーザに対する VMobile オブジェクト設定レコードを有効にします:

    VMOC

    管理者

    エンドユーザ

    Rule_Object_Header_vod

    有効

    Rule_Definition_vod

    有効

    Rule_Message_Translation_vod

    有効

  • 管理者に以下に対するアクセス権限があることを確認します:
  • Validation_Rule_Admin_Console_vod Visualforce ページ
  • 入力規則管理 (Validation_Rule_Admin_vod) Visualforce タブ
  • 管理者用の入力規則管理タブを有効化します。
  • 入力規則メタデータを Veeva CRM に同期します。
  • 入力規則データのリフレッシュボタンをクリックします。Veeva が制御するシステムオブジェクトへの入力規則メタデータのアドホック同期が開始されます。
  • アドホック同期がまず、Veeva CRM のすべてのアクティブな VMOC に対してクエリを行い、オフライン入力規則の範囲内にあるオブジェクトを特定します。存在しないオブジェクトにアクティブな VMOC がある場合、リフレッシュのプロセスを完了することができません。処理を行う前に、存在しないオブジェクト向けに存在している VMOC を無効化します。

    アドホック同期処理ではまた、実行ユーザが入力規則の範囲内にあるすべてのオブジェクトの参照権限を有していることが必要となります。実行ユーザがアクセス権限を有していない既存オブジェクト向けのアクティブな VMOC がある場合、同期は処理できません。

上記の手順が完了し、エンドユーザがルール定義を同期できたら、Veeva がサポートするすべての入力規則の実行が開始されます。

オブジェクトサポート詳細

現在、CRM のほとんどのオブジェクトへの一般的なデータ入力がサポートされています。一般的なデータ入力は、オブジェクトの標準的な編集/保存機能を使用して行われるデータ入力として定義されます。例えば、アカウント上のインライン TSF コントロールを編集しても入力規則に影響を及ぼしませんが、関連リスト経由で編集すると入力規則が実行されます。

一般的なデータ入力は、以下でサポートされています:

  • カスタムオブジェクト
  • アカウント
  • Account_Plan_vod
  • Account_Tactic_vod
  • Address_vod
  • Affiliation_vod (範囲のみの関連リスト以外)
  • Assessment_vod
  • Benefit_Design_vod
  • Benefit_Design_Line_vod
  • Business_Event_vod
  • Business_Event_Target_vod
  • Call2_vod
  • Call2_Detail_vod
  • Call2_Discussion_vod
  • Call2_Expense_vod
  • Call2_Key_Message_vod
  • Call_Objective_vod
  • Call2_Sample_vod
  • Campaign_vod
  • Campaign_Target_vod
  • Child_Account_vod
  • Clinical_Trial
  • Coaching_Report_vod
  • コンタクト (標準的な保存、Call2 以外;Call2 はオンライン専用機能であるため)
  • イベント (標準的な保存、マイスケジュール外)
  • Formulary_Product_vod
  • Inventory_Order_vod
  • Inventory_Order_Line_vod
  • Inventory_Order_Allocation_vod
  • Key_Message_vod
  • Material_Order
  • Material_Order_Line_Item
  • Medical_Discussion_vod
  • Medical_Event_vod
  • Medical_Inquiry_Fulfillment_Response_vod (iPad のみ)
  • Medical_Insight_vod
  • Product_vod
  • Product_Group_vod
  • Product_Group_Map_vod
  • Product_Plan_vod
  • Product_Strategy_vod
  • Product_Tactic_vod
  • 出版物
  • Rep_Roster_vod
  • Sent_Email_vod
  • Speaker_Evaluation
  • タスク (標準的な編集モーとおよび Call2 フォローアップテンプレート機能で作成される場合)
  • Territory_Budget_vod
  • Territory_Budget_Transaction_vod
  • Time_Off_Territory_vod
  • TSF_vod (関連リストからのみ)
  • Unsubscribe_vod
  • Unsubscribe_Product_vod

単一ページからの複数のオブジェクトの Veeva の特殊コントロール/レコードデータに依存するアプリケーションの領域は、選択的にサポートされています。現在サポートされている領域:

  • コールレポート
  • アカウント階層
  • 医師からの問合せ

    注文管理

    在庫管理

    イベント参加者管理

現在サポートされていない領域:

    コンテンツの確認

  • アカウントパートナー
  • マイスケジュール
  • インフルエンスマップ
  • 製品指標
  • 新規アカウントウィザード
  • マルチチャネル同意書
  • マルチチャネルアクティビティ項目
  • オフィスベストタイム
  • CLM*
  • 調査
  • 契約

*CLM ではサポートが制限されます。詳しくは、入力規則およびコールレポートを参照してください。

機能サポート詳細

機能およびグローバル変数の中には、API およびアプリケーションに制限によりサポートされないものがあります。また、オフラインプラットフォーム上では意味をなさず実行されないものもあります。以下に詳細を挙げます:

以下の入力規則機能はサポートされません:

  • distance
  • getsessionid
  • vlookup

以下のグローバル変数は完全にサポートされています:

    $User

    $UserRole

以下のグローバル変数は一部サポートされています:

  • $プロファイル
  • $Profile.ID
  • $Profile.Name
  • $組織
  • $Organization.Id
  • $Organization.Name
  • $Setup
  • $Setup.Veeva_Settings_vod
  • $Setup.Network_Settings_vod
  • $Setup.Approved_Email_Settings_vod
  • $Setup.Concur_Settings_vod
  • $System
  • $System.OriginDateTime

入力規則およびコールレポート

  • 入力規則は、コールヘッダーおよび範囲内の子コールデータに対して実行されます。例えば、コールレポートにコールディスカッション、ディテールおよびコールサンプルデータが含まれる場合、入力規則は、コールの保存、署名、送信時に各子レコードに対して実行されます。これは、複数の検証エラーが同じオブジェクトに発生する可能性があることを意味するものです。
  • 入力規則は、CLM プレゼンテーションの署名をタップすると実行されます。
  • 入力規則に違反している場合はコールレポートにその旨が表示されるため、問題を修正することができます。CLM セッションが終了します。
  • CLM の「完了」をタップしても入力規則は実行されません。
  • コールの「メディアの開始」をタップしても入力規則は実行されません。
  • コールレポートの黙示的な保存中は入力規則は実行されません。

入力規則および医師からの問合せ

入力規則は、医師からの問合せヘッダーオブジェクトおよびトランザクションで作成された医師からの問合せ関連オブジェクト (--mpi セクションシグナルを使用して作成されたもの) に対して実行されます。

規則は、医師からの問合せの保存、署名および送信で実行され、コールレポートで使用される標準表示動作に従います。

入力規則およびメディカルイベントおよびイベント参加者管理

入力規則は、オフラインクライアントのメディカルイベントヘッダーオブジェクトに対して実行されます。表示動作は、アプリケーションの他の部分で標準的な入力規則表示動作に従います。

入力規則は次の場合にも実行されます:

  • 「自分を追加」機能が使用されている場合。iOS ポップアップとして規則メッセージが表示されます。
  • メディカルイベント用の「参加者管理」機能が使用されている場合。この機能により、ユーザは単一ページで簡単に参加者を一括追加できます。参加者レコードが入力規則に違反すると、選択されたすべての参加者に対してエラーメッセージが、参加者が画面に表示された (またはグループ分けされた) 順に表示されます。すべての入力規則メッセージが一覧表示され、Account を追加します.Formatted_Name_vod を参加者の違反に追加するため、違反した参加者レコードを特定するのに役立ちます。違反参加者レコードと、違反していない参加者レコードが共に選択されている場合には、[選択済み項目を追加] をタップすると規則に違反していないレコードが追加されます。 
  • シンプルな「参加者の追加」機能 (1 回につき参加者レコード 1 つ) が使用されます。 
  • オブジェクトに対応する有効な VMobile オブジェクト設定 (VMOC) があると、入力規則メタデータが作成/ダウンロードされます。Veeva は、VMOC を Medical_Inquiry_vod OOTB に配信しない代わりに、アカウント VMOC の「関連オブジェクトを含む」に依存します。Medical_Inquiry_vod に入力規則を含めたい場合は、このオブジェクトに VMOC を含める必要があります。VMOC は標準の完全同期 VMOC で、WHERE 句は不要です。

入力規則および注文管理

[送信] ボタンまたは [取り消し] ボタンをタップすると、オフラインアプリの Order_vod ヘッダーオブジェクトに対して入力規則が実行されます。iOS ポップアップに規則メッセージが表示されます。

入力規則は「分割注文」機能には対応していません。 

注文が編集モードである場合、保存、署名、送信の Order_vod オブジェクトとすべての関連 Order_Line_vod レコードに入力規則が実行されます。注文のすべての違反レコード (および違反と分類されたレコード) に対して規則メッセージが表示されます。Order_Line_vod レコードが、注文品目マネージャに表示されます。Order_Line_vod レコードのメッセージには、関連付けられた Order_Line_vod レコードの Product_vod.Name が含まれます。

Order_vod および Order_Line_vod に対する入力規則の実行時には、子注文に対する規則は評価されません。 

入力規則および在庫監視

[送信] ボタンをタップすると、オフラインアプリの Inventory_Monitoring_vod ヘッダーオブジェクトに対して入力規則が実行されます。iOS ポップアップに規則メッセージが表示されます。

Inventory_Monitoring_vod が編集モードである場合、保存および送信の Inventory_Monitoring_vod オブジェクトとすべての関連 Inventory_Monitoring_Line_vod レコードに入力規則が実行されます。Inventory_Monitoring_Line_vod レコードが在庫監視品目マネージャに表示される注文 (および分類) のすべての違反レコードに対して規則メッセージが表示されます。Inventory_Monitoring_Line_vod レコードのメッセージには、関連付けられた Inventory_Monitoring_Line_vod レコードの Product_vod.Name が含まれます。

入力規則およびデータ変更申請

  • iPad プラットフォーム
  • 通常のアカウント/Address_vod/Child_Account_vod データ変更申請編集処理では、オフライン入力規則の実行がサポートされています。これらのオブジェクトの 1 つに直接入力規則を配置すると、データ変更申請が完了する前に実行されます。
  • 新しい Address_vod/Child_Account_vod データ変更申請処理では、オフライン入力規則の実行がサポートされています。
  • 新規アカウントおよび親アカウントウィザードに「任意のフィールドを含める」機能を使用すると、データ変更申請処理中にユーザはアカウントオブジェクトの拡張編集画面に転送されます。データ保存時に、アカウントオブジェクトにのみ入力規則ロジックが実行されます。
  • 入力規則は Data_Change_Request_vod および Data_Change_Request_Line_vod オブジェクトではサポートされていません
  • Windows プラットフォーム
  • 通常のアカウント/Address_vod/Child_Account_vod データ変更申請編集処理では、オフライン入力規則の実行がサポートされています。これらのオブジェクトの 1 つに直接入力規則を配置すると、データ変更申請が完了する前に実行されます。
  • 新しい Address_vod/Child_Account_vod データ変更申請処理では、オフライン入力規則の実行がサポートされています。
  • 標準の新規アカウントおよび親アカウントウィザードでは、アカウントと Address_vod オブジェクトの両方で入力規則がサポートされます。
  • 入力規則は Data_Change_Request_vod および Data_Change_Request_vod オブジェクトではサポートされていません
  • オンラインプラットフォーム
  • レコードが物理的に Salesforce.com データベースに保存されない限り、入力規則はトリガーされません。これは、Salesforce.com 入力規則の通常通りの実行となります。レコードが物理的に保存されると、入力規則がトリガーされます。入力規則に違反すると、新規および親アカウント処理中にエラーが起こります。
  • レコードが物理的に保存されない場合 (例: データ変更申請のみのケース)、エンティティオブジェクトに対する入力規則はトリガーされません。これは、レコードが Salesforce.com データベースで物理的に変更されないためです。ただし、データ変更申請項目に入力規則を配置した場合はトリガーされます。これは、Salesforce.com データベースに物理的に保存されるためです。データ変更申請処理中に入力規則エラーメッセージが表示されます。

入力規則のオフライン動作に関する重要事項

  • 数式フィールドは同期時に評価され、オフラインアプリケーションの既存の制限に従います。関数フィールドが入力規則の数式に含まれる場合は、関数自体の評価および最終的な入力規則は、現在の関数フィールドの動作に従います。同じことがロールアップサマリーフィールドに適用されます。
  • オフライン入力規則はオフラインデータに対して実行されます。入力規則に必要とされるデータが存在しない、あるいはオンラインアプリケーションに求められるものと異なる場合には、オンラインアプリケーションとは異なるルールの実行が表示される可能性があります。
  • オフライン入力規則は、入力規則のオンライン実行の代わりになったり、またはそれを上書きしたりしません。データの差異により、オフライン入力規則はパスしたものの入力規則のオンライン実行ができなかった場合には、同期エラーが起こるため、エラータブからデータを修正する必要があります。
  • User.Profile_Name_vod フィールドは、$Profile.Name グローバル変数をサポートするために使用されます。$Profile.Name を使用すると、オフライン入力規則エンジンが User.Profile_Name_vod フィールドから式に値を置換します。オプションとして、$User.Profile_Name_vod を使用して、オフライン入力規則の実行ユーザに Profile.Name データを引き出すことができます。
  • オフライン入力規則は、クロスオブジェクト所有者数式をサポートしません。管理者は入力規則オンラインのクロスオブジェクト所有者数式を作成できます。クロスオブジェクト所有者数式の詳細は、Salesforce のマニュアルをご覧ください。
  • Null は、iPad プラットフォームの数字フィールドで「0」として扱われます。お使いの入力規則が数値フィールドと 0 とを比較する場合には、ISBLANK() チェックも含める必要があります。例えば、お使いの入力規則に Inventory_Order_vod = 0 が含まれる場合、ルール定義に !ISBLANK(Inventory_Order_vod) を追加する必要があります。その結果「Inventory_Order_vod AND !ISBLANK(Inventory_Order_vo)」となります。
  • プラットフォーム全体で動作が一貫するように、文字を連結する際には「&」テキスト演算子を使用します

入力規則実行ログの記録

この機能が複雑であり、さらにオンラインとオフライン間に差がある可能性があるため、入力規則のオフライン動作をデバッグするために新規ロギング機能が搭載されています。入力規則が実行される度に、ユーザの活動ログに以下が書き込まれます。一連の入力規則の一部としてルールが実行された場合、各行はログ内の一行を表します (例: Call2_vod、Medical_Inquiry_vod):

  • VALIDATION_RULE_BLOCK_START | [ObjectType1、ObjectID1]、[ObjectTypeN、ObjectIdN]、...
  • VALIDATION_RULE_EXECUTING | [ObjectType1、ObjectId1]
  • VALIDATION_RULE_RULE | [入力規則固有名 1]
  • VALIDATION_RULE_FORMULA_[DEVICE]_PARSED | [入力規則関数 1]
  • VALIDATION_RULE_RESULT | [合格/不合格]
  • VALIDATION_RULE_EXECUTING | [ObjectTypeN、ObjectIdN]
  • VALIDATION_RULE_RULE | [入力規則固有名N]
  • VALIDATION_RULE_FORMULA_[DEVICE]_PARSED | [入力規則関数 N]
  • VALIDATION_RULE_RESULT | [合格/不合格]
  • VALIDATION_RULE_BLOCK_END

入力規則が複数のオブジェクト検証の一部でない場合 (例: Call2、Medical_Inquiry)

  • VALIDATION_RULE_EXECUTING | [ObjectType1、ObjectId1]
  • VALIDATION_RULE_RULE | [入力規則固有名 1]
  • VALIDATION_RULE_FORMULA_[DEVICE]_PARSED | [入力規則関数 1]
  • VALIDATION_RULE_RESULT | [合格/不合格]