Salesforce 如何查找只有帐户引用的订单列表的帐户ID?

Salesforce 如何查找只有帐户引用的订单列表的帐户ID?,salesforce,lookup,apex,soql,Salesforce,Lookup,Apex,Soql,我正在尝试编写一个API,它将接受要插入的订单记录列表。订单表将与account表相关,account有一个外部id字段 不幸的是,当用户将请求发布到api时,他们没有在发送要插入的订单列表时提供的帐户ID,只有外部ID(他们的帐户号) 是否有一种优雅的方式,通过订单记录列表,根据客户提供的外部ID(账号)来获取客户ID 在伪代码中,我将执行如下操作: 更新tmp\u订单 设置account\u id=account.id 从帐户 其中account.accountNumber=tmp_orde

我正在尝试编写一个API,它将接受要插入的订单记录列表。订单表将与account表相关,account有一个外部id字段

不幸的是,当用户将请求发布到api时,他们没有在发送要插入的订单列表时提供的帐户ID,只有外部ID(他们的帐户号)

是否有一种优雅的方式,通过订单记录列表,根据客户提供的外部ID(账号)来获取客户ID

在伪代码中,我将执行如下操作:

更新tmp\u订单
设置account\u id=account.id
从帐户
其中account.accountNumber=tmp_orders.accountNumber

我不想做的是循环遍历列表并逐个查找每个帐户id,因为传递给api的订单数量可能会导致该方法达到调控器限制


谢谢

您不需要自己进行查找,在插入调用中,您可以指定externalId而不是常规salesforce帐户Id,服务将自动为您进行查找。您可以通过指定具有相关externalId集的嵌套Account对象来完成此操作,而不仅仅是设置accountId字段,例如

Account a = new Account(extId__c='foo');
Order o = new Order(...);
o.account = a;
insert o;
还有更多的例子,包括从WebAPI而不是apex中执行