{"id":552,"date":"2024-02-28T11:42:07","date_gmt":"2024-02-28T10:42:07","guid":{"rendered":"https:\/\/niwadev.com\/?page_id=552"},"modified":"2025-01-13T14:48:35","modified_gmt":"2025-01-13T13:48:35","slug":"mise-en-place-d-une-boite-aux-lettres-pour-le-portail-client-d-un-fournisseur-d-energie","status":"publish","type":"page","link":"https:\/\/niwadev.com\/fr\/projects-and-professional-experience\/implementing-a-modern-digital-mailbox-for-a-customer-portal-of-an-energy-supplier\/","title":{"rendered":"Mise en place d'une bo\u00eete aux lettres num\u00e9rique moderne pour le portail client d'un fournisseur d'\u00e9nergie"},"content":{"rendered":"<div class=\"gb-container gb-container-de098176\">\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized.svg\" alt=\"iMac montrant la page de la bo\u00eete de r\u00e9ception num\u00e9rique du portail client. La bo\u00eete de r\u00e9ception contient au moins trois factures et une option permet de charger davantage de documents.\" class=\"wp-image-554\" style=\"width:auto;height:750px\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Faits cl\u00e9s<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Entreprise <a href=\"https:\/\/www.lew-sc.de\/lew-sc\" target=\"_blank\" rel=\"noopener\" title=\"LEW Service &amp; Consulting GmbH\">LEW Service &amp; Consulting GmbH<\/a> pour <a href=\"https:\/\/www.lew.de\/fuer-zuhause\" target=\"_blank\" rel=\"noopener\" title=\"Lechwerke AG\">Lechwerke AG<\/a><\/li>\n\n\n\n<li>R\u00f4le : d\u00e9veloppeur de logiciels backend (CDI)<\/li>\n\n\n\n<li>P\u00e9riode : Janvier 2021 \u00e0 juin 2021<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Contexte<\/h2>\n\n\n\n<p>Suite \u00e0 la migration du portail client LEW vers un nouvel environnement, une nouvelle solution pour l'envoi num\u00e9rique des factures est n\u00e9cessaire. Celle-ci doit \u00e9galement pouvoir \u00eatre \u00e9tendue pour de futures op\u00e9rations de num\u00e9risation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Situation avant<\/h2>\n\n\n\n<p>Apr\u00e8s la migration du portail clients, il fallait par exemple encore acc\u00e9der \u00e0 l'ancien portail pour la fonction de consultation des factures. De plus, tous les autres courriers devaient continuer \u00e0 \u00eatre envoy\u00e9s par voie postale, m\u00eame pour les utilisateurs en ligne. Il en r\u00e9sulte des co\u00fbts d'impression, de mise sous pli et d'exp\u00e9dition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Objectif<\/h2>\n\n\n\n<p>Les objectifs suivants ont \u00e9t\u00e9 identifi\u00e9s :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Les clients enregistr\u00e9s re\u00e7oivent leurs lettres et factures sous forme num\u00e9rique<\/li>\n\n\n\n<li>Les lettres et les factures peuvent \u00eatre consult\u00e9es pendant la dur\u00e9e d'utilisation des services en ligne<\/li>\n\n\n\n<li>Les anciennes factures pr\u00e9sentes dans le syst\u00e8me peuvent \u00eatre mises \u00e0 disposition ult\u00e9rieurement<\/li>\n\n\n\n<li>Lorsque de nouveaux documents sont mis \u00e0 disposition, l'utilisateur en est inform\u00e9 en temps r\u00e9el<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Mise en \u0153uvre<\/h2>\n\n\n\n<p>Apr\u00e8s une analyse approfondie des exigences, il a \u00e9t\u00e9 reconnu que les documents pouvaient avoir des m\u00e9tadonn\u00e9es diff\u00e9rentes selon leur type. Pour pouvoir repr\u00e9senter cela de mani\u00e8re efficace, il a \u00e9t\u00e9 d\u00e9cid\u00e9 de stocker les donn\u00e9es sur une Azure Cosmos DB. Celle-ci peut parfaitement g\u00e9rer les donn\u00e9es sans sch\u00e9mas.<\/p>\n\n\n\n<p>Deux domaines sont impliqu\u00e9s dans la pr\u00e9paration des lettres. D'une part, le domaine SAP met \u00e0 disposition toutes les informations n\u00e9cessaires, d'autre part, l'Output Management les traite et d\u00e9clenche l'impression et l'envoi. Une coordination \u00e9troite avec ces deux domaines \u00e9tait donc n\u00e9cessaire pour d\u00e9velopper un processus optimal pour l'envoi num\u00e9rique.<\/p>\n\n\n\n<p>La particularit\u00e9 de l'architecture logicielle dans ce cas pr\u00e9cis \u00e9tait, outre la nouvelle base de donn\u00e9es, l'identification du type de document. De plus, il fallait s'assurer que toutes les informations n\u00e9cessaires soient disponibles de mani\u00e8re fiable malgr\u00e9 les trois syst\u00e8mes impliqu\u00e9s. Selon le type de document, il devait \u00e9galement \u00eatre possible de mettre \u00e0 disposition d'autres mod\u00e8les d'e-mails pouvant fournir certaines informations \u00e0 l'avance. \u00c9tant donn\u00e9 que le nombre d'utilisateurs en ligne ne cesse d'augmenter en raison de la qualit\u00e9 accrue du portail et des initiatives de distribution, il faut \u00e9galement garder \u00e0 l'esprit l'\u00e9volutivit\u00e9.<\/p>\n\n\n\n<p>Pour la mise en \u0153uvre de la bo\u00eete aux lettres, l'application du portail clients fra\u00eechement migr\u00e9e a pu \u00eatre facilement \u00e9tendue. Les th\u00e8mes de base comme la mise \u00e0 jour en temps r\u00e9el existaient d\u00e9j\u00e0 et pouvaient \u00eatre facilement compl\u00e9t\u00e9s par l'\u00e9v\u00e9nement \"nouvelle lettre dans la bo\u00eete aux lettres\".<\/p>\n\n\n\n<p>Ici aussi, le concept d\u00e9j\u00e0 \u00e9prouv\u00e9 de d\u00e9veloppement agile et it\u00e9ratif a \u00e9t\u00e9 appliqu\u00e9. Ainsi, dans un premier temps, seul le type de document \"facture\" a \u00e9t\u00e9 transf\u00e9r\u00e9 afin de v\u00e9rifier si les clients s'en sortaient bien avec la nouvelle bo\u00eete aux lettres et si les syst\u00e8mes fonctionnaient bien ensemble. Lors des it\u00e9rations suivantes, d'autres courriers li\u00e9s aux contrats ont \u00e9t\u00e9 int\u00e9gr\u00e9s \u00e9tape par \u00e9tape. C'est l\u00e0 que la phase de conception a port\u00e9 ses fruits. En effet, une extensibilit\u00e9 facile avait d\u00e9j\u00e0 \u00e9t\u00e9 prise en compte \u00e0 ce stade.<\/p>\n\n\n\n<p>La s\u00e9curit\u00e9 ne doit pas non plus \u00eatre n\u00e9glig\u00e9e. C'est pourquoi un test d'intrusion a \u00e9t\u00e9 r\u00e9alis\u00e9 afin de v\u00e9rifier les fonctions et leur vuln\u00e9rabilit\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ma contribution<\/h2>\n\n\n\n<p>En tant que d\u00e9veloppeur de logiciels, j'\u00e9tais responsable de la conception et de la r\u00e9alisation des services backend. Cela comprenait entre autres la cr\u00e9ation des interfaces, l'impl\u00e9mentation des processus et le stockage des donn\u00e9es dans la base de donn\u00e9es NoSQL Cosmos DB. Ma principale pr\u00e9occupation \u00e9tait que l'extension avec d'autres types de documents puisse \u00eatre r\u00e9alis\u00e9e facilement.<\/p>\n\n\n\n<p>Pour la coordination des processus techniques, je me suis occup\u00e9e de la visualisation et de la documentation de ceux-ci sous forme de diagrammes. Pour ce faire, j'ai eu des \u00e9changes \u00e9troits avec les secteurs concern\u00e9s.<\/p>\n\n\n\n<p>De plus, pour le th\u00e8me de la s\u00e9curit\u00e9, il fallait organiser les tests d'intrusion. Pour cela, je me suis occup\u00e9e de la coordination avec le prestataire de services, de la mise \u00e0 disposition des donn\u00e9es et informations n\u00e9cessaires et de l'acceptation du rapport, y compris le traitement des r\u00e9sultats.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technologies utilis\u00e9es<\/h2>\n\n\n\n<p>Une multitude de technologies ont \u00e9t\u00e9 utilis\u00e9es pour la mise en \u0153uvre de l'application. Le d\u00e9veloppement du backend a \u00e9t\u00e9 r\u00e9alis\u00e9 en C# et .NET Core, tandis que le front-end a \u00e9t\u00e9 principalement d\u00e9velopp\u00e9 en React avec TypeScript. Pour le d\u00e9veloppement des interfaces REST et gRPC, j'ai utilis\u00e9 le framework ASP.NET (Web API). Pour la repr\u00e9sentation des processus asynchrones, j'ai utilis\u00e9 NServiceBus, qui garantit la livraison des messages m\u00eame en cas d'erreur. J'ai stock\u00e9 les documents dans un Azure Blob Storage et les m\u00e9tadonn\u00e9es correspondantes dans une Azure Cosmos DB.<\/p>\n\n\n\n<p>D'autres m\u00e9triques logicielles et logs sont collect\u00e9s avec Application Insights. Des mises \u00e0 jour en temps r\u00e9el pour informer l'utilisateur ou actualiser le frontend ont \u00e9t\u00e9 r\u00e9alis\u00e9es via SignalR et Azure Functions .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Avantages pour le client<\/h2>\n\n\n\n<p>Apr\u00e8s la num\u00e9risation de toutes les lettres de clients l\u00e9galement possibles, une r\u00e9duction drastique des co\u00fbts d'impression et d'envoi a \u00e9t\u00e9 constat\u00e9e pour les clients disposant d'un acc\u00e8s en ligne. L'extension \u00e0 d'autres types de documents peut \u00eatre mise en \u0153uvre avec la m\u00eame rapidit\u00e9 et permet au client d'int\u00e9grer rapidement de nouvelles lettres dans ce processus \u00e0 l'avenir \u00e9galement. En outre, le nombre de demandes adress\u00e9es au service client\u00e8le concernant la mise \u00e0 disposition renouvel\u00e9e des factures a \u00e9t\u00e9 r\u00e9duit. Les clients peuvent d\u00e9sormais les consulter de mani\u00e8re autonome \u00e0 tout moment.<\/p>\n\n\n<div class=\"gb-container gb-container-09dc38ee\">\n\n<p>Vous avez \u00e9galement du mal \u00e0 g\u00e9rer des processus commerciaux complexes dans le monde num\u00e9rique et vous avez besoin d'aide pour la mise en \u0153uvre technique ? Je suis l\u00e0 pour vous aider.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/niwadev.com\/fr\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">Contactez-moi d\u00e8s aujourd'hui !<\/a><\/div>\n<\/div>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>La migration du portail client vers un nouvel environnement n\u00e9cessite une nouvelle solution pour l'envoi num\u00e9rique des factures. D\u00e9couvrez ici comment s'est d\u00e9roul\u00e9e la mise en \u0153uvre.<\/p>","protected":false},"author":1,"featured_media":586,"parent":537,"menu_order":33,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-552","page","type-page","status-publish","has-post-thumbnail"],"aioseo_notices":[],"uagb_featured_image_src":{"full":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured.webp",1200,675,false],"thumbnail":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured-150x150.webp",150,150,true],"medium":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured-300x169.webp",300,169,true],"medium_large":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured-768x432.webp",768,432,true],"large":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured-1024x576.webp",1024,576,true],"1536x1536":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured.webp",1200,675,false],"2048x2048":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured.webp",1200,675,false],"trp-custom-language-flag":["https:\/\/niwadev.com\/wp-content\/uploads\/2024\/02\/lew-digital-inbox-mac-anonymized-featured-18x10.webp",18,10,true]},"uagb_author_info":{"display_name":"niwadev.com","author_link":"https:\/\/niwadev.com\/fr\/blog\/author\/niwadev-com\/"},"uagb_comment_info":0,"uagb_excerpt":"The migration of the customer portal to a new environment requires a new solution for the digital delivery of invoices. See here how the implementation went.","_links":{"self":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/comments?post=552"}],"version-history":[{"count":1,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/552\/revisions"}],"predecessor-version":[{"id":859,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/552\/revisions\/859"}],"up":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/537"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/media\/586"}],"wp:attachment":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/media?parent=552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}