应用模板(5)使用应用程序自定义功能增强您的模板

学习目标

完成本单元后,您将能够:

  • 了解如何将自定义UI组件添加到模板,以便用户可以更改其应用程序的UI。
  • 将仪表板背景颜色选择器添加到配置向导。

添加颜色,添加Pizzazz

你刚刚学到的关于模板的内容让你充满了兴趣。您了解不同的模板JSON文件以及每个文件的作用。你看到了足够近的代码,可以用模板做一些非常酷的事情 – 你认为CEO和DTC合作伙伴都会喜欢这些。所以你决定实施你的一个宠物想法。

在设计Execs Only应用程序和其他Analytics仪表板时,您已经想知道如何使它们更加丰富多彩。通过Analytics UI,您可以更改某些仪表板颜色。你有一个想法,以进一步采取这一点!

您一直在使用Visualforce页面自定义UI组件 – 颜色选择器。并且您想将其添加到仅限Execs。您的想法是合作伙伴可以使用选择器来修改仪表板背景颜色。他们可以选择他们的企业颜色,或添加其他颜色,使仪表板真正脱颖而出。

关于Visualforce的一点点

Visualforce是Salesforce的解决方案,用于在Lightning平台上构建复杂的自定义用户界面。Visualforce页面允许用户修改UI以适合他们自己的品牌,以匹配Lightning Design System等标准,或大多数其他标准。通过多种方式访问​​Lightning平台,包括Apex控制器,REST API和JavaScript Remoting,Visualforce为您提供了一种开发向导页面的好方法,可以实现强大的应用程序自定义。

我们在这里不会更多地谈论Visualforce,因为它是自己的Trailhead模块的主题,您可以在参考资料部分找到Visualforce开发人员指南。我只想说它开发了一个可以自定义Salesforce页面的颜色选择器,你会很高兴看到你是否可以将它添加到Execs Only应用程序中。而且你很确定合作伙伴也会感到兴奋!

注意

注意

我们已经为此单元的下载提供了Visualforce颜色选择器的代码。请参阅参考资料部分中的下载链接。在中查找颜色选择器文件网页 和 staticresources 在里面 EATP2 文件夹,包含模板2文件的文件夹。

将颜色选择器添加到模板中

因此,您决定将另一个页面添加到“仅限执行者”向导,以便合作伙伴选择自己的仪表板颜色。我们开始做吧!

Visualforce颜色选择器文件

首先,将颜色选择器Visualforce页面的文件添加到模板中。您可以在红色框中看到它们:

该 网页目录的一部分包括选择器的Visualforce页面。颜色选择器的主页是colorTest.page。接下来,在您在最后一个单元中编辑的相同模板JSON文件中引用颜色选择器。从添加开始rules.json就像我们在前面的例子中所做的那样:

{
         //1-RULE FOR CHANGING SALES DASHBOARD BACKGROUND
	  "name": "Exec_Overview_Sales_Performance_backgroundColor",
	  "appliesTo": [
	    {
	      "type": "dashboard",
	      "name": "Exec_Overview_Sales_Performance"
	    }
	  ],
	  "actions": [
	    {
	      "action": "set",
	      "description": "Set the value for state.gridLayouts[0].style.backgroundColor in Exec_Overview_Sales_Performance.",
	      "path": "$.state.gridLayouts[0].style.backgroundColor",
	      "value": "${Variables.Exec_Overview_Sales_Performance1_state_gridLayouts0_style_backgroundColor}"
	    }
	  ]
	},
	{
         //2-RULE FOR CHANGING PIPELINE DASHBOARD BACKGROUND
	  "name": "Exec_Overview_Pipeline_Performance_backgroundColor",
	  "appliesTo": [
	    {
	      "type": "dashboard",
	      "name": "Exec_Overview_Pipeline_Performance"
	    }
	  ],
	  "actions": [
	    {
	      "action": "set",
	      "description": "Set the value for state.gridLayouts[0].style.backgroundColor in the Exec Overview - Pipeline Performance dashboard.",
	      "path": "$.state.gridLayouts[0].style.backgroundColor",
	      "value": "${Variables.Exec_Overview_Pipeline_Performance_PipelineDetails_backgroundColor}"
	    }
	  ]
	 },
	 {
         //1-RULE FOR CHANGING SERVICE DASHBOARD BACKGROUND
         "name": "Exec_Overview_Service_Performance_backgroundColor",
	  "appliesTo": [
	    {
		"type": "dashboard",
		"name": "Exec_Overview_Service_Performance"
	    }
	  ],
	  "actions": [
	    {
		"action": "set",
		"description": "Set the value for state.gridLayouts[0].style.backgroundColor in the Exec Overview - Service Performance dashboard.",
		"path": "$.state.gridLayouts[0].style.backgroundColor",
		"value": "${Variables.Exec_Overview_Service_Performance_ServiceDetails_backgroundColor}"
	     }
	   ]
	 }

