Automatisez l'analyse des fichiers Excel de courrier électronique dans la base de données SQL

SSIS and Power Automate

Rationaliser votre flux de travail de données

Chaque jour, la tâche de gestion manuelle des données d'une pièce jointe à un e-mail vers un serveur SQL peut s'avérer fastidieuse et chronophage. Cela implique de recevoir un e-mail avec un fichier Excel, de l'enregistrer dans un dossier désigné, de manipuler les données en supprimant la première colonne, puis de l'importer dans une base de données.

Pour améliorer l’efficacité et réduire le risque d’erreurs, l’automatisation de ce processus est une solution pratique. En tirant parti d'outils tels que SSIS (SQL Server Integration Services) ou Microsoft Power Automate, vous pouvez configurer un système qui gère ces tâches automatiquement, économisant ainsi un temps précieux chaque matin.

Commande Description
ImapClient Initie une connexion au serveur IMAP pour accéder et gérer les e-mails.
SearchCondition.Unseen() Filtre les e-mails qui n'ont pas été marqués comme lus, utile uniquement pour traiter de nouvelles données.
GetMessage(uid) Récupère le message électronique identifié par son identifiant unique.
File.Create() Crée ou écrase un fichier au chemin spécifié, utilisé ici pour enregistrer les pièces jointes localement.
app.LoadPackage() Charge un package SSIS à partir du système de fichiers pour exécution.
pkg.Execute() Exécute le package SSIS chargé qui peut effectuer des tâches telles que la transformation et le chargement de données.
Save email attachments Action Power Automate qui stocke les pièces jointes d’un e-mail dans un dossier OneDrive spécifié.
Run script Exécute un script Excel Online pour modifier les fichiers Excel, par exemple en supprimant une colonne.
Insert row Action SQL Server dans Power Automate qui insère des données directement dans une base de données SQL.

Répartition du script et explication du flux de travail

Les scripts fournis démontrent l'automatisation des tâches quotidiennes impliquant les pièces jointes aux e-mails et la gestion des bases de données SQL. Le premier script utilise SSIS, en commençant par le commande pour établir une connexion à un serveur de messagerie. Ceci est crucial pour automatiser la récupération des emails. Une fois connecté, il utilise pour filtrer les e-mails non lus, garantissant que seules les nouvelles pièces jointes sont traitées chaque jour. Le script emploie ensuite pour récupérer ces e-mails en fonction de leurs identifiants uniques.

Après avoir récupéré les e-mails, le script se concentre sur l'enregistrement des pièces jointes localement à l'aide de , ce qui est essentiel pour gérer les opérations sur les fichiers de manière sécurisée et efficace. Le package SSIS, chargé avec , est exécuté pour manipuler et importer les données dans une base de données SQL, à l'aide de la commande . En revanche, le script Power Automate automatise des tâches similaires mais dans un environnement basé sur le cloud, en utilisant des actions telles que Save email attachments pour déplacer des fichiers vers OneDrive, et dans Excel Online pour prétraiter les données avant l'insertion dans la base de données.

Automatisation de l'intégration de fichiers Excel de l'e-mail vers SQL

Script des services d'intégration SQL Server (SSIS)

