系列讲座

在Salesforce DX的两年:一路学到的技巧和技巧

Texei CTO Fabien Taillon透露了他与Salesforce DX合作两年多后可以分享的技巧和技巧。非常适合Salesforce的业余爱好者和专家。

宿主 伦纳德·林德
主讲人 法比安Taillon 首席技术官,Texei
我们将涵盖的领域 Salesforce DX

在这段视频中,Texei的CTO, Fabien Taillon,在与Salesforce DX工作了两年多后,讲述了他可以分享的所有提示和技巧。无论你是Salesforce新手,还是Salesforce专家,只是想学习一些鲜为人知的变通方法,这个视频都会帮助你。

当您观察时,您将对如何处理Profiles、如何部署具有用户名的元数据、如何处理某些推送错误等问题有很好的了解。您将了解如何以及何时清理长时间未使用的元数据,以及如何处理权限集以获得最佳结果。如果您曾经为使用Salesforce DX时遇到的标签、API名称和其他常见问题而苦恼,那么您将欣赏Taillon提供的这些建议。

有经验的Salesforce开发人员和Salesforce新用户都可以从这半小时的视频中了解到Taillon发现并解决的一些常见问题。即使你遇到的问题没有在这里描述,你也会得到一些关于寻找社区支持来解决你的Salesforce DX问题的建议,因此当你在等待Salesforce解决你的支持请求时,观看这个视频是非常棒的。

成绩单
  • 如何通过删除不再使用的元数据来清理生产组织万博max手机网页登录。(00:06:31)
  • 如何决定回购中应该包含什么,不应该包含什么,这取决于谁是元数据的所有者。(00:09:53)
  • 当出现错误说用户没有在这里显示时该怎么办。(00:10:57)
  • API文档概要文件在此实例中的工作方式。[00:15:46]。
  • 在必要时如何以及为什么将所有内容移动到权限集。(00:16:42)
  • 当您得到两个具有相同标签的值时该怎么办?(00:22:50)
  • 如何向社区寻求支持。(00:24:38)

[00:00:15]大家好,欢迎来到另一场Xforce数据峰会的演讲。今天我们请到了法比恩·泰永,他是Salesforce最有价值球员,也是法国Salesforce咨询公司Texei的首席技术官。他会讲Salesforce DX。这次展示的是更多关于他在实际使用中学习的技巧和窍门。

[00:00:40]我非常期待观看它,因为我认为Salesforce DX是Salesforce的一个伟大的新进步,或者说相对较新的进步。这是法比安。大家好,感谢大家的到来。所以,就像你说的,我将展示我在使用Salesforce DX的两三年里学到的东西。让我们开始吧。

[00:01:04]所以请快速介绍一下我自己。如你所说,我叫法比恩·泰永。我是Salesforce最有价值球员已经五年了,我是Texei的首席技术官。到现在为止,我已经管理这个开发团队大概有五六年了。我也是法国触摸梦想活动的一部分。你可以在推特上关注我用这个很好记的推特名称。

[00:01:30]让我们快速回顾一下实验计划所以主要分为两部分。第一部分是关于一般提示。比如,你应该怎么开始,你应该做什么,不应该做什么。然后第二部分是更多地关注具体的问题,比如具体的元数据没有发挥作用。

[00:01:53]你能用XL号的吗?例如,关于配置文件的主题,因为这是Salesforce DX的一个大主题。

[00:02:05]所以我想从著名哲学家尤达的这句名言开始,他说:“要么做,要么不做,没有尝试。”这句话对电影来说很不错,但我要说,不幸的是,对Salesforce DX来说,这可能不是最好的做法。所以说真的,我想说的是,你不需要想太多,你真的需要去尝试。

[00:02:33]那我为什么这么说呢?当你试着看Salesforce DX和文档的时候,你会发现大部分都是基本的例子。所以,是的,你需要帮助一个小时来创建Scratch Org和推拉元数据。只有文档,关于工作的基本内容,所以你不会有关于如何用生产环境的元数据或类似的东西来创建Scratch Org的信息。万博max手机网页登录

