如何查找只有账户参考的订单列表的账户 ID?

How can I lookup up the account ID for a list of orders which only have the account Reference?

我正在尝试编写一个 API,它将接受要插入的订单记录列表。订单 table 将与帐户 table 相关,并且该帐户有一个外部 ID 字段。

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

有没有一种优雅的方法,通过订单记录列表,根据他们提供的外部 ID(帐号)提取帐户 ID。

在伪代码中我会做如下的事情:

Update tmp_Orders set account_id = account.id from account where account.accountNumber = tmp_orders.accountNumber

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

谢谢

您不需要自己进行查找,在插入调用中您可以指定 externalId 而不是常规的 salesforce 帐户 Id,服务会自动为您进行查找。为此,您可以指定一个嵌套的 Account 对象,并设置相关的 externalId,而不仅仅是设置 accountId 字段,例如

Account a = new Account(extId__c='foo');
Order o = new Order(...);
o.account = a;
insert o;

还有更多示例 here,包括从网络 api 而不是 apex。