复制

我们添加了三条新规则 规则文件的一部分。他们每个人都定义了一个组要执行的操作 – 第一个在Sales Performance仪表板上,第二个在Pipeline Performance上,第三个在Service Performance上。操作:根据使用颜色选择器进行的选择设置仪表板背景颜色。和之前的规则一样,每个都指向一个变量。

以下是新的变量 variables.json:

  
  //1-VARIABLE FOR SALES DASHBOARD
  "Exec_Overview_Sales_Performance_backgroundColor": {
    "label": "Click the color-picker and choose the background color for the Sales Performance dashboard",
    "description": "",
    "defaultValue": "#C5D3E0",
    "variableType": {
      "type": "StringType"
    }
  },
  //1-VARIABLE FOR PIPELINE DASHBOARD
  "Exec_Overview_Pipeline_Performance_backgroundColor": {
	"label": "Click the color-picker and choose the background color for the Pipeline Performance dashboard",
	"description": "",
    "defaultValue": "#C5D3E0",
    "variableType": {
      "type": "StringType"
    }
  },
  //3-VARIABLE FOR SERVICE DASHBOARD
  "Exec_Overview_Service_Performance_backgroundColor": {
	"label": "Click the color-picker and choose the background color for the Service Performance dashboard",
	"description": "",
	"defaultValue": "#C5D3E0",
	"variableType": {
		"type": "StringType"
	}

复制

该文件包含每个仪表板的变量。例如,Sales Performance仪表板的变量是Exec_Overview_Sales_Performance_backgroundColor。它使用户能够选择颜色。该变量定义了一个默认值,#C5D3E0,一种不起眼的灰色阴影。该变量还包括要在向导中显示的文本,例如,“单击颜色选择器,然后选择Sales Performance仪表板的背景颜色。”

最后,这是 ui.json它在具有地理位置,新业务和案例数据问题的页面之后向向导添加了一个页面。新页面包含UI元素,以使用Visualforce颜色选择器更改每个仪表板的颜色。

{
  "pages": [
    {
      "title": "Create Execs Only App",
      "variables": [
        { "name": "Geography" },
        { "name": "Source_L2" },
        { "name": "SObjectChoices" }
      ]
    },
       //THE NEW WIZARD PAGE
	{
	  "title": "Execs Only Dashboard Styling",
	  "variables": [
	    {
	      "name": "Exec_Overview_Sales_Performance_backgroundColor"
	    },
	    {
	      "name": "Exec_Overview_Pipeline_Performance_backgroundColor"
        },
	    {
	       "name": "Exec_Overview_Service_Performance_backgroundColor"
	    }
      ],
      "vfPage":{
        "namespace": "c",
        "name": "colorTest"
      }
	}
  ]
}

复制

您可以在标题中看到我们在上一个单元中添加到向导的页面 “创建仅限应用程序”。新页面有标题“仪表板造型” 并按其名称引用颜色选择器, “colorTest” 在里面 vfPage 部分。

我们用新的JSON做了什么?我们在向导中添加了一个页面,让我们的合作伙伴为Execs Only仪表板选择背景颜色。我们这个令人兴奋的首席执行官会为此而疯狂!而且你很高兴向她展示你抓住你的笔记本电脑并跑到她的办公室。

与首席执行官展示和交流

你很幸运 – 她在那里,她在会议之间。您打开笔记本电脑,登录Salesforce Analytics Studio,并向她显示新版本的Execs Only。

重要

重要

如果您使用Chrome浏览器,请确保它已缩放至至少65%,以便Analytics页面按预期显示。

  • 登录您在第一个单元中创建的Developer Edition组织。
  • 从应用选择器中选择Analytics Studio
  • 单击右上角的“ 创建”,然后选择“ 应用”
  • 选择从模板开始,然后单击 继续
  • 滚动到仅限执行模板2并选择它。然后单击 继续。一定要选择模板2
  • 选择仅限执行模板2,然后单击 继续。单击继续,直到看到新向导的第一页。
新向导的第一页有三个问题
  • “停在那儿!”首席执行官说。“看起来合作伙伴有他们要求的所有选项。他们可以更改地理位置和新业务数据的选择,并根据需要添加服务仪表板。太棒了!“你用头枕一下,想一想,”等到她看到颜色选择器。“
  • 单击继续,直到进入可以为应用命名的屏幕。输入名称Exec App 1,然后单击“ 创建”。这会打开应用程序创建进度屏幕。它会向您显示Analytics在创建应用程序时在幕后执行的操作。
  • 单击“ 看起来不错”,然后转到下一页。单击第一个仪表板名称下的圆圈和….
带颜色选择器的向导页面

“Amazeballs,”首席执行官大声说道。“合作伙伴可以为他们想要的仪表板上色吗?事实上,我希望我使用我最喜欢的颜色粉红色。那太酷了!“您继续创建应用程序,包括首席执行官的雅致色彩选择。我们不会告诉您如何做到这一点 – 这是本单元结束时的挑战,您需要做的最后一件事就是完成模板简介徽章。不过,这是粉红色的销售业绩。

注意

注意

如果仪表板中缺少数据,请再次运行Trailhead Data Manager。有关说明,请参阅此Trailhead模块中的“了解模板的工作原理”。请务必在您在挑战中创建的应用上运行它。(不是您在“了解模板工作原理”中创建的应用程序版本。 运行数据管理器不是完成徽章所必需的。

销售业绩仪表板与热粉红色背景

很好,是吗?我们也可以告诉你CEO被淘汰了。她确信你的工作确保了合作伙伴的忠诚度。她给你休息一周,并在下周一来到你面前时给你一个惊喜。

你的想象力是极限

现在您已经看到了编辑Analytics Templates JSON文件的内容,您已准备好开始使用自己的模板。您首先需要一个应用程序,您可以从参考资料部分中引用的Salesforce Einstein Analytics帮助中了解所有相关信息。您还可以使用我们为本机创建的模板,您可以从参考资料部分的链接下载该模板。

请记住:创建模板和编辑JSON文件只是该过程的第一步。您还必须在模板准备好分发之前部署并测试该模板。您可以在“参考资料”部分中引用的“分析模板开发人员指南”中了解整个模板开发过程。

您可以使用Analytics模板执行的操作比我们在此处显示的要多得多。我们经历的示例旨在让您熟悉模板文件的结构。你已经看到哪个文件做了什么,并且见证了JSON可以提供的功能。您还看到了添加到模板中的内容有多么富有创意。在这种情况下,我们添加了一个带有自定义UI组件的Visualforce页面。

你的想象力是极限。分析模板以及爱因斯坦分析和Salesforce平台为您提供了大量选项,可用于您可以使用自己的模板执行的操作。

应用模板(4)通过添加向导使模板更智能

学习目标

完成本单元后,您将能够:

  • 了解如何向模板添加向导问题。
  • 说明如何添加向导问题并对模板文件进行其他更改可以向应用添加新的仪表板。

解决缺失仪表板的情况

在本单元中,我们将展示如何为我们的模板添加风味以及加强应用程序的基础功能。我们将通过向应用添加配置向导来执行此操作,其中包含一系列有关用户希望Analytics创建应用的方式的问题。你不会自己做这些,因为我们的目的是让你体验模板的力量。但是我们会很好地了解如何开始使用自己的模板。

让我们从添加服务性能仪表板的代码开始。请记住,原始模板不会创建它。为什么不?首先,因为JSON文件中没有引用仪表板。还有另一个原因。仪表板运行来自Salesforce Cases对象的数据–DTC客户服务用于跟踪约定。我们的原始模板不会将案例数据添加到应用程序,因此应用程序中没有数据可用于填充仪表板。我们必须添加逻辑来添加案例。以下是我们必须采取的步骤:

  1. 添加服务性能 模板info.json 以及一个覆盖,可以添加案例到应用程序。
  2. 添加规则 rules.json 告诉模板在应用程序中包含案例。
  3. 修改 variables.json使用向导问题让合作伙伴添加案例,如果他们的组织使用该对象。(这还取决于他们是否要将服务性能仪表板添加到应用程序。)
  4. 编辑 ui.json 向向导添加有关个案的问题。

让我们看看每个变化的代码。首先,这是原始版本的仪表板部分模板info.json有两个仪表板参考。引用指向基本应用程序的两个仪表板的JSON文件,Exec_Overview_Pipeline_Performance.json 和 Exec_Overview_Sales_Performance.json:

"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"
  } ],