[00:03:01]所以文件是很基本的。另一方面,我们也有很多CRAs,主要是由社区推动的。包括一些我自己写的,它们会告诉你关于DX的理论和应该怎么做。有时候,这类事情可能会很复杂。

[00:03:28]就像你应该把你的组织分解成几个包。我们考虑了很多因素,之前可能有点吓人,如果你需要开始考虑所有这些东西,所以,这可能是你在转向DX的最后阶段要实现的目标。但是,它不应该成为表演的阻碍。

[00:03:49]所以事情是这样的,你需要记住的是当你转向DX时,你可能会想我要走到这一步,用DX做所有的事情,所有的事情都应该是完美的,自动化的,这当然是一个目标,但记住你现在在哪里。比方说,个人资料可能是个问题,但你有很多客户。当我让他们说,但即使是现在,我们也不是在汇报档案。我们在生产中手动检查更改,这不是很好。万博max手机网页登录但是这意味着如果DX在第一次迭代中没有配置文件,因为客户今天还没有准备好带来配置文件,那么它就不应该成为一个亮点。

[00:04:35]所以,不要一开始就把目标定在百分之百的完美上,而是要看看你现在所处的位置。因为您可能也使用链集,丢失了大量元数据。您可能已经有很多手动步骤要做了。我的另一个问题是,我正在创建这个粉碎机,但我没有任何数据来玩它。

[00:04:53]好的,但是你的开发沙箱里有数据吗?不,我在开发人员沙箱中没有数据,所以实际上这是相同的问题,但当你谈到移动到DX时,你可能期望从第一步开始的每一个工作。但事实可能并非如此,它也不应该是一个令人厌烦的例子,因为它已经从您今天使用的例子中知道了情况。

[00:05:16][00:05:16]所以。真的,这是我的第一个建议,那就是不要想太多。尝试新东西,真正开始更多的迭代。你不需要从一开始就拥有100%完美的内容。从一些东西开始,从一个小的Scratch Org开始,也许把所有东西都添加到回购或其他东西中。但不要一开始就追求100%完美的目标。

[00:05:41]所以,另一个建议是,你不应该把所有东西都写进回购书里。我一直在和一个客户合作,他创建了一个令人印象深刻的Scratch Org。它就像一个沙盒。你有和Zen投影100%相同的元数据这可能很酷,但创建它需要很多时间。

[00:06:07]另外,他们还拥有所有他们不用的东西的初始布局。所以把所有的东西都放在Scratch Org里是没有意义的。他是我教过的所有科目的复习课,尽管他们可能会用10个好吧。这听起来很有道理。对我们来说,如果你在生产环境中可能有20个反对意见,那并不意味着你需要把它们安装到你的Scratch Org中。万博max手机网页登录

[00:06:31]你只需要在Scratch Org中安装一个你真正需要的。就是这样。因为你可能会有一些,一些动作会添加到从你的生产组织中清理或导出东西,而这在Scratch组织中是没有意义的,因为Scratch组织是一个开发环境。万博max手机网页登录所以下一点是,这是一个清理你不再需要的东西的好机会。

[00:06:52]因为当你开始创建一个Scratch Org时,你会,例如,谈到AppExchange,你会看到可能有10个你不再需要的,你实际上可以从生产中删除。万博max手机网页登录所以请继续,把它们移除。而且,时不时地,你会看到一些物体,发现它们与任何东西都没有联系。

[00:07:13]所以你进入生产,你看表中有多万博max手机网页登录少记录,它实际上是空的。当你开始深入研究,你就会发现这是一个测试,我不知道,五年前,它从来没有被指导过。因此,这是一个很好的机会,看看什么仍在生产。万博max手机网页登录

[00:07:36]但不应该在Scratch Org中,而且应该从生产中清除。万博max手机网页登录我见过的一些东西就像一个失败的过程构建器。所以,当你第一次创建Scratch Org时,你会从他们的产品中获取所有的元数据,试着推动Scratch Org。万博max手机网页登录除非你是一个非常非常非常低调的人,你会有很多错误因为我们会错过一些没有被激活的功能。

