App Template

应用模板(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模板徽章,

你可能也会喜欢...