2017-04-26 51 views
0

就像upsert一樣,我想使用beatbox批量刪除特定自定義索引的記錄。有什麼辦法嗎?beatbox批量刪除:獲取MALFORMED_ID

我收到MALFORMED_ID當我這樣做。

+0

我剛纔注意到,當您使用beatbox刪除時,默認情況下它會從預期不存在的帳戶中刪除。如果有人來到這個頁面,請不要嘗試使用刪除選項。最後,我從回收站取消刪除帳戶。 :( – Gagan

+0

這可能是一個有趣的問題,我可以回答,如果你寫更多的信息,也可能是beatbox源(PyPI或Github?),以及你是如何近乎刪除任何東西(試驗演示或通過你的代碼?)認爲beatbox是安全的(同樣,你的問題[Beatbox upsert not ...](https://stackoverflow.com/q/43740127/448474)需要更多信息或編輯。) – hynekcer

回答

1

在beatbox中刪除命令取決於delete() SOAP API call。它需要知道被刪除對象的主鍵ID,並且不可能使用外部ID,因爲事先應該知道被刪除對象的確切內容。 (Contact對象示例)

sql = "SELECT Id FROM Contact WHERE my_external_id__c in ({})".format(
    ', '.join("'{}'".format(x) for x in external_ids) 
) 
svc.delete([x['Id'] for x in soap.query(sql)]) 

您可以在附近的文檔中看到update()和upsert()調用支持外部ID。