【发布时间】:2021-05-17 05:12:54
【问题描述】:
我可以通过 php 中的 API 登录到 Salesforce。简要代码:
define('USERNAME', getenv(<myuserkey>));
define('PASSWORD', getenv(<mypwkey));
define('SECURITY_TOKEN', getenv(mytokenkey));
$sfconn = new SforceEnterpriseClient();
$sfconn->createConnection('soap/sfwsdl.xml');
$sfconn->login(USERNAME,PASSWORD . SECURITY_TOKEN);
后来,我这样调用查询:
$sfqry = "SELECT Id, QualifiedApiName, NamespacePrefix, DeveloperName, MasterLabel, Label, PluralLabel, DefaultCompactLayoutId, IsCustomizable, IsApexTriggerable, IsWorkflowEnabled, IsCompactLayoutable, KeyPrefix, IsQueryable from entitydefinition";
$response = $sfconn->query($sfqry);
我得到了数据结果,通常是具有“记录”属性的“对象”。但是在查看记录中的列表时,每个“Id”值都是相同的——例如000000000AAA(15 个零,3 个 A)。其他数据看起来很好(例如,QualifiedApiName 和其他字段对于每条记录都是不同的)。我在 Salesforce SOQL 页面中使用了相同的查询,并且 Id 肯定不同 - 其他字段与我通过 PHP 查询返回的内容相匹配。
我也查询了其他对象,它们似乎也为 Id 返回 00000000000AAA。
在我设置的 XML 文件中,我看到 SObject 的基本定义如下:
<!-- Base sObject (abstract) -->
<complexType name="sObject">
<sequence>
<element name="fieldsToNull" type="xsd:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
<element name="Id" type="tns:ID" nillable="true" />
</sequence>
</complexType>
当然,我看到其他对象是基于那个对象的。
我已经研究了超过 2 天。恐怕我错过了一些非常基本的东西,因为我找不到其他人报告这个问题。
【问题讨论】:
-
我不是 100% 确定,但我相信如果您要查找元数据的 id 值,则需要使用“durableId”。
标签: php api soap salesforce