Microsoft Azure ist einfach – mit wenigen Zeilen schafft man einen CSV Importer für SugarCRM. Bis 1 Mio Requests pro Monat sogar kostenlos!

Zuerst erstellt man eine Azure Function…

python3 -m venv fellowdemo
source fellowdemo/bin/activate
func init sugarfunc --worker-runtime python

Azure Blob Storage Trigger auswählen, dann im Azure Portal den Blob Dienst hinzufügen.

Nachdem der Blob erstellt ist, muss man in der Funktion den Key eintragen.

In der Function wird noch definiert, welche Datei genutzt wird.

Nun wird in wenigen Zeilen das Import Script geschrieben.

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 )

Um das Skript zu Testen erstellt man eine einfache CSV-Beispieldatei.

Die Datei wird zum Test in den Blob Storage geladen.

Nach einer Sekunde sollte man dann sehen wie die Datei verarbeitet wird…

Und die Daten wurden ins CRM geladen!

Hurra, in wenigen Zeilen eine CSV Schnittstelle gemacht!