Microsoft Azure is easy going – with only a few lines of code you can create a CSV importer for SugarCRM. Free of charge up to 1 Million requests per month!
First of all, you create an Azure Function.
python3 -m venv fellowdemo
source fellowdemo/bin/activate
func init sugarfunc --worker-runtime python
Choose Azure Blob Storage Trigger, then add the Blob service in the Azure Portal.
After creating the blob, you need to enter the key in the function.
Define the file in the function
The import script takes only a few lines:
import logging | |
import azure.functions as func | |
import os, io, crm, json | |
import pandas as pd | |
from sugarcrm.client import Client | |
def main(myblob: func.InputStream): | |
logging.info(f"Python blob trigger function processed blob \n" | |
f"Name: {myblob.name}\n" | |
f"Blob Size: {myblob.length} bytes") | |
file = myblob.read() | |
csvf = io.BytesIO(file) | |
csvf = csvf.getvalue().decode('UTF-8') | |
sniffer = csv.Sniffer() | |
cnt = sniffer.sniff(csvf) | |
logging.info (cnt.delimiter) | |
df = pd.read_csv(io.BytesIO(file), sep=cnt.delimiter, dtype=str) | |
client = Client('https://sg-python.demo.sugarcrm.eu', 'admin', '***') | |
results = [] | |
results = json.loads(df.to_json(orient='records')) | |
for item in results: | |
logging.info("Import") | |
#item['id'] = item['CONTRACT_ID'] | |
logging.info(json.dumps(item,indent=2)) | |
client.set_entry('Leads', item ) |
Create a simple CSV file to test the script.
Upload the file into the blob storage.
A second later, you see the file being processed:
An the records are created in the SUGARCRM!
Wow, having done a CSV import interface in a few lines of code!
More technical blogs:
- Die Umsetzung der XRechnung ist kein einmaliges Projekt
- Webinar: The E-invoice era is coming soon. Are you ready for it?
- Why is it so important to have a 360º view of the customer?
- KV Plugin – The Artificial Intelligence based plugin for IDM Capture is now available!
- What is the real benefit of automatic invoice verification thanks to artificial intelligence?