[00:08:01]你忘了包含一个元数据什么的。原因有很多。你会时不时地得到一些元数据。即使一切都很完美,也不会部署,您将会得到一个错误,并试图了解原因。然后你进入生产环境,你打开,[00:0万博max手机网页登录8:19]例如,Process Builder,你点击编辑并保存每一个,然后再次保存。

[00:08:24]所以有时在生产元数据中已经不再有效了。万博max手机网页登录这是什么意思呢?这意味着首先你可以从Scratch Org中删除它,或者在生产中修复它,但最有可能的是,它是从未使用过的东西。万博max手机网页登录所以这是一个很好的机会,从回购和生产环境中清除这种元数据。万博max手机网页登录

[00:08:47]然后,要记住的是这个Scratch Org,它不是一个生产的神圣拷贝。万博max手机网页登录这是一个开发环境。所以你不需要把所有东西都放在Scratch Org里。例如,如果你考虑你的列表视图,你的报告,它可能在Scratch Org中,也可能不在。你可能会想,谁是这种元数据的所有者?

[00:09:10]如果有人需要更改报表或列表视图,应该由管理员在生产中更改它吗?万博max手机网页登录因为它很快,不需要要求,或者这是开发团队会结束的东西。如果开发团队只是在这种意义上,它就是一个回购。否则,它应该只存在于生产中。万博max手机网页登录

[00:09:30]所以我通常做的是他们主要是技术领导或者报告。除非你引用元数据,比如修复页面之类的。但除此之外,我们不用它。我不把这些报告放在Scratch Org的这些使用或存储库中,因为我不希望业务部门的人来找我说,嘿,改了。

[00:09:53]还有一件事他们应该能够在生产中直接更改它。万博max手机网页登录所以你真的需要考虑什么应该在回购中什么不应该在回购中这取决于谁是这种元数据的所有者。

[00:10:09]最后我们要讲的是你应该只添加你将要添加的东西,你能够从Scratch Org中更新和部署的东西。例如,关于元数据的一个问题让我能够使用Scratch Org进行部署。我现在转到DX的具体问题上。

[00:10:33]就是一些元数据引用了一些用户名,当你创建一个Scratch Org时,他们实际上是一个用户。您从Scratch Org生成一个用户,并且您的生产环境中没有任何新用户。万博max手机网页登录因此,如果你想显示元数据引用一个用户,你不能部署它,因为它只会抛出一个错误。

[00:10:57]说用户不在这里展示。所以,你可以做一些事情。首先是重构,因为它并不适用于所有元数据,但对于其中一些元数据你可以用Queue或Public Group替换或输出用户名,这是有意义的,因为。

[00:11:24]你将有一个队列或公共组的引用,它将清空你的Scratch Org,[00:11:29]这是你的包和项目的一部分。然后就得由管理和生产部门来选择这个组的一部分谁应该收到你的程序的电子万博max手机网页登录邮件,它不应该链接到你的应用程序的某个版本,因为它只是。

[00:11:48]把一个用户转换成另一个用户或其他什么。因此,我认为有必要尽可能地删除,带有Queue或Public Group的用户名,它可能会被生产中的管理员撤销。万博max手机网页登录但不幸的是,有些东西还没起作用。

[00:12:07]也许是因为,DX也是如此,但是一个又一个的版本都在改进。有一些事情,比如当你试图更新时,关注的所有者。这个特定的选项不允许将Queue设置为所有者。你想要途径或机会,而不是在这个特定的数组中获得用户名。

[00:12:29]可能是一个过程构建者或[00:12:31]领域的数据工作。所以。这里你有两个选择。要么你会说,嘿,当我把这个元数据部署到Scratch Org时,我可以动态地用Scratch Org的用户名替换元数据中的一些东西。

[00:12:50]但。这真的有意义吗,因为这是一个开发环境。即使它被部署了,但你不能改变它,有一个用户故事说你应该用这个替换这个,你不能做一个Scratch Org让所有东西都有意义。所以Scratch Org,也许不是。

[00:13:07]所以你应该对这个特定的动作有很多依赖。当然,我并没有尝试编写脚本来动态替换用户。哦,那为什么他只是一个你不需要的小数据字段,你必须要么手动生成元数据要么在生产中手动完成。万博max手机网页登录

