{"id":329,"date":"2025-11-07T13:46:43","date_gmt":"2025-11-07T13:46:43","guid":{"rendered":"https:\/\/bjornproost.nl\/?page_id=329"},"modified":"2025-11-07T13:46:43","modified_gmt":"2025-11-07T13:46:43","slug":"11-5-1-solution-design-voorbeeld","status":"publish","type":"page","link":"https:\/\/bjornproost.nl\/?page_id=329","title":{"rendered":"11.5.1 Solution Design \u2013 Voorbeeld"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Solution Design Document (SDD)<\/strong><\/h2>\n\n\n\n<p><strong>Proces:<\/strong> Factuurverwerking \u2013 Inkomende Facturen<br><strong>Versie:<\/strong> 1.0<br><strong>Datum:<\/strong> 6 november 2025<br><strong>Auteur:<\/strong> Bj\u00f6rn Proost \u2013 Business Analyst<br><strong>Doel:<\/strong> Technische blauwdruk van de automatisering voor het inkomende-facturenproces<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 0 \u2013 Introduction<\/strong><\/h3>\n\n\n\n<p><strong>Projectnaam:<\/strong><br>Factuurverwerking \u2013 Inkomende Facturen<\/p>\n\n\n\n<p><strong>Organisatie:<\/strong><br>FinAdWise B.V.<\/p>\n\n\n\n<p><strong>Beschrijving:<\/strong><br>Deze oplossing automatiseert de verwerking van inkomende facturen via e-mail of uploadportalen.<br>De automatisering leest bijlagen, herkent leveranciersgegevens en bedragen, valideert data op btw- en boekhoudregels,<br>en boekt de facturen automatisch in de boekhoudsoftware.<\/p>\n\n\n\n<p><strong>Doelstelling:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verminderen van handmatige invoer > 70 %.<\/li>\n\n\n\n<li>Verkorten van de verwerkingstijd van 5 minuten naar &lt; 1 minuut per factuur.<\/li>\n\n\n\n<li>Verbeteren van datakwaliteit en audittrail.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1 \u2013 Process Overview<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Categorie<\/strong><\/th><th><strong>Beschrijving<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Pre-requisites<\/strong><\/td><td>Facturen worden digitaal aangeleverd (pdf, UBL) via <a>factuur@finadwise.nl<\/a>.<\/td><\/tr><tr><td><strong>Applicaties<\/strong><\/td><td>Factuurverwerkingssoftware (bijv. Scan &amp; Recognize Tool), Boekhoudsoftware, SharePoint, Power BI.<\/td><\/tr><tr><td><strong>Infra<\/strong><\/td><td>Virtuele server \u2013 Windows 11 Enterprise, Robot runtime UiPath 2024 LTS.<\/td><\/tr><tr><td><strong>Interactie<\/strong><\/td><td>Robot monitort mailbox, verwerkt bijlagen, uploadt resultaten naar SharePoint en API-post naar boekhoudpakket.<\/td><\/tr><tr><td><strong>Conventies<\/strong><\/td><td>Naming standaard = <code>FVR_&lt;leverancier&gt;_&lt;datum&gt;<\/code>. Logbestanden in C:\\Automation\\Logs.<\/td><\/tr><tr><td><strong>Projectorganisatie<\/strong><\/td><td>Sponsor \u2192 Finance Director \u2022 PM \u2192 Jan Vermeer \u2022 BA \u2192 Bj\u00f6rn Proost \u2022 SA \u2192 Eva Veldhuis \u2022 Dev \u2192 Sam Peeters<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2 \u2013 Diagram (High-Level Process Flow)<\/strong><\/h3>\n\n\n\n<p><strong>Tekstuele weergave:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> Nieuwe e-mail met bijlage in <em>Inkomende Facturen-mailbox<\/em>.<\/li>\n\n\n\n<li><strong>Input Check:<\/strong> Controleren of bijlage pdf\/UBL is.<\/li>\n\n\n\n<li><strong>OCR\/Extractie:<\/strong> Uitlezen leverancier, factuurnummer, bedrag, btw, IBAN.<\/li>\n\n\n\n<li><strong>Validatie:<\/strong> Controle op duplicaten, openstaande orders en btw-regels.<\/li>\n\n\n\n<li><strong>Boeking:<\/strong> Uploaden van data via API naar boekhoudsoftware.<\/li>\n\n\n\n<li><strong>Rapportage:<\/strong> Logging en statusmelding in Power BI.<\/li>\n\n\n\n<li><strong>Archivering:<\/strong> Factuur en log verplaatsen naar SharePoint-mappen <em>Processed<\/em> of <em>Rejected<\/em>.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Email Trigger] \u2192 &#91;Read Attachment] \u2192 &#91;Extract Data] \u2192 &#91;Validate Rules] \u2192 &#91;Post to Accounting System] \u2192 &#91;Archive + Log]\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3 \u2013 Design<\/strong><\/h3>\n\n\n\n<p><strong>Modulaire opbouw (whiteboard workflow):<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Module<\/strong><\/th><th><strong>Beschrijving<\/strong><\/th><th><strong>Ontwikkelduur<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>M1 \u2013 Email Listener<\/strong><\/td><td>Detecteert nieuwe berichten en downloadt bijlagen.<\/td><td>1 dag<\/td><\/tr><tr><td><strong>M2 \u2013 Data Extractor<\/strong><\/td><td>OCR \/ UBL-parser voor factuurdata.<\/td><td>2 dagen<\/td><\/tr><tr><td><strong>M3 \u2013 Validation Engine<\/strong><\/td><td>Controleert duplicaten, btw-nummers, ordermatching.<\/td><td>3 dagen<\/td><\/tr><tr><td><strong>M4 \u2013 Accounting Uploader<\/strong><\/td><td>API-koppeling naar boekhoudsoftware.<\/td><td>2 dagen<\/td><\/tr><tr><td><strong>M5 \u2013 Report Generator<\/strong><\/td><td>Genereert Power BI dataset met logs en fouten.<\/td><td>1 dag<\/td><\/tr><tr><td><strong>M6 \u2013 Exception Handler<\/strong><\/td><td>Foutafhandeling en notificaties per e-mail.<\/td><td>1 dag<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Totale geschatte ontwikkeltijd:<\/strong> \u00b1 10 dagen (laag-tot-middelmatige complexiteit).<\/p>\n\n\n\n<p><strong>Principes:<\/strong> modulariteit \u2022 herbruikbaarheid \u2022 gescheiden configuratie \u2022 central logging.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4 \u2013 Development &amp; Testing<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ontwikkeling in UiPath Studio 2024 LTS.<\/li>\n\n\n\n<li>Elke module getest via <em>Unit Test<\/em> met gesimuleerde input.<\/li>\n\n\n\n<li><em>Integration Test<\/em> uitgevoerd in testomgeving met 100 testfacturen.<\/li>\n\n\n\n<li>Testrapporten vastgelegd in <em>Technical Testing Plan v1.2<\/em>.<\/li>\n<\/ul>\n\n\n\n<p><strong>Wijzigingen tijdens ontwikkeling:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Extra validatie toegevoegd voor dubbele IBAN-nummers.<\/li>\n\n\n\n<li>API-endpoint gewijzigd na update boekhoudsoftware (versie 5.4).<br>\u2192 Beide aanpassingen geregistreerd in <em>Revisiehistorie rev 1.3<\/em>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5 \u2013 Asset Management<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Asset<\/strong><\/th><th><strong>Type<\/strong><\/th><th><strong>Locatie<\/strong><\/th><th><strong>Opmerking<\/strong><\/th><\/tr><\/thead><tbody><tr><td>EmailListener.xaml<\/td><td>Workflow<\/td><td>\\Projects\\FVR\\Modules<\/td><td>Trigger via Outlook API<\/td><\/tr><tr><td>ExtractInvoiceData.xaml<\/td><td>Workflow<\/td><td>idem<\/td><td>OCR \/ UBL-extractie<\/td><\/tr><tr><td>ValidationRules.json<\/td><td>Configbestand<\/td><td>\\Projects\\FVR\\Config<\/td><td>Bevat validatieregels<\/td><\/tr><tr><td>AccountingUploader.xaml<\/td><td>Workflow<\/td><td>idem<\/td><td>API-verbinding<\/td><\/tr><tr><td>PowerBI_ReportTemplate.pbix<\/td><td>Rapportage<\/td><td>\\Projects\\FVR\\Reports<\/td><td>Dashboardtemplate<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 6 \u2013 Queues &amp; Triggers<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Onderdeel<\/strong><\/th><th><strong>Beschrijving<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Queue Name<\/strong><\/td><td><em>InvoiceProcessingQueue<\/em><\/td><\/tr><tr><td><strong>Triggers<\/strong><\/td><td>Mailtrigger \u2013 Nieuwe e-mail in map \u201cInbox\\Invoices\u201d<\/td><\/tr><tr><td><strong>Retry-policy<\/strong><\/td><td>3 keer met interval van 10 minuten<\/td><\/tr><tr><td><strong>Timeouts<\/strong><\/td><td>60 seconden per transactie<\/td><\/tr><tr><td><strong>Folderstructuur<\/strong><\/td><td>\/Input \u2022 \/Processed \u2022 \/Rejected \u2022 \/Logs<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 7 \u2013 Code Dependencies<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Package \/ Library<\/strong><\/th><th><strong>Versie<\/strong><\/th><th><strong>Bron<\/strong><\/th><th><strong>Goedkeuring<\/strong><\/th><\/tr><\/thead><tbody><tr><td>UiPath.Mail.Activities<\/td><td>1.20.3<\/td><td>UiPath Official<\/td><td>&#x2705; Ja<\/td><\/tr><tr><td>UiPath.PDF.Activities<\/td><td>3.9.0<\/td><td>UiPath Official<\/td><td>&#x2705; Ja<\/td><\/tr><tr><td>Newtonsoft.Json<\/td><td>13.0.2<\/td><td>NuGet Open Source<\/td><td>&#x2705; Security Check<\/td><\/tr><tr><td>PowerBIRestAPI.dll<\/td><td>1.4.1<\/td><td>Intern ontwikkeld<\/td><td>&#x2705; Eigen beheer<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 8 \u2013 Compliance &amp; Security<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alle data wordt verwerkt binnen EU-servers (Azure West Europe).<\/li>\n\n\n\n<li>Credentials opgeslagen via UiPath Orchestrator Assets (met encryptie AES-256).<\/li>\n\n\n\n<li>Factuurdata bevat persoonsgegevens \u2192 voldoet aan AVG artikel 28.<\/li>\n\n\n\n<li>Logging geanonimiseerd: leveranciersnamen en bedragen worden gehasht in Power BI.<\/li>\n\n\n\n<li>Pen-test uitgevoerd (rapport #2025-FVR-SEC-003).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 9 \u2013 Reporting &amp; Dashboarding<\/strong><\/h3>\n\n\n\n<p><strong>Operationele KPI\u2019s:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aantal verwerkte facturen per dag\/week.<\/li>\n\n\n\n<li>Gemiddelde verwerkingstijd (AHT).<\/li>\n\n\n\n<li>Percentage automatisch goedgekeurd.<\/li>\n\n\n\n<li>Aantal exceptions \/ fouten.<\/li>\n<\/ul>\n\n\n\n<p><strong>Business KPI\u2019s:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bespaarde manuren (FTE\u2019s).<\/li>\n\n\n\n<li>Foutpercentage voor en na automatisering.<\/li>\n\n\n\n<li>Doorlooptijd van ontvangst tot boeking.<\/li>\n<\/ul>\n\n\n\n<p><strong>Visualisatie:<\/strong><br>Power BI-dashboard met:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>real-time status per leverancier,<\/li>\n\n\n\n<li>trending-grafieken,<\/li>\n\n\n\n<li>heatmap voor foutoorzaken,<\/li>\n\n\n\n<li>exportfunctie naar Excel en SharePoint.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Revision History<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Rev#<\/strong><\/th><th><strong>Datum<\/strong><\/th><th><strong>Omschrijving van wijziging<\/strong><\/th><th><strong>Auteur \/ Rol<\/strong><\/th><\/tr><\/thead><tbody><tr><td>1.0<\/td><td>06-11-2025<\/td><td>Eerste versie \u2013 opgezet volgens AMM-richtlijnen<\/td><td>Bj\u00f6rn Proost (BA)<\/td><\/tr><tr><td>1.1<\/td><td>10-11-2025<\/td><td>API-endpoint en IBAN-check toegevoegd<\/td><td>Eva Veldhuis (SA)<\/td><\/tr><tr><td>1.2<\/td><td>15-11-2025<\/td><td>Power BI-logging uitgebreid<\/td><td>Sam Peeters (Dev)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Contacts<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Rol<\/strong><\/th><th><strong>Naam<\/strong><\/th><th><strong>E-mail<\/strong><\/th><th><strong>Organisatie<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Sponsor<\/td><td>Lisa Hendriks<\/td><td><a>lisa.hendriks@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><tr><td>Process Owner<\/td><td>Thomas van Beek<\/td><td><a>thomas.vbeek@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><tr><td>Project Manager<\/td><td>Jan Vermeer<\/td><td><a>jan.vermeer@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><tr><td>Developer<\/td><td>Sam Peeters<\/td><td><a>sam.peeters@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><tr><td>Solution Architect<\/td><td>Eva Veldhuis<\/td><td><a>eva.veldhuis@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><tr><td>Business Analyst<\/td><td><strong>Bj\u00f6rn Proost<\/strong><\/td><td><a>bjorn.proost@finadwise.nl<\/a><\/td><td>FinAdWise B.V.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Bijlage \u2013 High-Level Visual Process Flow<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code> \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502  Email Inbox\u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n        \u2502Trigger\n        \u25bc\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Extract Data\u2502 \u2190 OCR \/ UBL\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n        \u25bc\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Validate Data\u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n        \u25bc\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Bookkeeping \u2502 \u2190 API\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n        \u25bc\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Reporting &amp; \u2502\n \u2502 Archiving   \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Einde document \u2013 Solution Design Document (Factuurverwerking Inkomende Facturen)<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Solution Design Document (SDD) Proces: Factuurverwerking \u2013 Inkomende FacturenVersie: 1.0Datum: 6 november 2025Auteur: Bj\u00f6rn Proost \u2013 Business AnalystDoel: Technische blauwdruk van de automatisering voor het inkomende-facturenproces Step 0 \u2013 Introduction Projectnaam:Factuurverwerking \u2013 Inkomende Facturen Organisatie:FinAdWise B.V. Beschrijving:Deze oplossing automatiseert de verwerking van inkomende facturen via e-mail of uploadportalen.De automatisering leest bijlagen, herkent leveranciersgegevens en bedragen, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-329","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/pages\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bjornproost.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=329"}],"version-history":[{"count":1,"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/pages\/329\/revisions"}],"predecessor-version":[{"id":331,"href":"https:\/\/bjornproost.nl\/index.php?rest_route=\/wp\/v2\/pages\/329\/revisions\/331"}],"wp:attachment":[{"href":"https:\/\/bjornproost.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}