テンプレートの構造について

学習の目的

この単元を完了すると、次のことができるようになります。
  • Tableau CRM テンプレートの各部について説明する。
  • テンプレートを構成するファイルを挙げる。
  • Tableau CRM テンプレートの各ファイルで何を管理するのかを説明する。

CEO からの要求の増大

前の単元を終えたあなたは、新しいテンプレートがどのように機能するかを CEO に見せたくてうずうずしています。(確かに、テンプレートは用意されていたため、実際あなたは大したことをしていませんが、ここでは大仕事をしたことにしておきましょう)。CEO にアプリケーションの作成プロセスを説明し、アプリケーションの Sales Performance と Pipeline Performance という Executive Overview ダッシュボードを示します。

CEO はそれなりに感謝してくれましたが、さらに多くのことを望んでいます。(いつものことです!)。「前回の打ち合わせの後にわかったのですが、一部のパートナーは Service Cloud を使用しており、この Service Performance ダッシュボードの搭載を望んでいます。誰もが当社に感謝せずにはいられなくなるほど簡便なものにして欲しいのです。パートナーがこのダッシュボードを追加するオプションを設定することはできますか?

一部のパートナーは本当に小うるさいんですよね。パートナーとの週 1 回の電話中にダッシュボードを使っていたんですが、中には違うデータを見れるようにしたいと言う人もいました。また、取引先の所在地を別の方法で表示できないかと質問した人もいました。他には、新規ビジネスの追跡方法が当社とは違うと言う人もいました。」

CEO が言わんとしていることを明確に理解するために、あなたはアプリケーションを開いて、具体的に説明してもらいます。

Execs Overview ダッシュボードの詳細

CEO は次のように言います。「[国(請求先))] となっているでしょう? 小規模なパートナーの中には都道府県ごと、あるいは市区郡ごとに表示したいと言う人がいるんです。それから、この [リードソース] には新規ビジネスをどのように獲得したのかが示されるけど、パートナーの多くは同じ用語を使っていないので、変更することはできますか?」

幸いにもあなたは、『Tableau CRM Templates Developer Guide (Tableau CRM テンプレート開発者ガイド)』に目を通していたため、その解決策を心得ていました。テンプレートを編集して設定ウィザードを追加し、ユーザがアプリケーションの各自のバージョンをカスタマイズできる質問を設ければよいのです。前述のとおり、Execs Only 1 は経営陣向けのアプリケーションのごくシンプルなバージョンで、他のバージョンに変型することはできません。

テンプレートを編集するためには、その前に内容を理解しておく必要があります。この単元では、テンプレートのファイルを確認し、テンプレートと最終的にはそれを基に作成したアプリケーションをファイルでどのように管理するかを説明します。

テンプレートの JSON ファイル

Tableau CRM からテンプレートを作成するときは、次のようなファイルのディレクトリを取得します。Tableau CRM テンプレートファイルディレクトリ