[00:13:25]在Scratch Org上回购没有意义。所以,这取决于你。是不是有些,有些东西要来了。[00:13:31] Salesforce试图撤销这种用例。不过我认为应该在夏天开始,不过我认为在一年左右的时间内不会开始。再说一次,这是即将到来的东西,现在,你应该按照这种方式,要么把它替换掉,要么就不要把它放在报告中。

[00:13:51]所以DX的一个非常好的优点是,因为所有东西都在你的回购中,它不再是组织作为参考。真相的来源是这份报告。你可以写任何你想写的东西。这就是问题所在。您可以创建一些代码来编写脚本,并尝试在部署过程中动态替换它。

[00:14:16]例如。我的建议是,不要用shell或者其他DevOps之类的东西来编写脚本。再次创建客户主题。因此,如果你正在使用相同的DX,你已经知道Salesforce,从你的肩膀上[00:14:35]工具,你可以在相同的架构上创建你的拔插,你可以在SFDX插件中直接安装到Salesforce或CLA工具中。

[00:14:49]它有几个优点,那就是你可以用它来做几个项目。而且它还提供了很多现成的东西。如果我们看到一个官方的Salesforce工具,你连接了,我不知道,比方说,10个手臂。哦,断开,已经完成并给你的插件。你不必再撤销连接了。

[00:15:16]这是框架的一部分,由Salesforce的CLA提供,你可以访问你的连接,只需要一行,就可以执行查询。创建一个对你的组织的查询,你有一些,比如spinner之类的。所以,嗯。不要在任何shell或合适的shell中使用特定的脚本,只做一个客户主题插件。

[00:15:46]我认为这是拍这种剧本的一种方式。下一个是简介。剖面还是有点棘手,它不是100%的解,但我们看看我们做了什么。那么它首先是如何工作的呢?如果查看元数据,就会发现API文档配置文件的设计目的是检索和部署来自同一包中的组件的访问权限。

[00:16:17]因此,如果我检索一个包含一个字段的配置文件,我将得到这个特定字段的一个证券字段。如果我用两个字段再次检索它,第一个字段将从XML中删除,就像我刚刚检索的那个字段一样。将在XML文件中,这与DX推和拉工作不太好,我每次只是部分检索。

[00:16:42]所以要有一个100%完整的资料,拥有你想要的所有访问权限并不容易。当你看Salesforce的文档博客文章时,你看到的是他们建议转到权限集,如果你知道我们的权限集和配置文件是有效的,你可能会,你可能会说,因为,因为那并不是对所有用例都有效。

[00:17:08]那为什么呢?权限集很酷因为如果我给你写一个配置文件,如果你同时给我元数据的访问权限和检索权限集,它会一直给我权限集,所以不会有东西丢失的问题或者我知道权限集里有什么。并不是所有东西都在权限集中。

[00:17:33]缺的主要是页面布局赋值。所以你应该在权限集上部署,你不会把所有的页面布局分配从你的Scratch组织部署到你的生产组织,还有一些东西,比如作为一个默认的应用程序或对象的默认关注类型。万博max手机网页登录

[00:17:51]实际上这是有道理的,因为你只有一个简介。你可以说这是一个默认应用程序,但如果你有10个权限集每个权限集都说,嘿,这是一个默认应用程序。已经没有默认的应用程序了,所以它永远不会在权限保护中。

[00:18:11]所以你必须找到一种拥有这些东西的方式。我们所做的是,首先我们把所有东西都移到许可集。已经有很多东西了,用户权限,字段权限,对象权限,等等。课程许可,我得到了一个非常好的链接,从Salesforce开发的重磅博客帖子开发者。

[00:18:34]上面列出了所有的元数据。哦,所有的标签,它是配置文件元数据它会告诉你是否可以[00:18:00]移动到权限集上,所以你可以看到我之前的幻灯片,是一些东西,比如布局分配,我没有可用的权限集。首先,如果这能帮助你移动所有你能移动到的权限集到你要去的地方,你肯定不会有任何用户问题。

