Quiero obtener todos los datos de un objeto de cliente potencial e hice este script para obtener los datos de un cliente potencial y solo obtengo una cantidad de 2000.

¿Qué tengo que hacer para obtener toda la cantidad en Salesforce de un objeto por python?

from simple_salesforce import Salesforce
from datetime import datetime
import csv
import os
import json
import account

SALESFORCE_USERNAME = '123'
PASSWORD = '123'
SECURITY_TOKEN = '123'

def main():
    # Authentication settings
    sf = Salesforce(username=SALESFORCE_USERNAME,
                    password=PASSWORD,
                    security_token=SECURITY_TOKEN)

    # Lead Column setting to be acquired
    columns = [
        "Id",
        "Email",
        "Company",
        "Address",
        "Phone",
        "FirstName",
        "LastName",
        "CreatedDate",
    ]
    sosl = 'SELECT {0[0]}, {0[1]}, {0[2]}, {0[3]}, {0[4]}, {0[5]}, {0[6]} , {0[7]} , {0[8]} FROM Lead '.format(
        columns)

    # Data acquisition with SOSL
    data = sf.query(sosl)

    # Delete CSV file if it exists
    output_csv = 'output.csv'
    if os.path.exists(output_csv):
        os.remove(output_csv)

    # Write to CSV file
    for k, v in data.items():
        if type(v) is list:
            with open(output_csv, 'w', newline="") as f:
                writer = csv.DictWriter(f, fieldnames=columns)
                writer.writeheader()
                for d in v:
                    data = json.loads(json.dumps(d))
                    del data['attributes']
                    d = datetime.strptime(
                        data['CreatedDate'], '%Y-%m-%dT%H:%M:%S.%f%z')
                    data['CreatedDate'] = d.strftime('%Y-%m-%d %H:%M:%S')
                    writer.writerow(data)


if __name__ == '__main__':
    main()

Si alguien sabe, por favor hágamelo saber.

-1
sakaolo 20 ene. 2021 a las 12:37

1 respuesta

La mejor respuesta

Puede obtener todos los registros de respuesta a través de los métodos query_all() o query_all_iter(), que se documentan en Consultas en la documentación de simple_salesforce.

Tenga en cuenta que la consulta que está ejecutando es SOQL, no SOSL. SOSL es para búsquedas de texto completo.

0
David Reed 21 ene. 2021 a las 15:58