复制这是经过编辑的版本,第三个仪表板参考 Exec_Overview_Service_Performance.json 和覆盖案例数据的覆盖:

"dashboards" : [ {
    "file" : "dashboard/Exec_Overview_Pipeline_Performance.json",
    "name" : "Exec_Overview_Pipeline_Performance",
    "label" : "Exec Overview - Pipeline Performance"
  }, {
    "file" : "dashboard/Exec_Overview_Sales_Performance.json",
    "name" : "Exec_Overview_Sales_Performance",
    "label" : "Exec Overview - Sales Performance"
  }, {
    "condition" : "${Constants.HasCases || Variables.Overrides.createAllDashboards}",
    "file" : "dashboard/Exec_Overview_Service_Performance.json",
    "name" : "Exec_Overview_Service_Performance",
    "label" : "Exec Overview - Service Performance"
  } ],

复制

您添加条件语句 模板info.json 告诉应用程序包含基于给定变量的仪表板或数据集。在这种情况下,条件确定用户是否将Cases对象添加到应用程序(Constants.HasCases || Variables.Overrides … ..)。这意味着当用户创建应用程序时,Analytics会查找名为的常量HasCases。如果它在那里,它会添加服务性能仪表板。如果没有,它会离开仪表板。这为合作伙伴提供了一个选择:如果他们的组织使用Cases对象来跟踪Salesforce中的服务约定,他们可以将对象添加到仅限Execs应用程序,他们将获得服务性能仪表板。如果他们不这样做,他们可以把它留下来。在哪里 HasCases不断来自?也许你还记得那个rules.json 有一个常量部分,其中没有任何内容:

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

