2017-04-26 4 views
0

Genau wie Upsert, möchte ich Datensätze von einem bestimmten benutzerdefinierten Index mit Beatbox löschen. Gibt es irgendeinen Weg?Beatbox Massen löschen: Getting MALFORMED_ID

Ich bekomme MALFORMED_ID, wenn ich es mache.

+0

Ich habe gerade festgestellt, dass wenn Sie mit Beatbox löschen, es standardmäßig löscht es aus Konten, die nicht erwartet wird. Bitte, wenn jemand auf diese Seite kommt, versuchen Sie nicht, die Löschoption zu verwenden. Schließlich lösche ich Accounts aus dem Papierkorb. :( – Gagan

+0

Das könnte eine interessante Frage sein und ich kann dir antworten, wenn du mehr Informationen schreibst, vielleicht auch die Beatbox-Quelle (PyPI oder Github?) Und wie ungefähr du irgendwas aus Versehen gelöscht hast (Experimentieren mit Demo oder deinem Code?) denke, beatbox ist sicher. (Auch Ihre Frage [Beatbox upsert nicht ...] (https://stackoverflow.com/q/43740127/448474) erfordert mehr Informationen oder bearbeiten.) – hynekcer

Antwort

1

Der Befehl zum Löschen in Beatbox hängt von delete() SOAP API call ab. Es erfordert, die Primärschlüssel-ID der gelöschten Objekte zu kennen und es gibt keine Möglichkeit, die externe ID zu verwenden, da vorher genau bekannt sein sollte, was gelöscht wird. (Beispiel für Kontaktobjekt)

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)]) 

Sie in der Dokumentation in der Nähe dieses Update sehen() und Upsert() Anrufe unterstützt externe IDs.