Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Los analistas se encuentran con frecuencia con la necesidad de automatizar el proceso de extracción de datos de los objetos de Salesforce para realizar análisis de datos o crear paneles de control localmente. Antes de la automatización, los analistas de mi organización tenían que seguir los siguientes pasos para crear informes de KPI:
- Inicie sesión a través del sitio de Salesforce
- Actualice manualmente los campos para varios informes.
- Descargue cada informe como un archivo CSV
- Realizar cálculos, manipular los datos y crear un conjunto de datos agregado
- Finalmente, péguelo en una hoja de Google para usarlo con fines de informes.
Este proceso era manual, lento y propenso a errores. Sin embargo, no tiene por qué ser así. Puede automatizar todo el proceso con la ayuda de un simple script de Python y la API de Salesforce.
Recuperar datos de Salesforce usando Python
Para comenzar, instale un paquete de código abierto llamado Simple Salesforce . Este es un cliente API REST de Salesforce básico que permite a los usuarios descargar el informe prediseñado directamente desde Salesforce o generar un nuevo conjunto de datos consultando la API de Salesforce usando SOQL (Salesforce Object Query Language).
Configure su paquete de Python y el acceso a la API
- El primer paso es instalar el Pitón package , que le permite importar todos los paquetes necesarios en su archivo Python.
pip instalar simple_salesforce
desde simple_salesforce importar Salesforce solicitudes de importación importar pandas como pd desde io import StringIO
- La
Salesforce
permite conectarse a la API (necesitará acceso a la API y sus credenciales de Salesforce). Si necesita ayuda para conectarse:- Comuníquese con su administrador de Salesforce para obtener acceso a la API.
- Si no tiene un token de seguridad, inicie sesión en su cuenta de Salesforce y vaya a la página de configuración. Luego haga clic en Restablecer mi token de seguridad en Mi información personal , que le enviará los detalles por correo electrónico. Si no ve esta opción, comuníquese con su administrador de Salesforce.
Nota: asegúrese de proteger sus contraseñas y claves; puede establecer variables de entorno para estas credenciales dentro de su secuencia de comandos.
sf = Salesforce (nombre de usuario = '', contraseña = '', security_token = '')
Acceda a sus datos de Salesforce
Hay dos opciones diferentes para obtener datos de Salesforce en un DataFrame en Python: una mediante la descarga de un informe de Salesforce y la otra mediante la consulta de los datos mediante SOQL.
Opción 1: descargar un informe de Salesforce
Descargue el informe personalizado de Salesforce predefinido utilizando el get()
Python Requests y proporcionando su URL de instancia de Salesforce y el ID del informe que se descargará. Además, puede leer el archivo .csv como un DataFrame para una mayor manipulación de datos.
sf_instance = 'https://oneappexchange.lightning.force.com/' # Su URL de instancia de Salesforce reportId = '' # agregar ID de informe export = '? isdtp = p1 & export = 1 & enc = UTF-8 & xf = csv' sfUrl = sf_instance + reportId + export respuesta = request.get (sfUrl, headers = sf.headers, cookies = {'sid': sf.session_id}) download_report = response.content.decode ('utf-8') df1 = pd.read_csv (StringIO (download_report))
Opción 2: consultar los datos usando SOQL
Consulte los datos de Salesforce directamente mediante SOQL, que es similar al lenguaje de consulta estructurado (SQL) pero se aplica solo a los datos de Salesforce. Para obtener detalles adicionales sobre SOQL y sus limitaciones, consulte la documentación de SOQL .
Encontrar metadatos
- Busque los nombres de API de campo y objeto navegando a lo siguiente: URL de instancia de organización -> Configuración -> Administrador de objetos -> Campo y relaciones.
- Ejecute el siguiente comando para verificar todos los nombres de campo del objeto de Salesforce usando Python. El nombre de la API del objeto de Salesforce es:
UserInstall__c
.
descri = sf.UserInstall__c.describe () [campo ['nombre'] para el campo en descri ['campos']]
Obteniendo los datos con SOQL
Simple Salesforce proporciona el método query_all
para obtener datos mediante SOQL. Puede consultar más de un objeto a la vez mediante consultas de relación . Esto es útil en los casos en los que necesita fusionar datos de diferentes objetos de Salesforce en un solo conjunto de datos. Listing
es otro objeto, y puede extraer el campo de este objeto usando el campo de búsqueda especificando la notación de puntos Listing__r.ProviderName__c
.
resultados = sf.query_all ("" " Seleccione Fecha de creación, Listing__r.RecordTypeSnapshot__c, Nombre, Listing__r.ProviderName__c de UserInstall__c donde CreatedDate = LAST_N_DAYS: 7 "" ")
Construyendo un DataFrame a partir de un diccionario
Los resultados de la consulta SOQL están en un formato de diccionario ordenado. Puede iterar a través de los datos anidados y generar un DataFrame (como se muestra a continuación).
records = [dict (CreatedDate = rec ['CreatedDate'], Record_Type = rec ['Listing__r'] ['RecordTypeSnapshot__c'], Nombre = rec ['Nombre'], ProviderName = rec ['Listing__r'] ['ProviderName__c']) para rec en los resultados ['registros']] df = pd.DataFrame (registros)
Automatización de informes y procesamiento de datos
Con sus datos como un DataFrame en Python, puede realizar tanto la ordenación de datos como las métricas agregadas juntas como desee. También puede elegir cómo generar los datos. Por ejemplo, es posible que desee exportarlo a Google Sheets utilizando la API de Google Sheet y aprovechar el paquete Pygsheets Python o ingerirlo en una tabla de base de datos. Además, puede programar el script de Python en una plataforma como Airflow para que se ejecute automáticamente a una hora programada y cree un tablero basado en este conjunto de datos agregado.
Conclusión
¡Con suerte, esta publicación le resultó útil! Este sencillo script automatiza el proceso de generación de informes y extracción de datos, lo que le ahorra a nuestro equipo horas de trabajo manual y reduce el riesgo de errores tipográficos. Para obtener más información, consulte nuestro código de muestra en GitHub .
Sobre el Autor
Rutuja Patil es gerente de análisis en el equipo de análisis de plataforma en Salesforce, donde se centra en análisis de negocios, automatización e informes mediante herramientas de BI. Rutuja tiene una maestría en sistemas de información y está certificada en Tableau.
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/09/how-to-automate-data-extraction-from-salesforce-using-python.html