复制

注意

注意

记住:我们指的是 模板到应用,rules.json 文件使用简写 rules.json 使这些说明更容易阅读。我们添加一个常量调用 HasCases 告诉Analytics根据变量包含Cases sObject Variables.SObjectChoices。

  "constants": [
    {
      "name": "HasCases",
      "value": "${array:contains(Variables.SObjectChoices, 'Cases')}"
    } 
  ]

复制Analytics在哪里查找该变量?你猜到了:variables.json。我们添加一个SObjectChoices 变量:

"SObjectChoices": {
    "label": "Choose additional objects to include in your app. Selecting Cases will add the Service Performance dashboard and a Cases dataset",
    "description": "You can analyze data and build out additional dashboards using data from the additional object.",
    "defaultValue": [],
    "required": false,
    "variableType": {
      "type": "ArrayType",
      "itemsType": {
        "enums": [
	      "Cases"
        ],
        "type": "StringType"  
      }
    }
  },

复制

您可以在以下位置查看向导问题的文本: Choose additional objects to include in your app。你也可以看到“案例” 作为一个 枚举 下 “itemsType”。最后,这是来自的JSON ui.json 告诉向导显示反映新问题的问题 SObjectChoices 变量:

  "pages": [
    {
      "title": "Create Execs Only App",
      "variables": [
        { "name": "SObjectChoices" }
      ]
    },

复制

如果你还记得原作 ui.json 文件是空的。

巫师出生

就是这样。让我们回顾一下新JSON对我们模板的作用:

  1. 添加一个带有单个问题的向导,询问用户是否要将Cases对象中的数据添加到应用程序。
  2. 告诉Analytics在创建应用时向其添加个案。这会向应用添加一个新的Cases数据集。
  3. 告诉Analytics使用案例数据创建服务绩效信息中心。
“仅限执行者”向导,其中包含有关向应用添加案例的新问题。

非常酷 – 少量简单的代码可以带来强大的结果。但我们还没有完成。请记住,首席执行官要求我们在模板中添加一些其他选项。我们接下来就这样做。

相同的仪表板,不同的数据

DTC的合作伙伴询问CEO是否可以选择Execs Only仪表板显示有关地理和新业务来源的数据。DTC的版本根据“客户”对象“帐单国家/地区”字段显示地理数据。这是DTC用于跟踪客户位置的主要字段。应用程序仪表板根据“机会”对象中的“潜在客户”字段显示新业务 – 再次,字段DTC代表用于指示潜在的新业务。如何让他们控制他们在Execs Only版本中看到的数据?通过向向导添加问题。你是怎么做到的?通过编辑JSON文件,您可能已经领先于我们了。如果您仔细阅读上一节,您可能已经找出要编辑的文件:

  1. rules.json,您将在其中定义仪表板对向导中所选字段的数据执行的操作。
  2. variables.json,您可以在其中添加向导问题并指定合作伙伴在回答问题时可以选择的值。
  3. ui.json,您将确定向导显示问题的顺序。

我们不改变 模板info.json 因为我们没有向应用添加任何元素 – 只是更改其中包含的一些数据。

再说一次,我们来看看代码。记住另一个空白部分rules.json那就是规则。要添加有关要在仪表板中显示的特定数据的问题,我们会向该部分添加两个规则。这是第一条规则的文件顶部,ReplaceDashboardVariables:

  "rules": [
    {
      "name": "ReplaceDashboardVariables",     
      "appliesTo": [
        {
          "type": "dashboard",
          "name": "*"
        }
      ],
      "actions": [
        {
          //1-THIS ACTION SETS NEW BUSINESS SOURCE FIELD NAME
          "action": "set",
          "description": "Replace LeadSource Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"LeadSource\", Variables.Source_L2.fieldName)}"
        },
        {
          //2-THIS ACTION SETS LABEL FOR FILTER WITH NEW BUSINESS SOURCE DATA
          "action": "set",
          "description": "Replace LeadSource Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"Lead Source\", Variables.Source_L2.fieldLabel)}"
        },
        {
          //3-THIS ACTION SETS GEOGRAPHY FIELD NAME
          "action": "set",
          "description": "Replace Geography Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"BillingCountry\", Variables.Geography.fieldName)}"
        },
        {
         //4-THIS ACTION SETS LABEL FOR FILTER WITH GEOGRAPHY DATA
          "action": "set",
          "description": "Replace Geography Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"Billing Country\", Variables.Geography.fieldLabel)}"
        }
      ]
    },

复制

该 ReplaceDashboardVariables如果用户从向导中选择“Lead Source”以外的值,则规则将替换仪表板中默认维度的标签和名称。规则定义了几个组 动作。在这种情况下,操作在仪表板中设置值。操作1设置字段名称(字段名)合作伙伴选择指定新业务的来源。正如您之前所见,在Execs Only中,来自Lead Source字段的项目,例如口口相传,公共关系等。操作2设置包含该字段数据的过滤器标签(FieldLabel联合)。

Execs Only Lead Source小部件显示原始标签1(Lead Source)和字段值(2)Employee ref,Public Relations,等等

这是Pipeline Performance仪表板中的Lead Source图表。它显示标签 Lead Source(1)和来自Lead Source字段(2)的项目。合作伙伴希望能够选择其他字段作为新业务的来源。他们选择的字段 – 比如新业务 – 替换潜在客户来源,新业务字段中的值取代了员工参考公共关系等。

Execs仅显示原始标签的地理数据

动作3和4对地理数据执行相同操作。在“仅限执行”中,该项目来自“结算国家/地区”字段(国家/地区名称为加拿大,美国等)和标签“ 结算国家/地区”

这是第二条规则 ReplaceWorkflowVariables,适用于数据流文件。(工作流程指的是应用程序的数据流。)操作5替换数据流中的新业务源数据。行动6对地理数据做同样的事情。

    
{
      "name": "ReplaceWorkflowVariables",     
      "appliesTo": [
        {
          "type": "workflow",
          "name": "*"
        }
      ],
      "actions": [
        {
          //5-THIS ACTION CHANGES NEW BUSINESS SOURCE DATA IN THE DATAFLOW 
          "action": "set",
          "description": "Replace LeadSource Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"LeadSource\", Variables.Source_L2.fieldName)}"
        }, 
        {
          //6-THIS ACTION CHANGES GEOGRAPHIC DATA IN THE DATAFLOW
          "action": "set",
          "description": "Replace BillingCountry Dimension",
          "path": "$..*",
          "value": "${string:replace(Rules.CurrentNode,\"BillingCountry\", Variables.Geography.fieldName)}"
        }      
      ]
    },

复制我们所有的新动作都指向变量(例如, Variables.Geography.fieldName),定义于 variables.json。

  
   //1-VARIABLE FOR GEOGRAPHIC DATA
  "Geography": {
    "label": "What field do you want to use to segment customers by geography?",
    "description": "Choose how Execs Only filters geographic data.",
    "defaultValue": {
      "sobjectName": "Account",
      "fieldName": "BillingCountry"
    },
    "required": true,
    "excludeSelected": true,
    "excludes": [
      "Name",
      "Industry"
    ],
    "variableType": {
      "type": "SobjectFieldType",
      "dataType": "xsd:string"
    }
  },
  //2-VARIABLE FOR SOURCES OF NEW BUSINESS
  "Source_L2": {
    "label": "What field do you want to use to segment sources for new business?",
    "description": "Choose how Execs Only filters data about new business sources.",
    "defaultValue": {
      "sobjectName": "Opportunity",
      "fieldName": "LeadSource"
    },
    "required": true,
    "excludeSelected": true,
    "excludes": [
      "Name",
      "StageName",
      "ForecastCategory",
      "ForecastCategoryName"
    ],
    "variableType": {
      "type": "SobjectFieldType",
      "dataType": "xsd:string"
    }
  },
  //3-ORIGINAL VARIABLE FROM PREVIOUS VERSION OF FILE
  "Overrides": {
    "required": true,
    "description": "Internal configuration to allow asset creation overrides, not to be displayed in UI.",
    "defaultValue": {
      "createAllDashboards": false
    },
    "variableType": {
      "type": "ObjectType",
      "properties": {
        "createAllDashboards": {
          "type": "BooleanType"
        }
      },
      "strictValidation": true
    }
  },

复制

变量1显示有关地理数据的向导问题和帮助合作伙伴选择答案的说明。它还指定哪个sObject包含合作伙伴组织中将在向导中作为有效答案的值。该模板使用答案创建自定义仪表板体验。对于有关新业务来源的向导问题,变量2执行相同的操作。变量3是原始覆盖,我们已经讨论过了。最后,这是来自的代码 ui.json确定新向导如何排序问题。请注意,它还包括有关向仅限Execs应用添加案例的问题(SObjectChoices)。

  "pages": [
    {
      "title": "Create Execs Only App",
      "variables": [
        { "name": "Geography" }, //QUESTION ABOUT GEOGRAPHIC DATA
        { "name": "Source_L2" }, //QUESTION ABOUT SOURCES OF NEW BUSINESS
        { "name": "SObjectChoices" } //QUESTION ABOUT ADDING CASES DATA
      ]
    }

复制

让巫师更聪明

让我们回顾一下我们添加的JSON对我们模板的作用:

  1. 使用更多问题使向导“更智能”。除了有关案例数据的问题之外,用户现在还可以回答有关地理和新业务来源的问题。
  2. 允许合作伙伴选择用于细分地理位置和跟踪新业务来源的字段。
  3. 确保数据最终位于仪表板和数据集中的正确位置。
Execs Only向导有三个问题

感谢一些JSON代码,我们的模板现在让合作伙伴可以选择如何创建他们的应用程序。他们可以添加服务性能仪表板。他们还可以确保应用程序的仪表板反映他们存储(以及查看)数据的方式。

你很高兴向首席执行官展示它 – 你知道她也会很兴奋。但是当你和JSON一起工作的时候,你已经有了一些你认为会真正让她失望的想法 – 而你的伙伴们也会这么做。你决定在去CEO之前尝试一下这些想法。

在进一步增强模板之前,请通过回答页面底部的问题继续处理Analytics模板徽章,

应用模板(3)探索模板结构

学习目标

完成本单元后,您将能够:

  • 描述Analytics模板的各个部分。
  • 列出构成Analytics模板的文件。
  • 描述每个Analytics Templates文件控制的内容。

首席执行官提高了标准

在完成最后一个单元之后,您会向首席执行官展示新模板的工作原理。(好吧,自从我们制作模板以来你并没有做太多事情,但是现在,让我们假装你做了。)所以你带领CEO完成应用程序创建过程并向她展示应用程序中的仪表板,销售业绩和管道绩效主管概述。

首席执行官非常感激,但她想要更多。(当然,她这样做!)“自从我们上次讨论以来,我发现我们的一些合作伙伴使用了Service Cloud,并且也想要这个服务性能仪表板。我想让它变得非常简单 – 我们不想让任何人有一个不爱我们的理由。我们可以给他们添加该仪表板的选项吗?

“而且,事实证明我们的一些合作伙伴挑剔,挑剔,挑剔。我在每周电话会议期间使用仪表板,有些人希望他们可以查看不同的数据。他们中的一些人询问了显示其客户所在位置的不同方式。还有其他人提到他们不按我们的方式跟踪新业务。“

为了确保你知道她在说什么,你打开应用程序并让她告诉你。

执行程序概述仪表板详细信息

她说,“看看结算国家?我们的一些小型合作伙伴希望通过州或城市来查看。看看Lead Source?这表明我们如何获得新业务,但我们的许多合作伙伴并没有使用相同的术语。你能改变吗?“

幸运的是,您已经查看了“分析模板开发人员指南”,并且您已经了解了解决方案:编辑模板以添加配置向导,其中包含可让用户自定义其应用版本的问题。请记住,Execs Only 1是exec app的普通版本,不可能有任何变化。

在编辑模板之前,您需要了解其中的内容。在本单元中,我们运行模板文件,向您展示他们如何控制模板,最终控制您从中创建的应用程序。

模板JSON文件

分析模板文件目录

从Analytics应用程序创建模板时,您将获得如下所示的文件目录:

它包括组成模板对象的JSON文件。他们定义仪表板,数据集(external_files)和数据流。它还包括您编辑的文件以添加向导和其他功能。请注意,这些文件仅在创建模板后检索元数据时可用。要了解有关该内容的更多信息,请单击本单元末尾参考资料部分的“分析模板开发人员指南”中的“检索(导出)WaveTemplate对象”链接。

  • 模板info.json 管理模板的所有元素,包括有关模板的元数据信息,定义仪表板和镜头的Analytics对象以及属于模板的其他文件。
  • ui.json管理驱动应用程序创建的配置向导。它定义了向导页面的数量,向导问题的顺序以及您希望用户查看的任何消息。
  • variables.json包含所有模板变量,包括向导问题的文本和答案的规范。变量还定义了条件问题。例如,仅当组织包含某些数据时,您可能希望向导中显示一些问题。或者,您可能希望根据更一般的向导问题的答案添加更具体的问题。
  • 模板到应用,rules.json定义模板遵循的规则。例如,您可以定义一个规则,指定如果组织不使用某些Salesforce对象,则应用程序不会在仪表板中引用它们或将它们包含在数据流中。规则还定义了变量的处理方式。例如,如果向导询问要在客户的过滤器中包含哪些字段,模板到应用,rules.json 确定该选项在仪表板中的反映方式。注意我们将此文件的名称缩写为 rules.json 在本单元的其余部分,以便于阅读。
  • folder.json 组织仪表板的各个部分,例如,让您在应用程序中设置仪表板的顺序,而不是按字母顺序保留它们。

如果你的眼睛很敏锐,你可能已经注意到我们缺少的服务性能仪表板的JSON文件(Exec_Overview_Service_Performance.json)。我们稍后再回过头来看看。

遇见老板:Template-info.JSON

让我们看一下来自Execs Only Template 1的那些文件 模板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 Einstein Analytics 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"
    }
  }  
}