このディレクトリには、テンプレートオブジェクトを構成する JSON ファイルが格納されます。これらのファイルでダッシュボード、データセット (external_files)、データフローが定義されます。また、ウィザードなどの機能を追加するために編集するファイルも格納されます。これらのファイルを使用できるのは、テンプレートの作成後にメタデータを取得した場合のみです。詳細は、この単元の末尾の「リソース」セクションにある『Tableau CRM Templates Developer Guide (Tableau CRM テンプレート開発者ガイド)』の「Retrieve (Export) the WaveTemplate Object (WaveTemplate オブジェクトの取得 (エクスポート)」のリンクをクリックしてください。

  • template-info.json は、テンプレートに関するメタデータ情報、ダッシュボードやレンズを定義する Tableau CRM のオブジェクト、テンプレートを構成するその他のファイルなど、テンプレートの全要素を管理します。
  • ui.json は、アプリケーションの作成を誘導する設定ウィザードを管理します。ウィザードのページ数、ウィザードの質問の順序、ユーザに表示する全メッセージを定義します。
  • variables.json には、ウィザードの質問のテキストや答えの仕様など、テンプレートのすべての変数が含まれます。変数はまた、条件付き質問も定義します。たとえば、組織に特定のデータが含まれている場合にのみ、一定の質問をウィザードに表示したいことがあります。あるいは、ウィザードの一般的な質問に対する回答に基づいて、より具体的な質問を追加したいと考えることもあります。
  • template-to-app-rules.json は、テンプレートが従うルールを定義します。たとえば、組織で特定の Salesforce オブジェクトを使用していない場合は、アプリケーションがそれらのオブジェクトをダッシュボードで参照したり、データフローに含めたりしないことを指定するルールを定義することが考えられます。ルールは変数の処理方法も定義します。たとえば、ウィザードで取引先の検索条件にどの項目を含めるかを質問する場合、template-to-app-rules.json は、その選択がダッシュボードにどのように反映されるかを決定します。メモ: このモジュールではこれ以降、読みやすいようにこのファイル名を rules.json と省略します。
  • folder.json は、ダッシュボードの各部を整理します。たとえば、アプリケーションのダッシュボードの順番をアルファベット順以外で設定できます。

鋭い方なら、Service Performance ダッシュボードの JSON ファイル (Exec_Overview_Service_Performance.json) に言及していないことに気が付いたかもしれません。このファイルについては後ほど取り上げます。

元締めたる template-info.json のご紹介

Execs Only テンプレート 1 のファイルのうち、template-info.json から見ていきましょう。

{
  "assetVersion" : 41,
  "name" : "Trailhead_Template_PartOne",
  "releaseInfo" : {
    "templateVersion" : "4.0"
  },
  //1-THE DASHBOARDS
  "dashboards" : [ {
    "file" : "dashboard/Exec_Overview_Pipeline_Performance.json",
    "name" : "Exec_Overview_Pipeline_Performance_PartOne",
    "label" : "Exec Overview - Pipeline Performance"
  }, {
    "file" : "dashboard/Exec_Overview_Sales_Performance.json",
    "name" : "Exec_Overview_Sales_Performance_PartOne",
    "label" : "Exec Overview - Sales Performance"
  } ],
  //2-TEMPLATE DESCRIPTION
  "description" : "Unlock the power of Tableau CRM Templates.",
  "eltDataflows" : [ {
    "file" : "workflow/SalesAnalyticsDataflow.json"
  } ],
  //3-THE DATASETS
  "datasetFiles" : [ {
    "label" : "Users",
    "name" : "user_PartOne"
  }, {
    "label" : "Opportunities",
    "name" : "opportunity_PartOne",
    "userXmd" : "external_files/opportunity_XMD_template.json"
  }, {
    "label" : "User Allocation",
    "name" : "quota_PartOne",
    "userXmd" : "external_files/quota_XMD_template.json"
  }, {
    "label" : "Pipeline Trending",
    "name" : "pipeline_trending_PartOne",
    "userXmd" : "external_files/pipeline_trending_XMD_template.json"
  } ],
  "externalFiles" : [ {
    "file" : "external_files/plain_quota.csv",
    "name" : "plain_quota_PartOne",
    "schema" : "external_files/plain_quota.json",
    "type" : "CSV"
  } ],
  //4-THE TEMPLATE NAME
  "label" : "Execs Only Template 1",
  //5-REFERENCES TO OTHER FILES
  "folderDefinition" : "folder.json",
  "rules" : [ {
    "type" : "templateToApp",
    "file" : "template-to-app-rules.json"
  } ],
  "uiDefinition" : "ui.json",
  "variableDefinition" : "variables.json",
  "icons" : {
    "appBadge" : {
      "name" : "16.png"
    },
    "templateBadge" : {
      "name" : "trailhead_icon_160x160"
    },
    "templateDetail" : {
      "name" : "trailhead_detail"
    }
  }
}
template-info.json は、このテンプレートの取りまとめ役と考えるとよいでしょう。このファイルには、アプリケーションの作成に必要な全情報が含まれます。テンプレートとバージョン情報 (最初の数行)、ダッシュボード (コメントの 1)、テンプレートの説明 (2)、データセット (3)、テンプレート名 (4) のメタデータが記述されているのがわかります。ファイルの下部をよく見ると、他の 3 つの JSON ファイルへの参照 (5) が記述されています。
重要

重要: このモジュールのサンプルコードは、Execs Only テンプレート 1 (EATP1) を Execs Only テンプレート 2 (EATP2) にアップグレードするために必要な主な手順を表しています。JSON ではコメントがサポートされないため、実際に作業する前にコメントを削除することをお勧めします。この単元の末尾の「リソース」セクションで、コメント解除され、動作する状態のテンプレートの完全ファイルをダウンロードできます。

変数、UI、ルール

テンプレートの他のオブジェクトファイルのうち、variables.json から見ていきましょう。

{
  //1-THE DEFAULT VARIABLE
  "variableType": {
    "type": "ObjectType",
    "properties": {
      "createAllDashboards": {
        "type": "BooleanType"
       }
     },
  //2-THE OVERRIDE
  "Overrides": {
    "required": true,
    "description": "Internal configuration to allow asset creation overrides, not to be displayed in UI.",
    "defaultValue": {
      "createAllDashboards": false
    },
      "strictValidation": true
    }
  }
}

このファイルには、すべてのアセットを作成するための 1 つのデフォルト変数 (1)、つまり createAllDashboards が記述されています。

また上書き (2) も記述され、ここでは false に設定されています。これは、template_info.json で参照されているもの以外のダッシュボードを作成するテンプレート (つまり、まだ表示されていない Service Performance ダッシュボード) が必要な場合は、明示する必要があることを意味します。この時点ではこの点を覚えておいてください。具体的な方法はこの後説明します。

次に、ui.json を見てみましょう。このファイルは、設定ウィザードの内容を決定します。Execs Only 1 にはウィザードがないため、このファイルには何もありません。これがデフォルトの条件です。

{
  "pages": [
  ]
}

最後は Execs Only 1 の rules.json ファイルで、これもデフォルトは空です。ユーザがウィザードの質問から選択を行うことができないため、ダッシュボードの変更方法のルールはありません。ここには、定数とルールの 2 つのセクションがあります。詳細は後ほど説明します。

{
  "constants": [],
  "rules": []
}

CEO、そしてパートナーの望みを叶えるために、4 つのファイルをすべて編集します。後続の 2 つの単元で、この編集方法を説明します。けれどもその前に、このモジュールのバッジを獲得するための質問に取り組みましょう。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる