![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Salesforce
Salesforce的使用和开发
Channing Lewis
这个作者很懒,什么都没留下…
展开
-
Apex Type unsupported in JSON: Object
错误 “Apex Type unsupported in JSON: Object” 通常发生在 Salesforce 尝试序列化或反序列化它无法处理的对象类型时。这通常发生在包含复杂数据类型或非原始字段的 Apex 类上。如果你提供有关你的 Apex 类或错误发生的具体上下文的更多详细信息,我可以提供更有针对性的建议。原创 2024-07-24 09:05:49 · 358 阅读 · 0 评论 -
apex触发器有多个adderror会只显示最后一个
并不是执行到第一个adderror就结束了,而是会继续执行,如果后续还有adderror则也会执行并且优先显示。这段代码最终显示的error是B。原创 2024-07-20 19:43:23 · 95 阅读 · 0 评论 -
salesforce 通过 schedule job 去执行需要http访问外部网站的代码并更新自定义字段有什么原因可能导致失败
Salesforce的安全设置可能会限制对外部网站的HTTP访问。:目标网站使用HTTPS时,Salesforce需要信任目标网站的SSL证书。确保目标网站的SSL证书是有效的,并且Salesforce信任它。在排查问题时,可以通过查看Salesforce的调试日志(Debug Logs)来获取更详细的错误信息和调试信息,帮助确定失败的具体原因。:如果目标网站需要身份验证(例如API密钥或OAuth令牌),确保在Salesforce的代码中正确配置了这些认证信息。原创 2024-07-19 22:02:57 · 376 阅读 · 0 评论 -
Test class cannot be annotated with @isTest(SeeAllData=true)
IsTest(SeeAllData=true) 不能和 ‘@testSetup’ 同时使用,因为一个是使用所有数据,一个是新建虚拟数据,二者可能存在矛盾。原创 2024-07-16 20:25:25 · 103 阅读 · 0 评论 -
如何将apex执行过程中产生的超长字符串保存
可以创建一个自定义对象,该对象包含一个字段(支持最多 131,072 个字符)。如果字符串超长,可以将其拆分并存储在多个记录中。在 Salesforce 设置中,转到“Object Manager”。创建一个新的自定义对象,例如。为该对象添加一个字段,例如Content,允许最多 131,072 个字符。原创 2024-07-15 21:24:28 · 191 阅读 · 0 评论 -
apex实现xlsx的解压缩
在 Apex 中解压缩 XLSX 文件需要使用 Salesforce 平台上可用的工具和类。由于 Apex 本身不提供直接处理 ZIP 文件的内置类,你可以使用 Salesforce 的 ZIPpex 库来实现这一功能。ZIPpex 是一个社区驱动的库,用于处理 ZIP 文件的压缩和解压。你需要首先安装 ZIPpex 库。你可以从下载并部署代码到你的 Salesforce 组织中。原创 2024-07-11 22:29:05 · 525 阅读 · 0 评论 -
访问 sharepoint api 出现错误 Status=Bad Request, StatusCode=400
用python requests库访问是正常的,但是用apex代码编写的却是400错误,这是因为python requests库自动添加了一些header,对于apex需要手动添加,原创 2024-07-10 21:17:11 · 87 阅读 · 0 评论 -
为什么salesforce需要设置社区端,而不是使用和内部员工同样的环境
内部员工的系统通常包含敏感和机密的信息,例如财务数据、内部策略和未发布的产品信息。内部员工需要的是与企业内部系统和流程的深度集成,而客户和合作伙伴则需要简化的、易于使用的界面和功能,便于他们获取支持、分享信息和协作。因此,尽管看似统一的系统环境可能简化了一些方面的管理,但分离的社区端能够提供更高的安全性、优化的用户体验、专注的功能和更好的资源管理,最终提升整体运营效率和用户满意度。:某些行业和地区的法律法规要求企业对内部员工和外部用户的数据进行严格分离,以确保合规。原创 2024-07-04 21:21:33 · 349 阅读 · 0 评论 -
salesforce 批量下载文件为 attachment 时需要最后保存
【代码】salesforce 批量下载文件为 attachment 时需要最后保存。原创 2024-07-04 21:21:01 · 142 阅读 · 0 评论 -
salesforce如何保存密码等敏感信息,防止明文写在apex代码中
可以创建加密的自定义设置或自定义元数据类型来存储敏感信息。这些信息在存储时会被加密,并且在 Apex 代码中可以解密使用。原创 2024-06-25 22:19:52 · 734 阅读 · 0 评论 -
salesforce在related list隐藏的情况下,然后通过链接访问某个对象的某个related list中的所有对象
不过,这个链接的条件有点严格,需要先在页面上真正添加这个动态相关列表才会生效,而且只是对当前用户生效,之后可以删除这个列表,链接仍然生效。其他用户至少需要打开一次页面,出现这个列表这个链接才会生效,之后也可以删除。但是隐藏的话,这个链接就失效了。这个链接是和用户绑定的,同一个用户只要链接生效了,在不同的浏览器打开都会生效。原创 2024-06-25 22:19:24 · 203 阅读 · 0 评论 -
Apex正则表达式匹配任意字符
在 Apex 中使用正则表达式匹配任意字符,可以利用这个元字符,它表示任意单个字符。若要匹配任意数量的字符,可以在后面加上。如果需要匹配多行字符串中的任意字符,还需要使用s)标志,这样就会匹配包括换行符在内的所有字符。在这个示例中,正则表达式模式s).*s)运行这个方法时,会输出整个字符串,因为.*可以匹配整个多行字符串。原创 2024-06-22 17:37:22 · 408 阅读 · 0 评论 -
salesforce更新为Summer 24之后用Chroma打开时的错误: [crypto.randomUUID is not a function]
这应该是内部类的错误,去控制台搜索都找不到。主要原因是浏览器的版本不支持。原创 2024-06-22 17:36:46 · 144 阅读 · 0 评论 -
Read access denied for Opportunity, controller action methods may not execute. Stack Trace: null
salesforce 运行测试时出现错误:Read access denied for Opportunity, controller action methods may not execute. Stack Trace: null。原创 2024-06-14 21:09:35 · 180 阅读 · 0 评论 -
salesforce保存记录后,根据条件弹出对话框提示
首先创建一个Visualforce页面并添加到页面布局。原创 2024-06-13 22:35:09 · 332 阅读 · 0 评论 -
apex触发器满足条件时弹出对话框
在Salesforce中,Apex触发器是在记录的数据库操作(如插入、更新、删除)之前或之后执行的逻辑。由于Apex触发器运行在服务器端,无法直接触发客户端(浏览器)上的对话框。原创 2024-06-13 22:33:29 · 786 阅读 · 0 评论 -
通过apex启动flow
在 Screen Flow 中,定义所需的输入变量。在 Flow 画布上,点击 “Manager” 标签。点击 “New Resource” 按钮,选择 “Variable”。为变量命名,例如recordId。设置变量类型为Text,并选择 “Available for input”。原创 2024-06-13 22:32:43 · 161 阅读 · 0 评论 -
Apex错误:You have uncommitted work pending. Please commit or rollback before calling out.
这个错误是因为在同一事务中进行了 DML 操作,然后尝试进行 Web 服务调用。Apex 不允许在同一事务中既进行 DML 操作又进行 Web 服务调用,因为这可能会导致不确定的结果。解决这个问题的一种方法是将 DML 操作移到 Test.startTest() 和 Test.stopTest() 之间,这样它们将在单独的事务中执行,而不会与 Web 服务调用冲突。原创 2024-06-11 23:20:31 · 124 阅读 · 0 评论 -
salesforce case 创建时提取 description 中的链接自动下载并且保存在 attachment 中
创建触发器:当案例(Case)被创建时触发。编写Apex类:提取链接,下载文件,并将其保存为附件。原创 2024-06-07 21:27:20 · 581 阅读 · 0 评论 -
salesforce发送邮件时出现错误insufficient access rights on cross-reference id
通过以上步骤,您应该能够解决“insufficient access rights on cross-reference id”错误,并确保用户在发送邮件时拥有必要的权限。:如果通过Apex代码发送邮件,请检查代码,确保所有涉及的ID(如联系人ID、案例ID等)对当前用户都是可访问的。:如果通过工作流规则或流程构建器发送邮件,请检查这些自动化流程,以确保所有相关记录和字段都是当前用户可访问的。:确保用户对发送邮件涉及的对象(如案例、联系人、机会等)具有适当的读取和写入权限。原创 2024-06-05 21:45:44 · 561 阅读 · 1 评论 -
salesforce inactive的用户会收到通知邮件吗
在 Salesforce 中,用户通常不会收到任何通知邮件。如果通过apex代码发送邮件,但是没有检查用户是否inactive,仍然可以正常提取用户邮箱并且发送,salesforce不会进行限制。原创 2024-06-05 21:45:17 · 285 阅读 · 0 评论 -
apex代码发送邮件时进行抄送
在 Salesforce 中使用 Apex 代码发送电子邮件时,可以通过属性来添加抄送(CC)收件人。以下是一个示例代码,展示了如何使用类来发送带有抄送的电子邮件。原创 2024-06-05 21:44:41 · 465 阅读 · 0 评论 -
salesforce 如何为字段选项设置颜色
salesforce 系统设置不支持设置字体颜色,不过可以曲线救国。将颜色的emoji色块添加进字段选项中,就会显示颜色了。原创 2024-05-31 23:27:33 · 78 阅读 · 0 评论 -
salesforce 公式字段 判断一个字段是否在某个多选列表中
在 Salesforce 中,你可以使用公式字段来判断一个字段的值是否在一个多选列表中。这通常涉及使用包含特定值的函数和一些字符串操作。以下是一个常见的方法:假设你有一个多选列表字段,你想检查这个字段是否包含某个值,例如 “Value1”。原创 2024-05-29 22:20:21 · 812 阅读 · 0 评论 -
System.AsyncException: Database.executeBatch cannot be called from a batch start, batch execute....
salesforce中的这个提示很明确,那就是批处理触发了另一个批处理,从而被系统阻止。通常是运行批处理过程中触发了触发器中的批处理,此时可以通过一些方法来避开引起的批处理。原创 2024-05-21 20:58:21 · 119 阅读 · 0 评论 -
salesforce 一个用户 inactive 后,其创建的定时任务也将无法执行,出现错误[INACTIVE OWNER OR USER]
这个机制有合理性也有不合理性,我觉得不合理性大一些,因为如果认为某个定时任务没有必要了会去取消这个定时任务,而不是依据创建它的用户是否active。这样的机制会导致某个用户变成 inactive 状态了,需要去找到他创建的所有定时任务,发现有必要保留的用active的用户重新创建一遍,费时费力。原创 2024-05-14 20:46:53 · 76 阅读 · 0 评论 -
salesforce错误:INACTIVE OWNER OR_USER, operation performed with inactive user
在Salesforce中,如果尝试使用处于非活动状态的所有者(Owner)或用户(User)执行操作,则会收到此类错误消息。这意味着你正在尝试访问或执行操作的记录的所有者或相关用户处于非活动状态。例如,提交审批出现这个错误,可能是因为审批人中包含有未激活的用户,提交审批的account或者opportunity 的owner是否激活其实没有关系。原创 2024-05-13 21:01:44 · 114 阅读 · 0 评论 -
salesforce inactive user 和 deactived user 的区别
当一个用户被“停用”时,通常是由管理员执行的操作,意味着该用户被完全禁止登录并且无法访问Salesforce系统。这种状态意味着用户不能登录到系统,但他们的数据仍然存在,可以被其他用户查看和操作。在Salesforce中,“inactive user”和“deactivated user”都指的是不再活跃或被停用的用户,但它们在某些情况下可能有不同的含义。总的来说,非活跃用户更像是一个“休眠”的状态,而停用用户则更像是被永久性地禁用了。原创 2024-05-11 21:40:08 · 663 阅读 · 0 评论 -
为什么 salesforce user 没有打开 developer console 的权限
勾选 Modify All Data 后,下方的所有对象(例如 account、opportunity)都会自动勾选上所有权限,但是反过来不会导致 Modify All Data 自动被勾选。取消下方的所有对象的任一权限会导致 Modify All Data 自动取消勾选。这是因为 user 的 profile 中没有 Modify All Data 的权限,将这个选项勾选则可以打开 developer console。原创 2024-05-08 20:40:47 · 116 阅读 · 0 评论 -
salesforce应该为每一个功能创建一个触发器,还是将多个功能放在一个触发器中
如果多个功能在逻辑上相关,并且它们的触发条件或行为在某种程度上重叠或互相依赖,将它们放在同一个触发器中可能更合适。这有助于减少重复代码,提高维护性。在Salesforce中,是否应该为每个功能创建一个触发器还是将多个功能放在一个触发器中,这取决于具体情况和最佳实践。:考虑到未来需求的变化,设计一个灵活的结构对于系统的扩展是至关重要的。在设计触发器时,最好根据具体的业务需求和系统架构来权衡这些因素,并选择最适合的方法。:如果每个功能都涉及大量的逻辑或处理步骤,将它们放在单独的触发器中可能更清晰和可维护。原创 2024-04-23 20:56:32 · 128 阅读 · 0 评论 -
salesforce公式映射限制字段类型,长文本区等类型不能映射
最近设置字段映射时发现一个情况是,希望映射account的description字段,但是在公式的account字段中找不到这个字段,直接输入Account.Description提示不支持长文本区字段,看来这种映射只能通过flow或者触发器来实现了。原创 2024-04-19 20:54:56 · 102 阅读 · 0 评论 -
salesforce如何设置审批流程的有效期
如果你需要更复杂的逻辑,比如在审批截止日期到期后自动触发一系列动作,你可以使用Salesforce的流程构建器或Apex触发器来实现。创建一个工作流规则,当记录进入审批流程时,根据你定义的条件(如当前日期与“审批截止日期”之间的比较),自动更新记录的状态或发送提醒。综上所述,虽然Salesforce没有直接提供审批流程的有效期设置,但你可以通过利用Salesforce的自定义功能和自动化工具来实现类似的功能。你可以定期运行一个报告,筛选出已经过期但仍处于审批状态的记录,然后手动或自动进行相应的处理。原创 2024-04-16 21:10:34 · 150 阅读 · 0 评论 -
Apex 批量 reject 待审批的记录并且 comment
【代码】Apex 批量 reject 待审批的记录并且 comment。原创 2024-04-15 20:41:56 · 251 阅读 · 0 评论 -
salesforce apex判断用户的登录网址
对象,您需要确保Apex类具有适当的权限。通常,您需要在Apex类上启用“Without Sharing”,以便该类能够访问用户的登录历史记录。要使用这个Apex类,请在Salesforce中创建一个Apex类,并将其部署到您的组织中。方法接受用户的ID作为参数,并查询该用户的最近一次登录记录。然后,它返回最近登录的网址。在Salesforce Apex中判断用户的登录网址可以通过使用。方法,并传入要检查的用户的ID,以获取其最近一次登录的网址。原创 2024-04-12 23:46:10 · 147 阅读 · 0 评论 -
salesforce为不同的profile设置不同的域名,不同域名之间账号不互通
在Salesforce中,你可以通过设置不同的 My Domain 来实现不同的 profile 使用不同的域名,并确保这些域名之间的账号不互通。My Domain 是 Salesforce 提供的定制域名功能,允许你为 Salesforce 组织设置自定义的域名。参考:https://help.salesforce.com/s/articleView?通过这样的配置,不同的 profile 将会使用不同的域名登录到 Salesforce,并且根据你设置的访问控制规则,确保这些域名之间的账号不会互通。原创 2024-04-12 21:40:59 · 248 阅读 · 0 评论 -
salesforce 15位id和18位id的区别
通常情况下,您会在 Salesforce 开发或集成过程中使用 18 位 ID,因为它们提供了更大的唯一标识符范围,并且向后兼容旧系统。原创 2024-04-12 21:40:13 · 190 阅读 · 0 评论 -
没有收到来自 Salesforce 中记录触发的流程的电子邮件警报
确认您的 Salesforce 组织的电子邮件传递状态未遇到任何已知问题。使用不同的电子邮件地址(包括非 Salesforce 电子邮件地址)测试电子邮件警报,以查看问题是否特定于某些域或电子邮件提供商。如果您的 Salesforce 组织启用了电子邮件日志,您可以查看它们以查看电子邮件警报是否已发送以及是否存在任何交付问题。仔细检查电子邮件提醒中用作收件人的电子邮件地址,以确保它们有效且格式正确。确认使用有效的电子邮件模板和收件人正确设置了电子邮件警报。确保正确配置记录触发的流以发送电子邮件警报。原创 2024-04-08 22:57:55 · 213 阅读 · 0 评论 -
查看 Salesforce 发送的邮件记录
请注意,确切的步骤可能会因您的 Salesforce 设置和权限而略有不同。如果您无法使用这些说明找到邮件记录,您可能需要咨询您的 Salesforce 管理员以获取帮助。原创 2024-04-08 22:56:32 · 357 阅读 · 0 评论 -
salesforce如何批量reassign审批人
salesforce的审批流程中,如果希望批量将审批人重新指派,可以在set up 中找到Mass Transfer Approval Processes选项进行reassign。在Salesforce中,你可以通过“开发”菜单下的“执行匿名Apex”选项或者通过将此类添加到批处理调度器中来执行这段代码。请注意,在实际应用中,你可能需要根据你的需求进行调整和扩展,比如添加错误处理逻辑等。方法中,它查询了所有状态为“Pending”的审批工作项。方法中,它将这些审批工作项重新分配给指定的用户。原创 2024-04-03 21:24:52 · 298 阅读 · 0 评论 -
salesforce使用apex批量删除opportunity
【代码】salesforce使用apex批量删除opportunity。原创 2024-04-03 20:29:12 · 130 阅读 · 0 评论