[00:19:03]但是剩下的呢,比如页面布局分配?所以我们创建了客户主题插件。在我们的Texei自定义插件中,你可以免费使用它。那么它是如何工作的呢?因此,请确保在使用它时,您不会期望检索完整的配置文件。

[00:19:28]也就是说,你可以把所有东西都移到一个权限集中,但我仍然需要检索所有其他的东西,但用元数据API无法获得完整的配置文件。除非我能同时找回所有我需要的东西。因此,该公司所做的就是阅读你的[00:19:45]本地报告,寻找所有的档案、记录类型和布局上的应用程序。

[00:19:51]你会在你的报告中发现。在幕后,我们可以创建一个XML包并检索所有内容,这是保存本地文件的唯一方法。作为你要求的档案。访问权限是特定于配置文件的,也就是

[00:20:07]那可能是引入你不想要的资料,因为它是权限集的一部分。它将被移除。因此,使用此命令,您可以确定将获得所需的概要文件。这并不是100%完美的因为这意味着在你提交所有东西之前,你需要考虑运行这个命令manual user你可能会错过一些东西。

[00:20:37]还有一些事情,所以当你第一次从头创建一个配置文件时,一些权限和不属于元数据的部分,我们会通过[00:20:49]默认将它们发送为true。这个命令可能会有一些不同。它是开源的,所以我在想也许添加一些东西来确保在生产检查中它是开源的,所以你可以尝试使用它并尝试做一些拉请求,如果你认为你有一个改进的方法。万博max手机网页登录

[00:21:15]所以,我想,我们在两个项目中尝试了它,它很有效。虽然不是100%完美,但还是比Salesforce的另一个解决方案好,后者不是很完美。最后一个话题是关于Salesforce的一个非常具体的问题。

[00:21:42]我发现使用前推或后推可以避免一些Salesforce的书籍。所以时不时会有一些奇怪的事情,我真的不知道为什么或者什么时候该诚实。[00:21:57]当我一次性部署所有东西时,我会得到一个错误,说没有RecordTypeID字段。

[00:22:06]因为我认为在同样的部署中,我不知道,我会被部署,在幕后,但是,可能是RecordTypeID字段用于新目标,在一些元数据考虑之前创建。时不时地,我只需要做一个准备推送也就是所有元数据的world推送。

[00:22:26]只需要创建一个RecordTypeID,然后他们就可以推送其他内容了。所以在这个系统中,你说的会有一个特别的突出点吗?举个例子,和这些用法语的组织合作。所以当我进入生产,如果我按照你设定的标准万博max手机网页登录,比如说机会状态,我就会有一个标签。

[00:22:50]所以Gagne指的是一个因此,您将有两个东西:标签和API名称。所以在我的产品中,万博max手机网页登录使用相同的标签和API名称[00:22:59]。所以是加涅和加涅。但问题是,当我创建一个Scratch Org时,当我要求用法语创建一个Scratch Org时,它并不是这样创建的。

[00:23:10]它是用Gagne作为标签创建的,但仍然是Won作为API名称。这在部署时就不能很好地工作,因为如果我在Gagne上部署一个Gagne,这是我的生产环境的元数据,到Scratch Org,它不会取代Scratch Org中现有的值。万博max手机网页登录它会说已经有了。

[00:23:34]值,它的标签是Gagne,但API名称不同。我不能有两个有相同标签的值,所以对它做一些处理。所以我认为它更像API,但它仍然不能工作。所以你能做什么,我在做什么,我没有说这是最好的解决方案,但它是有效的。

[00:23:54]我在做一个预推,就像我对RecordTypeID做的那样。我只是在部署,例如,机会[00:24:03]状态,一个虚拟值。我们做了什么?我们将在Scratch Org中部署这个值。Gagne 1是一个活动,是Scratch Org中的值,任何值。

[00:24:16]然后我就能把我真正的元数据部署到某个Scratch Org上了。这个技巧并不完美,但很有效。它使你能够创建一个Scratch Org,我只是,因为DX在一个又一个版本中变得越来越好。这是我要移除的东西,一旦我得到,当它被修复。

[00:24:38]最后一张幻灯片,那就是你真的应该去社区。如果你对我做的链接感兴趣,你可以看到所有Salesforce的元数据你可以看到API支持什么。你知道,回头看看源跟踪是否有已知的问题,有点有用。您可以根据API版本进行筛选。