复制一个好的思考方式 模板info.JSON是它负责模板。它包含创建应用程序所需的所有信息。您可以看到模板和版本信息(前几行),仪表板(注释中的1),模板描述(2),数据集(3)和模板名称(4)的元数据。如果仔细查看文件的底部,您会看到对其他3个JSON文件的引用(5)。

重要

重要

此模块中的代码示例表示将仅限执行模板1(EATP1)升级到仅限执行模板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),即 createAllDashboards。

它还包括一个覆盖(2),设置为 假。这意味着如果我们希望模板创建除了中提到的仪表板之外的任何仪表板template_info.json – 即我们缺少的服务性能仪表板 – 我们必须明确说出来。现在请记住这一点 – 我们很快就会展示该怎么做。

接下来,我们来看看 ui.json。该文件确定配置向导的内容。Execs Only 1没有向导,因此文件中没有任何内容 – 默认情况。

{
  "pages": [
  ]
}

复制

最后,这里是Execs Only 1 rules.json文件,默认也为空。由于用户无法从向导问题中做出任何选择,因此没有关于如何更改仪表板的规则。请注意,有两个部分:常量和规则。我们稍后会详细说明。

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

复制

为了给首席执行官和我们的合作伙伴 – 他们想要什么,我们将编辑所有4个文件。我们将向您展示在接下来的两个单元中如何完成。但首先,还有一些问题可以帮助您获得此模块的徽章。