DEX502

Module 15: Embedding Web Pages and Applications Within Salesforce

课程介绍

今天我们来聊聊模块15的内容——嵌入网页和Salesforce内的应用程序。这个模块其实挺有意思的,因为它让我们可以把外部的网页或者应用程序直接嵌入到Salesforce里面,这样我们就不用跳来跳去,在一个地方就能完成所有的工作。 首先,嵌入网页是什么意思呢?简单来说,就是我们可以把一些外部的网页,比如公司的官网、客户的支持页面,甚至是第三方的服务页面,直接放到Salesforce的某个页面或者记录里面。这样,当你在Salesforce里查看某个客户的信息时,你可以直接看到这个客户在你们公司官网上的活动记录,或者他们在支持页面上的问题反馈,非常方便。 那怎么实现呢?Salesforce提供了一个叫做“Web Tab”的功能。你可以通过这个功能创建一个新的标签页,然后把你想要嵌入的网页的URL放进去。保存之后,这个网页就会作为一个标签页出现在Salesforce的界面上,你可以随时点击查看。 接下来,我们说说Salesforce内的应用程序。Salesforce本身就是一个非常强大的平台,它允许我们创建自己的应用程序,或者集成第三方的应用程序。这些应用程序可以直接运行在Salesforce的环境里,和Salesforce的数据、功能无缝集成。 举个例子,假设你们公司有一个专门用来管理项目进度的应用程序。你可以把这个应用程序集成到Salesforce里面,这样当你在Salesforce里查看某个项目的时候,你可以直接看到这个项目的进度、任务分配、时间表等信息,而不需要再打开另一个系统。 Salesforce提供了很多工具和API,让开发者可以轻松地把外部应用程序集成进来。比如,你可以使用Salesforce的Lightning框架来创建自定义的应用程序组件,或者使用Salesforce Connect来连接外部数据源。 总的来说,嵌入网页和集成应用程序这两个功能,大大增强了Salesforce的灵活性和扩展性。你可以根据自己的业务需求,把各种外部资源整合到Salesforce里面,让工作流程更加高效和顺畅。 好了,今天的内容就到这里。希望你们对嵌入网页和Salesforce内的应用程序有了更清晰的理解。如果有任何问题,随时问我哦!

课程章节