// Step 1: Define the connection to the mail server
string mailServer = "imap.yourmail.com";
string email = "your-email@example.com";
string password = "yourpassword";
// Step 2: Connect and fetch emails
using (ImapClient client = new ImapClient(mailServer, email, password, AuthMethod.Login, 993, true))
{
    IEnumerable<uint> uids = client.Search(SearchCondition.Unseen());
    foreach (uint uid in uids)
    {
        var message = client.GetMessage(uid);
        // Process each attachment
        foreach (var attachment in message.Attachments)
        {
            // Save the Excel file locally
            using (var fileStream = File.Create(@"C:\temp\" + attachment.Name))
            {
                attachment.ContentStream.CopyTo(fileStream);
            }
            // Run the SSIS package to process the file
            DtsRuntime.Application app = new DtsRuntime.Application();
            Package pkg = app.LoadPackage(@"C:\SSIS\ProcessExcel.dtsx", null);
            pkg.Execute();
        }
    }
}

Excel vers SQL Automation via Power Automate

Power Automate Flux descriptif

// Step 1: Trigger - When a new email arrives
When a new email is received (Subject Filter: 'Daily Excel Report')
// Step 2: Action - Save attachments to OneDrive
Save email attachments to: 'OneDrive/EmailAttachments'
// Step 3: Action - Remove first column from Excel
Use Excel Online (Business) action: 'Run script' (Script to delete the first column)
// Step 4: Action - Insert data into SQL database
Use SQL Server action: 'Insert row' (Set connection and target database)
// Step 5: Condition - If success, send confirmation email
If action is successful, send email: 'Data upload complete'
// Step 6: Error Handling - If failure, send error notification
If error occurs, send email: 'Error in data processing'

Améliorer la gestion des données grâce à l'automatisation

Une exploration plus approfondie du domaine de l'automatisation, en particulier avec SSIS et Power Automate, révèle leur impact substantiel sur l'amélioration de l'efficacité et la réduction des charges de travail manuelles dans le traitement des données. Ces outils automatisent non seulement les tâches répétitives, mais introduisent également des capacités robustes de gestion des erreurs et de planification, essentielles au maintien de l'intégrité des données et des mises à jour en temps opportun. La mise en œuvre de tels flux de travail automatisés peut réduire considérablement le risque d'erreurs humaines, augmenter la vitesse de traitement des données et permettre au personnel de se concentrer sur des tâches plus analytiques.

Cette automatisation stratégique peut être particulièrement transformatrice dans les secteurs qui dépendent de mises à jour ponctuelles des données, comme la finance ou le marketing. Par exemple, des systèmes automatisés peuvent être configurés pour déclencher des alertes si les données entrantes échouent à certains contrôles de qualité, garantissant ainsi que les décideurs ont toujours accès à des informations fiables et précises. Ce niveau d'automatisation rationalise non seulement les opérations, mais améliore également le cadre global de gouvernance des données au sein d'une organisation.

  1. Qu’est-ce que SSIS ?
  2. SSIS (SQL Server Integration Services) est une plate-forme permettant de créer des solutions d'intégration et de transformation de données au niveau de l'entreprise.
  3. Comment SSIS peut-il être utilisé pour automatiser les processus ?
  4. SSIS peut automatiser le processus de déplacement et de transformation des données de diverses sources vers des bases de données et d'autres destinations, avec des fonctionnalités telles que , , et .
  5. Qu’est-ce que Power Automate ?
  6. Power Automate est un service fourni par Microsoft qui permet de créer des flux de travail automatisés entre vos applications et services préférés pour synchroniser des fichiers, recevoir des notifications, collecter des données, etc.
  7. Comment Power Automate gère-t-il les pièces jointes aux e-mails ?
  8. Power Automate peut enregistrer automatiquement les pièces jointes des e-mails dans un dossier spécifié sur des services comme OneDrive ou SharePoint avec son action.
  9. SSIS peut-il gérer les erreurs lors du transfert de données ?
  10. Oui, SSIS inclut des mécanismes robustes de gestion des erreurs qui peuvent gérer les problèmes de transfert de données, permettant de nouvelles tentatives ou la redirection d'enregistrements erronés vers des fichiers séparés pour examen.

La mise en œuvre de l'automatisation des tâches courantes d'envoi de courrier électronique vers la base de données offre un potentiel de transformation pour les entreprises, en particulier celles qui traitent de gros volumes de données. En utilisant SSIS et Power Automate, les entreprises peuvent éliminer la saisie manuelle des données, réduire le risque d'erreurs et garantir des mises à jour en temps opportun. Cette automatisation améliore l'efficacité opérationnelle et permet au personnel de se concentrer sur des tâches plus stratégiques, maximisant ainsi la productivité et l'exactitude des données.