[00:25:05][00:25:05]接下来是CLI问题。这是来自CLI的一个非常具体的报告。里面没有绳子。但是如果你看到Salesforce的CLI命令有问题,你可以去Salesforce创建一个来自Salesforce的特定报告的问题,他们正在查看并试图修复它。在某种程度上将在CLI上开源。

[00:25:31]但与此同时,这是一个回到Salesforce团队的好机会,不用去创造案例,也不用花时间。好吧,实际上,这两件事都要做。创建一个案例,然后进入问题。然后还有一个开拓者社区,在那里你可以问你的问题,因为已经有很多像我和其他一些人一样的人可能会回答你。此外,Salesforce的聪明人正在研究它,也许可以帮助你解决问题。

[00:26:03]我们简单回顾一下刚才的内容。第一件事是不要想太多。开始做一些事情,即使它并不完美。如果你的目标是100%,你永远,永远都不会做到。不要把所有东西都写在回购书里。看看你真正需要的是什么,从生产组织可能是干净的。万博max手机网页登录您需要编写您需要的脚本,因为这是避免一些手动步骤的好机会。您可能会在创建或部署过程中遇到一些问题,然后到社区中提出问题,如果发现一些问题,还会分享您的解决方案。就是这样。谢谢你! Okay. I have a couple questions on that duplicate label, just to get an idea of how responsive Salesforce is, the duplicate label thing, you showed the and then one that looks like just a bug, right?

(00:27:02)是的。他们是否承认这是一个错误并给出了一个修复的时间表?不。所以我认为我几乎为我发现的每一个问题都创建了一个案例,而我从来没有真正得到任何时间框架或其他东西来处理这类问题。所以我不知道这一幕还有多远才结束。例如,标准值集,这是一个突出的说。

[00:27:27]他们最近没能摆脱绒毛。所以仍然有一些创业公司没有任何API。我认为,例如,合同状态,如果你有一些客户使用它。该字段没有API。因此,您只需要手动操作,或者创建带有层的脚本,或者向您出售您可以创建的任何类型的工具,这总比什么都没有好。

[00:27:56]但我想他们应该解决这类问题,但他们也需要首先完成API缺失的部分,这类元数据。所以也许我们会到那一步,但我不知道什么时候。那你有没有向他们的GitHub报告过命令行[00:28:14]的错误呢?

[00:28:19]你觉得他们修复得更快了吗?所以,是的,没错。我认为他们在CLI GitHub repo上反应更灵敏。我不知道这是不是因为我要支持的东西,也许到达工程团队会更慢。然而,当你很快得到答案时,这并不意味着他们会立即修复它,因为有时,这只是,取决于作为一个团队,如果是Salesforce服务端,他们只需要等待另一个团队修复它,并在下一个版本或工具中部署。

[00:29:00]所以不管怎样它都可能很慢。但实际上你会得到一些答案。也许他们会告诉你。所以您需要等三个月,但至少我们得到了服务。所以这绝对是一个工作的好地方。所以已经使用了,CLA的一部分是开源的。

[00:29:18]所以不是所有的东西,只是一小部分[00:29:20]你可以,我,我想我修正了一个问题,或者主要是为了好玩,玩玩它。我可以通过拉请求来解决这个问题。当你得到CLI的支持时,这并不意味着你必须自己修复它。但是,如果您需要花费5个小时在新煤上创建一个案例,并时不时地为一个小bug提供支持,那么您可以通过支持请求自己修复它,这样会更容易。

[00:29:51]。正确的。太好了。非常感谢你的演讲。我想让所有人知道,所有看过这个演示的人或者没有看过Bash的演示的人,Bash是一个开发人员或者管理员,他概述了Salesforce DX。所以这两个演讲是相辅相成的。

[00:30:15]再次感谢法比恩,感谢你精彩的演讲,感谢你对Salesforce DX的真实知识。谢谢你们邀请我。

今天就集成您的数据仓库ManBetX万博客服

尝试整合。IO免费7天。不需要信用卡。

Baidu
map