本课程共有 55 个章节

  • 1

    Module 15: Embedding Web Pages and Applications Within Salesforce

    第 621 页

    今天我们来聊聊模块15的内容——嵌入网页和Salesforce内的应用程序。这个模块其实挺有意思的,因为它让我们可以把外部的网页或者应用程序直接嵌入到Salesforce里面,这样我们就不用跳来跳去,在一个地方就能完成所有的工作。 首先,嵌入网页是什么意思呢?简单来说,就是我们可以把一些外部的网页,比如公司的官网、客户的支持页面,甚至是第三方的服务页面,直接放到Salesforce的某个页面或者记录里面。这样,当你在Salesforce里查看某个客户的信息时,你可以直接看到这个客户在你们公司官网上的活动记录,或者他们在支持页面上的问题反馈,非常方便。 那怎么实现呢?Salesforce提供了一个叫做“Web Tab”的功能。你可以通过这个功能创建一个新的标签页,然后把你想要嵌入的网页的URL放进去。保存之后,这个网页就会作为一个标签页出现在Salesforce的界面上,你可以随时点击查看。 接下来,我们说说Salesforce内的应用程序。Salesforce本身就是一个非常强大的平台,它允许我们创建自己的应用程序,或者集成第三方的应用程序。这些应用程序可以直接运行在Salesforce的环境里,和Salesforce的数据、功能无缝集成。 举个例子,假设你们公司有一个专门用来管理项目进度的应用程序。你可以把这个应用程序集成到Salesforce里面,这样当你在Salesforce里查看某个项目的时候,你可以直接看到这个项目的进度、任务分配、时间表等信息,而不需要再打开另一个系统。 Salesforce提供了很多工具和API,让开发者可以轻松地把外部应用程序集成进来。比如,你可以使用Salesforce的Lightning框架来创建自定义的应用程序组件,或者使用Salesforce Connect来连接外部数据源。 总的来说,嵌入网页和集成应用程序这两个功能,大大增强了Salesforce的灵活性和扩展性。你可以根据自己的业务需求,把各种外部资源整合到Salesforce里面,让工作流程更加高效和顺畅。 好了,今天的内容就到这里。希望你们对嵌入网页和Salesforce内的应用程序有了更清晰的理解。如果有任何问题,随时问我哦!

    查看详情
  • 2

    Module Objectives - 622

    第 622 页

    让我们来聊聊这个模块的目标。在这个模块结束的时候,你将能够做到两件事。 首先,你会学会如何使用Visualforce来创建一个混搭。简单来说,混搭就是把不同的数据或者功能整合在一起,形成一个统一的界面。Visualforce是Salesforce提供的一种工具,它可以帮助你创建自定义的用户界面。通过它,你可以把来自不同地方的数据或者功能整合到一个页面上,让用户在一个地方就能看到所有需要的信息。 其次,你会了解如何使用Salesforce Platform Canvas来促进Salesforce平台与Web应用程序之间的集成。Canvas是一种技术,它允许你在Salesforce的界面上嵌入外部的Web应用程序。这样,你就可以在Salesforce中直接使用这些外部应用的功能,而不需要离开Salesforce环境。这对于提高工作效率和用户体验非常有帮助。 总的来说,这个模块的目标是让你掌握如何利用Visualforce和Canvas这两种强大的工具,来创建更加灵活和集成的Salesforce应用。这样,你就能更好地满足业务需求,提升用户的使用体验。

    查看详情
  • 3

    Module Agenda - 623

    第 623 页

    今天我们来聊聊Salesforce中的一个非常有趣的功能——画布(Canvas)。这个功能可以让你在Salesforce和Salesforce移动应用程序中,轻松地混搭和展示外部应用的内容,给用户带来更强大的视觉体验。 想象一下,你正在使用Salesforce,突然需要查看一个外部应用的数据,比如一个图表或者一个报告。通常,你可能需要切换到另一个浏览器标签或者应用,这样不仅麻烦,还容易打断你的工作流程。但是,有了画布功能,你就可以直接在Salesforce的界面中嵌入这些外部应用的内容,就像它们本来就是Salesforce的一部分一样。 画布功能的核心思想是“混搭”,也就是把不同的应用和服务整合在一起,形成一个无缝的用户体验。你可以把外部的网页、应用、甚至是自定义的界面,直接嵌入到Salesforce的页面布局中。这样,用户就可以在一个地方完成所有的工作,而不需要来回切换。 举个例子,假设你有一个外部的数据分析工具,它可以生成漂亮的图表和报告。通过画布功能,你可以把这个工具的界面嵌入到Salesforce的机会记录页面中。这样,销售人员在查看机会时,可以直接看到相关的数据分析,而不需要离开Salesforce。这不仅提高了工作效率,还让数据展示更加直观和生动。 画布功能还支持移动设备,这意味着你可以在Salesforce移动应用程序中,同样享受到这种无缝的混搭体验。无论你是在办公室还是在外出差,都可以随时随地访问和查看这些嵌入的内容。 总的来说,画布功能为Salesforce和Salesforce移动应用程序带来了更多的灵活性和视觉力量。它让你可以轻松地将外部应用的内容整合到Salesforce中,提升用户体验,简化工作流程。希望这个功能能为你的Salesforce之旅带来更多的便利和乐趣!

    查看详情
  • 4

    What is the Lightning Component Framework?

    第 625 页

    让我们来聊聊Lightning组件框架。你可以把它想象成一个工具箱,里面装满了各种工具,帮助开发者在Salesforce平台上构建漂亮、功能强大的网页和移动应用。 这个工具箱的名字叫Lightning组件框架,它是在一个叫做Aura的技术基础上建立起来的。Aura就像是这个工具箱的底层结构,而Lightning组件框架则是在这个结构上添加了更多的新工具和功能,让开发者能更轻松地创建出动态的、交互性强的应用。 现在,这个工具箱已经完全融入了Salesforce平台,这意味着开发者可以直接在Salesforce中使用这些工具,不需要再去其他地方找。无论是网页应用还是移动应用,Lightning组件框架都能提供强大的支持,让开发过程变得更加高效和愉快。 所以,简单来说,Lightning组件框架就是一个让开发者能快速、轻松地构建出漂亮应用的强大工具集。

    查看详情
  • 5

    What is the Salesforce Mobile Software Development Kit (SDK)?

    第 626 页

    今天我们来聊聊Salesforce的移动软件开发套件,也就是我们常说的SDK。这个SDK是Salesforce提供的一套工具,帮助开发者快速构建移动应用。想象一下,你有一个想法,想要创建一个移动应用,这个SDK就像是你的工具箱,里面装满了各种工具,让你可以轻松地开始你的项目。 首先,这个SDK支持,跨平台,开发,这意味着你可以用同一套代码,开发出能在多个平台上运行的应用,比如iOS和Android。这样,你就不用为每个平台单独写代码了,大大节省了时间和精力。 其次,SDK提供了,快速的开发周期,。它内置了很多现成的功能和组件,比如用户认证、数据同步等,这些都可以直接拿来用,不需要从头开始写。这样,你就可以更快地把应用推向市场。 再来,SDK还支持,即时更新,。这意味着你可以在不重新发布应用的情况下,更新应用的内容或功能。这对于保持应用的活力和用户的兴趣非常重要。 此外,SDK还允许你利用设备的原生功能,比如摄像头、GPS等,来提供,丰富的用户体验,。你可以创建出,类似应用程序的体验,,让用户感觉就像在使用一个原生应用一样。 最后,SDK支持,原生,和,混合,开发模式。原生开发意味着你可以直接使用平台特定的语言和工具,比如Swift或Kotlin。而混合开发则允许你使用HTML5等技术,来创建跨平台的应用。 总之,Salesforce的移动SDK是一个非常强大的工具,无论你是想快速开发一个应用,还是想利用设备的功能来提供更好的用户体验,它都能帮你实现。记得经常访问developer.salesforce.com,获取最新的更新和信息哦!

    查看详情
  • 6

    Module Agenda - 627

    第 627 页

    今天我们来聊聊Salesforce中的几个非常有趣且强大的功能:模块预设、混搭、视觉力量以及画布。这些功能都是为了帮助我们更好地定制和使用Salesforce平台,无论是通过桌面还是移动应用程序。 首先,,模块预设,。这个功能允许我们为Salesforce和Salesforce移动应用程序设计特定的界面和功能。简单来说,就是你可以根据不同的用户角色或业务需求,预设好他们看到的界面和可用的功能。比如,销售人员可能只需要看到客户信息和销售机会,而客服人员则可能需要看到客户支持案例。通过模块预设,我们可以轻松地为不同角色的用户定制他们所需的信息和工具。 接下来是,混搭,。混搭这个词听起来可能有点复杂,但其实很简单。它指的是将Salesforce的数据和功能与其他应用程序或服务结合起来使用。比如,你可以将Salesforce的客户数据与Google地图结合起来,直接在Salesforce中查看客户的地理位置。这样,销售人员在外出拜访客户时,就可以更方便地规划路线了。混搭让我们能够打破数据孤岛,将不同的系统和工具整合在一起,提升工作效率。 然后是,视觉力量,。这个功能主要是关于如何通过可视化的方式展示数据。Salesforce提供了丰富的图表和报表工具,帮助我们将复杂的数据转化为直观的图形。比如,你可以创建一个销售漏斗图,清晰地看到每个阶段的销售机会数量。这样,管理层可以一目了然地了解销售进展,及时做出决策。视觉力量让我们能够更轻松地理解和分析数据,从而做出更明智的业务决策。 最后是,画布,。画布是Salesforce中的一个非常灵活的工具,它允许我们自定义用户界面。你可以把画布想象成一张白纸,你可以在上面自由地添加各种组件,比如文本框、按钮、图表等。通过画布,我们可以为不同的业务场景设计出最适合的界面。比如,你可以为销售团队设计一个简洁明了的仪表盘,显示他们的销售目标和完成情况。画布让我们能够根据实际需求,灵活地调整和优化用户界面,提升用户体验。 总结一下,模块预设、混搭、视觉力量和画布,这些功能都是为了帮助我们更好地定制和使用Salesforce平台。通过这些工具,我们可以为不同角色的用户设计出最适合他们的界面和功能,将Salesforce的数据与其他应用程序结合起来,通过可视化的方式展示数据,并灵活地自定义用户界面。希望这些内容能帮助你更好地理解和使用Salesforce。如果有任何问题,随时问我哦!

    查看详情
  • 7

    Mashup: Scenario

    第 628 页

    今天我们来聊聊“混搭:场景”这个概念。想象一下,你有一个工具箱,里面有各种各样的工具,比如锤子、螺丝刀、钳子等等。每个工具都有它特定的用途,对吧?但是,有时候你可能需要同时使用几个工具来完成一个更复杂的任务。这就是“混搭”的意思——把不同的东西组合在一起,创造出新的可能性。 在Salesforce中,“混搭:场景”也是类似的。Salesforce提供了很多不同的功能和工具,比如销售、服务、市场营销等等。每个功能都有它自己的用途,但有时候,你可能需要把这些功能组合起来,来解决一个更复杂的问题。这就是“混搭:场景”的核心思想。 举个例子,假设你是一家公司的销售经理,你需要跟踪客户的购买历史、服务请求和市场营销活动。你可以使用Salesforce的销售模块来跟踪购买历史,用服务模块来管理服务请求,用市场营销模块来跟踪营销活动。但是,如果你能把这些模块的数据整合在一起,形成一个完整的客户视图,那岂不是更好?这就是“混搭:场景”的应用——通过整合不同的功能,创造出更强大的解决方案。 所以,下次当你面对一个复杂的问题时,不妨想想如何“混搭”Salesforce的各种功能,来找到最佳的解决方案。就像你在工具箱里找到合适的工具组合一样,Salesforce也能帮助你找到最合适的“混搭”方式,来解决你的业务挑战。

    查看详情
  • 8

    What is a Mashup?

    第 629 页

    让我们来聊聊什么是Mashup。想象一下,你有一个拼图,每一块拼图都来自不同的盒子。Mashup就像是你把这些不同来源的拼图块拼在一起,创造出一个全新的画面。 在技术世界里,Mashup通常指的是将来自不同来源的数据或功能快速、简单地集成在一起,创造出新的应用或服务。比如,你可以点击一个按钮(我们称之为“单击1”),就能看到整个Salesforce(SFDC)的页面;再点击另一个按钮(“单击2”),就能看到一个嵌入的Google地图。这两个功能原本是独立的,但通过Mashup,它们被巧妙地结合在一起,为你提供了一个更丰富、更便捷的体验。 维基词典对Mashup的定义是:混搭一词意味着简单、快速的集成,经常使用API(应用程序编程接口)和数据源来产生并非产生原始源数据的原始原因的结果。简单来说,就是通过技术手段,把不同的东西“混搭”在一起,创造出新的、有用的东西。 所以,下次当你听到Mashup这个词时,就可以想象到,它就像是一个技术上的“拼图游戏”,把不同的数据和功能拼在一起,创造出新的可能性。

    查看详情
  • 9

    What Are Some Examples of Mashups?

    第 630 页

    让我们来聊聊混搭的一些示例。混搭,其实就是把不同的东西巧妙地结合在一起,创造出新的、有趣的效果。 比如说,在音乐领域,混搭就非常常见。你可以把古典音乐和流行音乐的元素融合在一起,创造出一种既优雅又动感的音乐风格。想象一下,贝多芬的交响乐和现代电子音乐的节奏交织在一起,是不是很酷? 再比如,在时尚界,混搭也是一种流行的穿搭方式。你可以把不同风格的衣服搭配在一起,比如把正式的西装外套和休闲的牛仔裤混搭,或者把甜美的连衣裙和帅气的皮靴搭配,这样就能打造出独特的个人风格。 还有,在美食领域,混搭也能带来意想不到的美味。你可以尝试把不同国家的菜肴融合在一起,比如把意大利的披萨和日本的寿司结合起来,创造出一种全新的美食体验。 总之,混搭就是一种创新和尝试,它让我们能够打破常规,发现更多的可能性。希望这些示例能给你带来一些灵感,让你在自己的生活中也尝试一下混搭的乐趣!

    查看详情
  • 10

    What is an Example of a Mashup Displaying Related Data?

    第 631 页

    让我们来聊聊Mashup收件箱和它相关的数据示例。想象一下,你有一个收件箱,但这个收件箱不仅仅能收到邮件,它还能显示来自不同系统的各种信息。这就是Mashup收件箱的魔力所在。 在这个例子中,我们使用了一个内部应用程序,比如SAP,来构建这个Mashup。SAP是一个在企业内部网中广泛使用的系统,它管理着很多重要的业务数据。通过Mashup,我们可以把这些数据整合到一个收件箱里,方便你查看和管理。 那么,这个收件箱里会显示哪些数据呢?让我们来看看几个例子: 1. ,订单历史,:你可以看到所有过去的订单记录。这样,当你需要查找某个订单的详细信息时,就不用再跳转到其他系统了。 2. ,待定发票,:这里会列出所有还未处理的发票。你可以直接在收件箱里查看这些发票的状态,甚至可以直接处理它们。 3. ,支付历史,:你可以查看所有的支付记录,了解每一笔款项的来龙去脉。 4. ,信用限额/风险敞口,:这部分数据会告诉你客户的信用状况和风险敞口。这样,你在做决策时就能更加心中有数。 通过这个Mashup收件箱,你可以在一个地方集中查看和管理所有这些数据,而不需要在不同的系统之间来回切换。这不仅节省了时间,还提高了工作效率。 所以,Mashup收件箱就像是一个超级收件箱,它把来自不同系统的信息整合在一起,让你在一个地方就能掌握所有重要的业务数据。是不是很方便呢?

    查看详情
  • 11

    How Does a Mashup Implemented with a Link Work?

    第 632 页

    今天我们来聊聊如何在Salesforce中使用Link实现混搭。混搭的意思就是让Salesforce和其他外部系统能够无缝连接,让用户在使用Salesforce的同时,也能方便地访问外部系统的数据或功能。 首先,我们来看一下如何将用户带到外部系统。你可以通过一个链接来实现这一点。这个链接通常是一个URL,它会指向外部系统的某个页面或功能。这个URL里可能还会包含一些参数,用来告诉外部系统你需要获取哪些特定的数据。比如,你可能需要传递一个客户的ID,这样外部系统就能直接显示这个客户的相关信息。 接下来,我们来看看如何实现这个功能。在Salesforce中,有几种常见的方式可以创建这样的链接: 1. ,标准或自定义按钮,:你可以在Salesforce的页面上添加一个按钮,点击这个按钮就会跳转到外部系统的URL。这个按钮可以是标准的,也可以是自定义的,具体取决于你的需求。 2. ,使用HyperLINK/IMAGE的公式字段,:你可以在一个字段中使用公式来生成一个超链接。这个超链接可以是一个文本链接,也可以是一个图片链接。当用户点击这个链接时,他们就会被带到外部系统的页面。 3. ,视觉力量标签,:如果你使用的是Salesforce的Lightning Experience,你可以使用视觉力量标签来创建一个链接。这个标签可以放在页面的任何位置,点击它就会跳转到外部系统的URL。 最后,需要注意的是,这种链接是同步的。也就是说,当用户点击链接时,他们会立即被带到外部系统的页面,而不会对Salesforce页面的加载产生任何影响。 总结一下,使用Link实现混搭其实很简单。你只需要创建一个指向外部系统的URL,然后通过按钮、公式字段或视觉力量标签将这个链接放在Salesforce的页面上。这样,用户就可以方便地在Salesforce和外部系统之间切换了。 希望这个解释对你有帮助!如果你有任何问题,随时问我哦。

    查看详情
  • 12

    How Do You Embed External Content within a Salesforce Page?

    第 633 页

    今天我们来聊聊如何在Salesforce页面中嵌入外部内容。这其实是一个很实用的功能,特别是当你需要在Salesforce界面中展示一些没有直接存储在Salesforce里的数据时。 首先,我们来看看iFrames。iFrames是一种非常常见的方式,它允许你将外部系统的内容直接嵌入到Salesforce页面中。你只需要提供一个URL,这个URL通常会包含一些参数,用来请求特定的数据。然后,这个外部内容就会在你的Salesforce页面中显示出来。不过,这里有个小细节需要注意:如果你的Salesforce页面是通过HTTPS加载的,而外部内容是通过HTTP加载的,那么有些浏览器可能不会显示这些内容。所以,开发者在设置时要注意这一点。 另外,使用iFrames时,内容加载是同步的,这意味着用户可能需要等待外部内容完全加载后,才能继续操作页面。 接下来,我们聊聊画布框架。画布框架是Salesforce提供的一种更高级的嵌入方式,它允许你更灵活地集成外部应用。不过,这里有个重要的提醒:由于你通过这种方式展示的数据并没有存储在Salesforce中,所以你不能对这些数据进行报告。也就是说,你不能直接在Salesforce中生成关于这些数据的报表。 最后,作为开发者,你需要特别注意HTTPS和HTTP内容的显示问题。因为用户的浏览器设置可能会影响内容的显示,而这些设置是开发者无法控制的。 希望这些信息对你有帮助!如果你有任何问题,随时提问。

    查看详情
  • 13

    Any application. Any user interface. Any device.

    第 634 页

    让我们来聊聊Visualforce,这是一个非常强大的工具,它允许你在Salesforce平台上创建自定义的用户界面。想象一下,你有一个应用程序,你希望它不仅仅在电脑上运行,还能在手机、平板甚至是信息亭上运行。Visualforce就能帮你实现这一点。它使用标记语言,这意味着只要设备能理解这种语言,你的应用程序就能在上面运行。 现在,关于品牌和造型的问题。虽然Visualforce可以让你在应用程序中创建独特的品牌体验,但它并不是用来改变Salesforce本身的品牌形象的。Salesforce有很多内置的界面和功能,这些是不容易用Visualforce来覆盖或重建的。如果你想要调整样式,使用样式表(CSS)会是更简单直接的方法。 再来说说命名空间。当你在App Exchange上安装一个应用程序时,这个应用会有一个自己的命名空间。这个命名空间会体现在Visualforce页面的URL中。比如,如果你的应用命名空间是“ns”,而你创建了一个名为“test”的页面,那么这个页面的URL就会是类似于“ns.na5.visual.force.com/tex/test”这样的形式。 最后,如果你想深入了解Visualforce,可以访问developer.force.com,那里有很多详细的白皮书和资源,帮助你更好地理解和使用这个工具。希望这些信息对你有帮助!

    查看详情
  • 14

    Does Visualforce Fit within the Model/View/ Controller Pattern?

    第 635 页

    让我们来聊聊Visualforce和模型/视图/控制器(MVC)模式之间的关系。首先,Visualforce是Salesforce提供的一种强大的页面开发框架,它允许开发者创建完全自定义的用户界面。 现在,说到MVC模式,这是一种在软件开发中常用的设计模式,它帮助开发者将应用程序的逻辑、数据和用户界面分离,使得应用程序更易于管理和扩展。在Salesforce中,这个模式同样适用。 模型(Model)在Salesforce中通常指的是自定义对象,这些对象存储了应用程序的核心数据。你可以通过Salesforce的图形配置工具来创建和管理这些对象。 视图(View)则是用户直接与之交互的部分,在Visualforce中,这通常是指Visualforce页面和组件。你可以使用Salesforce提供的在线Visualforce编辑器或者Salesforce Platform IDE来开发这些页面和组件。 控制器(Controller)是连接模型和视图的桥梁,它处理用户的输入并更新模型。在Salesforce中,控制器通常是用Apex编写的,Apex是Salesforce的一种强大的编程语言。你可以在线编写Apex代码,也可以使用Salesforce Platform IDE。 所以,回到你的问题,Visualforce确实非常适合模型/视图/控制器模式。通过Visualforce,你可以在Salesforce平台上设计、开发和运行完全符合MVC模式的应用程序。这意味着你可以创建一个结构清晰、易于维护的应用程序,同时还能充分利用Salesforce平台的强大功能。 希望这个解释能帮助你更好地理解Visualforce和MVC模式之间的关系。如果你有任何疑问,随时欢迎提问!

    查看详情
  • 15

    What is a Visualforce Page?

    第 636 页

    让我们来聊聊Visualforce页面,简称VF页面。你可以把它想象成一个定制化的网页,但它是在Salesforce平台上运行的。VF页面使用一种特殊的标记语言来定义,这种语言结合了HTML和一些Salesforce特有的标签,我们叫它们VF标签或组件。这些组件可以帮助你创建出功能丰富的页面,就像你在Salesforce中看到的那些标准页面一样。 VF页面的一个很大的优点是,它们是在服务器上处理的,而不是在你的电脑上。这意味着所有的计算和数据处理都是在Salesforce的强大服务器上完成的,而不是依赖你个人的电脑性能。这样,无论你的电脑配置如何,VF页面都能快速、流畅地运行。 这其实和Java服务器页面(JSP)有点类似,都是服务器端的技术。所以,当你使用VF页面时,你可以期待它和Salesforce的标准页面一样,性能非常出色。简而言之,VF页面让你能够创建既强大又高效的定制页面,而且它们运行起来就像Salesforce自带的功能一样顺畅。

    查看详情
  • 16

    What Functionality is Offered by Visualforce Components?

    第 637 页

    让我们来聊聊Visualforce Components,这些组件就像是Salesforce给开发人员准备的一套“积木”,可以帮助他们更快、更轻松地搭建页面。 想象一下,如果你要建一座房子,你可以选择一块砖一块砖地砌,也可以选择用已经预制好的墙板来搭建。Visualforce Components就像是这些预制好的墙板,它们包含了Salesforce界面中常见的元素,比如列表视图、详细信息视图、相关列表、数据表格或者按钮等。 在Visualforce出现之前,开发人员需要用S-Control来模拟详细视图,这就像是用手工一块砖一块砖地砌墙,非常耗时。而且,如果页面布局有变动,比如管理员调整了页面上的字段位置,开发人员就得重新手工调整代码,这就像是你砌好的墙因为设计变动又要拆掉重砌,非常麻烦。 但是有了Visualforce Components,开发人员只需要在Visualforce页面中使用一个简单的HTML标签,就可以引用这些预先构建好的UI结构。这就像是直接使用预制墙板来搭建房子,不仅速度快,而且如果页面布局有变动,这些组件会自动适应新的布局,不需要开发人员手动调整代码。 所以,Visualforce Components不仅提高了开发效率,还大大减少了维护成本,让开发人员可以更专注于创造性的工作,而不是重复性的编码。

    查看详情
  • 17

    What Are Visualforce Controllers?

    第 638 页

    让我们来聊聊Visualforce控制器。想象一下,你在设计一个网页,这个网页需要和用户互动,比如让用户填写表单、点击按钮等。Visualforce控制器就像是这个网页的大脑,它决定了当用户做这些操作时,网页应该如何反应。 Visualforce控制器主要有两种类型:标准控制器和自定义控制器。标准控制器是Salesforce自带的,它提供了一些基本的操作,比如保存数据、查看数据、编辑数据等。而自定义控制器则是你自己编写的,它允许你添加更复杂的业务逻辑,比如调用其他服务或者处理特定的数据。 你还可以使用控制器扩展,这就像是在标准控制器的基础上添加一些额外的功能。这样,你既可以利用标准控制器的便利,又可以添加自己需要的特殊功能。 在Visualforce页面中,你可以通过一种叫做“合并语法”的方式来调用控制器的数据和操作。这意味着你可以在页面上直接显示控制器中的数据,或者让页面上的按钮触发控制器中的操作。 最后,我们还有一个概念叫做“视图状态”。这就像是网页的“记忆”,它保存了用户当前的操作状态,比如他们填写了哪些信息。这样,即使用户刷新页面,他们的操作也不会丢失。这个概念在ASP.NET中也有类似的实现。 总的来说,Visualforce控制器是连接用户界面和后台业务逻辑的桥梁,它让网页变得更加智能和互动。

    查看详情
  • 18

    <apex:page standardController="Contact">

    第 639 页

    让我们来聊聊Salesforce中的标准控制器(Standard Controller)。想象一下,标准控制器就像是一个多功能的遥控器,它可以帮助我们轻松地管理和操作Salesforce中的数据。 首先,标准控制器适用于所有的标准对象和自定义对象。无论是你熟悉的账户、联系人、机会,还是你自己创建的自定义对象,标准控制器都能派上用场。 这个“遥控器”提供了哪些功能呢?它让我们能够访问和操作Salesforce中的标准数据和行为。比如,你可以查看一条联系人的详细信息,编辑这条记录,甚至删除它。所有这些操作,标准控制器都能帮你轻松完成。 标准控制器还支持一些标准的操作,比如保存、编辑和删除记录。这意味着你不需要从头开始编写代码来实现这些功能,标准控制器已经为你准备好了。 在Salesforce中,有三种类型的控制器,标准控制器就是其中之一。Salesforce为每个标准或自定义对象自动生成一个标准控制器,这样你就可以直接使用,而不需要自己创建。 最后,标准控制器在可定制性方面给我们带来了很大的便利。它大大降低了开发人员需要掌握的技能门槛,使得即使是没有太多编程经验的人,也能相对容易地使用和定制Visualforce页面。 所以,标准控制器不仅功能强大,而且使用起来也非常方便,是我们在Salesforce开发中的一个好帮手。

    查看详情
  • 19

    <apex:page controller="MyController">

    第 640 页

    让我们来聊聊Salesforce中的自定义控制器。想象一下,你有一个非常特别的玩具,这个玩具可以按照你的想法来工作,而不是按照说明书上的标准方式来玩。在Salesforce中,自定义控制器就像是这个特别的玩具,它允许你编写自己的代码来创建一些非常独特的功能或者处理一些非标准的数据。 比如说,你可能想要创建一个向导,帮助用户一步步完成一个复杂的任务,或者你可能想要展示一些特别的图表,这些都不是标准Salesforce功能能够直接提供的。这时候,你就可以使用自定义控制器来实现这些功能。 自定义控制器是通过Apex代码来编写的,Apex是Salesforce的一种编程语言。你可以完全从头开始,只编写你需要的功能代码,这样你的控制器就会非常精确地按照你的需求来工作。 总结一下,自定义控制器让你能够: 1. 创建自定义行为或处理非标准数据。 2. 实现如向导或特殊图表等复杂功能。 3. 完全控制控制器的功能,只包含你需要的代码。 希望这能帮助你理解自定义控制器的强大之处!

    查看详情
  • 20

    <apex:page standardController="Contact" extensions="MyClass, MyOtherClass">

    第 641 页

    让我们来聊聊Salesforce中的控制器扩展。想象一下,你有一个标准的控制器,它已经帮你处理了很多基本的功能,比如显示联系人的信息。但是,如果你想要在这个基础上添加一些特别的功能,比如显示这个联系人的最新订单,或者计算他们的总消费金额,这时候你就需要控制器扩展了。 控制器扩展就像是一个小助手,它可以帮助你在标准控制器的基础上添加一些自定义的功能。你可以把它看作是给标准控制器“加料”,让它变得更加强大和灵活。 举个例子,如果你有一个标准的联系人控制器,它可能只能显示联系人的基本信息。但是,如果你使用了控制器扩展,你就可以在这个页面上添加一个按钮,点击后显示这个联系人的所有订单,或者显示他们的消费总额。这些都是标准控制器本身做不到的,但通过控制器扩展,你就可以轻松实现。 所以,控制器扩展的主要功能就是让你能够在标准控制器的基础上,添加一些自定义的行为或数据,让你的页面更加符合你的业务需求。希望这个解释能帮助你更好地理解控制器扩展的作用!

    查看详情
  • 21

    How Can You Create and Modify Visualforce?

    第 642 页

    让我们来聊聊如何在Salesforce中创建和修改Visualforce页面。Visualforce是Salesforce提供的一种强大的工具,它允许你创建自定义的用户界面,这些界面可以直接与Salesforce的数据交互。 首先,创建Visualforce页面非常简单。你只需要进入Salesforce的设置,找到“开发”部分,然后选择“Visualforce页面”。点击“新建”按钮,你就可以开始创建你的页面了。在这里,你可以使用Visualforce标记语言来定义页面的布局和功能。Visualforce提供了一个分屏的开发环境,这意味着你可以在一边编写代码,另一边实时看到页面的预览效果。 当你完成编辑并保存页面后,页面会自动重新显示,这样你就可以立即看到你的更改效果。Visualforce的内联编辑器非常用户友好,它提供了自动完成功能和有限的语法突出显示,这可以帮助你更快地编写代码,并减少错误。此外,编辑器还包括在线文档,你可以在编写代码时随时查阅,这对于理解和使用Visualforce的各种组件非常有帮助。 需要注意的是,内联编辑器的这些功能仅在开发模式下可用。如果你需要更高级的编辑功能,或者你更喜欢使用一个更强大的开发环境,你可以使用Salesforce Platform IDE来编辑Visualforce页面。这是一个更专业的工具,适合那些有开发背景的用户。 最后,如果你想要快速展示Visualforce的一些功能,比如更改侧边栏或选项卡,你可以使用Salesforce提供的演示解决方案。这些解决方案可以帮助你快速实现一些常见的页面更改,让你能够更直观地展示Visualforce的强大功能。 希望这些信息能帮助你更好地理解和使用Visualforce。如果你有任何问题,或者需要更深入的指导,随时欢迎提问!

    查看详情
  • 22

    What Are the Steps to Building a Visualforce Mashup?

    第 643 页

    同学们,今天我们来聊聊如何在Salesforce中构建一个Visualforce Mashup。首先,我们要明确一点,Mashup其实就是把不同的数据和服务整合到一个页面上,让用户能在一个地方看到所有需要的信息。 ### 第一步:创建新的Visualforce页面 首先,我们需要创建一个新的Visualforce页面。这个页面将作为我们Mashup的基础。你可以在Salesforce的设置中找到“开发”选项,然后选择“Visualforce页面”来创建一个新的页面。记住,我们不需要创建组件,直接创建页面就可以了。 ### 第二步:设计页面布局 接下来,我们要设计页面的布局。你可以使用HTML和Visualforce标签来定义页面的结构。比如,你可以使用``标签来定义页面的基本结构,然后使用``、``等标签来组织内容。 ### 第三步:集成数据和服务 现在,我们要把不同的数据和服务集成到这个页面上。你可以使用``来显示数据表,或者使用``来显示图表。如果你需要从外部服务获取数据,可以使用``或者调用Apex控制器来处理这些请求。 ### 第四步:测试和调试 完成页面设计后,别忘了测试和调试。你可以在Salesforce的预览模式下查看页面效果,确保所有功能都正常工作。如果发现问题,可以使用浏览器的开发者工具来调试代码。 ### 第五步:部署和发布 最后,当你确认页面没有问题后,就可以部署和发布了。你可以将页面添加到某个应用的导航菜单中,或者直接分享链接给需要的用户。 ### 教师注意事项 在教学中,记得提醒学生,虽然这个模拟器没有显示所有功能,但它涵盖了大多数基础功能。比如,今日日历功能可能不起作用,因为它需要连接到移动终端。另外,根据案例#22131,我们调整了第一步的步骤,直接从创建页面开始,而不是创建组件。 好了,这就是构建Visualforce Mashup的基本步骤。希望你们能通过这个练习,更好地理解如何在Salesforce中整合不同的数据和服务。如果有任何问题,随时提问!

    查看详情
  • 23

    Module Agenda - 645

    第 645 页

    让我们继续深入探讨一下Mashup开发中的一些关键点。首先,我们回顾一下上一页提到的两种混搭风格:弹出窗口方法和内联映射方法。每种方法都有其独特的优点和缺点,理解这些可以帮助我们更好地选择适合我们项目需求的方法。 弹出窗口方法的一个主要优点是它的实施相对简单,不需要额外的谷歌许可证,这意味着成本较低。此外,它不会显示混合模式警告,这可以减少用户的困惑。页面加载速度也较快,因为它不需要在页面加载时检索内联映射。然而,这种方法的缺点是需要用户进行额外的鼠标点击,这可能会影响用户体验。此外,由于它不是基于真正的API,未来可能会出现一些不可预见的问题。 另一方面,内联映射方法提供了更流畅的用户体验,因为它不需要额外的鼠标点击。它的界面更加用户友好,并且可以扩展到包括其他对象。这种方法基于受支持的API,因此更加稳定。但是,它需要付费许可证来移除混合模式警告,并且在从Google检索内容时可能会减慢页面加载速度。 在开发Mashup时,我们需要考虑几个潜在风险。首先,Mashup并不总是基于受支持的真正API,这意味着如果服务提供商更改了服务的运行方式,可能会出现错误。此外,Mashup可能会影响页面的整体加载时间,这需要我们从终端用户的可用性角度进行考虑。 在下一页的备注中,我们将继续探讨如何在实际项目中应用这些知识,以及如何有效地解决可能出现的问题。希望这些信息能帮助你在Salesforce开发中做出更明智的决策。

    查看详情
  • 24

    What is Canvas?

    第 646 页

    让我们来聊聊Canvas是什么,以及为什么它在Salesforce中如此重要。 首先,Canvas是Salesforce提供的一种技术,它允许你将外部的应用程序嵌入到Salesforce的用户界面中。这听起来可能和Visualforce页面中的Web标签或者IFRAME有点像,但实际上Canvas提供了更多的功能和灵活性。 你可能会问,Canvas和IFRAME有什么不同呢?这里有几个关键点: 1. ,无本地身份验证,:Canvas不需要你在Salesforce和外部应用之间进行复杂的身份验证设置。它使用OAuth来安全地处理身份验证。 2. ,动态调整大小,:与IFRAME不同,Canvas可以动态调整嵌入内容的大小,这意味着无论外部应用的内容如何变化,它都能完美地适应Salesforce的界面。 3. ,使用POST请求,:嵌入式页面通常使用GET请求,但Canvas允许使用POST请求,这为数据传输提供了更大的灵活性和安全性。 4. ,同源策略问题,:由于浏览器的同源策略,IFRAME或Web标签中的应用程序在尝试与Salesforce通信时可能会遇到问题。Canvas通过使用Connected Apps框架解决了这些问题,使得外部应用能够安全地与Salesforce进行交互。 Canvas应用程序可以出现在Salesforce的多个位置,比如在Feed中、作为自定义控制台组件、或者添加到页面布局中。例如,你可以有一个工时记录卡应用程序,员工提交工时记录后,审批请求可以出现在经理的Feed中。 最后,如果你想看看Canvas应用程序在Salesforce移动应用上的样子,你可以访问这个链接:login.Salesforce.com/one/one.app。 希望这能帮助你理解Canvas在Salesforce中的作用和优势!如果你有任何问题,随时问我。

    查看详情
  • 25

    What is the Same Origin Policy?

    第 647 页

    让我们来聊聊同源策略。想象一下,你有一个网站,这个网站上有一些重要的信息。为了保护这些信息不被其他网站随意访问或修改,浏览器有一个规则,叫做同源策略。这个规则的意思是,只有当两个网页的协议、域名和端口都完全相同时,它们之间才能自由地交换信息。如果这些条件中有一个不满足,那么这两个网页就不能直接通信。 举个例子,如果你的网站是https://example.com,那么只有同样是https://example.com的网页才能和你的网站自由交换信息。如果另一个网页是http://example.com或者https://anotherdomain.com,那么它们就不能直接访问你的网站上的信息。 在Salesforce中,这个规则也很重要。比如,如果你在Salesforce中嵌入了一个外部网页,这个网页不能直接和Salesforce的页面通信,因为它们不是来自同一个域。这时候,如果你想让他们之间交换信息,就需要通过API(应用程序编程接口)来实现。API就像是一个翻译官,它可以帮助不同的系统之间理解和交换信息。 现在,让我们来看一个具体的例子。假设你有一个Salesforce页面,显示了一个账户的联系人列表,并且以这个账户的地址为中心显示一个地图。这个页面使用了Visualforce地图组件。在这个页面中,你可以看到账户的联系人列表,并且每个联系人的位置都会在地图上显示出来。这个页面通过Salesforce的API获取数据,然后将这些数据展示在页面上。 这个例子展示了如何在Salesforce中使用Visualforce组件来创建一个交互式的页面,同时也体现了同源策略在保护数据安全方面的重要性。希望这个解释能帮助你更好地理解同源策略以及它在Salesforce中的应用。

    查看详情
  • 26

    How Does the Initial Request Canvas Work?

    第 648 页

    让我们来聊聊Salesforce的画布(Canvas)是如何工作的。想象一下,你正在使用Salesforce,突然你点击了一个应用程序,这个应用程序可能是从Chatter选项卡或者Visualforce页面上找到的。这时候,画布就开始它的魔法了。 首先,当你点击那个应用程序时,Salesforce会发送一个POST请求到外部的应用程序。这个请求就像是Salesforce在对外部应用说:“嘿,我这边有个用户想要用你的服务,你能处理一下吗?” 接下来,外部应用程序会接收到这个请求,并且开始处理。它会解码这个请求,从中获取一个叫做CanvasResource的对象。这个对象包含了所有必要的信息,比如用户的身份、他们所在的Salesforce环境等等。 然后,外部应用程序会根据这些信息生成一个HTML页面。这个页面就是用户最终会在Salesforce界面上看到的内容。外部应用把这个HTML页面发送回Salesforce,Salesforce再把这个页面加载到用户的界面上。 这样,用户就可以在Salesforce的界面上直接使用外部应用的功能了,而不需要离开Salesforce去打开一个新的浏览器标签页。 至于GET和POST的区别,我们会在后面的课程中详细讲解。简单来说,POST更安全,更适合传输敏感信息,而GET则更适合用于请求数据,比如搜索或者获取信息。 这就是Salesforce画布的基本工作原理,希望这个解释能帮助你更好地理解这个过程。如果有任何问题,随时问我哦!

    查看详情
  • 27

    How Does Subsequent Communication Work?

    第 649 页

    让我们来聊聊外部应用程序和Salesforce之间是如何进行沟通的。这个过程其实挺有意思的,就像两个朋友通过电话聊天一样。 首先,想象一下你正在使用一个外部应用程序,这个应用程序有一个页面,你在这个页面上做了一些操作,比如点击按钮或者填写表单。这个页面其实是在Salesforce里面的,但它看起来和感觉上就像是你平常使用的网页一样。 接下来,这个外部应用程序的页面会使用一种叫做Canvas JavaScript SDK的工具。这个工具就像是一个翻译官,它帮助外部应用程序的页面和Salesforce进行沟通。具体来说,它允许外部应用程序的页面调用一些JavaScript代码,这些代码是包含在Salesforce的页面框架中的。 这里有一个小问题需要解决,那就是“同源”问题。简单来说,就是浏览器通常不允许一个网页直接和另一个不同来源的网页进行数据交换,这是出于安全考虑。但是,Canvas JavaScript SDK提供了一个代理,就像是一个中间人,它允许外部应用程序的页面绕过这个限制,直接和Salesforce进行沟通。 所以,在步骤2A中,外部应用程序的页面实际上是在调用Salesforce页面中的JavaScript库。所有这些操作都是在用户的浏览器中完成的。然后,这个外部页面就会联系Salesforce,进行数据交换或者其他操作。 总结一下,外部应用程序和Salesforce之间的沟通是通过Canvas JavaScript SDK这个工具来实现的,它解决了“同源”问题,让两者能够顺畅地交流。希望这个解释能帮助你更好地理解这个过程!

    查看详情
  • 28

    Canvas and Security

    第 650 页

    今天我们来聊聊Salesforce中的画布(Canvas)和安全性的问题。首先,我们要知道,在Salesforce中,画布是一种技术,它允许外部应用程序直接嵌入到Salesforce的用户界面中。这样,用户就可以在不离开Salesforce环境的情况下,使用外部应用的功能。 现在,说到安全性,我们通常会考虑数据传输的安全性。在这里,HTTP Post方法比HTTP Get方法更安全。为什么呢?因为在使用HTTP Post时,参数通常不会被记录在服务器日志或浏览器历史中。这意味着,像会话ID这样的敏感信息,就不太容易被捕捉到,从而减少了安全风险。 此外,Canvas还通过互联应用程序框架限制了可以访问的范围。这意味着,即使外部应用被嵌入到Salesforce中,它也只能访问Salesforce允许它访问的数据和功能。这种限制进一步增强了安全性,因为它减少了数据泄露或被未授权访问的可能性。 总结一下,使用Canvas和HTTP Post方法,可以有效地提高Salesforce环境的安全性。它们通过限制数据记录和访问范围,保护了敏感信息不被未授权访问。希望这能帮助你更好地理解Salesforce中的安全措施。如果有任何疑问,随时提问哦!

    查看详情
  • 29

    How Do You Create a Canvas Application within Salesforce?

    第 651 页

    让我们来聊聊如何在Salesforce中创建一个Canvas应用程序。其实,这个过程主要是设置一个“已连接的应用程序”,并特别标明它是一个Canvas应用程序。听起来有点复杂?别担心,我会一步步带你走。 首先,你需要登录到你的Salesforce环境。进入后,找到“设置”这个选项,通常在右上角。点击进入后,在快速查找框中输入“App Manager”,然后选择它。 接下来,你会看到一个“新建已连接的应用程序”的按钮,点击它。这时,你会看到一个表单,需要填写一些基本信息。比如,给你的应用程序起个名字,这个很重要,因为以后你会根据这个名字来识别它。 然后,你会看到一个选项,叫做“启用OAuth设置”。这里你需要勾选它,因为Canvas应用程序通常需要与Salesforce进行安全的通信。勾选后,你会看到一个回调URL的输入框,这里你需要填入你的Canvas应用程序的URL。 接下来,就是关键部分了。在“API(启用OAuth设置)”部分,你需要选择“Canvas”作为应用程序类型。这样Salesforce就知道你正在设置的是一个Canvas应用程序。 最后,别忘了保存你的设置。保存后,Salesforce会生成一个消费者密钥和消费者秘密,这些信息非常重要,因为你的Canvas应用程序将使用它们来与Salesforce进行通信。 好了,这就是创建Canvas应用程序的基本步骤。虽然看起来步骤不少,但只要你按照步骤来,其实并不难。希望这能帮助你顺利创建你的Canvas应用程序!如果有任何疑问,随时问我哦!

    查看详情
  • 30

    Access Method: Signed Requests vs. OAuth Webflow

    第 652 页

    让我们来聊聊Salesforce中的访问方法,特别是签名请求和OAuth Webflow。这两个概念听起来可能有点技术性,但我会尽量用简单的话来解释。 首先,我们来说说OAuth流。OAuth是一种允许用户授权第三方应用访问他们在Salesforce中的数据的方式,而不需要分享他们的登录信息。想象一下,你有一个朋友想借用你的书,但你不想给他们你的整个书架,你只想让他们拿那本特定的书。OAuth就是这样工作的,它允许用户给应用特定的权限,而不是完全的访问权。 现在,签名请求。这是一种更隐蔽的OAuth流。当管理员在Salesforce组织中安装了一个应用,并且配置了哪些用户可以访问它时,用户就可以直接访问这个应用,而不会看到任何要求授权的弹出窗口。这是因为管理员已经预先批准了这些用户。所以,用户就像走进了一个已经为他们打开的门,不需要再敲门了。 接下来是OAuth Webflow。这与签名请求不同,用户会看到一个弹出窗口,要求他们授权应用访问他们的Salesforce数据。这就像是你的朋友需要敲门,然后你亲自开门给他们。如果管理员设置了“所有用户都可以自我授权”的选项,那么每个用户都会看到这个弹出窗口,并需要自己决定是否授权。 最后,关于App配置。这通常是由管理员来设置的,他们决定了哪些用户可以访问应用,以及他们可以访问哪些数据。这就像是一个门卫,决定了谁可以进入大楼,以及他们可以去哪些楼层。 希望这样解释能帮助你更好地理解Salesforce中的访问方法。如果还有疑问,随时问我哦!

    查看详情
  • 31

    How Do You Create a Canvas Application within Salesforce? (Cont.)

    第 654 页

    我们继续来聊聊如何在Salesforce中创建Canvas应用程序。当你完成了之前的所有设置,比如填写了应用程序的名称、API名称,选择了适当的连接方法,并设置了回调URL之后,接下来就是保存这个已连接的应用程序了。 保存之后,Salesforce会为你生成两个非常重要的东西:消费者密钥(Consumer Key)和消费者秘密(Consumer Secret)。这两个东西就像是你的应用程序的身份证和密码,外部应用程序需要它们来进行授权和验证。 你可以把这些信息想象成你去银行开户时得到的账号和密码。消费者密钥就像是你的账号,而消费者秘密就是你的密码。有了这两个信息,你的Canvas应用程序就可以安全地与Salesforce进行通信了。 所以,记得妥善保管这些信息,因为它们对于你的应用程序的安全和功能至关重要。如果你不小心泄露了这些信息,可能会导致安全风险,所以一定要小心哦! 这就是如何在Salesforce中创建Canvas应用程序的简单介绍。希望这些信息对你有帮助!如果有任何问题,随时问我哦!

    查看详情
  • 32

    How Do You Know If Your Canvas App Is Working?

    第 655 页

    让我们来聊聊如何确认你的Canvas应用程序是否正常工作。首先,如果你是通过Heroku快速入门来创建这个Canvas应用程序的,那么大部分的基础配置其实已经自动帮你完成了。这就像是你买了一台新电脑,基本的操作系统已经装好了,你只需要进行一些个性化设置。 但是,这里有个关键点:只有管理员才能访问这个应用程序。所以,作为管理员,你需要做两件事: 1. ,指定谁可以查看这个应用程序,:这就像是你家里的Wi-Fi,你得决定谁可以连上它。在Salesforce里,你可以设置哪些用户或者哪些用户组能够看到和使用这个Canvas应用程序。 2. ,确定应用程序将出现的位置,:这就像是决定把电视放在客厅还是卧室。在Salesforce里,你可以选择这个Canvas应用程序出现在哪个页面布局、哪个应用或者哪个记录类型上。 完成这些设置后,你就可以通过登录Salesforce,访问你指定的位置,看看应用程序是否如预期那样显示和运行。如果一切正常,那么恭喜你,你的Canvas应用程序已经准备好投入使用啦!如果遇到问题,那就需要检查一下配置,或者查看日志来排查问题所在。

    查看详情
  • 33

    How Do You Get and Decode the Request?

    第 658 页

    让我们来聊聊如何在Salesforce中获取并解码请求,以及如何从请求中获取参数。这个过程其实并不复杂,我会尽量用简单的方式来解释。 首先,当你在Salesforce中创建一个应用程序时,有时你需要从外部系统获取一些数据。这些数据通常是通过HTTP请求发送到你的应用程序的。为了确保这些请求是安全的,Salesforce会使用一种叫做“Signed Request”的方式来发送数据。 ### 1. 获取请求 当外部系统向你的应用程序发送请求时,这个请求会包含一个叫做`signed_request`的参数。这个参数实际上是一个经过签名的字符串,里面包含了请求的所有信息。 ### 2. 解码请求 为了读取`signed_request`中的信息,你需要先解码它。解码的过程需要使用你在Salesforce中设置的“消费者秘密”(Consumer Secret)。这个“消费者秘密”是一个只有你和Salesforce知道的密钥,用来确保请求的安全性。 在Java中,解码`signed_request`的代码大致是这样的: ```java String signedRequest = request.getParameter(&quot;signed_request&quot;); String[] split = signedRequest.split(&quot;\\.&quot;); String encodedPayload = split[1]; String payload = new String(Base64.decodeBase64(encodedPayload)); ``` 这段代码做了以下几件事: - 首先,它从请求中获取`signed_request`参数。 - 然后,它将这个字符串按照`.`分割成两部分。第一部分是签名,第二部分是实际的数据(payload)。 - 接着,它使用Base64解码payload部分,得到原始的JSON数据。 ### 3. 获取参数 一旦你解码了`signed_request`,你就可以从中提取出你需要的参数了。这些参数通常是以JSON格式存储的,所以你可以使用JSON解析器来读取它们。 例如,如果你想要获取用户的信息,你可以这样做: ```java JSONObject payloadJson = new JSONObject(payload); String userId = payloadJson.getString(&quot;user_id&quot;); String userName = payloadJson.getString(&quot;user_name&quot;); ``` 这段代码从解码后的payload中提取了`user_id`和`user_name`这两个参数。 ### 4. 验证签名(可选) 为了确保请求没有被篡改,你还可以验证`signed_request`的签名。这个过程稍微复杂一些,但基本原理是使用你的“消费者秘密”来重新计算签名,然后与请求中的签名进行比较。如果两者一致,说明请求是安全的。 ### 总结 - ,获取请求,:从HTTP请求中获取`signed_request`参数。 - ,解码请求,:使用“消费者秘密”解码`signed_request`,得到payload。 - ,获取参数,:从解码后的payload中提取你需要的参数。 - ,验证签名,(可选):确保请求的安全性。 希望这个解释能帮助你理解如何在Salesforce中获取并解码请求。如果你有任何问题,随时问我!

    查看详情
  • 34

    What Does the CanvasRequest Object Provide?

    第 659 页

    今天我们来聊聊CanvasDemand对象。这个对象在Salesforce中扮演了一个非常重要的角色,特别是在处理外部数据的时候。 想象一下,你有一个外部的应用程序,它需要和Salesforce进行数据交换。CanvasDemand对象就像是这个交换过程中的一个桥梁。它允许外部应用程序通过Salesforce的Canvas框架,安全地请求和接收数据。 具体来说,CanvasDemand对象提供了一种机制,让外部应用可以发送一个请求到Salesforce,然后Salesforce会根据这个请求,返回相应的数据。这个过程是安全的,因为所有的通信都是通过Salesforce的安全框架进行的。 所以,简单来说,CanvasDemand对象就是帮助外部应用和Salesforce之间进行安全、有效的数据交换的一个工具。希望这个解释能帮助你更好地理解CanvasDemand对象的作用!

    查看详情
  • 35

    What Does the CanvasRequest Look Like?

    第 660 页

    让我们来聊聊Canvas请求是什么样子的,以及请求中的JSON编码数据。 首先,Canvas请求是Salesforce中一种特殊的请求方式,它允许外部应用程序在Salesforce的页面上嵌入内容。你可以把它想象成一个小窗口,通过这个小窗口,外部应用的内容可以直接显示在Salesforce的界面上。 那么,Canvas请求具体是什么样子的呢?其实,它就是一个HTTP请求,通常是通过POST方法发送的。这个请求会包含一些重要的信息,比如用户的信息、Salesforce的组织ID、以及一些其他的上下文数据。这些信息会被编码成JSON格式,放在请求的正文中。 接下来,我们来看看请求中的JSON编码数据。JSON是一种轻量级的数据交换格式,它使用键值对的方式来组织数据。在Canvas请求中,JSON数据通常会包含以下几个部分: 1. ,client,:这部分包含了客户端的信息,比如客户端的ID和名称。 2. ,context,:这部分包含了请求的上下文信息,比如用户的ID、组织的ID、以及一些其他的环境变量。 3. ,algorithm,:这部分描述了数据的签名算法,用于验证数据的完整性和真实性。 4. ,signature,:这是对请求数据的签名,用于确保数据在传输过程中没有被篡改。 举个例子,一个简单的Canvas请求的JSON数据可能长这样: ```json { &quot;client&quot;: { &quot;clientId&quot;: &quot;12345&quot;, &quot;clientName&quot;: &quot;MyApp&quot; }, &quot;context&quot;: { &quot;userId&quot;: &quot;67890&quot;, &quot;orgId&quot;: &quot;54321&quot;, &quot;environment&quot;: &quot;production&quot; }, &quot;algorithm&quot;: &quot;HMAC-SHA256&quot;, &quot;signature&quot;: &quot;abc123def456ghi789&quot; } ``` 在这个例子中,`client`部分告诉我们这个请求来自哪个应用,`context`部分告诉我们这个请求是在哪个用户和组织下发出的,`algorithm`和`signature`部分则确保了数据的安全性。 总结一下,Canvas请求就是一个包含JSON编码数据的HTTP请求,它允许外部应用在Salesforce中嵌入内容,并且通过JSON数据传递必要的上下文和安全信息。希望这个解释能帮助你更好地理解Canvas请求的样子和其中的JSON数据。

    查看详情
  • 36

    Integrating Your Application with Salesforce: The SDK

    第 661 页

    同学们,今天我们来聊聊如何将您的应用程序与Salesforce集成。这里我们主要会用到Salesforce提供的SDK,也就是软件开发工具包。这个SDK里面有几个非常重要的部分,我来给大家一一介绍。 首先,我们有,Sfdc.canvas,。这个部分提供了一些通用的功能,可以帮助您的应用程序与Salesforce平台进行基本的交互。无论您是在处理数据、用户界面还是其他基础功能,Sfdc.canvas都能帮上忙。 接下来是,Sfdc.canvas.client,。这个部分主要是用于处理基于客户的活动。比如说,如果您的应用程序需要根据客户的行为或数据来做出反应,Sfdc.canvas.client就能提供相应的功能支持。 最后,我们还有,Sfdc.canvas.oauth,。这个部分专门支持Oauth协议,Oauth是一种安全的授权方式,可以让您的应用程序安全地访问Salesforce中的数据,而不需要直接处理用户的登录信息。这对于保护用户隐私和数据安全非常重要。 总结一下,通过使用Salesforce的SDK,您可以轻松地将您的应用程序与Salesforce集成,利用Sfdc.canvas、Sfdc.canvas.client和Sfdc.canvas.oauth这些工具,您可以实现从基础交互到复杂客户活动处理,再到安全数据访问的全方位功能。希望这能帮助大家更好地理解和使用Salesforce的集成工具。

    查看详情
  • 37

    What JavaScript Libraries Do You Need?

    第 662 页

    在Salesforce开发中,我们经常会用到一些JavaScript库来增强我们的应用功能。以下是一些常用的JavaScript库: 1. ,jQuery,:这是一个非常流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。使用jQuery,你可以用更少的代码完成更多的工作。 2. ,React,:由Facebook开发,React是一个用于构建用户界面的JavaScript库。它特别适合构建单页应用(SPA),并且可以很好地与Salesforce的Lightning框架集成。 3. ,Angular,:由Google维护,Angular是一个强大的前端框架,适合构建复杂的企业级应用。它提供了双向数据绑定、依赖注入等特性。 4. ,Vue.js,:Vue是一个轻量级的JavaScript框架,易于上手,同时功能强大。它非常适合快速开发小型到中型的应用。 5. ,D3.js,:如果你需要在Salesforce应用中展示复杂的数据可视化,D3.js是一个非常好的选择。它允许你使用HTML、SVG和CSS来创建动态的、交互式的数据可视化。 6. ,Lodash,:这是一个实用的JavaScript工具库,提供了很多实用的函数,用于简化数组、数字、对象、字符串等的操作。 7. ,Moment.js,:处理日期和时间可能会很复杂,Moment.js提供了一个简单的方式来解析、验证、操作和显示日期和时间。 选择哪个库取决于你的具体需求。例如,如果你需要快速开发一个交互式的用户界面,React或Vue.js可能是好选择。如果你需要处理大量的数据并展示复杂的图表,D3.js会是更好的选择。记得,选择最适合你项目需求的工具,而不是最流行的工具。

    查看详情
  • 38

    How Do You Use the Context Data in the Page?

    第 663 页

    同学们,今天我们来聊聊如何在页面中使用上下文数据。这个其实很简单,就像你在厨房里做菜一样,你需要知道手头有哪些食材,然后根据这些食材来决定做什么菜。 在Salesforce中,上下文数据就像是这些食材。它们是你页面中已经存在的信息,比如当前用户的ID、记录的类型,或者是某个字段的值。你可以通过JavaScript和HTML来获取这些数据,然后用它们来动态地改变页面的内容或行为。 举个例子,假设你有一个页面,你想根据当前用户的角色来显示不同的信息。你可以用JavaScript来获取用户的角色,然后用HTML来根据这个角色显示不同的内容。这样,页面就会根据不同的用户显示不同的信息,就像根据不同的食材做出不同的菜一样。 所以,使用上下文数据的关键就是先获取这些数据,然后用它们来动态地调整你的页面。这样,你的页面就能更加智能和灵活了。

    查看详情
  • 39

    Goal #1: Populate Data in the App Using the Request

    第 664 页

    我们来聊聊如何在Salesforce应用程序中使用请求来填充数据。想象一下,你有一个应用程序,里面有很多信息需要展示,比如客户的姓名、联系方式或者订单详情。这些信息通常存储在Salesforce的数据库中。为了让这些信息显示在你的应用程序里,你需要从数据库中“请求”这些数据。 这个过程有点像你去图书馆借书。你告诉图书管理员你想要的书名(这就是你的请求),然后图书管理员去书架上找到这本书并交给你(这就是数据被填充到你的应用程序中)。 在Salesforce中,我们通常使用SOQL(Salesforce Object Query Language)来编写这些请求。SOQL是一种专门用来查询Salesforce数据库的语言。你可以把它想象成一种特殊的“图书管理员”,它知道如何在Salesforce的“书架”上找到你需要的信息。 举个例子,如果你想获取所有客户的姓名和邮箱,你可以写一个SOQL查询,像这样: ```soql SELECT Name, Email FROM Contact ``` 这个查询会告诉Salesforce:“请给我所有联系人的姓名和邮箱。”然后,Salesforce就会返回这些数据,你的应用程序就可以显示这些信息了。 所以,使用请求在应用程序中填充数据,其实就是通过编写查询语句,从Salesforce数据库中获取你需要的信息,然后把这些信息展示在你的应用程序里。这样,你的应用程序就能动态地显示最新的数据,而不是静态的、一成不变的内容。

    查看详情
  • 40

    The client.ajax() Method

    第 666 页

    今天我们来聊聊Salesforce中的`Client.ajax()`方法。这个方法在开发Canvas应用程序时非常有用,特别是当你需要在Salesforce页面中嵌入一个应用,并且这个应用需要与Salesforce进行数据交互时。 首先,让我们理解一下背景。Canvas应用程序通常会被加载到一个iframe中,这个iframe嵌入在Salesforce的页面上。由于浏览器的安全限制,Canvas应用程序(它运行在自己的域名下)不能直接向Salesforce的域名(比如`*.salesforce.com`)发起XML HTTP请求(XHR)。这就是所谓的跨域问题。 为了解决这个问题,Salesforce提供了一个JavaScript编写的客户端代理。这个代理允许你的Canvas应用程序通过它来发起XHR请求到Salesforce。简单来说,这个代理就像一个中间人,它接收你的请求,然后代表你向Salesforce发起请求,最后将结果返回给你。 现在,让我们来看看`Client.ajax()`方法的具体使用。这个方法有几个关键参数: 1. ,Function_NAME,:这是你给函数起的名字,这样你可以在需要的时候调用它。在我们的例子中,我们会使用一个类似于命名空间的名称来命名这个函数。 2. ,URL,:这是你要请求的地址。在我们的例子中,这个URL会类似于REST API的URL,因为在这个上下文中使用REST是最方便的。 3. ,Sr.Client,:这是授权的内容,确保你有权限发起这个请求。 4. ,方法,:这是HTTP方法,比如GET、POST等。因为我们要使用REST API,所以选择合适的HTTP方法非常重要。 5. ,数据,:这是可选的,通常在插入或更新数据时使用。 6. ,Content Type,:这里我们指定使用JSON作为数据格式。虽然REST API也支持XML,但由于我们使用的是JavaScript,而JSON更轻量级,所以我们选择JSON。 7. ,成功(失败),:根据请求的成功或失败,你可以定义不同的JavaScript函数来处理结果。在我们的例子中,我们主要关注成功的回调。 8. ,PROCESS_DATA,:这是一组JavaScript语句,用于处理返回的数据。 9. ,回调,:这是你在调用`Client.ajax()`方法时指定的回调函数,当请求完成时,这个函数会被调用。 总结一下,`Client.ajax()`方法是一个强大的工具,它帮助你在Canvas应用程序中安全地与Salesforce进行数据交互。通过理解和使用这个方法,你可以更有效地开发出功能丰富的Salesforce应用。希望这个解释对你有帮助!如果有任何问题,随时问我。

    查看详情
  • 41

    Query Example

    第 667 页

    同学们,今天我们来聊聊JavaScript中的查询示例。首先,JavaScript是一种非常强大的编程语言,它可以帮助我们在网页上实现各种动态效果和交互功能。 在JavaScript中,查询通常指的是从某个数据源中获取数据。这个数据源可以是一个数组、一个对象,甚至是远程的API接口。我们通过编写查询语句,来告诉JavaScript我们想要获取哪些数据。 举个例子,假设我们有一个包含多个用户信息的数组,每个用户都有姓名、年龄和邮箱等属性。如果我们想要找出所有年龄大于30岁的用户,我们可以使用JavaScript的`filter`方法来实现这个查询。 代码可能看起来像这样: ```javascript const users = [ { name: &#39;Alice&#39;, age: 25, email: &#39;alice@example.com&#39; }, { name: &#39;Bob&#39;, age: 35, email: &#39;bob@example.com&#39; }, { name: &#39;Charlie&#39;, age: 40, email: &#39;charlie@example.com&#39; } ]; const olderUsers = users.filter(user =&gt; user.age &gt; 30); console.log(olderUsers); ``` 在这段代码中,`filter`方法会遍历`users`数组中的每一个用户对象,然后根据我们提供的条件(这里是`user.age &gt; 30`)来决定是否将这个用户包含在结果数组中。最终,`olderUsers`数组将只包含那些年龄大于30岁的用户。 这就是一个简单的JavaScript查询示例。通过这种方式,我们可以轻松地从大量数据中筛选出我们感兴趣的部分。希望这个例子能帮助大家更好地理解JavaScript中的查询操作。如果有任何问题,欢迎随时提问!

    查看详情
  • 42

    Goal: Interact with Salesforce Data Layer

    第 668 页

    今天我们来聊聊如何与Salesforce的数据层进行交互。Salesforce的数据层,简单来说,就是存储和管理你所有业务数据的地方。无论是客户信息、销售机会,还是产品库存,这些都存放在Salesforce的数据层中。 首先,我们需要了解Salesforce提供了几种主要的方式来与数据层交互。最常见的是通过标准对象和自定义对象。标准对象是Salesforce自带的,比如“客户”和“机会”,而自定义对象则是你根据业务需求自己创建的。 接下来,我们可以通过Salesforce的用户界面直接与这些数据进行交互。比如,你可以直接在Salesforce的页面上添加、编辑或删除记录。这种方式非常直观,适合日常操作。 但是,如果你需要进行更复杂的操作,比如批量更新数据或者从外部系统导入数据,那么你可能需要使用到Salesforce的API。API是一种允许不同软件之间进行通信的工具。Salesforce提供了多种API,比如REST API和SOAP API,通过这些API,你可以编写程序来自动化地读取或修改Salesforce中的数据。 此外,Salesforce还提供了Apex编程语言,这是一种类似于Java的语言,允许开发者编写更复杂的逻辑来处理数据。通过Apex,你可以创建触发器、批处理类等,这些都可以在数据发生变化时自动执行特定的操作。 最后,别忘了Salesforce的报表和仪表板功能,这些工具可以帮助你从数据层中提取有价值的信息,并以图表的形式展示出来,帮助你更好地理解业务动态。 总之,与Salesforce数据层的交互可以通过多种方式进行,从简单的用户界面操作到复杂的编程接口,Salesforce都提供了强大的工具来满足不同的需求。希望这些信息能帮助你更好地理解和使用Salesforce的数据层。

    查看详情
  • 43

    Goal: Query Salesforce Using the JavaScript SDK and the REST API

    第 669 页

    今天我们来聊聊如何使用JavaScript SDK和REST API来查询Salesforce。这个技能对于开发人员来说非常有用,因为它可以帮助你从Salesforce中获取数据,并在你的网页或应用中使用这些数据。 首先,我们需要了解一下什么是JavaScript SDK。简单来说,SDK就是一套工具和库,它可以帮助我们更容易地与Salesforce进行交互。而REST API则是一种通过网络请求来获取或发送数据的方式。 ### 第一步:设置环境 在开始之前,你需要确保你的开发环境中已经安装了Node.js,因为我们将使用npm(Node.js的包管理器)来安装Salesforce的JavaScript SDK。 你可以通过运行以下命令来安装SDK: ```bash npm install jsforce ``` ### 第二步:连接到Salesforce 安装好SDK后,我们需要创建一个连接到Salesforce的实例。这通常需要你的Salesforce登录凭证,包括用户名、密码和安全令牌。 ```javascript const jsforce = require(&#39;jsforce&#39;); const conn = new jsforce.Connection({ loginUrl : &#39;https://login.salesforce.com&#39; // 如果你使用的是沙盒环境,这里应该是 &#39;https://test.salesforce.com&#39; }); conn.login(&#39;你的用户名&#39;, &#39;你的密码+安全令牌&#39;, function(err, userInfo) { if (err) { return console.error(err); } console.log(&quot;访问令牌: &quot; + conn.accessToken); console.log(&quot;实例URL: &quot; + conn.instanceUrl); console.log(&quot;用户ID: &quot; + userInfo.id); console.log(&quot;组织ID: &quot; + userInfo.organizationId); }); ``` ### 第三步:查询数据 连接成功后,我们就可以使用SOQL(Salesforce Object Query Language)来查询数据了。SOQL类似于SQL,但它是专门为Salesforce设计的。 ```javascript conn.query(&quot;SELECT Id, Name FROM Account&quot;, function(err, result) { if (err) { return console.error(err); } console.log(&quot;总记录数: &quot; + result.totalSize); console.log(&quot;是否完成: &quot; + result.done); console.log(&quot;记录: &quot;, result.records); }); ``` 这段代码会查询所有的Account记录,并返回它们的Id和Name。 ### 第四步:处理数据 查询到的数据通常会以JSON格式返回,你可以直接在JavaScript中处理这些数据,比如显示在网页上或者进行进一步的处理。 ### 总结 通过使用JavaScript SDK和REST API,我们可以轻松地从Salesforce中查询数据。这不仅提高了开发效率,也使得数据的集成和展示变得更加灵活。希望今天的讲解能帮助你更好地理解这一过程。如果有任何问题,随时提问!

    查看详情
  • 44

    Inserting Data Example: Setting Up the Form

    第 671 页

    同学们,今天我们来学习如何在Salesforce中插入数据。想象一下,你有一个表格,就像你在Excel中看到的那样,但这次是在Salesforce中。我们要在这个表格中添加一些新的数据。 首先,看这个表格,你会注意到有一些红色的轮廓。这些红色的轮廓就像是高亮显示的部分,它们帮助我们识别出哪些数据元素是我们将要添加的。比如,可能是教师的名字、课程编号或者是学生的成绩等。 接下来,你会看到一些蓝色的轮廓。这些蓝色的部分是指定当我们点击某个按钮时,系统应该执行什么功能。比如,点击“添加”按钮后,系统就会根据我们输入的数据,在表格中新增一行。 所以,简单来说,红色的部分告诉我们“这里是要填数据的地方”,而蓝色的部分则是“点击这里,数据就会被添加到表格中”。这样,我们就可以轻松地在Salesforce中管理和更新我们的数据了。 希望这个解释能帮助大家更好地理解如何在Salesforce中插入数据。如果有任何疑问,随时提问哦!

    查看详情
  • 45

    Inserting Data Example: Gathering the Data and Calling a Function

    第 672 页

    同学们,今天我们来聊聊如何在Salesforce中插入数据。这个过程其实很简单,就像你在笔记本上记下新的信息一样。首先,你需要确保你有一个“账户”,这就像是你的笔记本,用来存放你的数据。 接下来,我们会使用一个叫做“FunctionTrap”的工具来帮助我们插入数据。你可以把它想象成一个助手,你告诉它要做什么,它就会帮你完成。在这个例子中,我们会告诉FunctionTrap我们要插入数据,并且指定在数据插入完成后要执行的函数。这个函数就像是一个小任务,比如发送一个通知或者更新一些信息。 现在,让我们来看一下具体的步骤: 1. ,确保你有一个账户,:这是你的数据存放的地方,没有账户,数据就无处可去。 2. ,调用FunctionTrap,:告诉它我们要开始插入数据了。 3. ,指定返回时要执行的函数,:这就像是在告诉助手,“嘿,数据插入完成后,别忘了做这件事哦。” 最后,你会看到数字3、1、2,这可能是数据的顺序或者是一些特定的标识符,用来帮助我们更好地管理和查找这些数据。 记住,插入数据的过程虽然简单,但是每一步都很重要,确保每一步都正确无误,这样你的数据才能安全、准确地存放在Salesforce中。希望这个解释对你们有帮助,如果还有疑问,随时提问哦!

    查看详情
  • 46

    Inserting Data Example: The Callback Function

    第 673 页

    今天我们来聊聊在Salesforce中插入数据时,如何使用回调函数。回调函数听起来可能有点复杂,但其实它就是一个在某个操作完成后自动执行的函数。想象一下,你点了一份外卖,外卖送到后,你会收到一条短信通知你外卖到了。这条短信就可以看作是一个回调函数,它在外卖送达这个操作完成后自动执行。 在Salesforce中,当我们插入数据时,有时候我们希望在数据成功插入后,自动执行一些额外的操作,比如发送通知、更新其他记录等。这时候,我们就可以使用回调函数。 举个例子,假设我们有一个名为`Account`的对象,我们想要插入一个新的`Account`记录,并在插入成功后,自动发送一条通知给某个用户。我们可以这样做: 1. 首先,我们定义一个回调函数,比如叫`afterInsert`。这个函数会在数据插入成功后自动执行。 2. 在`afterInsert`函数中,我们可以编写发送通知的逻辑。 3. 然后,我们在插入数据的代码中,指定这个回调函数。 具体代码可能看起来像这样: ```apex public class AccountHandler { public static void afterInsert(List newAccounts) { for (Account acc : newAccounts) { // 这里编写发送通知的逻辑 System.debug(&#39;通知:新的Account记录已插入,ID为:&#39; + acc.Id); } } } ``` 然后,在插入数据的代码中,我们可以这样调用: ```apex List newAccounts = new List(); Account newAcc = new Account(Name=&#39;新公司&#39;); newAccounts.add(newAcc); insert newAccounts; // 调用回调函数 AccountHandler.afterInsert(newAccounts); ``` 这样,当我们插入新的`Account`记录后,`afterInsert`函数会自动执行,发送通知。 总结一下,回调函数就是在某个操作完成后自动执行的函数。在Salesforce中,我们可以利用回调函数在数据插入成功后执行一些额外的操作,比如发送通知、更新其他记录等。希望这个例子能帮助你理解回调函数的概念和使用方法。如果有任何问题,随时问我哦!

    查看详情
  • 47

    Goal: Interact with Salesforce Data Layer - 674

    第 674 页

    今天我们来聊聊如何与Salesforce的数据层进行交互。简单来说,数据层就是Salesforce存储所有信息的地方,比如客户信息、销售机会、产品等等。要跟这些数据打交道,我们主要可以通过几种方式。 首先,最常见的是使用Salesforce的标准界面,也就是我们常说的“点选界面”。你可以直接在页面上点击、搜索、筛选,来查看和修改数据。这种方式非常适合日常操作,比如更新客户信息或者查看销售报告。 其次,如果你需要更复杂的操作,比如批量更新数据或者自动化一些流程,那么你可以使用Salesforce的Apex代码。Apex是Salesforce的一种编程语言,它允许你编写脚本来直接与数据库交互。通过Apex,你可以创建、读取、更新和删除记录,也就是我们常说的CRUD操作。 还有一种方式是使用Salesforce的API,也就是应用程序接口。API允许外部系统与Salesforce进行数据交换。比如,你可以通过API从外部系统导入数据到Salesforce,或者将Salesforce的数据导出到其他系统进行分析。 最后,如果你需要进行数据报告和分析,Salesforce提供了强大的报表和仪表板功能。你可以创建各种报表来展示数据,比如销售趋势、客户满意度等,然后通过仪表板来可视化这些数据,帮助做出更好的业务决策。 总之,与Salesforce数据层交互的方式有很多,选择哪种方式取决于你的具体需求。希望这些信息能帮助你更好地理解和使用Salesforce。如果有任何问题,随时提问哦!

    查看详情
  • 48

    Coding Your Application: Managing the iFrame

    第 676 页

    同学们,今天我们来聊聊如何在Salesforce中管理iFrame的大小,以及如何自动卸载画布应用程序。这部分内容对于开发嵌入在Salesforce中的应用程序非常重要。 首先,我们来看一下如何管理iFrame的大小。在Salesforce中,我们使用`Sfdc.canvas.Client`这个SDK来帮助我们管理嵌入在iFrame中的应用程序。这个SDK提供了一些功能,可以让我们动态地调整iFrame的大小,确保我们的应用程序在Salesforce页面中显示得恰到好处。 举个例子,假设你的应用程序内容突然变多了,比如用户添加了很多数据,这时候你可能需要调整iFrame的高度,以便所有的内容都能显示出来。你可以使用`Sfdc.canvas.Client`中的`resize`方法来实现这一点。这个方法会根据你提供的参数,自动调整iFrame的大小,确保内容不会溢出或者被截断。 接下来,我们来看一下如何自动卸载画布应用程序。有时候,用户可能会离开你的应用程序页面,或者切换到其他页面。这时候,你可能希望自动卸载你的应用程序,以释放资源或者执行一些清理操作。 在Salesforce中,你可以通过监听`unload`事件来实现这一点。当用户离开页面时,这个事件会被触发,你可以在事件处理函数中执行一些清理操作,比如关闭连接、保存数据等。这样,你的应用程序就能在用户离开时优雅地退出,而不是突然中断。 总结一下,今天我们学习了如何使用`Sfdc.canvas.Client`来管理iFrame的大小,以及如何通过监听`unload`事件来自动卸载画布应用程序。这些技巧可以帮助你更好地开发嵌入在Salesforce中的应用程序,提升用户体验。 希望这些内容对你们有所帮助,如果有任何问题,欢迎随时提问。我们下次课再见!

    查看详情
  • 49

    Coding Your Application: Events

    第 677 页

    让我们来聊聊Salesforce中的事件SDK,以及它如何帮助不同的应用程序之间进行通信。 想象一下,你有一个网页,这个网页上有两个不同的画布应用程序,我们叫它们应用程序A和应用程序B。这两个应用程序可能来自不同的地方,甚至可能使用不同的域名。通常情况下,它们之间是不能直接交流的,因为它们不在同一个“世界”里。 但是,Salesforce的事件SDK就像是一个神奇的通行证,它允许这两个应用程序通过一种叫做“订阅模式”的方式进行交流。这意味着,应用程序A可以发送一个消息,而应用程序B可以接收并理解这个消息,即使它们来自不同的地方。 这种交流不仅仅限于画布应用程序之间。如果你有一个流媒体API(这是一个可以实时发送数据的工具),它也可以和画布应用程序进行交流。这里,流媒体API就像是发布者,它发布消息,而画布应用程序则是订阅者,它订阅并接收这些消息。 此外,如果你的画布应用程序是嵌入在一个Visualforce页面中的,它们之间也可以通过事件SDK进行交流。Visualforce页面就像是画布应用程序的家长,它们之间可以轻松地传递信息。 所以,简单来说,Salesforce的事件SDK就像是一个桥梁,它让不同的应用程序,即使它们来自不同的地方,也能轻松地交流信息。这对于开发复杂的、需要多个应用程序协同工作的Salesforce解决方案来说,是非常有用的。

    查看详情
  • 50

    Canvas Apps in a Page Layout or a Mobile Card

    第 678 页

    同学们,今天我们来聊聊Salesforce中的Canvas应用程序,以及它在移动设备上的展示方式。Canvas应用程序是一种可以在Salesforce内部嵌入的外部应用程序,它能够提供丰富的用户体验和功能。 首先,Canvas应用程序可以放置在记录的详细信息页面上。这意味着,当你在Salesforce中查看某个记录的详细信息时,Canvas应用程序会作为一个组件出现在页面上。这样,你就可以在不离开Salesforce的情况下,直接与外部应用程序进行交互,获取或处理数据。 其次,Canvas应用程序还可以作为手机卡展示。在Salesforce移动应用程序中,手机卡是一种简洁的视图,用于快速展示关键信息。将Canvas应用程序设置为手机卡,可以让用户在移动设备上快速访问和使用该应用程序,而不需要进入记录的详细信息页面。 总结一下,Canvas应用程序在Salesforce移动应用程序中的位置和展示方式,取决于你如何配置它。你可以选择让它出现在记录的详细信息页面上,或者作为手机卡,以便在移动设备上提供更便捷的访问。这样,无论用户是在桌面还是移动设备上使用Salesforce,都能获得一致且高效的应用体验。

    查看详情
  • 51

    Customizing Your Canvas App’s Lifecycle

    第 679 页

    让我们来聊聊如何在Salesforce中自定义您的Canvas应用程序的生命周期。Canvas应用程序是一种可以在Salesforce内部嵌入的外部应用程序,它允许用户在不离开Salesforce环境的情况下使用外部服务。 首先,Canvas生命周期管理涉及到几个关键的方法,其中最重要的是`excludeContextTypes()`和`onRender()`。这两个方法允许您控制应用程序的上下文信息和渲染行为。 `excludeContextTypes()`方法用于指定哪些上下文信息不应该传递给Canvas应用程序。例如,如果您不希望应用程序接收到组织信息,您可以在该方法中排除`ORGANIZATION`类型。这样做可以保护敏感信息不被外部应用程序访问。 `onRender()`方法则是在Canvas应用程序渲染时被调用的。您可以在这个方法中添加一些自定义逻辑,比如打印调试信息,或者执行一些初始化操作。 让我们看一个简单的示例实现: ```java public class MyCanvasLifecycle implements Canvas.CanvasLifecycle { public Set excludeContextTypes() { Set excluded = new Set(); excluded.add(Canvas.ContextTypeEnum.ORGANIZATION); return excluded; } public void onRender(Canvas.RenderContext renderContext) { System.debug(&#39;Canvas生命周期已被调用。&#39;); } } ``` 在这个示例中,我们创建了一个名为`MyCanvasLifecycle`的类,它实现了`Canvas.CanvasLifecycle`接口。在`excludeContextTypes()`方法中,我们创建了一个集合来存储要排除的上下文类型,并添加了`ORGANIZATION`类型。在`onRender()`方法中,我们简单地打印了一条调试信息,告诉我们Canvas生命周期已经被调用。 通过这种方式,您可以灵活地控制Canvas应用程序的行为,确保它既安全又高效地运行在Salesforce环境中。希望这个解释对您有所帮助!如果有任何疑问,随时欢迎提问。

    查看详情
  • 52

    Debugging Canvas Applications: Browser Console

    第 680 页

    让我们继续深入探讨如何调试和测试Canvas应用程序的`onRender()`方法。首先,记住,`onRender()`是在Salesforce准备呈现你的Canvas应用程序时被调用的。这个方法接收一个`Canvas.RenderContext`参数,这个参数包含了应用程序和环境的所有上下文信息。 为了确保你的`onRender()`实现按预期工作,你可以使用`Canvas.Test`类来创建一个模拟的`Canvas.RenderContext`。这样,你就不需要实际运行Canvas应用程序来进行测试。你可以设置各种模拟数据,比如应用程序的URL、版本、显示位置等,然后调用`Canvas.Test.testCanvasLifecycle()`方法来验证你的`onRender()`实现是否正确处理了这些数据。 例如,假设你想测试你的应用程序是否能够正确处理一个特定的版本号。你可以在测试中设置一个模拟的版本号,然后检查你的`onRender()`方法是否能够识别这个版本号并做出相应的反应,比如抛出一个`CanvasRenderException`如果这个版本不受支持。 此外,你还可以测试你的应用程序是否能够正确地修改URL或设置对象字段列表。通过这种方式,你可以确保你的Canvas应用程序在不同的上下文中都能正确地运行和显示。 总之,使用`Canvas.Test`类进行测试是一个强大的工具,可以帮助你确保你的Canvas应用程序在各种情况下都能稳定运行。希望这些信息对你有所帮助,继续加油!

    查看详情
  • 53

    Coding Your Application: Using OAuth 2.0

    第 681 页

    让我们来聊聊如何在Salesforce中使用OAuth 2.0来编码您的应用程序,特别是当涉及到跨域回调问题时。 首先,想象一下,您的Canvas应用程序被嵌入到Salesforce的一个页面中,这个页面是通过一个iFrame加载的。这里的问题在于,由于Canvas应用程序和Salesforce页面位于不同的域名下,Canvas应用程序不能直接向Salesforce的域名(比如*.salesforce.com)发送XML HTTP请求(XHR)。这是因为浏览器的同源策略限制了这种跨域请求。 那么,我们怎么解决这个问题呢?Salesforce提供了一个解决方案,那就是使用Canvas SDK中的JavaScript客户端代理。这个代理允许您的Canvas应用程序通过它来发送XHR请求到Salesforce。具体来说,当您的应用程序使用这个代理发送请求时,代理会处理这个请求,将它转发到外部的iFrame,然后代表您的应用程序提交这个请求。 一旦Salesforce处理完这个请求,SDK会将结果返回给您的应用程序,并调用您预先定义好的回调函数。这样,您的应用程序就可以接收到来自Salesforce的响应,即使它们位于不同的域名下。 总结一下,通过使用Salesforce提供的Canvas SDK中的客户端代理,您可以绕过跨域的限制,安全地从您的Canvas应用程序向Salesforce发送请求,并处理返回的数据。这种方法既简单又有效,是开发Salesforce集成应用时的一个好帮手。

    查看详情
  • 54

    Summarize It! - 682

    第 682 页

    让我们来总结一下这段代码的内容。 这段代码主要是在处理一个Salesforce Canvas应用的渲染逻辑。首先,我们从`RenderContext`中获取了应用程序和环境上下文。然后,我们检查了应用程序的版本,如果版本低于5,我们就抛出一个异常,表示不再支持这个版本。 接下来,我们覆盖了应用程序的URL路径,将其替换为`/ternatePath`。然后,我们添加了一些字段到环境中,这些字段包括`Name`、`BillingAddress`和`YearStarted`,这些字段可能是从账户详细信息页面上获取的。 最后,我们处理了自定义参数集。我们首先获取了当前的自定义参数,然后添加了一个新的自定义参数`newCustomParam`,并将其值设置为`newValue`。最后,我们将更新后的参数集重新设置回环境中。 这段代码的关键点在于如何处理和更新自定义参数集,确保在调用`setParametersAsJSON()`时不会丢失当前的自定义参数集。通过这种方式,我们可以灵活地管理和更新应用的参数,以适应不同的业务需求。

    查看详情
  • 55

    Trailhead Homework - 683

    第 683 页

    今天我们来聊聊关于Salesforce的Trailhead平台上的一个模块——Visualforce基础。这个模块是专门为那些想要深入了解Salesforce自定义页面开发的同学设计的。 首先,Visualforce是Salesforce提供的一种强大的工具,它允许开发者使用类似于HTML的标记语言来创建自定义的用户界面。这意味着你可以设计出完全符合你业务需求的页面,而不仅仅是使用Salesforce提供的标准页面。 在这个模块中,你将学习到如何创建基本的Visualforce页面,如何使用控制器来处理页面逻辑,以及如何将页面与Salesforce的数据模型集成。这些都是非常实用的技能,能够帮助你在实际工作中更好地定制和优化Salesforce应用。 作为家庭作业,我建议你按照模块的步骤一步步来,不要急于求成。每个练习和挑战都是设计来帮助你巩固所学知识的。你可以根据自己的节奏来学习,但记得要动手实践,因为编程技能是通过不断练习来提高的。 最后,记得利用Trailhead的社区和论坛,如果你在学习过程中遇到任何问题,那里有很多热心的开发者和专家愿意帮助你。祝你学习愉快,期待你在Visualforce的世界里大展身手!

    查看详情