Parameters VisualForce{!Account.Id}返回15个字符的Id,而不是18个字符的Id

Parameters VisualForce{!Account.Id}返回15个字符的Id,而不是18个字符的Id,parameters,salesforce,visualforce,Parameters,Salesforce,Visualforce,销售人员: “由于Access等应用程序无法识别5013000000014c与5013000000014c是不同的ID,所有API调用都会返回18位大小写安全版本的ID。通过在Force.com API中为每个ID添加后缀,形成了18个字符的ID。不区分大小写的应用程序可以安全地比较18个字符的ID的唯一性,并且可以在创建、编辑或删除数据时在所有API调用中使用。” 然而,从我的视觉力量页面: {!Account.Id} 返回15位ID而不是18位ID 我是否可以使用其他参数/属性为我提供18个

销售人员:

“由于Access等应用程序无法识别5013000000014c与5013000000014c是不同的ID,所有API调用都会返回18位大小写安全版本的ID。通过在Force.com API中为每个ID添加后缀,形成了18个字符的ID。不区分大小写的应用程序可以安全地比较18个字符的ID的唯一性,并且可以在创建、编辑或删除数据时在所有API调用中使用。”

然而,从我的视觉力量页面:

{!Account.Id}

返回15位ID而不是18位ID


我是否可以使用其他参数/属性为我提供18个字符的ID?为什么文档明确指出所有API调用都返回18个字符的ID Account.ID为我提供15个字符的ID?

我不相信您可以使用其他参数,但有几种工具可以获得18个字符的ID

以下是一份清单:


希望这能有所帮助!

我认为这里有几个原因。Visualforce不被视为“API调用”或者至少不是传统意义上的。添加了不区分大小写的18位id,以帮助与Access等系统进行数据集成,但如果您通过URL和查询参数与其他网站交互,它们已经区分大小写,因此15位区分大小写的id应该适合您。要将18个字符转换为15个字符,只需去掉最后3个字符。所有进入SFDC的入站请求(UI、API、VF、Apex等)都接受15个字符和18个字符的ID。

我建议,因为文档中讨论的是不区分大小写的系统和外部应用程序的API,所以它们只使用18个字符的表单。似乎没有必要在SFDC和VF页面中使用18个字符的版本,因为他们知道他们的系统可以适当地处理它。我可以理解,但这些值不仅仅在内部使用。我们将ID作为查询字符串参数发送到我们的页面,以将我们的站点的部分与SF集成,但是我们拥有的SF ID是18个字符的ID,并且最终在我们的查询字符串中的ID是15个字符的ID。他们应该选择一个标准,并将所有内容都转换为18个字符的ID。.apex lang包()中还有SystemUtils.to18()。感谢Matthew,我确实向Account对象添加了一个公式字段,如您提供的第一个链接中所述。似乎是一个黑客的解决办法的东西,应该内置到科幻小说,但我们正在做很多!